* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download ppt
Net neutrality wikipedia , lookup
Network tap wikipedia , lookup
Net neutrality law wikipedia , lookup
Multiprotocol Label Switching wikipedia , lookup
Distributed firewall wikipedia , lookup
Airborne Networking wikipedia , lookup
Computer network wikipedia , lookup
Zero-configuration networking wikipedia , lookup
Asynchronous Transfer Mode wikipedia , lookup
TCP congestion control wikipedia , lookup
Internet protocol suite wikipedia , lookup
Wake-on-LAN wikipedia , lookup
Piggybacking (Internet access) wikipedia , lookup
List of wireless community networks by region wikipedia , lookup
Cracking of wireless networks wikipedia , lookup
UniPro protocol stack wikipedia , lookup
Deep packet inspection wikipedia , lookup
Recursive InterNetwork Architecture (RINA) wikipedia , lookup
CSE 588: Network Systems Tom Anderson Neil Spring Goal  Startup CTO: someone proposes a new networking technology, is it a risk you can afford to take  a risk you can’t afford to take  a risk you can’t afford not to take  Requires  understanding networking fundamentals  critical evaluation of technology Lecture Topics         Internet architecture Transport (TCP) Routing (IP) Congestion control Multicast (Mbone) Real time (DiffServ) Naming (DNS) Security (Kerberos)         End to end principle Reliable delivery Robust interoperability Resource allocation Efficient delivery Multimedia Distributed state mgt How to write a virus Outline Admin stuff  How the Internet works  Internet history: Clark paper  Internet lessons: Saltzer paper  Future directions and research problems  Start on transport  Typical Class 0-60: basics (Peterson book++)  60-150: discussion of papers  150-180: next week preview  Office hours: ?  Assignments + Slip Days  3 network programming assignments (30%)  transport, routing/congestion, multicast, in Java 5 problem sets (25%)  paper reviews (due Wed noon -- 5%)   evaluation, not a summary! Class discussion (15%)  Paper evaluating some technology (25%)  No exams!  Optional Discussion Section Led by Neil Spring  Help with:   Design for network programming assignments  Problem sets  Understanding papers before class  Defining final project  Time: ? Some Definitions Host -- computer, PDA, toaster, ...  Link -- transmit bits   wire or wireless  broadcast or switched (or both!)  Switch -- move bits between links  packet switching: stateless store&forward  circuit switching: stateful, cut through Internet -- network of networks  network delivers packets (& locates nodes)  router (gateway) moves packets between networks  IP interoperability on top of any potential network or link layer – modem, Ethernet, token ring, cell phone, ADSL, cable modem, smoke signals, …  Minimum possible requirements on underlying networks Protocols  Protocol: agreement between two parties as to how information is to be transmitted  more valuable with more users – economic incentive to develop standards => lots and lots and lots of protocols  Standardize interfaces? protocols vs. standardize Layering  Build complex services on top of simpler ones telecollaboration email HTTP NFS rlogin RPC RSVP TCP UDP IP Ethernet ATM PPP packet radio arpanet modem SONET air OSI Model: 7 Protocol Layers Physical -- how to transmit bits  Data link -- how to transmit frames  Network -- how to route packets  Transport -- how to send packets reliably  Session -- how to tie groups together  Presentation -- byte ordering, security  Application -- everything else!  What happens when you click on a Web link? Your computer www.netscape.com ? Internet Different kinds of addresses  Domain name (e.g. www.netscape.com)  Global,  IP Address (e.g. 207.200.73.8)  Global,  human readable works across all networks Ethernet (e.g. 08-00-2b-18-bc-65)  Local, works on a particular network Finding the right IP address: Domain Naming System (DNS) Local DNS server (128.95.1.4) Your computer (128.95.1.24) What’s the IP address for www.netscape.com? Oh, you can find it at 207.200.73.8 Finding the right Ether address: Address Resolution (ARP) (128.95.1.4) (128.95.1.24) Broadcast: Anyone know the Ethernet address for 128.95.1.4? Ethernet Broadcast: Yeah, I’m at 08-00-2b-18-bc-65 Ethernet How does a packet get through the Internet? Routers send packet to next closest point H H H R R R H R R R R H R H H: Hosts R: Routers How do the routers know where to send data? Forwarding tables at each router  Original Internet: manual update  Automatic update based on “cost”   exchange tables with neighbors  use neighbor with smallest hop count  what if node says zero cost to everywhere? Have address, now send data?  Murphy’s Law applies to networks  Data can be corrupted  Data can get lost  Data might not fit in a single packet  Data can be delivered in the wrong order  etc... What if the data gets corrupted? GET index.html GET sex.html Internet Solution: Add a checksum IP TCP TCP Packet Format Data 0 15 16 source port 31 destination port sequence number acknowledgement number header length reserved UA P R S F RC S S Y I GK H T NN TCP checksum window size urgent pointer options (if any) data (if any) 20 bytes What if the data gets lost? GET index.html Internet Solution: Timeout and retransmit GET index.html wait a bit, retry GET index.html Internet GET index.html What if the data doesn’t fit? On Ethernet, max IP packet is 1.5kbytes  Typical web page is 10kbytes  Solution: Fragment data across packets ml x.ht inde GET GET index.html What if the data is out of order? ml inde x.th GET GET x.thindeml ???  Solution: Add sequence numbers ml 4 inde 2 x.th 3 GET 1 GET index.html What if network is overloaded? Data can arrive at router faster than it can be forwarded!  Short bursts: buffer at router  What if buffer overflows?   Packets dropped and retransmitted  Sender adjusts rate until load = resources  Called “Congestion control”  Broadcast network: bus arbitration What if data has a deadline? Ex: multimedia, teleconferencing  Original Internet: out of luck!  To provide guarantees, need   admission control  resource management at routers Ex: Telephone network has busy signals + explicit schedules at each switch  How do we add this to the Internet?  What if multiple receivers?  Send a separate packet to each?  what  if zillions of receivers? Multicast  routers  form distribution tree What if data is dropped?  Acks would overwhelm sender  Naks? if drop is early in the tree -> overwhelm sender! What if sender is malicious? Every packet has source, destination IP addresses  But! Host can put anything in IP header   packet may have come from anywhere  firewalls to enforce sanity checks – ex: source must be from other side of wall – ex: only allow reply packets  encryption/digital signatures for authentication/privacy Bottom Line No magic!  No revealed wisdom!  Internet History  Goal: effective multiplexed use of existing networks  minimal support from underlying networks – implies no support for multicast, real-time, fast failover, congestion control, etc.  packet switching (fine-grained resource sharing)  routers connecting networks Other Goals Survive hardware failure  Support multiple types of apps  Run on wide variety of networks  Distributed management of resources  Cost-effective  Low cost host attachment  Accounting  Survivability  Internet approach  Cheap, failable components  Stateless routers + self-healing  Keep routing simple (non-adaptive)  End to end recovery  Telephone approach  Ultra reliable switches  Self-healing Types of Service  Best effort  latency sensitive  bandwidth sensitive  Real-time  but can Internet support real-time without help from underlying networks? Multicast  What about congestion control?  Variety of Networks Internet hugely successful because of it can run on anything  Is this still important? Consider IP on ATM:   ATM uses 53 byte cells  Poor fragmentation for IP packets  Requires drop-tail routers Other Goals Distributed management => routing, congestion control, multicast, real-time, mobility  Cost-effective => compared to what?   Routers very cost effective compared to telephone switches  But high drop rates, inefficient routes, etc. More Goals  Attachment cost => $100M/year on protocol stack by major OS vendors  Misbehaving  hosts => still a problem! Accountability  Can a free Internet survive? Lessons from the Internet experience Saltzer paper: end to end principle  Other lessons?  End to end principle Functionality should be implemented at a lower layer iff it can be correctly and completely implemented there  Early example   ARPANet provided reliable link transfers between switches  Packets could still get corrupted on hostswitch link, or inside switches Example: reliable file transfer  From disk on file (web) server over network to client  Disk can introduce bit errors  Host I/O buses can introduce bit errors  Packets can get garbled, dropped, misordered at any node  Solution: Integrity check on file, not per packet or per hop Hop by hop as performance opt Doesn’t violate end to end principle to provide reliability at link layer, if not required for correct operation  Back of the envelope:  N hops (average Internet route = 15 hops)  Prob(corrupted packet per link) = p  Prob(packet lost end to end) – p = 0.0001% => Prob(loss) = 0.0015% – p = 1% => Prob(loss) = 14% Question  End to end principle widely followed within Internet community, but not elsewhere. Why?  Checksum on end to end network transfer  Disk does its own error detection/correction (inter-sector gap)  I/O bus and memory have ECC (or nothing)  Has hardware become reliable enough? Other Examples  Distributed transactions  Exactly once vs. at most once vs. at least once  Security  security only as strong as weakest assumption Suppressing duplicate messages  Misordered messages  Implication of End to End Principle  Internet assumption: minimal support from underlying network  Ensure Internet can run on anything + end to end principle  => almost everything done at end hosts  Telephone network has stupid endpoints   what happens when light switch runs TCP? Examples  What should be done at the end hosts, and what by the network?  Addressing/routing?  Reliable delivery?  Sequenced delivery?  Congestion control/resource allocation?  Real-time guarantees?  Security?  Multicast? Lessons: Intuition doesn’t scale  Something breaks everytime you scale by an order of magnitude  Internet has added – automatic monitoring and repair of failed hardware – deadlock avoidance – end to end reliability – automatic name translation – congestion avoidance – hierarchical routing Other Lessons  Use soft state  robustness  via self-healing Use hierarchy  Ex: routing tables based on IP prefix  Ex: route between organizations  Propagate bad news quickly, good news slowly  What is the Internet’s MTTF/MTTR? Other Lessons  Introduce randomness  Easy to inadvertently synchronize hosts/routers Shared learning  Let receivers decide where possible   Multicast  groups, RSVP Let apps decide where possible  Application-level framing New Directions  Active Networks  Computation in the network – Extensibility – Performance (move computation to data)  What should be active? – Active packets to control routing – Active applications – Active connections – Active edge routers/gateways/firewalls Time to Rethink? 1980's Internet 2000's Internet Low bandwidth * delay Low drop rates, < 1% Few, long-lived flows Every host a good citizen High bandwidth * delay High drop rates, > 5% Many short-lived flows TCP "accelerators" & inelastic traffic Symmetric routes & Assymetric routes & universal reachability private peering Hosts powerful & Hosts = toasters & routers overwhelmed routers intelligent? Limited understanding of ATM and MPP network packet switching design experience End to end principle Future Challenges  Computers embedded in zillions of devices (toasters, coke cans, etc.)  does routing/congestion control scale?  Will they all run TCP?  Internet telephony  data traffic will surpass voice in 2002  can the Internet provide high enough reliability? (e.g., red phone) More Challenges  Widespread use of ADSL and cable modems  today, modems limit Internet use  what if lots of TCP cheats?  Can we build a reliable, secure Internet?  99% uptime -> 99.999% uptime  spoofing, denial of service, ... Transport: Reliable, Efficient Message Delivery Simple network model  Network measurement  Stop and wait  Sliding window  Simple network model Network is a pipe connection two computers Packets Basic Metrics  Bandwidth, delay, overhead, error rate and message size Network metrics  Bandwidth   Delay or Latency   takes O secs for CPU to put message on wire Error rate   Takes D seconds for bit to progagate down wire Overhead   Data transmitted at a rate of R bits/sec Probability P that messsage will not arrive intact Message size  Size M of data being transmitted How long to send a message?  Transmit time T = M/R + D  10Mbps Ethernet LAN (M=1KB) – M/R=1ms, D ~=5us  155Mbps cross country ATM (M=1KB) – M/R = 50us, D ~= 40-100ms  R*D is “storage” of pipe How to measure bandwidth? Measure how slow link increases gap between packets Slow bottleneck link How to measure delay? Measure round-trip time start stop How to measure error rate? Measure number of packets acknowledged Packet dropped Slow bottleneck link Reliable transmission How to send a packet reliably when it can be lost?  Two mechanisms   Acknowledgements  Timeouts  Simplest reliable protocol: Stop and Wait Stop and Wait Send a packet, stop and wait until acknowledgement arrives Time Timeout Sender Receiver ACK lost Timeout Timeout Timeout Timeout Timeout Time Timeout Recovering from error Packet lost Early timeout Problems with Stop and Wait  How to recognize a duplicate transmission?  Put  sequence number in packet Performance  Unless R*D is very small, the sender can’t fill the pipe  Solution: sliding window protocols
 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                            