Lecture Notes for CSE 561, 10/2 Question 1: How long does it take to adopt a new technology? Tech Invented Adopted Compact Disc early 80s mid 90s cars 1890s 1920s OOP early 60s mid 90s RISC early 80s early 90s public key crypto 70s late 90s - not yet transfer protocol 60s - 70s mid 90s RAID mid 80s early 90s video codecs ??? 90s conclusion 1: nothing useful done in the 90s conclusion 2: it takes a long time to adopt, and there's a high degree of variability in the time to adopt (TTA). Question 2: Why the variation in TTA? Possible Answers: - somethings are just intrinsically better - market forces (supply/demand and cost/benefit) - interoperability, legacy vs. plug and play Question 3: What is the upshot for the Internet? The most important advantage of today's Internet design (as compared to OSI/ISO, for example) is its interoperability. Not coincidentally, this is also the fundamental design goal of the DARPA net, according to Clarke. Question 4: Were design decisions made in the early 80s the right ones for today? In other words, how would we redesign the Internet if given the opportunity today? But first we need to answer Question 5: What constraints, design goals, and parameters must Internet designers work with? A) Constraints and parameters 1. Have existing networks, links, and hosts 2. Number of hosts -- unbounded? 64 bits (~10^19) enough? 3. Number of companies -- in the millions 4. Number of device manufacturers -- thousands 5. Kinds of applications to support -- ideally, all 6. Kinds of media to run on -- ideally, any 7. Kinds of networks (as opposed to media) to run on a. heterogeneous in speeds (1 kb/s - 10 Gb/s) b. wired/wireless c. simplex/duplex d. bus/switched e. circuit-switched vs. packet-switched f. packets can be corrupted/reordered/lost/split B) Design Goals (some already implied by above) 1. According to Clarke (in order of importance) a. efficient operability (for existing networks) b. availability/robustness c. flexibility in application support d. flexibility in support of new types of nets ------------- (unmet or partially unmet goals below) e. distributed management f. cost-efficiency g. low administrative costs h. ability to control resource usage 2. According to class (in no particular order) a. security b. extensibility c. performance/efficiency (as opposed to cost-effic.) d. scalability e. measurability f. conceptual simplicity/understandability g. predictability h. modularity i. anonymity (at odds with accountability) j. ability to accomodate conflicting interest groups k. mobility Side note to explain what is meant by predictability: If we add buffers to the network, will they improve or hurt performance? - hard to say - or, one could say, it depends on def. of "performance" RTT might be longer, but packet loss rate is lower - so maybe this is an example of poor measurability (?) Another side note: in a vote by industry engineers, the most important design goals were 1. interoperability, 2. availability, and 3. extensibility (because with it comes everything else) So now we can begin to answer Question 4 ... The class voted for a different prioritization of design goals from the one described by Clarke. Chief among the issues raised were security, scalability, and extensibility. Question 6: How do we build for the desired design goals? The key ideas of the current Internet implementation are 1) networks of networks (hierarchical management and routing) 2) interoperable gateways 3) store & forward 4) few assumptions about underlying networks 5) end host recovery -- no state in network (or soft state) 6) independent of type of data 7) best effort 8) layered implementation New ideas for a new implementation: 1) information about paths/capabilities 2) Quality of Service (QoS) requirements 3) allow capability of underlying networks to be exploited by hosts Virtual Private Network (VPN) example: there is a business demand for secure circuits. So security is currently added to the network in an ad-hoc way, one business at a time. It was pointed out that there is no incremental advantage for a service provider to provide any innovation (like security, QoS) locally. Only when a reasonably large portion of the network adopts the innovation will it have an impact. This creates a significant barrier to adoption of new technologies. Corruption of data example: end-to-end principle says that services should be provided at the lowest level where it can be fully implemented. For the detection of corrupted data, almost every link does some kind of error detection. Still, about 1 in every million packets gets corrupted.