Download lecture8

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

AppleTalk wikipedia , lookup

CAN bus wikipedia , lookup

Airborne Networking wikipedia , lookup

Multiprotocol Label Switching wikipedia , lookup

Wake-on-LAN wikipedia , lookup

Computer network wikipedia , lookup

Asynchronous Transfer Mode wikipedia , lookup

Zero-configuration networking wikipedia , lookup

RapidIO wikipedia , lookup

Deep packet inspection wikipedia , lookup

Cracking of wireless networks wikipedia , lookup

IEEE 1355 wikipedia , lookup

UniPro protocol stack wikipedia , lookup

Recursive InterNetwork Architecture (RINA) wikipedia , lookup

Internet protocol suite wikipedia , lookup

TCP congestion control wikipedia , lookup

Transcript
EE 122: Lecture 8/9
Ion Stoica
September 20/25, 2001
Overview


TCP/IP architecture
TCP
•
•
•
•
IP and TCP headers
Connection establishment
Flow control
RTT estimation
[email protected]
2
Before Internet…

Different packet-switching networks (e.g.,
ARPANET, ARPA packet radio)
- only nodes on the same network could communicate
[email protected]
3
Goal and Challenges


Share resources of different packet switching
networks  interconnect existing networks
… but, packet switching networks differ widely
- Different services
• E.g., degree of reliability
- Different interfaces
• E.g., length of the packet that can be transmitted,
address format
- Different protocols
• E.g., routing protocols
[email protected]
4
Possible solutions

Reengineer and develop one global packet
switching network standard
- Not economically feasible

Have every host implement the protocols of any
network it wants to communicate with
- Too complex, very high engineering cost
[email protected]
5
Solution

Add an extra layer: internetworking layer, also
called Internet Protocol (IP)
- Hosts implement one higher-level protocol
- Networks interconnected by nodes that run the same
protocol
- Provide the interface between the new protocol and
every network
[email protected]
6
Solution
Gateways
(routers)
[email protected]
7
Challenge 1: Different Address
Formats


Provide one common format  map lower level
addresses to a common format
IPv4 address format: 32 bit length, hierarchical
organization
Class A
Class B
Class C
Class D
Class E
0
24
7
Network
1 0
Host
14
Network
1 1 0
1 1 1 0
1 1 1 1 0
16
Host
21
Network
8
Host
28
Multicast address
27
Unused
[email protected]
8
Challenge 2: Different Packet Sizes


Define a maximum packet size over all networks.
Why not?
Implement fragmentation/re-assembly
- who is doing fragmentation?
- who is doing re-assembly?
[email protected]
9
Other Challenges

Errors  require end-to-end reliability
- Add a transport layer on top of IP

Different (routing) protocols  coordinate these protocols
[email protected]
10
Transport Layer: TCP and UDP

TCP (Transmission Control Protocol)
TCP/UDP
- Unbounded but finite length messages
• Byte streaming
- Reliable and in-sequence delivery
- Full duplex
- Application example: file transfer, telnet

IP
Transport Layer
Networking Layer
Link Layer
Physical Layer
UDP (User Datagram Protocol)
- Unreliable datagram delivery
- Adds multiplexing/demultiplexing to IP
- Application example: video/audio streaming

Note: The need for UDP was the main reason
behind splitting TCP and IP (at the beginning
there were only one TCP/IP layer)
[email protected]
11
Overview


TCP/IP architecture
TCP
•
•
•
•
IP and TCP headers
Connection establishment
Flow control
RTT estimation
[email protected]
12
Headers



IP
IP header  used for IP routing, fragmentation,
error detection…
UDP header  used for
multiplexing/demultiplexing, data error correction
TCP header  used for
multiplexing/demultiplexing, flow and congestion
control
Receiver
Sender
data
Application
Application
TCP/UDP
data
TCP UDP
TCP UDP
TCP/UDP
data
IP
IP
[email protected]
data
IP
TCP/UDP
data
TCP/UDP
data
13
IP Header
0
4
Version HLen
8
16
TOS
Identification
TTL
19
31
Length
Flags
Fragment offset
Protocol
Header checksum
Source address
Destination address
20 bytes
Options (variable)

Comments
- HLen – header length only in 32-bit words (5 <= HLen <= 15)
- TOS (Type of Service): now split in
• Differentiated Service Field (6 bits)
• remaining two bits used by ECN (Early Congestion Notification)
- Length – the length of the entire datagram/segment; header + data
- Flags: Don’t Fragment (DF) and More Fragments (MF)
- Fragment offset – all fragments excepting last one contain multiples of 8 bytes
- Header checksum - uses 1’s complement
[email protected]
14
TCP Header
0
4
10
Source port
16
31
Destination port
Sequence number
Acknowledgement
HdrLen
Flags
Advertised window
Checksum
Urgent pointer
Options (variable)


