* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download 3rd Edition: Chapter 2 - Northwestern Networks Group
Survey
Document related concepts
Asynchronous Transfer Mode wikipedia , lookup
Net neutrality law wikipedia , lookup
Remote Desktop Services wikipedia , lookup
Wake-on-LAN wikipedia , lookup
Distributed firewall wikipedia , lookup
Piggybacking (Internet access) wikipedia , lookup
Computer network wikipedia , lookup
Deep packet inspection wikipedia , lookup
Zero-configuration networking wikipedia , lookup
List of wireless community networks by region wikipedia , lookup
Cracking of wireless networks wikipedia , lookup
Network tap wikipedia , lookup
Internet protocol suite wikipedia , lookup
Airborne Networking wikipedia , lookup
Recursive InterNetwork Architecture (RINA) wikipedia , lookup
Transcript
“Real” Internet delays and routes What do “real” Internet delay & loss look like? Traceroute program: provides delay measurement from source to router along end-end Internet path towards destination. For all i: sends three packets that will reach router i on path towards destination router i will return packets to sender sender times interval between transmission and reply. 3 probes 3 probes 3 probes “Real” Internet delays and routes traceroute: zappa.cs.nwu.edu to www.zju.edu.cn Three delay measements from Zappa.cs.cs.nwu.edu to 1890mpl-idf-vln-122.northwestern.edu 1 1890mpl-idf-vln-122.northwestern.edu (129.105.100.1) 0.287 ms 0.211 ms 0.193 ms 2 lev-mdf-6-vln-54.northwestern.edu (129.105.253.53) 0.431 ms 0.315 ms 0.321 ms 3 abbt-mdf-1-vln-902.northwestern.edu (129.105.253.222) 0.991 ms 0.950 ms 1.151 ms 4 abbt-mdf-4-ge-0-1-0.northwestern.edu (129.105.253.22) 1.659 ms 1.255 ms 1.520 ms 5 starlight-lsd6509.northwestern.edu (199.249.169.6) 1.713 ms 1.368 ms 1.278 ms 6 206.220.240.154 (206.220.240.154) 1.284 ms 1.204 ms 1.279 ms 7 206.220.240.105 (206.220.240.105) 2.892 ms 2.003 ms 2.808 ms 8 202.112.61.5 (202.112.61.5) 116.475 ms 196.663 ms 241.792 ms 9 sl-gw25-stk-1-2.sprintlink.net (144.223.71.221) 145.502 ms 150.033 ms 151.715 ms 10 sl-bb21-stk-8-1.sprintlink.net (144.232.4.225) 166.762 ms 177.180 ms 166.235 ms 11 sl-bb21-hk-2-0.sprintlink.net (144.232.20.28) 331.858 ms 340.613 ms 346.332 ms 12 sl-gw10-hk-14-0.sprintlink.net (203.222.38.38) 346.842 ms 356.915 ms 366.916 ms 13 sla-cent-3-0.sprintlink.net (203.222.39.158) 482.426 ms 495.908 ms 509.712 ms 14 202.112.61.193 (202.112.61.193) 515.548 ms 501.186 ms 509.868 ms 15 202.112.36.226 (202.112.36.226) 537.994 ms 561.658 ms 541.695 ms 16 shnj4.cernet.net (202.112.46.78) 451.750 ms 263.390 ms 342.306 ms 17 hzsh3.cernet.net (202.112.46.134) 349.855 ms 366.082 ms 380.849 ms 18 zjufw.zju.edu.cn (210.32.156.130) 350.693 ms 394.553 ms 366.636 ms 19 * * * 20 *** 21 www.zju.edu.cn (210.32.0.9) 353.623 ms 397.532 ms 396.326 ms trans-oceanic link * means no reponse (probe lost, router not replying) Packet loss queue (aka buffer) preceding link in buffer has finite capacity packet arriving to full queue dropped (aka lost) lost packet may be retransmitted by previous node, by source end system, or not at all buffer (waiting area) packet being transmitted A B packet arriving to full buffer is lost Throughput throughput: rate (bits/time unit) at which bits transferred between sender/receiver instantaneous: rate at given point in time average: rate over longer period of time link capacity that can carry server, with server sends bits pipe Rs bits/sec fluid at rate file of F bits (fluid) into pipe Rs bits/sec) to send to client link that capacity pipe can carry Rfluid c bits/sec at rate Rc bits/sec) Throughput (more) Rs < Rc What is average end-end throughput? Rs bits/sec Rc bits/sec Rs > Rc What is average end-end throughput? Rs bits/sec Rc bits/sec bottleneck link link on end-end path that constrains end-end throughput Throughput: Internet scenario per-connection end-end throughput: min(Rc,Rs,R/10) in practice: Rc or Rs is often bottleneck Rs Rs Rs R Rc Rc Rc 10 connections (fairly) share backbone bottleneck link R bits/sec Protocol “Layers” Networks are complex! many “pieces”: hosts routers links of various media applications protocols hardware, software Question: Is there any hope of organizing structure of network? Or at least our discussion of networks? Why layering? Dealing with complex systems: Explicit structure allows identification, relationship of complex system’s pieces layered reference model for discussion Modularization eases maintenance, updating of system change of implementation of layer’s service transparent to rest of system e.g., change in gate procedure doesn’t affect rest of system Layering considered harmful? Internet protocol stack application: supporting network applications FTP, SMTP, HTTP transport: host-host data transfer TCP, UDP network: routing of datagrams from source to destination IP, routing protocols link: data transfer between neighboring network elements PPP, Ethernet physical: bits “on the wire” application transport network link physical Layering: logical communication Each layer: distributed “entities” implement layer functions at each node entities perform actions, exchange messages with peers application transport network link physical application transport network link physical network link physical application transport network link physical application transport network link physical Layering: logical communication E.g.: transport take data from app add addressing, reliability check info to form “datagram” send datagram to peer wait for peer to ack receipt analogy: post office data application transport transport network link physical application transport network link physical ack data network link physical application transport network link physical data application transport transport network link physical Layering: physical communication data application transport network link physical application transport network link physical network link physical application transport network link physical data application transport network link physical Protocol layering and data Each layer takes data from above adds header information to create new data unit passes new data unit to layer below M Ht M Hn Ht M Hl Hn Ht M source destination application transport network link physical application transport network link physical M message Ht M Hn Ht M Hl Hn Ht M segment datagram frame Summary Network access and physical media Internet structure and ISPs Delay & loss in packet-switched networks Protocol layers, service models More depth, detail to follow! Application Layer Our goals: conceptual, implementation aspects of network application protocols transport-layer service models client-server paradigm peer-to-peer paradigm learn about protocols by examining popular application-level protocols HTTP FTP SMTP / POP3 / IMAP DNS programming network applications socket API Some network apps e-mail voice over IP web real-time video instant messaging remote login P2P file sharing multi-user network games streaming stored video (YouTube) conferencing cloud computing … … Creating a network app write programs that run on (different) end systems communicate over network e.g., web server software communicates with browser software No need to write software for network-core devices network-core devices do not run user applications applications on end systems allows for rapid app development, propagation application transport network data link physical application transport network data link physical application transport network data link physical Outline Principles of network applications App architectures App requirements Web and HTTP FTP 18 Application architectures Client-server Peer-to-peer (P2P) Hybrid of client-server and P2P 19 Client-server architecture server: always-on host permanent IP address server farms for scaling clients: client/server communicate with server may be intermittently connected may have dynamic IP addresses do not communicate directly with each other Pure P2P architecture no always-on server arbitrary end systems directly communicate peer-peer peers are intermittently connected and change IP addresses highly scalable but difficult to manage 21 Hybrid of client-server and P2P Skype voice-over-IP P2P application centralized server: finding address of remote party: client-client connection: direct (not through server) Instant messaging chatting between two users is P2P centralized service: client presence detection/location • user registers its IP address with central server when it comes online • user contacts central server to find IP addresses of buddies 22 Outline Principles of network applications App architectures App requirements Web and HTTP FTP 23 Processes communicating Process: program running within a host. within same host, two processes communicate using inter-process communication (defined by OS). processes in different hosts communicate by exchanging messages Client process: process that initiates communication Server process: process that waits to be contacted Note: applications with P2P architectures have client processes & server processes 24 Sockets process sends/receives messages to/from its socket socket analogous to door sending process shoves message out door sending process relies on transport infrastructure on other side of door which brings message to socket at receiving process host or server host or server process controlled by app developer process socket socket TCP with buffers, variables Internet TCP with buffers, variables controlled by OS API: (1) choice of transport protocol; (2) ability to fix a few parameters (lots more on this later) 25