CE693: Adv.
Computer Networking
L-1 Intro to Computer Networks
Fall 1391
Acknowledgments: Lecture slides are from the graduate level Computer
Networks course thought by Srinivasan Seshan at CMU. When slides are
obtained from other sources, a a reference will be noted on the bottom of
that slide. A full list of references is provided on the last slide.
Outline
• Administrivia
• Layering
2
Objectives
• Understand the state-of-the-art in network
protocols, architectures and applications
• Understand how networking research is
done
• Teach the typical constraints and thought
processes used in networking research
• How is class different from undergraduate
networking (CE-443)
• Training network programmers vs. training
network researchers
4
Class Info
• Check under:
• sharif.edu/~kharrazi/
• kharrazi@sharif.edu
• Check class webpage regularly
• Course schedule
• Reading list
• Lecture notes
• Announcements
• Assignments
• Subscribe to class mailing list
5
Course Materials
• Research papers
• Links to ps or pdf on Web page
• Combination of classic and recent work
• ~40 papers
• Optional readings
• Recommended textbooks
• In you want to review background material
• Peterson & Davie or Kurose & Ross
7
Grading (Tentative)
• Reading/Participation 20%
• Assignments 45%
• Midterm ??
• Final 35%
• At most 3 students/groups will be allowed
to undertake a class project, pending
approval by me.
8
Class Coverage
• Little coverage of physical and data link
layer
• Little coverage of undergraduate material
• Students expected to know this
• Focus on network to application layer
• We will deal with:
• Protocol rules and algorithms
• Investigate protocol trade-offs
• Why this way and not another?
10
Lecture Topics
Traditional Recent Topics
• Layering • Multicast
• Internet architecture • Mobility/wireless
• Routing (IP) • Active networks
• Transport (TCP) • QoS
• Queue management • Security
(FQ, RED) • Network measurement
• Naming (DNS) • Overlay networks
• P2P applications
11
Outline
• Administrivia
• Layering
12
This/Next Lecture: Design
Considerations
• How to determine split of functionality
• Across protocol layers
• Across network nodes
• Assigned Reading
• [SRC84] End-to-end Arguments in System
Design
• [Cla88] Design Philosophy of the DARPA
Internet Protocols
• Optional Reading
• [Cla02] Tussle in Cyberspace: Defining
Tomorrow’s Internet
39
What is the Objective of Networking?
• Communication between applications on
different computers
• Must understand application needs/
demands
• Traffic data rate
• Traffic pattern (bursty or constant bit rate)
• Traffic target (multipoint or single destination,
mobile or fixed)
• Delay sensitivity
• Loss sensitivity
13
Back in the Old Days…
14
Packet Switching (Internet)
Packets
15
Packet Switching
• Interleave packets from different sources
• Efficient: resources used on demand
• Statistical multiplexing
• General
• Multiple types of applications
• Accommodates bursty traffic
• Addition of queues
16
Characteristics of Packet Switching
• Store and forward
• Packets are self contained units
• Can use alternate paths – reordering
• Contention
• Congestion
• Delay
17
internet[work]
• A collection of Internet[work]
interconnected
networks
• Host: network
endpoints (computer,
PDA, light switch, …)
• Router: node that
connects networks
• Internet vs. internet
18
Challenge
• Many differences between networks
• Address formats
• Performance – bandwidth/latency
• Packet size
• Loss rate/pattern/handling
• Routing
• How to translate between various network
technologies?
19
internet[work]
• A collection of Internet[work]
interconnected
networks
• Host: network
endpoints (computer,
PDA, light switch, …)
• Router: node that
connects networks
• Internet vs. internet
18
How To Find Nodes?
Internet
Computer 1 Computer 2
Need naming and routing
20
Naming
What’s the IP address for www.cmu.edu?
It is 128.2.11.43
Computer 1 Local DNS Server
Translates human readable names to logical endpoints
21
Routing
Routers send
packet towards
destination H R
H
R
H R
R
H
R
R H: Hosts
H R: Routers
22
Meeting Application Demands
• Reliability
• Corruption
• Lost packets
• Flow and congestion control
• Fragmentation
• In-order delivery
• Etc…
23
What if the Data gets Corrupted?
Problem: Data Corruption
GET index.html GET windex.html
Internet
Solution: Add a checksum
0,9 9 6,7,8 21
X
4,5 7 1,2,3 6
24
What if Network is Overloaded?
Problem: Network Overload
Solution: Buffering and Congestion Control
• Short bursts: buffer
• What if buffer overflows?
• Packets dropped
• Sender adjusts rate until load = resources “congestion control”
25
What if the Data gets Lost?
Problem: Lost Data
GET index.html
Internet
Solution: Timeout and Retransmit
GET index.html
GET index.html
Internet
GET index.html
26
What if the Data Doesn’t Fit?
Problem: Packet size
• On Ethernet, max IP packet is 1.5kbytes
• Typical web page is 10kbytes
Solution: Fragment data across packets
ml x.ht inde GET
GET index.html
27
What if the Data is Out of Order?
Problem: Out of Order
ml inde x.ht GET
GET x.htindeml
Solution: Add Sequence Numbers
ml 4 inde 2 x.ht 3 GET 1
GET index.html
28
Lots of Functions Needed
• Link
• Multiplexing
• Routing
• Addressing/naming (locating peers)
• Reliability
• Flow control
• Fragmentation
• Etc….
29
What is Layering?
• Modular approach to network functionality
• Example:
Application
Application-to-application channels
Host-to-host connectivity
Link hardware
30
Protocols
• Module in layered structure
• Set of rules governing communication
between network elements (applications,
hosts, routers)
• Protocols define:
• Interface to higher layers (API)
• Interface to peer
• Format and order of messages
• Actions taken on receipt of a message
31
Layering Characteristics
• Each layer relies on services from layer
below and exports services to layer above
• Interface defines interaction
• Hides implementation - layers can change
without disturbing other layers (black box)
32
Layering
User A User B
Application
Transport
Network
Link
Host Host
Layering: technique to simplify complex systems
33
E.g.: OSI Model: 7 Protocol Layers
• Physical: how to transmit bits
• Data link: how to transmit frames
• Network: how to route packets
• Transport: how to send packets end2end
• Session: how to tie flows together
• Presentation: byte ordering, security
• Application: everything else
34
OSI Layers and Locations
Application
Presentation
Session
Transport
Network
Data Link
Physical
Host Switch Router Host
35
Is Layering Harmful?
• Sometimes..
• Layer N may duplicate lower level functionality
(e.g., error recovery)
• Layers may need same info (timestamp, MTU)
• Strict adherence to layering may hurt
performance
38
Next Lecture: Design Considerations
• How to determine split of functionality
• Across protocol layers
• Across network nodes
• Assigned Reading
• [SRC84] End-to-end Arguments in System
Design
• [Cla88] Design Philosophy of the DARPA
Internet Protocols
• Optional Reading
• [Cla02] Tussle in Cyberspace: Defining
Tomorrow’s Internet
39