transmission control protocol tcp
play

Transmission Control Protocol (TCP) Segmentation -- breaks message - PDF document

TCP: Transmission Control Protocol z TCP must perform typical transport layer functions: Transmission Control Protocol (TCP) Segmentation -- breaks message into packets Error recovery -- since IP is an unreliable service Srinidhi


  1. TCP: Transmission Control Protocol z TCP must perform typical transport layer functions: Transmission Control Protocol (TCP) – Segmentation -- breaks message into packets – Error recovery -- since IP is an unreliable service Srinidhi Varadarajan – End-to-end flow control -- to avoid buffer overflow – Multiplexing and demultiplexing sessions TCP Addressing and Multiplexing TCP: Transmission Control Protocol z Service provided by TCP is z TCP identifies connections as socket pairs – Reliable – Socket address is Internet address plus port – Connection-oriented -- virtual circuit – Host Internet address provided to IP – Stream-oriented -- users exchange streams of – Port uniquely identifies user or process ID on data host – Full duplex -- concurrent transfers can take z Example: place in both directions – A connection to port 21 on 128.173.40.24 – Buffered -- TCP accepts data and transmits connects to ftpd (file transfer protocol when appropriate (can be overridden with daemon) on vtopus.cs.vt.edu “push”) – Port 21 is a “well known” port number and can be determined by looking at /etc/services on a UNIX machine TCP Sliding Window Mechanism TCP Sliding Window Mechanism z TCP is built on top of IP, an unreliable z Sender maintains three pointers for datagram service each connection – Lost datagrams – Pointer to bytes sent and acknowledged – Out-of-order datagrams – Pointer to bytes sent, but not yet z TCP uses a sliding window mechanism for acknowledged error recovery – Pointer to bytes that cannot yet be sent – Transmitted bytes are numbered – Receiver will accept bytes within the current “window” – Contiguous blocks are acknowledged by the receiver Application Layer 1

  2. TCP Sliding Window Mechanism TCP Sliding Window Mechanism z Sender sets a timer for a segment sent – On time-out, sender will retransmit the segment z Receiver acknowledges bytes received – Implementations send just the first – Specifies sequence number of next byte unacknowledged segment -- will wait for return expected acknowledgment before sending more – This acknowledges all previous bytes as – Implementations also typically use just one received error-free timer per connection, i.e. at any given point in – Acknowledgments can be “piggy-backed” on time, only one segment is being timed reverse direction data packets or sent as z Time-out value is important separate packets – Bad values can add extra delays or result in wasted retransmissions – Time-out value is difficult to set since delays can vary greatly in an internetworking environment TCP Flow Control TCP Flow Control z Receiver “advertises” its window size in z Flow control is needed to acknowledgments – Prevent sender from “swamping” receiver with – Window size specifies how many more bytes data, e.g. a fast server sending to a slow client the receiver is willing to accept – Provide congestion control inside the network, – Receiver is not allowed to shrink the window e.g. at gateways or routers beyond previously accepted bytes – In either case, a node can be forced to discard – Window size of 0 causes sender to stop packets due to lack of buffer space transmission, later advertisement of a non- zero window resumes transmission z TCP provides end-to-end flow control z Sender will adjust its “allowed to send” – Can solve overload problems at the end node pointer only as far as the advertised z Flow control is provided by varying the window size of the sliding window TCP Connection Establishment Packet Capture (tcpdump) 2:60:8c:9e:ca:b 8:0:2b:b:6c:1f 0800 62: 128.173.5.244.1524 > 128.173.5.221.21: z TCP uses a “three-way handshake” P 171:179(8) ack 1156928647 win 2048 � � Receiver Window (balanced protocol) to establish a connection 8:0:2b:b:6c:1f 2:60:8c:9e:ca:b 0800 74: z Ensures that both nodes are ready and 128.173.5.221.21 > 128.173.5.244.1524: synchronizes sequence numbers P 1156928647:1156928667(20) ack 179 win 16384 2:60:8c:9e:ca:b 8:0:2b:b:6c:1f 0800 60: 128.173.5.244.1524 > 128.173.5.221.21: P ack 1156928667 win 2048 2:60:8c:9e:ca:b 8:0:2b:b:6c:1f 0800 80: 128.173.5.244.1524 > 128.173.5.221.21: P 179:205(26) ack 1156928667 win 2048 Application Layer 2

  3. Closing a TCP Connection TCP Packet Format z A modified three-way handshake is used to gracefully close a connection TCP Header Fields TCP Header Fields z Sequence Number: position of the data in the z Source Port and Destination Port: identify sender’s byte stream in bytes z Acknowledgment Number: position of the byte applications at ends of the connection that the source expects to receive next (valid if z Code Bits: ACK bit set) – URG urgent (skip over data to urgent data) z Header Length: header size in 32-bit units – ACK acknowledgment z Window: advertised window size in bytes z Urgent: number of bytes to skip over in window – PSH push request (send data to application) to reach urgent (or “out-of-band”) data -- valid – RST reset the connection only if URG bit is set – SYN synchronize sequence numbers z Checksum: 16-bit CRC over header and data – FIN sender at end of byte stream Application Layer 3

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend