Title: CS 352 Internet Technology Fundamentals
1CS 352Internet TechnologyFundamentals
- Dept. of Computer Science
- Rutgers University
2Administrative
- Special permission
- Class web pages
- http//remus.rutgers.edu/cs352/F01/
3Why Study Networks?
- Rapidly becoming integral part of society
- Work, entertainment, community
- Pervasive
- Home, car, office, school, mall
- Understand what they do, how they work, and
limitations - Jobs
4Impact of the Net on People
- Anytime access to remote information
- HW assignments from my server
- Person-to-person and group communication
- email, chat, meetings
- Form and strengthen communities
- chat rooms, MUDs, newsgroups
5Impact of the Net on Society
- Huge impact!
- Continuation of technologies that reduce problems
of time space (e.g. railroads,phone,autos,TV) - Good, bad and ugly
- mirror of society
- Changes still on the horizon
- Commerce, services, entertainment, socializing
6Internet Roles
- Users
- Everyone (mom and pop, kids)
- work, leisure, serious, frivolous
- Designers
- protocol design and implementation
- performance, cost and scale
- Service Providers
- Administrators and ISPs
- Management, revenue, deployment
7What is Internet Technology?
- What is an internet?
- Network of networks
- What is the Internet?
- A global internet based on the IP protocol
- To what does Internet technology refer?
- Architecture, protocols and services
8Sample Internet Applications
- Electronic mail
- Remote terminal
- File transfer
- Newsgroups
- File sharing
- Resource distribution
- World Wide Web
- Video conferencing
- Games
9Course Goals
- Understand the basic principles of computer
networks - Understand the Internet and its protocols
- Understand the key design principles used to
build the Internet - Experience building network systems
10Course goals (cont.)
- Course is not about specific skills
- E.g. configure a router from company X vs. learn
principles of how all routers work - Success means you are confident to tackle a range
of network programming, design and maintenance.
11Course Approach
- Lectures theory behind how networks operate
- Tested in exams
- See last semesters class for sample problems
- Programming assignments
- Real world experience with networks
- Program design
- Working in groups
- Communicating your design
12Programming assignments
- Single long project
- Broken into three parts
- Groups of up to 3
- Code and write-up required
- Background needed to get started
- Java (111 and 112 level)
- Unix (login, handin, permissions, javac)
13Facilities
- Cereal machines
- 20 UltraSparc 10 machines
- 20 Linux machines
- Romulus and remus for general use
- Create your accounts now!
- http//remus.rutgers.edu/newaccount.html
14What is a Network?
- Carrier of information between 2 or more entities
- Interconnection may be any media capable of
communicating information - copper wire
- lasers
- microwave
- satellite link
15Some Definitions
- Network Collection of interconnected machines
- Host Machine running user application
- Channel Logical line of communication
- Media Physical process used
- Protocol Rules of communication
- Router decide were to send data next
- Topology How network is interconnected
161. How Do Computers Communicate?
- With 1s and 0s
- Computers only deal with 1s and 0s
- So do networks
- How do we transmit 1s and 0s in a network?
17Physical Transmission
- A physical quantity (e.g. voltage), varying over
time represents a digital 0 or 1
18Overview of the Topics
- Fundamentals
- Media Access
- Link state management
- Routing
- Congestion control
- Protocols
- Security
- Physical layer
19Possible Media
- Broadcast or shared channels
20Media Access
- Many users typically share a single link or a
single medium - How do you give them all access?
21Media Access Protocols
- If more than one host sends at the same time,
there is a collision - Need algorithm to share the channel
- Media access protocol
22 Fixed Assignment Schemes
- Example Time Division Multiple Access (TDMA)
- Channel capacity is assigned even to users who
have nothing to send
time
1
2
3
4
1
2
host
23Demand Assignment
- Assign channel capacity only to those who have
packets to send - Example Token Passing Scheme
- Hosts may send packets when they grab the token
24Random Access
- Send when you have a packet to send. If
collision, retransmit - Example Ethernet
1
2
3
4
Listen before transmission if busy, wait if
idle, transmit
Listen during transmission if collision,
abort and retransmit
257.2.4 Comparison
Random Access
Demand Assignment
Fixed Assignment
Access Delay
light
heavy
Network Traffic
26Link-State Management
- Error Detection and Correction
- Flow control
27Error Detection/Correction
- Physical channels are not perfect
- Can we detect, possibly correct errors?
28Error Detection
- Example Parity bit
- Message Parity Bit
- 0 0 1 1 1 (odd)
- 1 0 0 0 0 (odd)
- 0 1 0 1 0 (even)
- 1 0 0 0 1 (even)
29Error Correcting Codes
- Detect and correct errors
- Example Hamming Code
- Capable of detecting and correcting a
single bit error
30 Flow Control
- If A sends at a faster rate than B can receive,
bits will be lost - We need flow control!
31Stop-and-Wait
- A sends data
- B sends ACK
- A sends more data
32Windowed Flow Control
- A sends packets 1, 2, 3
- B sends ACK for 1, 2
- A sends packets 4, 5
- B sends ACK for 3, 4, 5
33Switching Schemes
- How much state about the connection between two
hosts does each node/router along a path through
the network maintain?
34 Switching Schemes
- Circuit Switching
- (2) Message Switching (Store-and-Forward)
- (3) Packet Switching (Store-and-Forward)
35Circuit Switching
- Provides service by setting up the total path of
connected lines from the origin to the
destination - Example Telephone network
36Circuit Switching (contd)
- 1. Control message sets up a path from origin to
destination - 2. Return signal informs source that data
transmission may proceed - 3. Data transmission begins
- 4. Entire path remains allocated to the
transmission (whether used or not) - 5. When transmission is complete, source releases
the circuit
37Circuit Switching (contd)
Call request signal
Propagation Delay
Transmission Delay
Time
Call accept signal
Data Transmission Time
Data
A
B
C
D
IMPs
38Message Switching
- Each message is addressed to a destination
- When the entire message is received at a router,
the next step in its journey is selected if this
selected channel is busy, the message waits in a
queue until the channel becomes free - Thus, the message hops from node to node
through a network while allocating only one
channel at a time - Analogy Postal service
39Message Switching (contd)
Header
Transmission Delay
Time
Queueing Delay
A
B
C
D
IMPs
40 Packet Switching
- Messages are split into smaller pieces called
packets - These packets are numbered and addressed and sent
through the network one at a time - Pipelining
41Packet Switching (contd)
Header
Time
Transmission Delay
A
B
C
D
IMPs
42Comparisons
- (1) Header Overhead
- Circuit lt Message lt Packet
- (2) Transmission Delay
- Short Bursty Messages
- Packet lt Message lt Circuit
- Long Continuous Messages
- Circuit lt Message lt Packet
43 Routing
- A slightly more complex network
- If A sends packets to E, B has to make a routing
decision - Analogy Zip code specifies destination, not
route used to get there
44Fixed Routing Schemes
A
E
B
D
C
- For every source/destination pair, a fixed path
is given - Example A to B to D to E
- Easy to implement, but
- (1) What if link BD fails?
- (2) What if link BD is congested?
45Dynamic Routing Schemes
A
E
B
D
C
- Hosts and IMPs periodically exchange information
and find the best paths for all
source/destination pairs - Can adjust to link failure or congestion, but
- (1) information exchange creates extra traffic
- (2) it takes time for information exchange to
happen, so information could be outdated - (3) packet looping can happen
46Congestion Control
- What if too many packets flow through a network?
- Congestion
- Analogy Two merging freeways
47Packet discarding
- In case of congestion, discard some packets
- Require receiving host to send ACK when it
receives a packet this way the transmitter will
know when a packet is lost and it can retransmit
the packet - Reactive
48Choke Packets
- When the network becomes congested, a host or
router sends a choke packet telling a
transmitter to slow down - Reactive
49Resource Reservation
- Before sending packets, the transmitter tells the
network how many packets it wants to send - The network checks to see if it can handle those
packets and if so, reserves resources for those
packets. It not, the packets have to wait. - Preventive
50Layering and Encapsulation
51Why Layering?
- Network communication is very complex
- Separation of concerns
- Different vendors and organizations responsible
for different layers - Testing and maintenance is simplified
- Easy to replace a single layer with a different
version
52Protocol Hierarchy
- Use layers to hide complexity
- Each layer implements a service
- Layer N uses service provided by layer N-1
- layer N-1 provides a service to layer N
- Protocols
- Each layer communicates with its peer by a set of
rules - Interface
- A layers interface specifies the operations
53Protocol Hierarchy (contd)
Host A
Host B
Layer 7 Protocol
Layer 7
Layer 7
Layer 6 Protocol
Layer 6
Layer 6
Layer 5 Protocol
Layer 5
Layer 5
Layer 4 Protocol
Layer 4
Layer 4
Layer 3 Protocol
Layer 3
Layer 3
Layer 2 Protocol
Layer 2
Layer 2
Layer 1 Protocol
Layer 1
Layer 1
Physical Medium
54Different Layering Architectures
- ISO OSI 7-Layer Architecture
- TCP/IP 4-Layer Architecture
- Novell NetWare IPX/SPX 4-Layer Architecture
55Standards Making Organizations
- ISO International Standards Organization
- ITU International Teletraffic Union (formerly
CCITT) - ANSI American National Standards Institute
- IEEE Institute of Electrical and Electronic
Engineers - IETF Internet Engineering Task Force
- ATM Forum ATM standards-making body
- ...and many more
56Why So Many Standards Organizations?
- Multiple technologies
- Different areas of emphasis and history
- Telecommunications/telephones
- ITU,ISO,ATM
- Local area networking/computers
- IETF, IEEE
- System area networks/storage
- ANSI
57ISO OSI Layering Architecture
Host A
Host B
Application Protocol
Application Layer
Application Layer
Presentation Protocol
Presentation Layer
Presentation Layer
Session Protocol
Session Layer
Session Layer
Transport Protocol
Transport Layer
Transport Layer
Network Layer
Network Layer
Network Layer
Network Layer
Data Link Layer
Data Link Layer
Data Link Layer
Data Link Layer
Physical Layer
Physical Layer
Physical Layer
Physical Layer
Router
Router
58ISOs Design Principles
- A layer should be created where a different level
of abstraction is needed - Each layer should perform a well-defined function
- The layer boundaries should be chosen to minimize
information flow across the interfaces - The number of layers should be large enough that
distinct functions need not be thrown together in
the same layer out of necessity, and small enough
that the architecture does not become unwieldy
59Layer 1 Physical Layer
- Functions
- Transmission of a raw bit stream
- Forms the physical interface between devices
- Issues
- Which modulation technique (bits to pulse)?
- How long will a bit last?
- Bit-serial or parallel transmission?
- Half- or Full-duplex transmission?
- How many pins does the network connector have?
- How is a connection set up or torn down?
60Layer 2 Data Link Layer
- Functions
- Provides reliable transfer of information between
two adjacent nodes - Creates frames, or packets, from bits and vice
versa - Provides frame-level error control
- Provides flow control
- In summary, the data link layer provides the
network layer with what appears to be an
error-free link for packets
61Layer 3 Network Layer
- Functions
- Responsible for routing decisions
- Dynamic routing
- Fixed routing
- Performs congestion control
62Layer 4 Transport Layer
- Functions
- Hide the details of the network from the session
layer - Example If we want replace a point-to-point link
with a satellite link, this change should not
affect the behavior of the upper layers - Provides reliable end-to-end communication
63Transport Layer (contd)
Host A
Host B
Application Protocol
Application Layer
Application Layer
first end-to-end layer
Presentation Protocol
Presentation Layer
Presentation Layer
Session Protocol
Session Layer
Session Layer
Transport Protocol
Transport Layer
Transport Layer
Network Layer
Network Layer
Network Layer
Network Layer
Data Link Layer
Data Link Layer
Data Link Layer
Data Link Layer
Physical Layer
Physical Layer
Physical Layer
Physical Layer
Router
Router
64Transport Layer (contd)
- Functions (contd)
- Perform end-to-end flow control
- Perform packet retransmission when packets are
lost by the network
65Layer 5 Session Layer
- May perform synchronization between several
communicating applications - Groups several user-level connections into a
single session
66Layer 6 Presentation Layer
- Performs specific functions that are requested
regularly by applications - Examples
- encryption
- ASCII to Unicode, Unicode to ASCII
- LSB-first representations to MSB-first
representations
67Layer 7 Application Layer
- Application layer protocols are
application-dependent - Implements communication between two applications
of the same type - Examples
- FTP
- Quake
- SMTP (email)
68Encapsulation
- Treat the neighboring layers information as a
black box, cant look inside or break message - Sending add information needed by the current
layer around the higher layers data - headers in front
- trailers in back
- Receiving Strip off headers and trailers before
handing up the stack
69Encapsulation
Data
Application Layer
Presentation Layer
Data
PH
Session Layer
Transport Layer
Network Layer
Data
NH
Data Link Layer
Data
DH
DT
Physical Layer
Data
PH
70TCP/IP Layering Architecture
- A simplified model
- The network layer
- Hosts drop packets into this layer, layer routes
towards destination- only promise- try my best - The transport layer
- reliable byte-oriented stream
Application
Transport
Internet/Network
Host-to-Net
71TCP/IP Layering Architecture (contd)
Host B
Application Protocol
Application Layer
Transport Protocol (TCP)
Transport Layer
IP
IP
IP
Network Layer
Network Layer
Network Layer
Host-to- Net Layer
Host-to- Net Layer
Host-to- Net Layer
72Internet Design Principles
- Scale
- Protocols should work in networks of all sizes
and distances - Incremental deployment
- New protocols need to be deployed gradually
- Heterogeneity
- Different technologies, autonomous organizations
- End-to-end argument
- Some functions can only be correctly implemented
at the end hosts the network should not provided
these.
73Measuring Network Performance
74Why Study Network Performance
- Networks cost
- OC-3 line 10,000/month
- Cable modem 40/month
- Are you getting your /worth?
- Why is the network slow?
- Approach
- Build abstract models of network performance
- Observe where real networks deviate from model
75Some Definitions
- Packet length size of a packet (units bits or
bytes) - Channel speed How fast the channel can transmit
bits (units bits/second) - Packet transmission time amount of time to
transmit an entire packet (units seconds) - Propagation delay Delay imposed by the
properties of the link. Depends on the links
distance (units seconds)
76More Definitions
- 4 Performance Metrics
- Overhead Time computer spends managing protocol
layers (packet is not even on the wire yet ) - Latency Time packet spends from one host to
another - Per-bit Bandwidth amount of time to move B bits
(units seconds) - Per-message Bandwidth Amount of time to move P
packets (units seconds)
77Example
- Protocol overhead 40 msec
- packet length 1500 bytes
- channel capacity 100 Mbps
- propagation delay factor 5 msec/km
- How long to format the data?
- How long does it take a single bit to travel on
the link from A to B? - How long does it take A to transmit an entire
packet onto the link?
78Digression Units
- Bits are the units used to describe an amount of
data in a network - 1 kilobit (Kbit) 1 x 103 bits 1,000 bits
- 1 megabit (Mbit) 1 x 106 bits 1,000,000 bits
- 1 gigabit (Gbit) 1 x 109 bits 1,000,000,000
bits - Seconds are the units used to measure time
- 1 millisecond (msec) 1 x 10-3 seconds 0.001
seconds - 1 microsecond (msec) 1 x 10-6 seconds
0.000001 seconds - 1 nanosecond (nsec) 1 x 10-9 seconds
0.000000001 seconds - Bits per second are the units used to measure
channel capacity/bandwidth and throughput - bit per second (bps)
- kilobits per second (Kbps)
- megabits per second (Mbps)
79Getting to the wire
- Stylized format required to send data
- Analogy adding envelope to letter
How long does it take to execute all these
layers? Why is this time important? Higher
traffic -gt less compute time for application
80Analogy
- Think of a transmission link as a water pipe
- with buckets of ice either end
- Get the water in a movable form (packet
formatting) - The thicker the pipe, the more water it can carry
from one end to the other - Water is carried from one end of the pipe to the
other at constant speed, no matter how thick the
pipe is
Water Data bits Thickness of the pipe Channel
capacity Speed of water through the pipe
Propagation delay
81 Packet Transmission Time
- How long does it take A to transmit an entire
packet onto the link?
Relevant information packet length 1500
bytes channel capacity 10 Mbps
Another way to ask this question If the link can
transmit 10 million bits in a second, how many
seconds does it take to transmit 1500 bytes
(8x1500 bits)?
Solving for t t 0.00012 sec (or 120 msec)
100 Mbits
1500 x 8 bits
1 sec
t
82 Propagation Delay
- How long does it take a single bit to travel on
the link from A to B?
Relevant information link distance 500 m
prop. delay factor 5 msec/km
Another way to ask this question If it takes a
signal 5 msec to travel 1 kilometer, then how
long does it take a signal to travel 500 meters?
5 msec
t
Solving for t t 2.5 msec
1000 m
500 m
83Putting it all together
40 msec down
40 msec up
120 msec in/out
2.5 across
Total time 401202.540 202.5 msec
84Timeline Method
Host A
Host B
Send overhead
40
1st bit
Propagation delay
2.5
Time
120
Transmission time
last bit
Receive Overhead
40