CS 4251: Computer Networking II

Download Report

Transcript CS 4251: Computer Networking II

Course Overview and
Introduction
CS 4251: Computer Networking II
Nick Feamster
Spring 2008
Goals
• You have presumably already learned the
basics, so we will focus on…
• Depth
– More in-depth treatment of various topics
• Hands-on experience and skills
– Testbeds: Emulab, PlanetLab, VINI
– Tools: Scriptroute, Click, XORP
– Analysis of real traces
Goals
• Design Experience and Insights
– `Internet was based on design priorities
• Applications and requirements have changed
• You will gain experience re-evaluating design
decisions and changing protocols
– Many recurring design “tricks”
• Tree forming
• Layering
• Resource allocation and sharing
• Naming
Logistics
• Course Web page
– http://www.gtnoise.net/classes/cs4251/spring_2008/
– Check this page regularly for updates to the syllabus,
assignments, readings, etc.
• Course mailing list
– Sign up now/today
– http://www.gtnoise.net/mailman/listinfo/cs4251
Who Am I?
• Nick Feamster
– Assistant Professor
– Networking: Operations and Security
• Office: Klaus 3348
• Email: on web page, use “CS 4251”
• Office Hours: Monday, 2-4 p.m.
Overview of Lectures
• Holistic approach
• Various “themes” recur throughout
–
–
–
–
Tree forming/path finding
Layering
Resource allocation and sharing
Naming
• Textbook reading, plus some research (and
other) papers
– Read the readings before class!
Things You’ll Learn
• How does BitTorrent find your file?
• How does the GT wireless network allow you to
“roam” across campus with the same IP
address?
• How do ISPs connect to one another?
– Interconnection: Protocols and business
• What could you do with two (or more) Internet
connections at home?
Things You’ll Learn
• How many bits can you push over a physical
channel?
– How can you use encoding to increase this?
• What’s inside a router?
• Can you guarantee performance or service for
certain types of applications (e.g., telephony,
video)?
• Can a network’s resources be subdivided?
Still More Things You’ll Learn
• Are we running out of IP addresses? Who
cares, and how can we combat this?
• How do we reduce power utilization in data
centers?
• What are the bad guys doing?
• Can we stop unwanted traffic?
• How do we make it easier to run the network?
• How do we make the network go faster?
• Why is it so hard to figure out what’s wrong?
• Social networks…?
Grading
• 3 Problem sets (20%)
– Paper and pencil
• 3 Hands-on Assignments (30%)
– Experience with tools and traces
• 2 Quizzes (25%)
– Quiz: March 3
– Final: will set date soon (perhaps last week of class)
• 1 Project (25%)
– TBD. Work in groups. Programming.
• Late policy: Maximum of 72 hours late
throughout the term
Collaboration Policy
• See the Georgia Tech Honor Code
• Working together on assignments is fine, but you
must turn in your own assignments, and
ultimately write your own code, analysis, etc.
Who are you?
• Why are you taking this class?
– What do you hope to learn?
– (What have you learned already)
• What do you want out of a class project?
• Did you take 3251?
Key Concepts in Networking
•
•
•
•
•
Protocols
Tree formation/Route Finding
Layering
Resource allocation and sharing
Naming
• Lots of minor recurring themes
– Hierarchy
– Caching
– Randomization
The Internet: A Network of Networks
Autonomous
Systems
(ASes)
Abilene
Comcast
AT&T
Cogent
Georgia
Tech
• Interconnected of the Internet Service Providers (ISPs) provide data
communications services
– Networks are connected using routers that support communication in a
hierarchical fashion
– Often need other special devices at the boundaries for security,
accounting, …
• Hosts and networks have to follow a common set of rules (protocols)
Challenges
• Scale: 100,000,000s of hosts
• Heterogeneity:
– 25,000+ administrative domains (competing!)
– Thousands of applications
– Lots of users
• Diversity of network technologies and media
• Security: Adversarial environment
Protocols: Interconnection
• The syntax and semantics by which hosts and
nodes agree on how to talk
– Must be standardized and agreed upon by all parties
– Standardization process
• IETF Requests for Comments (RFC)
• De-facto standards
• Format of messages
• Expectations for message delivery
Layering
• Key technique for managing complexity
• Each layer
– Relies on services from layer below
– Provides services to layer above
• For example: IP (network) layer
– IP relies on connectivity to next hop, access to
medium
– IP provides a datagram service
• Best effort delivery
• Packets may be lost, corrupted, reordered, etc.
– Layers on top of IP (e.g., TCP) may guarantee
reliable, in-order delivery
Layering: Encapsulation
User A
User B
Application
(message)
Get index.html
Transport
(segment)
Connection ID
Network
(datagram)
Source/Destination
Link (frame)
Link Address
• This can be more complex
• Example: Network layers can be encapsulated within
another network layer
The Internet Protocol Stack
• Need to interconnect many existing networks
• Hide underlying technology from applications
• Decisions
– Network provides minimal functionality
– IP as the “Narrow waist”
email WWW phone...
SMTP HTTP RTP...
Applications
TCP UDP…
IP
ethernet PPP…
CSMA async sonet...
copper fiber radio...
Technology
The “Narrow Waist”
• Facilitates interconnection and interoperability
• IP over anything, anything over IP
– Has allowed for much innovation both above and
below the IP layer of the stack
– Any device with an IP stack can “get on the Internet”
• Drawback: very difficult to make changes to IP
Resource Sharing
• How? Multiplexing
– Switched network
– Party “A” gets resources sometimes
– Party “B” gets them sometimes
• Interior nodes (“Routers” or “Switches”) arbitrate
access to resources
Circuit Switching
• Resources are reserved
• Source first establishes a connection (circuit) to
the destination
• Source sends the data over the circuit
– Constant transmission rate
• Example: telephone network
– Early early versions: Human-mediated switches.
– Early versions: End-to-end electrical connection
– Today: Virtual circuits or lambda switching
Resource Sharing in
Circuit-Switched Networks
• Frequency-Division Multiplexing (FDM)
– Link dedicates a frequency to each
connection
– Width of this frequency band is called
“bandwidth”
– We will discuss the capacity in Lecture 10
• Time-Division Multiplexing
– Each circuit gets all of the bandwidth on a
link for brief periods of time
Circuit Switching
• Advantages
– Fast and simple data transfer, once the circuit
has been established
– Predictable performance since the circuit
provides isolation from other users
• Guaranteed bandwidth
• Disadvantages
– What about bursty traffic?
– Users with differing needs for bandwidth
– What if all resources are allocated?
Packet Switching
• Resources are not reserved
• Packets are self-contained
– Each has a destination address
– Source may have to break up single message
• Each packet travels independently to the
destination host
– Routers and switches use the address in the packet
to determine how to forward the packets
Sharing in Packet-Switched Networks
• Statistical multiplexing
• Switches arbitrate between inputs
• Can send from any input that’s ready
–
–
–
–
Links are never idle when traffic to send
Efficiency!
Requires buffering/queues
Implies a service model/discipline (Lecture 21)
Delay in Packet Switched Networks
• Four contributors to hop-by-hop delay
– Processing: Lookup, etc. (Lectures 6 and 7)
– Queueing: Time the packet must wait before being
transmitted (Lecture 21)
– Transmission: time to push the packet onto the link
– Propagation: time for the packet to propagate from A
to B
• End-to-end performance metric: throughput
– What (else) affects throughput
Forwarding: Packet-Switched Networks
• Each packet contains a destination in the header
– Much like a postal address on an envelope
• Each hop (“router” or “switch”) inspects the
destination address to determine the next hop
• Will a packet always take the same path?
• How do the hops know how to forward packets?
Computing Routes
• To deal with large scale, Internet routing
employs hierarchy
• Internet Service Providers connect to one
another with interdomain routing protocols
(BGP)
– ISPs have business relationships with one another
• ISPs have PoPs that are connected with
intradomain routing protocols
Gateways: Routers and Switches
• Interconnect nodes to nodes
– And networks to networks
• No state about ongoing connections
– Stateless packet switches
• We can also think of your home router/NAT as
performing the function of a gateway
192.168.1.51
Home
Network
192.168.1.52
68.211.6.120:50878
68.211.6.120:50879
(more on NATs in lecture 17)
Internet
Naming
• Example: DNS
– Maps names to IP addresses
– Hierarchical
root, .edu
www.cc.gatech.edu
Client
Local
DNS resolver
troll-gw.gatech.edu
burdell.cc.gatech.edu
Recursive query
Iterative queries
Note the diversity of Georgia Tech’s authoritative nameservers
The Internet’s “Design Goals”
• Interconnection/Multiplexing
• Resilience/Survivability
• Heterogeneity
– Different types of services
– Different types of networks
•
•
•
•
Distributed management
Cost effectiveness
Ease of attachment
“This set of goals might seem to be nothing
Accountability
more than a checklist of all the desirable
network features. It is important to understand
that these goals are in order of importance, and
an entirely different network architecture
would result if the order were changed.”
Survivability
• Network should continue to work, even if some
devices fail, are compromised, etc.
How well does the current Internet
support survivability?
Distributed Management
Many examples:
• Addressing (ARIN, RIPE, APNIC, etc.)
– Though this was recently threatened.
• Naming (DNS)
• Routing (BGP)
No single entity in charge.
Allows for organic growth, scalable management.
Tradeoff: No one party has visibility/control
Heterogeneous Services
• TCP/IP designed as a monolithic transport
– TCP for flow control, reliable delivery
– IP for forwarding
• Became clear that not every type of application
would need reliable, in-order delivery
– Example: Voice and video over networks
– Example: DNS
– Why don’t these applications require reliable, in-order
delivery?
– Narrow waist: allowed proliferation of transport protocols
Accountability
• Note: Accountability mentioned in early papers
on TCP/IP, but not prioritized
• Datagram networks make accounting tricky
– Circuit-switched networks are easier to bill
– Payments/billing on the Internet is much less precise
Tradeoff: Broken payment models and incentives.
So…what has changed?
•
•
•
•
•
•
Security and Accountability
Availability
Mobility
Scaling
Management
Support for disconnected/intermittent operation
(e.g., in developing regions)
• …
Would you make the same decisions about layering, resource
sharing, protocol semantics and agreements, etc.?
Security
February 2000
Lectures 23-25
March 2006
Scaling
Lecture 13 and others
Availability
Lecture 5 and others
Is it possible to get to “5 nines” of
availability?
If so, how?
Mobility
…and social
networking.
Lectures 13, 18, 28, …
Management
Lecture 25
• Maintaining availability and correcting problems
requires constant vigilance, intuition, etc.
• Failures at various layers can make things hard
Connectivity in Developing Regions
• Challenges
–
–
–
–
Power
Management
High cost and scarcity of upstream connectivity
Little-to-no wired infrastructure