EECS 122 Communications Networks Department of Electrical Engineering and Computer Sciences Table of Contents 1. Course Organization 2. Introduction 3. Applications/Design 4. Architecture 1 5. Models 6. Physical Layer 7. Ethernet 8. 802.11 9. IP: Network Layer 10. Switching and Forwarding 11. TCP/UDP: Transport Layer 12. Flow and Congestion Control 13. WWW/DNS; RTP; etc. 14. Socket Programming 15. Distributed Algorithms 16. Network Security 17. Overlay Networks and Peer-to-Peer Networks 18. Sensor Networks 19. Architecture 2 Communication Networks These slides are for a one-semester course intended for juniors and seniors in Electrical Engineering or Computer Science. The course describes the design and operating principles of the Internet and associated technologies. The following people contributed to this material over many years: Jörn Altmann, Kevin Fall, Kevin Lai, Abhay Parekh, Shyam Parekh, Ion Stoica, Jean Walrand. We thank Nick McKeown (Stanford) for some of the slides. We hope that you will find this material useful for teaching or learning. Please acknowledge the source when you use these slides. Comments welcome at wlr@eecs.berkeley.edu.
Course Logistics SP2004 Instructors: Dr. Shyam Parekh: OH M 3-4, F 3-4, 463 Cory; shyam@eecs Prof. Jean Walrand: OH Tu 11-12, W 2-3, 257M Cory; wlr@eecs TAs: Rajarshi Gupta (guptar@eecs): OH Tu 2-3 (493 Cory) Rishi Kant (rik@berkeley): OH Th 12-1 (493 Cory) John Musacchio (musacchj@eecs): OH Th 1-2 (493 Cory) Course Manager: Dr. Shyam Parekh; shyam@eecs Class Homepage: http://inst.eecs.berkeley.edu/~ee122 Discussion Sections: Tu 1-2, 170 Barrows (Rajarshi Gupta) W 10-11, 122 Wheeler Cancelled, Please switch W 4-5, 106 Moffit (Rishi Kant) Th 11-12, 299 Cory (John Musacchio) Room likely to change Grading Final Exam (25%), Mid-term (15%) Homework Assignments (25%) 5 Assignments Projects (35%) Socket Programming (1 Project Weighted 2x) OPNET Exercises (5 Assignments) TOC - Logistics TOC - Logistics - grading Projects Network Programming Application of socket programming Client/Server; Get and manage files; handle errors OPNET Study protocols through simulation experiments OPNET environment provided; Minimize learning curve Books Required Textbook: L. Peterson & B. Davie, Computer Networks: A Systems Approach, 3 rd Ed. Other Useful Networking Texts: A. Tanenbaum, Computer Networks R. Stevens, TCP/IP Illustrated (vol 1) S. Keshav, An Engineering Approach to Computer Networking Kurose and Ross, Computer Networking Walrand, Communication Networks, 2 nd Ed TOC - Logistics - Projects TOC - Logistics - Books Programming This course will involve programming. Network programming project will be implemented in C on either Windows or UNIX Your work can be done on your named account. If you lack one, you may log in as newacct on one of the clients listed below: http://www-inst.eecs.berkeley.edu/clients Books on Programming S. Maguire, Writing Solid Code S. Lippman, C++ Primer R. Stevens, UNIX Network Programming, Volume 1, 2nd ed. TOC - Logistics - Programming TOC - Logistics Books on Programming
Introduction Network Examples Network Components Ethernet Interconnected LANs Internetwork Types of Networks Internet Packets Transport Network Examples UCB Backbone: Teleglobe Global Crossing Williams Regional: Palo Alto Types of Networks Internet Packets Transport TOC - Introduction TOC - Introduction Network Examples UCB Backbone"#$! TOC - Introduction Network Examples - UCB TOC - Introduction Network Examples Backbone/Teleglobe Backbone $% &# ' %& Backbone (&&%)))&%& TOC - Introduction Network Examples Backbone/Global Crossing TOC - Introduction Network Examples Backbone/Williams
Regional!%* + Network Components Links: carry bits from one place to another (or maybe to many other places) Interface: attaches device to link Switch/router: interconnect links Host: communication endpoint (workstation, PDA, cell phone, toaster, tank) connected to links TOC - Introduction Network Examples Regional/Palo Alto TOC - Introduction Network Components Links Ethernet Network Interface Card &$ %,-& "*&!%& %.&%%$ (& TOC - Introduction Network Components - Links TOC - Introduction Network Components - NIC Telephone Switch Router Ethernet - &%% %* +/0 1 -& 2*&-%3 4$ 1 )&*2 5& TOC - Introduction Network Components Switch & Router TOC - Introduction Ethernet
Architecture *&-%3 4$2 System View Ethernet is a broadcast-capable, multi-access LAN Provides a Link service between nodes Abstract view: TOC - Introduction Ethernet - Architecture TOC - Introduction Ethernet System View Interconnected LANs & $ Internetwork Provides message delivery between multiple networks that may belong to different organizations: $!! $ 6.%)'2 $7* +88' 5&&!7' &9!7 $7* + TOC - Introduction Interconnected LANs TOC - Introduction Internetwork Types of Network Classification 1 Classification 1: Size, Information, Application Classification 2: Use, Protocols, Technologies Switching Broadcast vs. Switched Characteristics How to switch Taxonomy Geographical distance Local Area Networks (LAN): Ethernet, Token ring, FDDI Metropolitan Area Networks (MAN): DQDB, SMDS Wide Area Networks (WAN): X.25, ATM, frame relay Caveat: LAN, MAN, WAN may mean different things: Service, network technology, networks Information type Data networks vs. telecommunication networks Application type Special purpose networks: airline reservation network, banking network, credit card network, telephony, CATV General purpose network: Internet TOC - Introduction Types of Nework TOC - Introduction Types of Nework Classification 1
Classification 2 Right to use Private: enterprise networks Public: telephony network, Internet Protocols: Proprietary: SNA, AppleTalk Open: IP Technologies Terrestrial vs. satellite Wired vs. wireless Broadcast vs. Switched Broadcast Network: *&-* +2 TOC - Introduction Types of Nework Classification 2 TOC - Introduction Types of Nework Switching Broadcast vs. Switched Characteristics Broadcast One to all Examples: some LANs (Hub-Ethernet, 802.11) Problem: coordinate the access of all nodes to the shared communication medium (Multiple Access Problem) Switched One to subset Examples: WANs (Telephony Network, Internet) Problem: how to forward information to intended node(s) This is done by special nodes (e.g., routers, switches) running routing protocols How to Switch? Circuit-Switched: 1. Set up circuit between two devices 2. Exchange information 3. Release circuit Packet-Switched: Send packets with source and destination addresses Virtual-Circuit Switched: 1. Select path from source to destination (Virtual Circuit) 2. Assign a label to that path 3. Send packets with that label 4. Release Virtual Circuit {Note: Some VCs are permanent.} TOC - Introduction Types of Nework Switching Characteristics TOC - Introduction Types of Nework Switching How to Switch? Taxonomy Based on the way in which the nodes exchange information: The Internet Overview Scale "'-! *:;- " %)% 4$;- " TOC - Introduction Types of Nework Switching Taxonomy TOC - Introduction The Internet
Overview A global network of networks all using a common protocol (IP, the Internet Protocol) Focus of this class A challenge to understand: large scale (10 s of millions of users, 10 s of thousands of networks) heterogeneity, irregular topology, decentralized management Scale 1%%8 )***:*:) TOC - Introduction The Internet - Overview TOC - Introduction The Internet - Scale Packets Illustration Illustration Main Ideas <<::: ' TOC - Introduction Packets TOC - Introduction Packets - Illustration Main Ideas The switches have no memory of packets: scalability The network is independent of the applications: flexibility The packet formats and addresses are independent of the technology: extensibility Transport +*#) &+-% &# TOC - Introduction Packets Main Ideas TOC - Introduction Transport
Acknowledgments "-&%&$%+% %+*#)8 5 '%+&#: "- - ; %)&%+*#'%+ ; =- %8& %)&&: Link Sharing -% &+ "- $%-& %)&&*- -# %+*#): "--) #%- -% ))&+ TOC - Introduction Transport - Acknowledgments TOC - Introduction Transport Link Sharing