4. TCP Congestion Control: Details
Congestion Window
Imposes a constraint on the rate at which a TCP sender can send
traffic into the network
The amount of unacknowledged data at a sender may not exceed
the minimum of CongWin and RcvWindow
LastByteSent-LastByteAcked min{CongWin, RcvWindow}
CongWin is dynamic, function of perceived network
congestion
TCP takes arrival of ACKs as successful delivery
Increases Congestion Window
Self Clocking
TCP uses ACKs to trigger its increase in congestion window size
5. TCP Congestion Control Algorithm:
Additive Increase Multiplicative Decrease (AIMD)
Additive Increase
Increase CongWin by 1 MSS until loss detected
Multiplicative Decrease
Cut CongWin in half after loss
CongWin is 20 Kbytes, cut it to half after loss
Continue to drop but not allowed to drop below 1 MSS
congestion
window
24 Kbytes
16 Kbytes
8 Kbytes
time
6. TCP Slow Start
AIMD can take a long time
Host A
Host B
RTT
to ramp up to full capacity
from scratch
When connection begins,
CongWin = 1 MSS
Increase rate exponentially
until first loss event:
Double CongWin every
RTT
Done by incrementing
CongWin for every ACK
received
Summary: Initial rate is
slow but ramps up
exponentially fast
time
7. Refinement: Inferring Loss
3 Duplicate ACKs
Indicates
network capable of
delivering some segments.
Timeout
Indicates
a “more alarming”
congestion scenario.
8. Refinement: Inferring Loss
After timeout event
CongWin instead set to 1 MSS
Window then grows exponentially (enters slow
start)
Till it reaches one half of the value it had before
the timeout
Window then grows linearly (congestion avoidance)
Threshold Value
Determines the window size at which slow start will end
After three duplicate ACKs:
CongWin is cut in half
Window then grows linearly
Fast Retransmit and Fast Recovery
9. Refinement: Inferring Loss
TCP Tahoe
For either events
Cuts congestion window size to 1 MSS and
enters slow start
TCP Reno
Uses Fast Retransmit and Fast Recovery for
three Dupicate ACKs.
Same as Tahoe for Timeout events.
11. TCP Round Trip Time and Timeout
Retransmission Timer larger than the RTT
How much larger? How would RTT be calculated?
Sample RTT
Sample RTT fluctuates from segment to segment
Congestion in routers and varying load on end systems
TCP never computes a Sample RTT for retransmitted segments.
(Why?)
EstimatedRTT
TCP maintains an average of Sample RTT (RFC 2988)
EstimatedRTT = (1-
)*EstimatedRTT +
*SampleRTT
The new value of Estimated RTT is a weighted combination of
the previous value of Estimated RTT plus new value of Sample
RTT.
12. TCP Round Trip Time and Timeout
The recommended value of
becomes
is 0.125 in which case the formula
EstimatedRTT = 0.875*EstimatedRTT + 0.125*SampleRTT
RTT: gaia.cs.umass.edu to fantasia.eurecom.fr
350
RTT (milliseconds)
300
250
200
150
100
1
8
15
22
29
36
43
50
57
64
71
time (seconnds)
SampleRTT
Estimated RTT
78
85
92
99
106
13. Setting the Timeout Interval
• The timeout interval should be greater than or equal to
EstimatedRTT
• Not too large, delay to retransmit packet
• Desirable to set the timeout interval plus some “safety
margin.”
• Estimate of how much SampleRTT deviates from
EstimatedRTT
DevRTT = (1- )*DevRTT + *|SampleRTT-EstimatedRTT|
( = 0.25)
Then set timeout interval:
TimeoutInterval = EstimatedRTT + 4*DevRTT
For more details see RFC 2988
V. Jacobson, “Congestion Avoidance and Control”, in Proc. ACM SIGCOMM, pp. 314329, 1988.
14. TCP Connection Management
• How TCP connection is established?
– Three Way handshake?
• How TCP connection is closed?
– Four Way handshake?
Reading Assignment
17. Network layer
Transport segment from
sending to receiving host
On sending side
encapsulates segments
into datagrams
On receiving side,
delivers segments to
transport layer
Network layer protocols
in routers
Router examines header
fields in all IP datagrams
passing through it
application
transport
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
network
data link
data link
physical
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
application
transport
network
data link
physical
18. Two Key Network-Layer Functions
Forwarding: Move packets from router’s input
to appropriate router’s output
Local action of transferring a packet
Routing: Determine route taken by packets
from source to destination.
Network wide process that determines the end to
end paths
The algorithms that calculate these paths are
referred to as routing algorithms
19. Routing and Forwarding
routing algorithm
Forwarding Table
o Router Forwards a
packet by examining the
destination address of the
packet
local forwarding table
header value output link
o Routing Algorithm
value in arriving
determines the values
packet’s header
that are inserted in the
routers forwarding tables
0100
0101
0111
1001
0111
3
2
2
1
1
3 2
21. IP Address
• An IP address is a 32-bit address.
• The IP addresses are unique.
• The address space of IPv4 is
232 or 4,294,967,296.(more than 4 billion)
• Represented in binary or decimal
22. CLASSFUL ADDRESSING
• IP addressing when started used the concept of
classes.
• This architecture is called classful addressing.
• Organizations can be of different sizes
• Require varying numbers of IP addresses on the Internet.
• A system was devised whereby the IP address space
would be divided into classes.
• Each class occupies some part of the whole
address space
• Some classes are for
• Large networks on the Internet
• Smaller organizations
•
Some classes are reserved for special purposes.
23. IP Address Classes
• There are five classes in the “classful” system, which are
given letters A through E.
• The first few bits in binary notation can immediately tell
us the class of the address
25. Netid and Hostid
•An IP address is divided into Netid and Hostid
•Network Identifier (Netid): Few bits starting from
the left-most bit are used to identify the network
where the host is located.
•Host Identifier (Hostid): The remainder of the bits
are used to identify the host on the network.
•These parts are of varying lengths depending on the
class of the address.
27. Class A
• Class A is divided into 128 blocks (27)
– Each block having different Netid
• First block covers addresses from
– 0.0.0.0 to 0.255.255.255 (netid 0)
• Second block covers addresses from
– 1.0.0.0 to 1.255.255.255 (netid 1)
• The last block covers addresses from
– 127.0.0.0 to 127.255.255.255 (netid 127)
• Each block in this class contains 16,777,216 addresses
• Class A addresses were designed for large
organizations with large number of hosts attached to
their network
– 16,777,216 too large, millions of class A addresses are wasted
28. Class B
• Class B is divided into 16384 blocks (214)
– Each block having different netid
• First block covers addresses from
– 128.0.0.0 to 128.0.255.255 (netid 128.0)
• The last block covers addresses from
– 191.255.0.0 to 191.255.255.255 (netid 191.255)
• Each block in this class contains 65,536 addresses
• Class B addresses were designed for medium size
organizations with thousands of hosts attached to
their network
– 65,536 is also too large for medium size organizations, many
of class B addresses are wasted
29. Class C
• Class C is divided into 2097152 blocks (221)
– Each block having different netid
• First block covers addresses from
– 192.0.0.0 to 192.0.0.255 (netid 192.0.0)
• The last block covers addresses from
– 223.255.255.0 to 223.255.255.255 (netid
223.255.255)
• Each block in this class contains 256 addresses
• Class C addresses were designed for small
organizations
– 256 is small for most organizations
30. IP Address Classes
• Given the network address 17.0.0.0, find the
class, the netid, and the range of the
addresses?.
31. IP Address Classes
Solution
• The class is A because the first byte is between
0 and 127. The block has a netid of 17. The
addresses range from 17.0.0.0 to
17.255.255.255.
32. IP Address Classes
• Given the network address 220.34.76.0, find
the class, the block/netid, and the range of the
addresses?.
33. IP Address Classes
Solution
• The class is C because the first byte is between
192 and 223. The block has a netid of
220.34.76. The addresses range from
220.34.76.0 to 220.34.76.255
34. Issues with Classful Addressing
• Flexibility in Internal addressing:
– Thousands of hosts connected to one large network
• Inefficient Use of Address Space:
– Wastage of limited IP address space.
• Router Table Entries:
– Increase in router table entries.
Example:
• Hosts needed by organization are 5000
• Hosts in B 65,536 and in C 256
– Organization with 5,000 hosts is in a dilemma
– It can only choose to either waste 90% of a Class B address
or use 20 different Class C networks.
– Replacing with 20 C networks will increase entries in routers
35. Subnetting
• To better meet the administrative and technical
requirements of larger organizations, the “classful”
IP addressing system was enhanced through a
technique known as subnet addressing or subnetting.
• A three-level hierarchy is created: networks, which
contain subnets, each of which then has a number of
hosts.
36. Subnetting
• Subnetting adds an additional level to the hierarchy
of structures used in IP addressing.
• IP addresses must be broken into three elements
instead of two.
• Network ID is unchanged
• The host ID into a subnet ID and host ID.
• These subnet ID bits are used to identify each
subnet within the network.
• Splitting the host ID into subnet ID and host ID, we
reduce the size of the host ID portion of the address
• Class A networks have 24 bits to split between the
subnet ID and host ID: class B networks have 16, and
class C networks only 8.
37. IPv4 Datagram Format
IP protocol version
number
header length
(bytes)
“type” of data
max number
remaining hops
(decremented at
each router)
upper layer protocol
to deliver payload to
Type of Service field is now
called Differentiated
Service? See RFC 2474
Home Assignment
type of
ver head.
len service
length
fragment
16-bit identifier flgs
offset
time to
header
protocol
live
checksum
total datagram
length (bytes)
for
fragmentation/
reassembly
32 bit source IP address
32 bit destination IP address
Options (if any)
data
(variable length,
a TCP
or UDP segment)
IPV5? Does it exists?
e.g. timestamp,
record route
taken etc
Find other use?
38. IP Fragmentation & Reassembly
Network links have MTU
(Maximum Transmission Unit)
– Maximum length of data that
can be encapsulated in a
frame.
o Different link between
sender and destination
• Use different MTUs
Large IP datagram is divided
(“fragmented”)
o One datagram becomes
several datagrams
o Referred as Fragments
o “Reassembled” only at final
destination
o IP header bits used to
identify, order related
fragments
fragmentation:
in: one large datagram
out: 3 smaller datagrams
reassembly
39. IP Fragmentation & Reassembly
Identification Number, Flag and Offset fields in the datagram
header
Identification Number
o
o
Sending Host stamps the datagram with an identification number
Destination receives datagram
o Examines the identification number
Flag Bit
o
o
All fragments set to 1
Last fragment set to 0
Offset Field
o
Use to specify where fragment fits in the within the original IP
datagram
40. IP Fragmentation & Reassembly
Example
Datagram of 4000 bytes
o 20 bytes of IP header, 3980 bytes of payload
o MTU is 1500 bytes
Fragment
Bytes
ID
Offset
0 (beginning)
Flag
1st Fragment
1480 bytes
777
1 (there is more)
2nd Fragment
1480 bytes
777
185
1 (there is more)
3rd Fragment
1020 bytes
777
370
0 (Last )