Download AshkanPaya

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

Remote Desktop Services wikipedia , lookup

RapidIO wikipedia , lookup

Net bias wikipedia , lookup

Deep packet inspection wikipedia , lookup

Lag wikipedia , lookup

Cracking of wireless networks wikipedia , lookup

Real-Time Messaging Protocol wikipedia , lookup

IEEE 1355 wikipedia , lookup

Recursive InterNetwork Architecture (RINA) wikipedia , lookup

Internet protocol suite wikipedia , lookup

UniPro protocol stack wikipedia , lookup

TCP congestion control wikipedia , lookup

Transcript
(Congestion Window Control)
Ashkan Paya
1
Based on
 An argument for increasing TCP’s initial congestion
window
Nandita Dukkipati, Tiziana Refice, Yuchung Cheng,
Jerry Chu, Tom Herbert, Amit Agarwal, Arvind Jain
and Natalia Sutin. Google Inc.
2
Content
 Terminology
 TCP explanation and origin
 OSI model
 TCP header formats and fields
 TCP Flow Control
3
Terminology I
 TCP: Transmission Control Protocol
 IP : Internet Protocol
 ACK : acknowledgement
 URG : Urgent Pointer field significance
 PSH : Push or send data to application
 SYN : Synchronize sequence numbers
 RST : Reset (abort) the connection
 FIN : No more data
4
Terminology II
 cwnd : Congestion Window(an interval that sender choose





a number of sending bytes from that)
awnd : advertised window (how many more bytes the
receiver is willing to accept beyond the last acknowledged
byte)
ss_thresh : defined constant as a critical value
RTT : Round Trip Time
BDP : Bandwidth Delay Product
Time Out : duration from sending a packet that will be lost
and retransmission of that until receiving
acknowledgement.
5
What is TCP?
 TCP is one of the main protocols in TCP/IP networks.
TCP enables two hosts to establish a connection and
exchange streams of data (packets) and guarantees
delivery of them in the same order which they were
sent. In other words, TCP provides reliable, ordered
delivery of a stream of bytes from a program on one
computer to another program on another computer.
TCP is the protocol that major Internet applications
such as the World Wide Web, email and file transfer
rely on. Packet loss is one of the major concerns here.
6
What is TCP?
 On the other hand, other applications, which do not
require reliable data stream service, may use the User
Datagram Protocol (UDP), which provides a datagram
service that emphasizes reduced latency over
reliability. Applications like Skype, ooVoo and almost
all of the video/audio stream based applications using
UDP protocol. Packet loss is not important here.
7
OSI model
8
9
TCP Header format
10
TCP header fields
 Source and destination port : identifies the sending
and receiving ports. (16 bits)
 Sequence Number : random number from (2^32 _ 1)
 ACK Number : A dedicated ACK or piggybacked ACK
contains the sequence number of the next data
segment the receiver expects. (= sequence number)
 Heather Length
 Reserved : reserved for future use. Must be zero
11
TCP header fields
 Flags : URG, ACK , PSH, RST, SYN and FIN. (6 bits)
 Window : flow control credit allocation, value of
advertised window. (16 bits)
 Checksum : this field is used for error-checking of the
header and data. (16 bits)
 Urgent Pointer : if the URG flag is set, then this 16-bit
field is an offset from the sequence number indicating
the last urgent data byte . Indicates data that is to be
delivered as quickly as possible. This pointer specifies
the position where urgent data ends.
 Options : Variables such that time stamping to
augment seq.num in high speed connections
12
TCP Connection Establishment

sender
(Client)
receiver
1
(server)
2
3
Three-way Hand shake Protocol
1. SYN, sequence number =x
2. SYN+ACK seq.num = y
Acknowledgement x+1
3. ACK, acknowledgement y+1
13
TCP Connection Termination
client
1
2
3
4
server
1. FIN, seqNum = x
2. acknowledgement = x+1
3. FIN, seqNum = y
4. acknowledgement = y+1
14
TCP Flow Control
[1]
15
Flow control is needed to:
16
Flow control is needed to:
 Prevent sender from “swamping” receiver with data
e.g. a fast server sending to a slow client.
17
Flow control is needed to:
 Prevent sender from “swamping” receiver with data
e.g. a fast server sending to a slow client.
 Provide congestion control inside the network, e.g. in
gateways or routers.
18
Flow control is needed to:
 Prevent sender from “swamping” receiver with data
e.g. a fast server sending to a slow client.
 Provide congestion control inside the network, e.g. in
gateways or routers.
* In either case, a node can be forced to discard packets
due to lack of buffer space.
19
Flow control can solve:
20
Flow control can solve:
end-to-end flow control
21
Congestion control mechanism
22
Congestion control mechanism
 1. Slow start phase initial_cwnd = 1
23
Congestion control mechanism
 1. Slow start phase initial_cwnd = 1
 2. Congestion avoidance phase
24
Congestion control mechanism
 1. Slow start phase initial_cwnd = 1
 2. Congestion avoidance phase
 3. Congestion detection and recovery
a) Standard Recovery ( recovery by timeout)
b) Fast retransmission and fast recovery
25
26
Increasing initial cwnd
 TCP initial_cwnd has remained unchanged since 2002.
 in 2009 one paper[2] indicated that average
connection bandwidth is 1.7 Mbps with more than
50% of clients have bandwidth above 2 Mbps, while
the usage of narrowband (<256 Kbps) has shrunk to
about 5% of clients.
 Applications like IE8, Firefox 3 devised their own
mechanism.
27
Advantages:
 Reduce latency
latency of a transfer completing in slow start without
losses is:
28
Advantages:
 Reduce latency
latency of a transfer completing in slow start without
losses is:
29
Advantages:
 Keep up with growth in Web page sizes
The Internet average Web page size is 384 KB [2]
including HTTP headers and composed resources .
Now web browsers using multiple TCP connection
using slow start.
e.g. IE8 can open 180 connections, Firefox open more
than 24 connections[4]
Therefore, increasing initial_cnwd mitigate that need.
30
Advantages:
 Allow short transfers to compete fairly with bulk data
traffic.
Internet measurements indicate that most of the
network traffic are bulk data transfers ( such as video),
while majority of connections are short-lived and
transfer small amount of data.
31
Therefore,
 I)Minimize average Web page download time,
 II)Minimize impact on tail latency due to increased
packet loss,
 III)Maintain fairness with competing flows,
32
Init_cwnd and latency
33
Now…
 What is the best initial congestion window number?
34
Now…
 What is the best initial congestion window number?
Based on experiments and charts presented in this
paper, 10 segments (≈15KB)
* Ethernet and maximum size of segment is 1430 bytes.
35
Negative impact
 The effect on retransmission rate
TCP’s retransmission rate represents an upper bound
for the percentage of packets lost due to congestion.
36
Ratio of retransmitted bytes to that of unique bytes
transmitted, expressed as a percentage.
Initial_cwnd=10
All
Avg DC
Web search
Maps
Photos
Exp
2.29
1.73
4.17
2.64
Base
1.98
1.55
3.27
2.25
Diff
0.31
0.18
0.90
0.39
Slow DC
All
Web search
Maps
Photos
Exp
4.21
3.50
5.79
6.10
Base
3.54
2.98
3.94
4.97
Diff
0.67
0.52
1.85
1.12
37
Conclusion
 Increasing initial congestion window is a small change
with a significant positive impact on Web transfer
latency.
 Mitigate the need for multiple TCP connections to
increase download speed
 IETF trying to standardize the TCP’s initial congestion
window to at least 10 segments
 Further work should focus on eliminating the initial
congestion window as a manifest constant to scale
even large network speeds and Web page sizes
38
Thank you for your time and I appreciate
your consideration
39
References
 An Argument for Incresing TCP’s Initial Congestion
Window google Inc
 Akamai. The state of the internet. 3rd quarter 2009
http://www.akamai.com/stateofinternet
 S.Ramachandran and A. jain : size and number of
resources
http://code.google.com/speed/article/webmetrics.html
40