240 likes | 585 Views
School of Computing Science Simon Fraser University CMPT 771/471: Internet Architecture & Protocols Introduction Instructor: Dr. Mohamed Hefeeda. Course Objectives . Understand principles of designing and operating computer networks structure and protocols of the Internet
E N D
School of Computing Science Simon Fraser University CMPT 771/471: Internet Architecture & Protocols Introduction Instructor: Dr. Mohamed Hefeeda
Course Objectives • Understand • principles of designing and operating computer networks • structure and protocols of the Internet • services that can/cannot be offered by the Internet • Know how to • analytically analyze performance of a system/protocol • implement network protocols and applications • And, more importantly, … • Have fun!
Course Info • Most of the course will be lectures given by the instructor • Last 2-3 weeks, each student presents a paper on one of the current hot topics • Course web page http://nsl.cs.sfu.ca/teaching/08/771/ Or access it from my web page: http://www.cs.sfu.ca/~mhefeeda
Course Info: Textbooks and References • Kurose and Rose, Computer Networking: A top-down Approach Featuring the Internet, 2005 • Background materials • Chapters 6 and 7: Wireless and Multimedia Networking • Hassan and Jain, High Performance TCP/IP Networking, 2004 • Several chapters on analyzing TCP/IP in different environments • Stallings, High-speed Networks and Internets: Performance and Quality of Service, 2002 • Three chapters on (basics of) probability and queuing • Papers: will be posted on the course web page
Course Info: Grading • Homework: 20% • 3 – 4 problem sets • Projects: 35% • Several projects; some in group of two students • Class participation:10% • Ask and answer questions • Present one chapter/paper • Final exam: 35% • Comprehensive
Course Info: Topics • Internet Architecture and Services • TCP/IP Protocol Suit • Inter- and Intra-domain Routing Protocols • Introduction to Performance Modeling and Evaluation • TCP/IP Performance Modeling in Different Environments • Quality of Service Support in the Internet • Wireless Networks • Multimedia Networking • Overlays and Peer-to-Peer Computing
Review of Basic Networking Concepts • Internet structure • Protocol layering and encapsulation • Internet services and socket programming • Network Layer • Network types: Circuit switching, Packet switching • Addressing, Forwarding, Routing • Transport layer • Reliability and congestion control • TCP, UDP • Link Layer • Multiple Access Protocols • Ethernet
Millions of hosts (end systems) Inter-connected, running network apps Diverse communication links fiber, copper, radio, satellite Routers forward packets Internet:“network of networks” loosely hierarchical Public, versus private intranet router workstation server mobile local ISP regional ISP company network The Internet
roughly hierarchical at center: “tier-1” ISPs (e.g., MCI, Sprint, AT&T, Cable and Wireless), national/international coverage treat each other as equals NAP Tier-1 providers also interconnect at public network access points (NAPs) Tier-1 providers interconnect (peer) privately Internet structure: network of networks Tier 1 ISP Tier 1 ISP Tier 1 ISP
Seattle POP: point-of-presence DS3 (45 Mbps) OC3 (155 Mbps) OC12 (622 Mbps) OC48 (2.4 Gbps) Tacoma to/from backbone peering New York … …. Stockton Cheyenne Chicago Pennsauken Relay Wash. DC San Jose Roachdale Kansas City … … … Anaheim to/from customers Atlanta Fort Worth Orlando Tier-1 ISP: e.g., Sprint Sprint US backbone network
“Tier-2” ISPs: smaller (often regional) ISPs Connect to one or more tier-1 ISPs, possibly other tier-2 ISPs NAP Tier-2 ISPs also peer privately with each other, interconnect at NAP Tier-2 ISP pays tier-1 ISP for connectivity to rest of Internet Tier-2 ISP is customer of tier-1 provider Tier-2 ISP Tier-2 ISP Tier-2 ISP Tier-2 ISP Tier-2 ISP Internet structure: Tier-2 ISPs Tier 1 ISP Tier 1 ISP Tier 1 ISP
“Tier-3” ISPs and local ISPs last hop (“access”) network (closest to end systems) Tier 3 ISP local ISP local ISP local ISP local ISP local ISP local ISP local ISP local ISP NAP Local and tier- 3 ISPs are customers of higher tier ISPs connecting them to rest of Internet Tier-2 ISP Tier-2 ISP Tier-2 ISP Tier-2 ISP Tier-2 ISP Internet structure: Tier-3 ISPs Tier 1 ISP Tier 1 ISP Tier 1 ISP
a packet passes through many networks! Tier 3 ISP local ISP local ISP local ISP local ISP local ISP local ISP local ISP local ISP NAP Tier-2 ISP Tier-2 ISP Tier-2 ISP Tier-2 ISP Tier-2 ISP Internet structure: packet journey Tier 1 ISP Tier 1 ISP Tier 1 ISP
Review of Basic Networking Concepts • Internet structure • Protocol layering and encapsulation • Internet services and socket programming • Network Layer • Network types: Circuit switching, Packet switching • Addressing, Forwarding, Routing • Transport layer • Reliability and congestion control • TCP, UDP • Link Layer • Multiple Access Protocols • Ethernet
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? Protocol Layers
ticket ticket (purchase) baggage (check) gates (load) runway (takeoff) airplane routing ticket (complain) baggage (claim gates (unload) runway (land) airplane routing baggage gate airplane routing airplane routing takeoff/landing airplane routing departure airport intermediate air-traffic control centers arrival airport Layering of Airline Functionality Layers: each layer implements a service • via its own internal-layer actions • relying on services provided by layer below
Why layering? Dealing with complex systems: • explicit structure allows identifying complex relationships among system’s pieces • 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 • What is the downside of layering?
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 Internet protocol stack
source network link physical message application transport network link physical segment link physical M M Ht Ht M M switch Hn Hn Hn Hn Ht Ht Ht Ht M M M M Hl Hl Hl Hl Hl Hl Hn Hn Hn Hn Hn Hn Ht Ht Ht Ht Ht Ht M M M M M M destination application transport network link physical router Encapsulation datagram frame
Review of Basic Networking Concepts • Internet structure • Protocol layering and encapsulation • Internet services and socket programming • Network Layer • Network types: Circuit switching, Packet switching • Addressing, Forwarding, Routing • Transport layer • Reliability and congestion control • TCP, UDP • Link Layer • Multiple Access Protocols • Ethernet
Internet Services • View the Internet as a communication infrastructure that provides services to apps • Web, email, games, e-commerce, file sharing, … • Two communication services • Connectionless unreliable • Connection-oriented reliable
Connection-oriented Prepare for data transfer ahead of time establish connection setupstate in the two communicating hosts Usually comes with reliability, flow and congestion control TCP: Transmission Control Protocol Connectionless No connection set up, simply send Faster, less overhead No reliability, flow control, or congestion control UDP: User Datagram Protocol Internet Services How can we access these services?
host or server host or server process process socket socket TCP with buffers, variables TCP with buffers, variables Network (Socket) Programming • 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 controlled by app developer Internet controlled by OS • Socket is the interface (API) between application and transport layer