networks
DESCRIPTION
TRANSCRIPT
Computer Networks
CSC335/CS3350Instructor: Bruhadeshwar
International Institute of Information Technology, Hyderabad
Spring 2010/11
What You Can Expect Insight: key concepts in networking
Protocols Layering Resource allocation Security Naming
Knowledge: how the Internet works Internet architecture IP protocol suite Applications (Web, e-mail, P2P, …)
Skill: network programming Socket programming Designing and implementing protocols
Text Book and References
“Computer Networking” : A Top-Down Approach Featuring the Internet James F. Kurose and Keith W. Ross, Pearson/Addison-
Wesley, Latest edition References
TCP/IP Illustrated: Vol 1 Protocols, Stevens, Addison-Wesley
Computer Networks: A Systems Approach, Larry Peterson and Bruce Davie, Elsevier
Network Algorithmics, George Varghese, Elsevier
4
The Internet: an hourglass with layers: Top Down Approach
Course Outline
Start with Applications WWW, HTTP, FTP etc
Understand the Transport Protocols TCP, UDP etc
Examine the “Best-effort” network Core IP, BGP, DNS, OSPF etc
Look at “Link” technology & access control Ethernet, PPP, CSMA, ALOHA
Study the case of wireless communication Worry a bit about attacks on networks
Big Picture View of Internet
Start at the topProtocols: how to structure communicationSockets: how applications view the Internet
Then study the “narrow waist” of IPIP best-effort packet-delivery serviceIP addressing and packet forwarding
And how to build on top of the narrow waistTransport protocols (TCP, UDP)Domain Name System (DNS)
Applications (Web, email, file transfer)Looking underneath IP
Link technologies (Ethernet, bridges, switches)
Algorithmic View How to get the traffic from here to there Routing (intra-domain, inter-domain)Glue (ARP, DHCP, ICMP) … in a way that’s both efficient and stable
How much data to send without clogging the sender (flow control) or the network (congestion control)With some assurance (quality of service) … or not
How to control network traffic … Enforcing policy
Defending against attacks … and scale it to potentially huge structures
Peer-to-peer & overlays
Workload
Four Written Homeworks Two programming projects (in groups of
two) Two Mid-sems + 1 Final Exam One tutorial -2 hours per week
Attendance is mandatory with a buffer of 1 “miss”
Grading will be relative and “progressive” with smattering of fairness
How do We Support You?
6-8 TA office hours per week Venue: CSTAR conference room, time will be
announced 2 Instructor office hours per week
Time: 3.30-4.30pm Monday and Thursday Venue: B3, 309, CSTAR
All other meetings through appointment. Email [email protected]
Course Website will have lectures, resources http://cstar.iiit.ac.in/cn
Course Policies Academic dishonesty policy
First copy will get 0 for both “copier” and “copyee”, second one is bye-bye to grade
You can discuss but not copy from each other Strict punctuality requirement
Will not be allowed to enter the class room Strictly no usage of mobiles during class-time If found doing other course homework, you
will lose attendance New : If found sleeping in class you will
forfeit attendance and will be sent out Repeat offense will carry two attendance penalty
What is “Networking”? Single PC Computation: Imagine a multi-
threaded process with IPC Synchronous with the system clock Data sharing by signaling Resource sharing by mutually-exclusive access
Networked Computation : Consider the same program “spread” out in the Network: different “threads” running on different machines Trying to “talk” to each other in an asynchronous
manner Trying to “share” data by “sending” Trying to “share” resources by “enabling” remote access
What are the challenges here? Important to note: Asynchronous communication
What is “Networking”?
Data sharing in a regular program is through shared buffers No issues of data loss No delay except for waiting on a semaphore No issues in receiver “capabilities”: both sender and
receiver have same capability No question of “data” compromise: all threads are
trusted Networked “data” sharing
Might result in data loss Subject to un-expected delays Sender/Receiver may not have same capabilities Data might be compromised in transit
Networking Challenges
Fundamental challenge: components fail: Network communication involves a chain of interfaces, links, routers and switches
Challenge: enormous dynamic range Round-trip times (latency) vary 10 μsec’s to sec’s Data rates (bandwidth) vary from kbps to 10 Gbps Queuing delays inside the network vary from 0 to sec’s Packet loss varies from 0 to 90+% End system (host) capabilities vary from cell phones to
supercomputer clusters Application needs vary enormously: size of transfers,
bi-directionality, need for reliability, tolerance of jitter
Networking Challenges
Challenge: different parties must work together Multiple parties with different agendas must agree how
to divide the task between them Working together requires:
Protocols (defining who does what) These generally need to be standardized Agreements regarding how different types of activity
are treated (policy) Challenge: incessant rapid growth
Utility of the network scales with its size ⇒ Fuels exponential growth (for more than 2 decades!)
Networking Challenges
Challenge: there are Bad Guys out there As the network population grows in size, so does the
number of• Vandals• Organized criminals
What really matters, though: as networkpopulation grows, it becomes more and more
attractive to Crooks
A network is like a PC without a login-password, anyone can use or mis-use it without any accounting
Networking Challenges
They (and other attackers) seek ways to misuse the network towards their gain Carefully crafted “bogus” traffic to manipulate the
network’s operation (Route manipulation) Torrents of traffic to overwhelm a service (denial-of
service) for purposes of extortion / competition (botnets) Passively recording network traffic in transit (sniffing) Exploit flaws in clients and servers using the network to
trick into executing the attacker’s code (compromise/worms)
They do all this energetically because there is significant $$$ to be made (botnets are rented!)
Networking Challenges
Challenge: you cannot reboot the Internet! Everyone depends on the Internet Businesses Hospitals Education institutions …
Cannot stop, fix, and restart it… … akin to “changing the engine when you are in-flight”! Can't change a core-router without causing loss of
millions of dollars Use industry policy: theory great but practice
greater!
Summary
Networking is all about designing effective and secure communication mechanisms against known and unknown adversaries The asynchronous nature makes it rather tough
• Like visualizing “parts” of a program executing on different machines towards a common goal
Need to understand the trade-offs in efficiency vs correctness of communication Reliability vs speed of data exchange
Need to be resilient to changes in topology Computer architecture doesn't change during
program execution but network topology does so! Next class: Chapter 1 of Kurose-Ross