lecture 8 - transport layer · 4 principle of transport layer (1) l provide transport means between...
TRANSCRIPT
![Page 1: Lecture 8 - Transport layer · 4 Principle of transport layer (1) l Provide transport means between end applications l Sender: l Receives data from application l Place data in segments](https://reader033.vdocuments.mx/reader033/viewer/2022043017/5f3999bdba8cec08014162c1/html5/thumbnails/1.jpg)
1
Lecture 8: Transport layer
Reading 6.2, 6.3, 6.4, 6.5 Computer Networks, Tanenbaum
![Page 2: Lecture 8 - Transport layer · 4 Principle of transport layer (1) l Provide transport means between end applications l Sender: l Receives data from application l Place data in segments](https://reader033.vdocuments.mx/reader033/viewer/2022043017/5f3999bdba8cec08014162c1/html5/thumbnails/2.jpg)
2
Contents
l Principles of transport layer l UDP protocol l TCP protocol
![Page 3: Lecture 8 - Transport layer · 4 Principle of transport layer (1) l Provide transport means between end applications l Sender: l Receives data from application l Place data in segments](https://reader033.vdocuments.mx/reader033/viewer/2022043017/5f3999bdba8cec08014162c1/html5/thumbnails/3.jpg)
3
Transport layer in OSI model Application
(HTTP, Mail, …)
Transport (UDP, TCP …)
Network (IP, ICMP…)
Datalink (Ethernet, ADSL…)
Physical (bits…)
Support applications
Transferring data between applications
Routing and forwarding data between hosts
![Page 4: Lecture 8 - Transport layer · 4 Principle of transport layer (1) l Provide transport means between end applications l Sender: l Receives data from application l Place data in segments](https://reader033.vdocuments.mx/reader033/viewer/2022043017/5f3999bdba8cec08014162c1/html5/thumbnails/4.jpg)
4
Principle of transport layer (1) l Provide transport means
between end applications l Sender:
l Receives data from application l Place data in segments and
give to network layer l If the data size is too big, it is
divided into many segments l Receiver:
l Receives segments from network layer
l Reconstitute data from segments and deliver to the application
application transport network data link physical
application transport network data link physical
![Page 5: Lecture 8 - Transport layer · 4 Principle of transport layer (1) l Provide transport means between end applications l Sender: l Receives data from application l Place data in segments](https://reader033.vdocuments.mx/reader033/viewer/2022043017/5f3999bdba8cec08014162c1/html5/thumbnails/5.jpg)
5
Principle of transport layer (2) l Transport layer is installed in
end systems l Not installed in routers,
switches… l Two kinds of transport layer
services l Reliable, connection-
oriented, e.g TCP l Not reliable, connectionless,
e.g. UDP
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 data link physical
application transport network data link physical
![Page 6: Lecture 8 - Transport layer · 4 Principle of transport layer (1) l Provide transport means between end applications l Sender: l Receives data from application l Place data in segments](https://reader033.vdocuments.mx/reader033/viewer/2022043017/5f3999bdba8cec08014162c1/html5/thumbnails/6.jpg)
6
Why two kinds of service?
l Requirements from application layer are various l Some applications need transport service with 100%
fiability such as mail, web… l Should use TCP transport service
l Some applications need to transmit data as fast as possible, with some fault tolerance, e.g. VoIP, Video Streaming l Should use UDP transport service
![Page 7: Lecture 8 - Transport layer · 4 Principle of transport layer (1) l Provide transport means between end applications l Sender: l Receives data from application l Place data in segments](https://reader033.vdocuments.mx/reader033/viewer/2022043017/5f3999bdba8cec08014162c1/html5/thumbnails/7.jpg)
7
Applications and transport services
Application
e-mail remote terminal access
Web file transfer
streaming multimedia
Internet telephony
Application protocols SMTP Telnet HTTP FTP Specific protocols (e.g. RealNetworks) Specific protocols (e.g., Vonage,Dialpad)
Transport protocols TCP TCP TCP TCP TCP or UDP Usually UDP
![Page 8: Lecture 8 - Transport layer · 4 Principle of transport layer (1) l Provide transport means between end applications l Sender: l Receives data from application l Place data in segments](https://reader033.vdocuments.mx/reader033/viewer/2022043017/5f3999bdba8cec08014162c1/html5/thumbnails/8.jpg)
8
Functionalities
MUX/DEMUX
![Page 9: Lecture 8 - Transport layer · 4 Principle of transport layer (1) l Provide transport means between end applications l Sender: l Receives data from application l Place data in segments](https://reader033.vdocuments.mx/reader033/viewer/2022043017/5f3999bdba8cec08014162c1/html5/thumbnails/9.jpg)
9
Mux/Demux
Multiplexing Demultiplexing
Network protocols
HTTP FTP Chat HTTP FTP Chat
Transport
protocols
Application protocols
![Page 10: Lecture 8 - Transport layer · 4 Principle of transport layer (1) l Provide transport means between end applications l Sender: l Receives data from application l Place data in segments](https://reader033.vdocuments.mx/reader033/viewer/2022043017/5f3999bdba8cec08014162c1/html5/thumbnails/10.jpg)
10
How does it Mux/Demux?
l How to distinguish applications running in the same hosts? l Use an identifier called port
number (16 bits) l Each process is assigned a
port l Socket: A pair of IP address
and port l Socket identifies an unique
application process all over the world
source port # dest port # 32 bits
application data
(message)
other header fields
TCP/UDP segment format
![Page 11: Lecture 8 - Transport layer · 4 Principle of transport layer (1) l Provide transport means between end applications l Sender: l Receives data from application l Place data in segments](https://reader033.vdocuments.mx/reader033/viewer/2022043017/5f3999bdba8cec08014162c1/html5/thumbnails/11.jpg)
11
Checksum l Phát hiện lỗi bit trong các đoạn tin/gói tin l Nguyên lý giống như checksum (16 bits) của giao thức
IP l Ví dụ:
1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
Tổng Checksum
![Page 12: Lecture 8 - Transport layer · 4 Principle of transport layer (1) l Provide transport means between end applications l Sender: l Receives data from application l Place data in segments](https://reader033.vdocuments.mx/reader033/viewer/2022043017/5f3999bdba8cec08014162c1/html5/thumbnails/12.jpg)
12
UDP User Datagram Protocol
![Page 13: Lecture 8 - Transport layer · 4 Principle of transport layer (1) l Provide transport means between end applications l Sender: l Receives data from application l Place data in segments](https://reader033.vdocuments.mx/reader033/viewer/2022043017/5f3999bdba8cec08014162c1/html5/thumbnails/13.jpg)
13
“Best effort” protocols l Why UDP?
l No need to establish connection (cause delay) l Simple l Small header l No congestion control à send data as fast as possible
l Main functionality of UDP? l MUX/DEMUX l Detect error by checksum
![Page 14: Lecture 8 - Transport layer · 4 Principle of transport layer (1) l Provide transport means between end applications l Sender: l Receives data from application l Place data in segments](https://reader033.vdocuments.mx/reader033/viewer/2022043017/5f3999bdba8cec08014162c1/html5/thumbnails/14.jpg)
14
Datagram format
source port # dest port #
32 bits
Application data
(message)
length checksum
l Data unit in UDP is called datagram
Length of the datagram in
byte
![Page 15: Lecture 8 - Transport layer · 4 Principle of transport layer (1) l Provide transport means between end applications l Sender: l Receives data from application l Place data in segments](https://reader033.vdocuments.mx/reader033/viewer/2022043017/5f3999bdba8cec08014162c1/html5/thumbnails/15.jpg)
15
Issues of UDP l No congestion control
l Cause overload of the Internet l No reliability
l Applications have to implement themselves mechanisms to control errors
![Page 16: Lecture 8 - Transport layer · 4 Principle of transport layer (1) l Provide transport means between end applications l Sender: l Receives data from application l Place data in segments](https://reader033.vdocuments.mx/reader033/viewer/2022043017/5f3999bdba8cec08014162c1/html5/thumbnails/16.jpg)
16
Error control
![Page 17: Lecture 8 - Transport layer · 4 Principle of transport layer (1) l Provide transport means between end applications l Sender: l Receives data from application l Place data in segments](https://reader033.vdocuments.mx/reader033/viewer/2022043017/5f3999bdba8cec08014162c1/html5/thumbnails/17.jpg)
17
Error control
l How to detect error? l Checksum
l How to inform sender? l ACK (acknowledgements): l NAK (negative acknowledgements): tell sender
that pkt has error l Reaction of sender?
l Retransmit the error packet once received NAK
![Page 18: Lecture 8 - Transport layer · 4 Principle of transport layer (1) l Provide transport means between end applications l Sender: l Receives data from application l Place data in segments](https://reader033.vdocuments.mx/reader033/viewer/2022043017/5f3999bdba8cec08014162c1/html5/thumbnails/18.jpg)
18
Error control
Time Time
Sender Receiver
pkt0
pkt1
pkt1
NAK
ACK
send pkt0
pkt1 is corrupted
rcv ACK send pkt1
rcv NAK resend pkt1
pkt1 is OK
![Page 19: Lecture 8 - Transport layer · 4 Principle of transport layer (1) l Provide transport means between end applications l Sender: l Receives data from application l Place data in segments](https://reader033.vdocuments.mx/reader033/viewer/2022043017/5f3999bdba8cec08014162c1/html5/thumbnails/19.jpg)
19
Error in ACK/NAK l ACK/ NAK may be
corrupted l Packet is resent l How to solve
packet repetition? l Use Seq.#
Time Time
Sender Receiver
pkt0
pkt1
pkt1
ACK
ACK
send pkt0
pkt1 is OK
rcv ACK send pkt1
Rcv corrupted packet! resend pkt1
pkt0 is OK
rcv pkt1
duplicate,
discard it
![Page 20: Lecture 8 - Transport layer · 4 Principle of transport layer (1) l Provide transport means between end applications l Sender: l Receives data from application l Place data in segments](https://reader033.vdocuments.mx/reader033/viewer/2022043017/5f3999bdba8cec08014162c1/html5/thumbnails/20.jpg)
20
Error control without NAK
Time Time
Sender Receiver
pkt0
pkt1
pkt0
ACK1
ACK0
send pkt0
pkt1 is OK
rcv ACK0 send pkt1
rcv ACK1 send pkt0
pkt0 is OK
pkt0 is corrupted
pkt0
ACK1
rcv ACK1 resend pkt0
![Page 21: Lecture 8 - Transport layer · 4 Principle of transport layer (1) l Provide transport means between end applications l Sender: l Receives data from application l Place data in segments](https://reader033.vdocuments.mx/reader033/viewer/2022043017/5f3999bdba8cec08014162c1/html5/thumbnails/21.jpg)
21
Chanel with error and packet lost l Data and ACK can be lost
l If no ACK is received?How sender knows and decides to resend data?
l Sender should wait for ACK for a certain time. Timeout!
l How long should be timeout? l At least 1 RTT (Round Trip Time) l Need to start a timer each time sending a packet
l What if packet arrives and ACK is lost? l Packet should be numbered.
![Page 22: Lecture 8 - Transport layer · 4 Principle of transport layer (1) l Provide transport means between end applications l Sender: l Receives data from application l Place data in segments](https://reader033.vdocuments.mx/reader033/viewer/2022043017/5f3999bdba8cec08014162c1/html5/thumbnails/22.jpg)
22
Illustration
![Page 23: Lecture 8 - Transport layer · 4 Principle of transport layer (1) l Provide transport means between end applications l Sender: l Receives data from application l Place data in segments](https://reader033.vdocuments.mx/reader033/viewer/2022043017/5f3999bdba8cec08014162c1/html5/thumbnails/23.jpg)
23
Illustration
![Page 24: Lecture 8 - Transport layer · 4 Principle of transport layer (1) l Provide transport means between end applications l Sender: l Receives data from application l Place data in segments](https://reader033.vdocuments.mx/reader033/viewer/2022043017/5f3999bdba8cec08014162c1/html5/thumbnails/24.jpg)
24
Transmission in pipeline
Sender Receiver
ACKs
Data pkts
Sender Receiver
ACK
1 data pkt
![Page 25: Lecture 8 - Transport layer · 4 Principle of transport layer (1) l Provide transport means between end applications l Sender: l Receives data from application l Place data in segments](https://reader033.vdocuments.mx/reader033/viewer/2022043017/5f3999bdba8cec08014162c1/html5/thumbnails/25.jpg)
25
Comparison of efficiency
0
sender
time
RTT
L / R
RTT + L / R
Performance = L / R RTT + L / R
time
sender receiver
RTT
L / R
RTT + L / R
time time
Performance = 3 * L / R RTT + L / R
stop-and-wait Pipeline
L: Size of data pkt R: Link bandwidth RTT: Round trip time
![Page 26: Lecture 8 - Transport layer · 4 Principle of transport layer (1) l Provide transport means between end applications l Sender: l Receives data from application l Place data in segments](https://reader033.vdocuments.mx/reader033/viewer/2022043017/5f3999bdba8cec08014162c1/html5/thumbnails/26.jpg)
26
TCP Transmission Control Protocol
TCP segment structure Connection management
Flow control Congestion control
![Page 27: Lecture 8 - Transport layer · 4 Principle of transport layer (1) l Provide transport means between end applications l Sender: l Receives data from application l Place data in segments](https://reader033.vdocuments.mx/reader033/viewer/2022043017/5f3999bdba8cec08014162c1/html5/thumbnails/27.jpg)
27
Overview of TCP l Connection oriented
l 3 steps hand-shake l Data transmission in stream of byte, reliable
l Use buffer l Transmit data in pipeline
l Increase the performance l Flow control
l Sliding windows l Congestion control
l Detect congestion and solve
![Page 28: Lecture 8 - Transport layer · 4 Principle of transport layer (1) l Provide transport means between end applications l Sender: l Receives data from application l Place data in segments](https://reader033.vdocuments.mx/reader033/viewer/2022043017/5f3999bdba8cec08014162c1/html5/thumbnails/28.jpg)
28
TCP segment
source port # dest port #
32 bits
application data
(variable length)
sequence number acknowledgement number
Receive window
Urg data pnter checksum F S R P A U head
len not
used
Options (variable length)
URG: urgent data
ACK: ACK #
PSH: data needs to be sent immediately
RST, SYN, FIN: Flag for special
segment
- For flow control - with sliding window
- For reliable transmission
![Page 29: Lecture 8 - Transport layer · 4 Principle of transport layer (1) l Provide transport means between end applications l Sender: l Receives data from application l Place data in segments](https://reader033.vdocuments.mx/reader033/viewer/2022043017/5f3999bdba8cec08014162c1/html5/thumbnails/29.jpg)
29
How TCP provide reliable service?
l In order to assure if data arrives to destination: l Seq. # l Ack
l TCP cycle life: l Connection establishing
l 3 steps l Data transmission l Close connection
![Page 30: Lecture 8 - Transport layer · 4 Principle of transport layer (1) l Provide transport means between end applications l Sender: l Receives data from application l Place data in segments](https://reader033.vdocuments.mx/reader033/viewer/2022043017/5f3999bdba8cec08014162c1/html5/thumbnails/30.jpg)
30
Acknowledgement in TCP Seq. #:
l Index of the first byte of the segment in the data stream
ACK: l The index of the first
byte expected to receive from the other-side
l Implicitly to confirm that the ACK senders have received well previous bytes
Host A Host B
Seq=42, ACK=79, data = ‘C’
Seq=79, ACK=43, data = ‘C’
Seq=43, ACK=80
User types ‘C’
host ACKs receipt
of echoed ‘C’
host ACKs receipt of ‘C’, echoes
back ‘C’
time
simple telnet scenario
![Page 31: Lecture 8 - Transport layer · 4 Principle of transport layer (1) l Provide transport means between end applications l Sender: l Receives data from application l Place data in segments](https://reader033.vdocuments.mx/reader033/viewer/2022043017/5f3999bdba8cec08014162c1/html5/thumbnails/31.jpg)
31
Connection establishing in TCP : 3 steps
l Bước 1: A sends SYN to B l Indicate initial value of seq # of
A l No data
l Bước 2: B receives SYN, replies by SYNACK l B initiates the buffer on its side l Indicate initial value of seq. # of
B l Bước 3: A receives SYNACK,
replies ACK, maybe with data.
A B
SYN
ACK
ACK/SYN
![Page 32: Lecture 8 - Transport layer · 4 Principle of transport layer (1) l Provide transport means between end applications l Sender: l Receives data from application l Place data in segments](https://reader033.vdocuments.mx/reader033/viewer/2022043017/5f3999bdba8cec08014162c1/html5/thumbnails/32.jpg)
32
Close connection A
FIN
B
ACK
ACK
FIN
closing
closing
closed
timed
wai
t closed
l Step 1: Send FIN to B
l Step 2: B receives FIN, replies ACK, closes the connection and sends FIN.
l Step 3: A receives FIN, replies ACK, go to “waiting”.
l Bước 4: B receives ACK. close connection
![Page 33: Lecture 8 - Transport layer · 4 Principle of transport layer (1) l Provide transport means between end applications l Sender: l Receives data from application l Place data in segments](https://reader033.vdocuments.mx/reader033/viewer/2022043017/5f3999bdba8cec08014162c1/html5/thumbnails/33.jpg)
33
Symplified life cycle of TCP
SYN_SENT
FIN_WAIT_1
FIN_WAIT_2 ESTABLISHED
Receive ACK Send nothing
Receive SYN/ACK Send ACK
CLOSED
TIME_WAIT
CLOSED
LISTEN LAST_ACK
SYN_RCVD CLOSE_WAIT
ESTABLISHED
Receive SYN Send SYN/ACK
Receive ACK Send nothing
Receive FIN Send ACK
Send FIN
Receive ACK Send nothing
Client application Initiates a TCP connection Server application
Creates a listen socket
Send SYN
Send FIN
Wait 30 sec.
Receive FIN Send ACK
Client application Initiates close connection
![Page 34: Lecture 8 - Transport layer · 4 Principle of transport layer (1) l Provide transport means between end applications l Sender: l Receives data from application l Place data in segments](https://reader033.vdocuments.mx/reader033/viewer/2022043017/5f3999bdba8cec08014162c1/html5/thumbnails/34.jpg)
34
Flow control
![Page 35: Lecture 8 - Transport layer · 4 Principle of transport layer (1) l Provide transport means between end applications l Sender: l Receives data from application l Place data in segments](https://reader033.vdocuments.mx/reader033/viewer/2022043017/5f3999bdba8cec08014162c1/html5/thumbnails/35.jpg)
35
Flow control(1) A B
A B
Slow Overload
![Page 36: Lecture 8 - Transport layer · 4 Principle of transport layer (1) l Provide transport means between end applications l Sender: l Receives data from application l Place data in segments](https://reader033.vdocuments.mx/reader033/viewer/2022043017/5f3999bdba8cec08014162c1/html5/thumbnails/36.jpg)
36
Flow control (2)
l Control the amount of data to be sent l Assure the best efficiency l Avoid overloading the receiver.
l Two windows l Rwnd: Receive window on receiver side l CWnd: Congestion window on sender side
l The maximum amount of data to be sent should be min(Rwnd, Cwnd)
![Page 37: Lecture 8 - Transport layer · 4 Principle of transport layer (1) l Provide transport means between end applications l Sender: l Receives data from application l Place data in segments](https://reader033.vdocuments.mx/reader033/viewer/2022043017/5f3999bdba8cec08014162c1/html5/thumbnails/37.jpg)
37
Flow control TCP
l Size of free buffer = Rwnd = RcvBuffer-[LastByteRcvd
- LastByteRead]
![Page 38: Lecture 8 - Transport layer · 4 Principle of transport layer (1) l Provide transport means between end applications l Sender: l Receives data from application l Place data in segments](https://reader033.vdocuments.mx/reader033/viewer/2022043017/5f3999bdba8cec08014162c1/html5/thumbnails/38.jpg)
38
Information exchanged on Rwnd
A B
ACK (rwnd = 100)
data
data
l Receiver inform regularly to senders the value of Rwnd in acknowledgment segments
![Page 39: Lecture 8 - Transport layer · 4 Principle of transport layer (1) l Provide transport means between end applications l Sender: l Receives data from application l Place data in segments](https://reader033.vdocuments.mx/reader033/viewer/2022043017/5f3999bdba8cec08014162c1/html5/thumbnails/39.jpg)
39
Congestion control in TCP
![Page 40: Lecture 8 - Transport layer · 4 Principle of transport layer (1) l Provide transport means between end applications l Sender: l Receives data from application l Place data in segments](https://reader033.vdocuments.mx/reader033/viewer/2022043017/5f3999bdba8cec08014162c1/html5/thumbnails/40.jpg)
40
Overview of Congestion control l When congestion happens?
l Too many pairs of senders-receivers in the network l High traffic
l Consequence of congestion l Packet loss l Reduce of throughput, increase of delay l Network situation become worst with reliable protocol
such as TCP. Congestion
occur
![Page 41: Lecture 8 - Transport layer · 4 Principle of transport layer (1) l Provide transport means between end applications l Sender: l Receives data from application l Place data in segments](https://reader033.vdocuments.mx/reader033/viewer/2022043017/5f3999bdba8cec08014162c1/html5/thumbnails/41.jpg)
41
Principles of congestion control
l Slow-start l Increases the transmission
speed in exponential order l Increase until a threshold
l Congestion avoidance l Increase the transmission
speed in linear order until congestion is detected
l How to detect the congestion? l By packets lost? 2
4
6
8
10
12
14
16
18
20
SS
Threshold=16
cwnd
![Page 42: Lecture 8 - Transport layer · 4 Principle of transport layer (1) l Provide transport means between end applications l Sender: l Receives data from application l Place data in segments](https://reader033.vdocuments.mx/reader033/viewer/2022043017/5f3999bdba8cec08014162c1/html5/thumbnails/42.jpg)
42
TCP Slow Start (1) l Main idea
l Initiate cwnd =1 MSS (Maximum segment size) l Increase cwnd =+1 MSS after each reception of a
ACK packet from the receiver. l Increase slowly but the speed increase in
exponential order l Increase until a threshold: ssthresh l After that TCP move to congestion avoidance
period
![Page 43: Lecture 8 - Transport layer · 4 Principle of transport layer (1) l Provide transport means between end applications l Sender: l Receives data from application l Place data in segments](https://reader033.vdocuments.mx/reader033/viewer/2022043017/5f3999bdba8cec08014162c1/html5/thumbnails/43.jpg)
43
TCP Slow Start (2) Host A
one segment RT
T
Host B
time
two segments
four segments
![Page 44: Lecture 8 - Transport layer · 4 Principle of transport layer (1) l Provide transport means between end applications l Sender: l Receives data from application l Place data in segments](https://reader033.vdocuments.mx/reader033/viewer/2022043017/5f3999bdba8cec08014162c1/html5/thumbnails/44.jpg)
44
Congestion avoidance
l Main idea l Increase cwnd in
additional order until cwnd reaches to ssthresh
l After each RTT, cwnd =cwnd + 1 MSS
Host A Host B
one segment
RTT
time
two segments
three segments
![Page 45: Lecture 8 - Transport layer · 4 Principle of transport layer (1) l Provide transport means between end applications l Sender: l Receives data from application l Place data in segments](https://reader033.vdocuments.mx/reader033/viewer/2022043017/5f3999bdba8cec08014162c1/html5/thumbnails/45.jpg)
45
TCP reaction in congestion situation (1)
l Reduce the transmission speed l How to detect the congestion?
l If there are some re-transmits è There might be congestion
l When the source node need to re-transmit data? l Timeout! l When it receives multiple ACK for the same
segment
![Page 46: Lecture 8 - Transport layer · 4 Principle of transport layer (1) l Provide transport means between end applications l Sender: l Receives data from application l Place data in segments](https://reader033.vdocuments.mx/reader033/viewer/2022043017/5f3999bdba8cec08014162c1/html5/thumbnails/46.jpg)
46
TCP reaction in congestion situation(2) l When sender reach timeout but still does not receive
ACK for a segment l TCP sets ssthresh = ½ current cwnd l TCP sets cwnd =1 MSS l TCP move to slow start phase
l If sender receives 3 identical ACK l TCP sets ssthresh = ½ current cwnd l TCP sets cwnd = ssthresh l TCP move to “congestion avoidance”
![Page 47: Lecture 8 - Transport layer · 4 Principle of transport layer (1) l Provide transport means between end applications l Sender: l Receives data from application l Place data in segments](https://reader033.vdocuments.mx/reader033/viewer/2022043017/5f3999bdba8cec08014162c1/html5/thumbnails/47.jpg)
47
Congestion control – illustration
2
4
6
8
10
12
14
16
18
20
22 Timeout
3 ACKs SS
SS AI
AI
AI
Threshold=16
Threshold=10
Threshold=6
Threshold is set to half of cwnd (20) And slow start starts
Threshold is set to half of cwnd (12) And additive increase starts
cwnd
Step
![Page 48: Lecture 8 - Transport layer · 4 Principle of transport layer (1) l Provide transport means between end applications l Sender: l Receives data from application l Place data in segments](https://reader033.vdocuments.mx/reader033/viewer/2022043017/5f3999bdba8cec08014162c1/html5/thumbnails/48.jpg)
Exercise
l Assume that we need transmit 1 file l File size O =100KB over TCP connection l S is the size of each TCP segment, S = 536 byte l RTT = 100 ms.
l Assume that the congestion window size of TCP is fixed with value W. What is the minimum transmission time? If the transmission speed is l R = 10 Mbit/s; l R= 100 Mbits/s. 48
![Page 49: Lecture 8 - Transport layer · 4 Principle of transport layer (1) l Provide transport means between end applications l Sender: l Receives data from application l Place data in segments](https://reader033.vdocuments.mx/reader033/viewer/2022043017/5f3999bdba8cec08014162c1/html5/thumbnails/49.jpg)
Solution (cont.)
l T transmit (W packet) = W * S/R l Transmit without waiting: l => (W-1)*S/R >= RTT l => W >= RTT*R/S +1 l Time to transmit all data L = L/R + RTT l R=100 Mbps
l W>= 100ms * 100 Mbps/ (536*8) + 1
49
![Page 50: Lecture 8 - Transport layer · 4 Principle of transport layer (1) l Provide transport means between end applications l Sender: l Receives data from application l Place data in segments](https://reader033.vdocuments.mx/reader033/viewer/2022043017/5f3999bdba8cec08014162c1/html5/thumbnails/50.jpg)
Exercise
l Assume that we need transmit 1 file l File size O =100KB over TCP connection l S is the size of each TCP segment, S = 536 byte l RTT = 100 ms.
l Assume that the congestion window of TCP works according to slow-start mechanism.
l What is the size of the congestion window when the whole file is transmited.
l How much of time is required for transmitting the file? If R = 10 Mbit/s; R= 100 Mbits/s. 50