tcp
DESCRIPTION
TCP. Reliable Transport in TCP TCP flow and Congestion Control. Learning objectives. TCP. Application. Application. byte stream. byte stream. segments. Transmitter. Receiver. Send buffer. Receive buffer. ACKs. TCP: Overview. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: TCP](https://reader035.vdocuments.us/reader035/viewer/2022062721/5681383e550346895d9fe7ff/html5/thumbnails/1.jpg)
TCP
![Page 2: TCP](https://reader035.vdocuments.us/reader035/viewer/2022062721/5681383e550346895d9fe7ff/html5/thumbnails/2.jpg)
Learning objectives
• Reliable Transport in TCP
• TCP flow and Congestion Control
![Page 3: TCP](https://reader035.vdocuments.us/reader035/viewer/2022062721/5681383e550346895d9fe7ff/html5/thumbnails/3.jpg)
TCP
![Page 4: TCP](https://reader035.vdocuments.us/reader035/viewer/2022062721/5681383e550346895d9fe7ff/html5/thumbnails/4.jpg)
- TCP passed block of data to IP, consisting of the TCP header and application layer data, called segment- Stream of octets passed between sender/ receiver Deliver in same octate sequence- Connection-oriented service - Full duplex - Reliable service
byte stream
Send buffer
segments
Receive buffer
byte stream
Application Application
ACKs
Transmitter Receiver
TCP: Overview
![Page 5: TCP](https://reader035.vdocuments.us/reader035/viewer/2022062721/5681383e550346895d9fe7ff/html5/thumbnails/5.jpg)
TCP Segment
Source Port Destination Port
Sequence Number
Acknowledgement Number
Checksum Urgent Pointer
Options Padding
0 4 10 16 24 31
URG
ACK
PSH
RST
SYN
FIN
HeaderLength Reserved Window Size
Data
![Page 6: TCP](https://reader035.vdocuments.us/reader035/viewer/2022062721/5681383e550346895d9fe7ff/html5/thumbnails/6.jpg)
• Source, Destination port: 16 bits - identify applications at ends of the connection
• Client Program allocates a port (usually above 1023)
• Servers are known by ports number - FTP 20, TELNET 23, SMTP 25, HTTP 80
• Port numbers are generally allocated by -- 0 -- not used -- 1- 255 -- Reserved ports for well- known services -- 256- 1023 -- Other reserved ports -- 1024- 65535 -- user- defined server ports
• Unix store general used ports in /etc/ services
TCP header fields
![Page 7: TCP](https://reader035.vdocuments.us/reader035/viewer/2022062721/5681383e550346895d9fe7ff/html5/thumbnails/7.jpg)
Socket
• Connection identification by 5 tuple --- 2 IP address, 2 port, protocol number (TCP=6) -- Socket
• IP address is unique to a node, the port is unique on a node
• A connection is identified by the socket address at its to ends: - client socket: 158. 108.33. 3, 3000; 158.108.2.71,21 - server socket: 158.108.2.71,21; 158.108.33.3,3000;
![Page 8: TCP](https://reader035.vdocuments.us/reader035/viewer/2022062721/5681383e550346895d9fe7ff/html5/thumbnails/8.jpg)
Socket: Multiple connection
• Server’s unique socket address can be accessed simultaneously by clients
![Page 9: TCP](https://reader035.vdocuments.us/reader035/viewer/2022062721/5681383e550346895d9fe7ff/html5/thumbnails/9.jpg)
TCP: Reliable Transport
• Send and wait for acknowledgment with sequence number ---sender reset timer when receives ACK
• No ACK within a certain time, retransmit the packet
---Error Recovery
![Page 10: TCP](https://reader035.vdocuments.us/reader035/viewer/2022062721/5681383e550346895d9fe7ff/html5/thumbnails/10.jpg)
TCP: Reliable Transport
Set the appropriate size of sliding window size adaptively
• Use for flow control : - Prevent sender from overloading receiver with data, e. g. high- performance server to slow PC - Congestion inside network, e. g. router performance, slow link speed
• How to provide flow control?
![Page 11: TCP](https://reader035.vdocuments.us/reader035/viewer/2022062721/5681383e550346895d9fe7ff/html5/thumbnails/11.jpg)
• Receiver “ advertises” it’s windows size in acknowledgments - Window size specifies how many bytes the receiver is willing to accept - Limited by congestion window
• Sender will adjusts buffer pointer as receiver’s advertisement
Sliding window/ Transmission window
• A larger window size allows more data to be transmitted with pending acknowledgment
• Need not to wait for acknowledgment every segment
![Page 12: TCP](https://reader035.vdocuments.us/reader035/viewer/2022062721/5681383e550346895d9fe7ff/html5/thumbnails/12.jpg)
Sliding/ Send window buffer
![Page 13: TCP](https://reader035.vdocuments.us/reader035/viewer/2022062721/5681383e550346895d9fe7ff/html5/thumbnails/13.jpg)
Connection Concept
• Before data could be transferred, a connection must be opened ---servers do passive open (listen) ---clients do active open (connect)
• When it finished, the connection is closed
• TCP has general 3 phases -- connection setup phase -- data phase -- connection close phase
• Socket is stored in „TCP control block“ TCB - with sequence number and timer values
![Page 14: TCP](https://reader035.vdocuments.us/reader035/viewer/2022062721/5681383e550346895d9fe7ff/html5/thumbnails/14.jpg)
3-way Handshake for connection establishment
Host A Host B
SYN, Seq_no = x
SYN, Seq_no = y, ACK, Ack_no = x+1
Seq_no = x+1, ACK, Ack_no = y+1
Active open
Closed
Listen
Established
Established
![Page 15: TCP](https://reader035.vdocuments.us/reader035/viewer/2022062721/5681383e550346895d9fe7ff/html5/thumbnails/15.jpg)
Seq_no = 2000, Ack_no = 1, Win = 1024, Data = 2000-3023
Seq_no = 1, Ack_no = 4048, Win = 512, Data = 1-128
Seq_no = 3024, Ack_no = 1, Win = 1024, Data = 3024-4047
Seq_no = 4048, Ack_no = 129, Win = 1024, Data = 4048-4559
t1
t2
t3
t4
Seq_no = 1, Ack_no = 2000, Win = 2048, No Data t0
TCP Window control
![Page 16: TCP](https://reader035.vdocuments.us/reader035/viewer/2022062721/5681383e550346895d9fe7ff/html5/thumbnails/16.jpg)
FIN, seq = 5086
ACK = 5087
Data, seq. = 303, ACK = 5087Deliver 150 bytes
FIN, seq. =453, ACK = 5087
ACK = 454
Host B
ACK = 453
Connection Termination
Host A
![Page 17: TCP](https://reader035.vdocuments.us/reader035/viewer/2022062721/5681383e550346895d9fe7ff/html5/thumbnails/17.jpg)
Retransmission Timer
![Page 18: TCP](https://reader035.vdocuments.us/reader035/viewer/2022062721/5681383e550346895d9fe7ff/html5/thumbnails/18.jpg)
Retransmission Timer
• With RTT, Timeout increase
![Page 19: TCP](https://reader035.vdocuments.us/reader035/viewer/2022062721/5681383e550346895d9fe7ff/html5/thumbnails/19.jpg)
RTT Measurement and Timer Backoff
![Page 20: TCP](https://reader035.vdocuments.us/reader035/viewer/2022062721/5681383e550346895d9fe7ff/html5/thumbnails/20.jpg)
TCP Flow and Congestion Control
![Page 21: TCP](https://reader035.vdocuments.us/reader035/viewer/2022062721/5681383e550346895d9fe7ff/html5/thumbnails/21.jpg)
Principle
![Page 22: TCP](https://reader035.vdocuments.us/reader035/viewer/2022062721/5681383e550346895d9fe7ff/html5/thumbnails/22.jpg)
Zero Window Probing
![Page 23: TCP](https://reader035.vdocuments.us/reader035/viewer/2022062721/5681383e550346895d9fe7ff/html5/thumbnails/23.jpg)
Silly Window Syndrome
![Page 24: TCP](https://reader035.vdocuments.us/reader035/viewer/2022062721/5681383e550346895d9fe7ff/html5/thumbnails/24.jpg)
Solutions: Silly Window Syndrome
![Page 25: TCP](https://reader035.vdocuments.us/reader035/viewer/2022062721/5681383e550346895d9fe7ff/html5/thumbnails/25.jpg)
Delayed Acknowledgment
![Page 26: TCP](https://reader035.vdocuments.us/reader035/viewer/2022062721/5681383e550346895d9fe7ff/html5/thumbnails/26.jpg)
Delayed Transmission
![Page 27: TCP](https://reader035.vdocuments.us/reader035/viewer/2022062721/5681383e550346895d9fe7ff/html5/thumbnails/27.jpg)
TCP Congestion Control Algorithm
![Page 28: TCP](https://reader035.vdocuments.us/reader035/viewer/2022062721/5681383e550346895d9fe7ff/html5/thumbnails/28.jpg)
Multiplicative Decrease
![Page 29: TCP](https://reader035.vdocuments.us/reader035/viewer/2022062721/5681383e550346895d9fe7ff/html5/thumbnails/29.jpg)
Additive Increase
![Page 30: TCP](https://reader035.vdocuments.us/reader035/viewer/2022062721/5681383e550346895d9fe7ff/html5/thumbnails/30.jpg)
Congestion Avoidance
![Page 31: TCP](https://reader035.vdocuments.us/reader035/viewer/2022062721/5681383e550346895d9fe7ff/html5/thumbnails/31.jpg)
Congestion Control Algorithms
![Page 32: TCP](https://reader035.vdocuments.us/reader035/viewer/2022062721/5681383e550346895d9fe7ff/html5/thumbnails/32.jpg)
Congestion Control Algorithms
![Page 33: TCP](https://reader035.vdocuments.us/reader035/viewer/2022062721/5681383e550346895d9fe7ff/html5/thumbnails/33.jpg)
TCP Congestion Control figure
![Page 34: TCP](https://reader035.vdocuments.us/reader035/viewer/2022062721/5681383e550346895d9fe7ff/html5/thumbnails/34.jpg)
TCP Performance Measure
![Page 35: TCP](https://reader035.vdocuments.us/reader035/viewer/2022062721/5681383e550346895d9fe7ff/html5/thumbnails/35.jpg)
Thank You