CS 3214 Computer Systems Networking
Some of these slides are substantially derived from slides provided by Jim Kurose & Keith Ross. Copyright on this material is held by Kurose & Ross. Used with permission. The textbook is Computer Networking: A Top Down Approach Featuring the Internet Jim Kurose, Keith Ross, Addison-Wesley, July 2004 Part 1 Networking
The Internet: “nuts and bolts” view local ISP company network regional ISP router workstation server mobile millions of connected computing devices: hosts = end systems running network apps communication links fiber, copper, radio, satellite transmission rate = bandwidth routers: forward packets
The Internet: “nuts and bolts” view protocols control sending, receiving of msgs e.g., TCP, IP, HTTP, FTP, PPP Internet: “network of networks” loosely hierarchical public Internet versus private intranets Internet vs internet Internet standards RFC: Request for comments IETF: Internet Engineering Task Force router workstation server mobile local ISP regional ISP company network
Network Virginia (as of 2009) Source: Sean Gillespie
“Real” Internet delays and routes traceroute: from host in Silicon Valley (keeda.stanford.edu) to host in Frankfurt, Germany (www.titanic-magazin.de) > traceroute www.titanic-magazin.de traceroute to www.titanic-magazin.de (62.75.228.90), 30 hops max, 38 byte packets 1 Gates-rtr.Stanford.EDU (171.64.72.1) 0.523 ms 0.339 ms 0.304 ms 2 bbr2-rtr.Stanford.EDU (171.64.1.161) 0.401 ms 0.346 ms 0.334 ms 3 border2-rtr.Stanford.EDU (171.64.1.148) 4.288 ms 1.070 ms 1.458 ms 4 g1.ba21.b003123-1.sfo01.atlas.cogentco.com (66.250.7.137) 5.231 ms 7.975 ms 9.097 ms 5 g1-1.core02.sfo01.atlas.cogentco.com (66.28.6.13) 11.364 ms 16.192 ms 16.961 ms 6 p14-0.core01.dca01.atlas.cogentco.com (66.28.4.210) 85.497 ms 84.084 ms 80.291 ms 7 p2-0.core01.iad01.atlas.cogentco.com (154.54.2.202) 89.268 ms 88.548 ms 90.046 ms 8 lambdanet.iad01.atlas.cogentco.com (154.54.11.162) 156.812 ms 200.935 ms 157.819 ms 9 LON-2-pos210.uk.lambdanet.net (81.209.156.29) 159.647 ms 159.709 ms 166.504 ms 10 DUS-2-pos700-0.de.lambdanet.net (82.197.136.18) 176.365 ms 163.668 ms 165.177 ms 11 DUS1-5029.de.lambdanet.net (217.71.104.30) 171.229 ms 173.782 ms 171.486 ms 12 titanic.luka.de (62.75.228.90) 172.654 ms 183.307 ms 173.239 ms
The Internet: a service view communication infrastructure enables distributed applications: Web, email, games, e-commerce, file sharing communication services provided to apps: Connectionless unreliable Connection-oriented reliable
A closer look at network structure: network edge: applications and hosts network core: routers network of networks access networks, physical media: communication links
The network edge: end systems (hosts): client/server model run application programs e.g. Web, email at “edge of network” client/server model client host requests, receives service from always-on server e.g. Web browser/server; email client/server peer-peer model: minimal (or no) use of dedicated servers e.g. Gnutella, KaZaA
Connection-oriented service Goal: data transfer between end systems handshaking: setup (prepare for) data transfer ahead of time Hello, hello back human protocol set up “state” in two communicating hosts TCP - Transmission Control Protocol Internet’s connection-oriented service TCP service [RFC 793] reliable, in-order byte-stream data transfer loss: acknowledgements and retransmissions flow control: sender won’t overwhelm receiver congestion control: senders “slow down sending rate” when network congested
Connectionless service Goal: data transfer between end systems same as before! UDP - User Datagram Protocol [RFC 768]: connectionless unreliable data transfer no flow control no congestion control TCP-friendliness App’s using TCP: HTTP (Web), ssh (remote login), SMTP (email), Bittorrent (file-sharing), XMPP (instant messenging) App’s using UDP: streaming media, teleconferencing, DNS, Internet telephony
The Network Core the fundamental question: how is data transferred through net? circuit switching: dedicated circuit per call: telephone net packet-switching: data sent thru net in discrete “chunks” How are the network’s resources shared?
What’s a protocol? a human protocol and a computer network protocol: Hi TCP connection req Hi TCP connection response Got the time? Get http://www.awl.com/kurose-ross 2:00 <file> time
Services vs Protocols (horizontal component) Layer k may interact with peer layer k only via protocols
Encapsulation source destination application transport network link message segment datagram frame source application transport network link physical Ht Hn Hl M destination router switch Encapsulation
TCP/IP Reference Model
TCP/IP Reference Model See: http://www.isc.org/store/logoware-clothing/isc-9-layer-osi-model-cotton-t-shirt
TCP/IP Hourglass View UDP Ethernet IP Wireless ATM TCP NFS DNS FTP HTTP Application Transport Internet Host-To-Network
Typical Implementation User App Socket Network Device IP Layer TCP Layer user Kernel: “top-half” Kernel: “sw interrupt” Kernel: “hw interrupt” may cross multiple boundaries!