160 likes | 260 Views
Introduction. UIUC CS438: Communication Networks Summer 2014 Fred Douglas Slides: Fred, Kurose&Ross. Today’s Key Conecpts. Layering The end-to-end principle. Modularity based on abstraction is the way things get done -Barbara Liskov , popularized for networking by Scott Shenker.
E N D
Introduction UIUC CS438: Communication Networks Summer 2014 Fred Douglas Slides: Fred, Kurose&Ross
Today’s Key Conecpts • Layering • The end-to-end principle
Modularity based on abstraction is the way things get done-Barbara Liskov, popularized for networking by Scott Shenker
A Nightmare Scenario • Goal: send “Hello” to cs.illinois.edu, receive “world!” • Look up IP address of cs.illinois.edu in hard coded /etc/hosts file, fail if not there • Find a path to cs.illinois.edu in your 100GB+, updated-every-second map of the whole internet • Encode the ASCII characters as electrical signals • Somehow handle data corruption between you and cs.illinois.edu • Somehow, you and a billion other conversations should avoid causing interference
Network Programming Reality* serv = connect(“cs.illinois.edu”); send(serv, “Hello“); printf(receive(serv)); //prints “world!” *The actual C sockets library is slightly uglier, sorry
Layers Provides Assumes Any service the programmer wants to provide - Logical channel -Reliable? -Uncongested? Application -Best-effort delivery of packets to any address in the world -Channel to a partner -Multiplexing -Reliability (TCP) -Congestion control (TCP) Transport (UDP) TCP MAGIC -Best-effort delivery of packets to local addresses -Best-effort delivery of packets to any address in the world Routing Network IP(v4, v6) -Ability to send bits to direct physical neighbors -Best-effort delivery to local addresses (-Medium Access Control: don’t talk over each other) Link Spanning tree, ARP, learning switches Ethernet, 802.11 Sending bits to direct physical neighbors Physical
What’s the Internet: “nuts and bolts” view millions of connected computing devices: hosts = end systems running network apps PC server wireless laptop smartphone wireless links wired links router mobile network global ISP home network • communication links • fiber, copper, radio, satellite • transmission rate: bandwidth regional ISP • Packet switches: forward packets (chunks of data) • routers and switches institutional network
Fun internet appliances (Internet of Things) Web-enabled toaster + weather forecaster IP picture frame http://www.ceiva.com/ Tweet-a-watt: monitor energy use Slingbox: watch, control cable TV remotely Internet refrigerator Internet phones
Layering Postscript • OSI model: • Application • Presentation • Hide complexities of data from the application, e.g., apply cryptography without involving the application • Session • Maintain conceptual “sessions”, because maybe end of connection != end of session • Transport • Network • Link • Physical • Why are these layers a historical footnote? • The end-to-end principle
End-to-end Principle • A sensible philosophy for system design • Do most things at the “end” • Let the “middle” do simple tasks well • Two motivations • If you want a job done right, do it yourself • Other components might not care • Other components might not be able to
If you want a job done right… • Spinach is grown, picked, packed, transported, and eaten. Who should ensure it’s clean? • Recyclable waste is generated, picked up, and transported to a processing facility. Who should separate out metal/glass/etc? • A political candidate instructs their staff to publicize a positive statistic from their time in a previous office. The staff does a press release, news organizations report it, and voters hear about it. Who should verify its truth? • File transfer: a lot of things can go wrong; the application itself should check the data.
End-to-end Principle • A sensible philosophy for system design • Do most things at the “end” • Let the “middle” do simple tasks well • Two motivations • If you want a job done right, do it yourself • Other components might not care • Other components might not be able to • If I don’t want a job done at all, don’t do it for me • Unnecessary overhead • Might interfere with my operation
Don’t do things for me • Skype doesn’t need reliability, and does NOT want reliability’s overhead
Course Roadmap • (week 1) Application • HTTP, DNS, email, FTP, client-server vs. peer-to-peer • (week 2-3) Transport (HTTP MP1 due end of week 2) • Multiplexing (“the 5-tuple”), reliable transport, congestion control • (week 4-7) Network & The Internet (TCP MP2 due end of week 6) • Routing protocols, routing implementations & hardware, IP address hierarchy, ISP/Autonomous System-level routing, AS economics • (week 8) Link • Learning switches, spanning tree, DHCP, ARP • (week 9)Physical (Routing MP3 due end of week 9) • MAC, error detection/correction, digital-analog encoding, basic properties of copper/fiber optics/wireless • (week 10) Misc. topics, review, wiggle room • Security, software defined networking, data centers, exotic alternative internet architectures
Logistics • On the website: • Link to Beej’s guide • Look through it tonight: we’ll discuss tomorrow • How to use svn • Standard MP Notes • How to use the autograder • Minor penalties for various details • Academic Honesty • Grading breakdown • Link to Piazza • Written homework (none yet) • MP1: due June 12th • 4th Hour Projects
4th Hour Projects • Groups ok, in proportion to amount of work • Interesting coding project, beyond MP • Network simulation (Mininet, ns-3) • Network deployment (Quagga) • Literature survey • Research • Internet economics, simulation • VPNs + anti-censorship, implementation • Please give me your proposed project by June 9th • Checkpoint in early July