Sequence number, acknowledgement, and advertised window –
used by sliding-window based flow control
Flags:
-
SYN, FIN – establishing/terminating a TCP connection
ACK – set when Acknowledgement field is valid
URG – urgent data; Urgent Pointer says where non-urgent data starts
PUSH – don’t wait to fill segment
RESET – abort connection
[email protected]
15
TCP Header (Cont)

Checksum – 1’s complement and is computed over
- TCP header
- TCP data
- Pseudo-header (from IP header)
• Note: breaks the layering!
0
Source address
Destination address
TCP Segment length
Protocol (TCP)
[email protected]
16
Overview


TCP/IP architecture
TCP
•
•
•
•
IP and TCP headers
Connection establishment
Flow control
RTT estimation
[email protected]
17
TCP Connection Establishment

Three-way handshake
- Goal: agree on a set of parameters: the start sequence
number for each side
- Staring sequence numbers are random. Why?
Server
Client (initiator)
[email protected]
18
Overview


TCP/IP architecture
TCP
•
•
•
•
IP and TCP headers
Connection establishment
Flow control
RTT estimation
[email protected]
19
Basic Problem


How much traffic do you send?
Two components
- Flow control
• Make sure that the receiver can receive as fast as
you send
- Congestion control (see Lecture 10)
• Make sure that the network delivers the packets to
the receiver
[email protected]
20
TCP Flow Control vs. Link Layer
Flow Control



Flow control runs end-to-end, instead of on the
same link
RTT can vary widely
Receiver’s maximum window size can vary
- Because resources allocated to a connection varies

Sender’s maximum window size varies
- Because it is used to throttle back the sender where
there is congestion (see Lecture 10)

Others:
- Sequence numbers counts bytes not packets
- Packets usually called segments
[email protected]
21

Sliding-window based flow
control:
- Higher window  higher
throughput
• Throughput = wnd/RTT
- Need to worry about
sequence number wrapping

RTT (Round Trip Time)
Flow control: Window Size and
Throughput
wnd = 3
Remember: window size
control throughput
1/18/2000
22
TCP Flow Control

Receiver window (MaxRcvBuf – maximum buffer size at receiver)
AdvertisedWindow = MaxRcvBuffer – (LastByteRcvd – LastByteRead)

Sender window (MaxSendBuf – maximum buffer size at sender)
EffectiveWindow = AdvertisedWindow – (LastByteSent – LastByteAcked)
MaxSendBuffer >= LastByteWritten - LastByteAcked
Sending Application
Receiving Application
LastByteWritten
LastByteAcked
LastByteRead
LastByteSent
NextByteExpected
sequence number increases
LastByteRcvd
sequence number increases
[email protected]
23
Overview


TCP/IP architecture
TCP
•
•
•
•
IP and TCP headers
Connection establishment
Flow control
RTT estimation
[email protected]
24
RTT Estimation
Use exponential averaging:
SampleRTT  AckRcvdTime  SendSegmentTime
EstimatedRTT    EstimatedRTT  (1   )  SampleRTT
TimeOut  2  EstimatedRTT
0  1
EstimatedRTT

SampleRTT
[email protected]
Time
25
Problem
How to differentiate between the real ACK, and
ACK of the retransmitted packet
SampleRTT
Sender
Receiver
Sender
Receiver
SampleRTT

[email protected]
26
Karn/Partridge Algorithm


Measure SampleRTT only for original
transmissions
Exponential backoff  for each retransmission,
double EstimatedRTT
[email protected]
27
Jacobson/Karels Algorithm

Problem: take into account the variance
Difference  SampleRTT  EstimatedRTT
EstimatedRTT  EstimatedRTT    Difference
Deviation  Deviation    (| Difference |  Deviation)
TimeOute    EstimatedRTT    Deviation
0   1
 1
 4
[email protected]
28
Summary

TCP/IP architecture
- Add a layer (i.e., the IP layer) to interconnect existing
networks
- Add a layer (i.e., transport layer) to provide
multiplexing/demultiplexing, reliability, and in-order delivery

TCP
- Connection establishment  three way handshake
- Flow control  based on sliding window protocol
- Congestion control  next lecture
[email protected]
29