EE 122: Lecture 89 - PowerPoint PPT Presentation

1 / 29
About This Presentation
Title:

EE 122: Lecture 89

Description:

Throughput = wnd/RTT. Need to worry about sequence number wrapping ... wnd = 3. segment 1. segment 2. segment 3. ACK 1. segment 4. ACK 2. segment 5. segment 6. ACK 3 ... – PowerPoint PPT presentation

Number of Views:64
Avg rating:3.0/5.0
Slides: 30
Provided by: sto2
Category:
Tags: lecture | wnd

less

Transcript and Presenter's Notes

Title: EE 122: Lecture 89


1
EE 122 Lecture 8/9
  • Ion Stoica
  • September 20/25, 2001

2
Overview
  • TCP/IP architecture
  • TCP
  • IP and TCP headers
  • Connection establishment
  • Flow control
  • RTT estimation

3
Before Internet
  • Different packet-switching networks (e.g.,
    ARPANET, ARPA packet radio)
  • only nodes on the same network could communicate

4
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

5
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

6
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

7
Solution
Gateways (routers)
8
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

24
7
Class A
Network
Host
0
16
14
Network
Class B
Host
1
0
8
21
Network
Host
1
1
0
Class C
28
1
1
1
Class D
0
Multicast address
27
1
1
1
Class E
1
Unused
0
9
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?

10
Other Challenges
  • Errors ? require end-to-end reliability
  • Add a transport layer on top of IP
  • Different (routing) protocols ? coordinate these
    protocols

11
Transport Layer TCP and UDP
  • TCP (Transmission Control Protocol)
  • Unbounded but finite length messages
  • Byte streaming
  • Reliable and in-sequence delivery
  • Full duplex
  • Application example file transfer, telnet
  • 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)

TCP/UDP
Transport Layer
Networking Layer
IP
Link Layer
Physical Layer
12
Overview
  • TCP/IP architecture
  • TCP
  • IP and TCP headers
  • Connection establishment
  • Flow control
  • RTT estimation

13
Headers
  • 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
Application
Application
data
data
TCP UDP
TCP UDP
data
TCP/UDP
data
TCP/UDP
IP
IP
data
TCP/UDP
IP
data
TCP/UDP
IP
14
IP Header
0
4
8
16
19
31
Version
HLen
TOS
Length
Identification
Flags
Fragment offset
20 bytes
TTL
Protocol
Header checksum
Source address
Destination address
Options (variable)
  • Comments
  • HLen header length only in 32-bit words (5 lt
    HLen lt 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 Dont Fragment (DF) and More Fragments
    (MF)
  • Fragment offset all fragments excepting last
    one contain multiples of 8 bytes
  • Header checksum - uses 1s complement

15
TCP Header
0
4
10
16
31
Destination port
Source port
Sequence number
Acknowledgement
Advertised window
Flags
HdrLen
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 dont wait to fill segment
  • RESET abort connection

16
TCP Header (Cont)
  • Checksum 1s complement and is computed over
  • TCP header
  • TCP data
  • Pseudo-header (from IP header)
  • Note breaks the layering!

Source address
Destination address
TCP Segment length
0
Protocol (TCP)
17
Overview
  • TCP/IP architecture
  • TCP
  • IP and TCP headers
  • Connection establishment
  • Flow control
  • RTT estimation

18
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)
19
Overview
  • TCP/IP architecture
  • TCP
  • IP and TCP headers
  • Connection establishment
  • Flow control
  • RTT estimation

20
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

21
TCP Flow Control vs. Link Layer Flow Control
  • Flow control runs end-to-end, instead of on the
    same link
  • RTT can vary widely
  • Receivers maximum window size can vary
  • Because resources allocated to a connection
    varies
  • Senders 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

22
Flow control Window Size and Throughput
wnd 3
  • Sliding-window based flow control
  • Higher window ? higher throughput
  • Throughput wnd/RTT
  • Need to worry about sequence number wrapping
  • Remember window size control throughput

23
TCP Flow Control
  • Receiver window (MaxRcvBuf maximum buffer size
    at receiver)
  • Sender window (MaxSendBuf maximum buffer size
    at sender)

AdvertisedWindow MaxRcvBuffer (LastByteRcvd
LastByteRead)
EffectiveWindow AdvertisedWindow
(LastByteSent LastByteAcked)
MaxSendBuffer gt LastByteWritten - LastByteAcked
Sending Application
Receiving Application
LastByteWritten
LastByteRead
LastByteAcked
LastByteSent
NextByteExpected
LastByteRcvd
sequence number increases
sequence number increases
24
Overview
  • TCP/IP architecture
  • TCP
  • IP and TCP headers
  • Connection establishment
  • Flow control
  • RTT estimation

25
RTT Estimation
  • Use exponential averaging

SampleRTT
EstimatedRTT
Time
26
Problem
  • How to differentiate between the real ACK, and
    ACK of the retransmitted packet

Sender
Receiver
Sender
Receiver
Original Transmission
Original Transmission
SampleRTT
ACK
SampleRTT
Retransmission
Retransmission
ACK
27
Karn/Partridge Algorithm
  • Measure SampleRTT only for original transmissions
  • Exponential backoff ? for each retransmission,
    double EstimatedRTT

28
Jacobson/Karels Algorithm
  • Problem take into account the variance

29
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
Write a Comment
User Comments (0)
About PowerShow.com