- Source port and Destination port: Identifies points at which upper layer source and destination processes receive TCP services.
- Sequence Number: Usually specifiers the number assigned to the first byte of data in the current message. In the connection-establishment phase, this field also can be used to identify an initial sequence number to be used in an upcoming transmission.
- Acknowledgment Number: Contains the sequence number of the next byte of data the sender of the packet expects to receive.
- Data Offset: Indicates the number of 32-bit words in the TCP header.
- Reserved: Remains reserved for future use.
- Flags: Carries a variety of control information, including the SYN and ACK bits used for connection establishment, and the FIN bit used for connection termination.
- Window: Specifies the size of the sender's receive window (that is, the buffer space available for incoming data).
- Checksum: Indicates whether the header was damaged in transit.
- Urgent Pointer: Points to the first urgent data byte in the packet.
- Options: Specifies various TCP options.
- Data: Contains upper-layer information.
In TCP, the receiver specifies the current window size in every packet. Because TCP provides a byte-stream connection, window sizes are expressed in bytes. This means that a window is the number of data bytes that the sender is allowed to send before waiting for an acknowledgment. Initial window sizes are indicated at connection setup, but might vary throughout the data transfer to provide flow control. A window size of zero, for instance, means "Send no data".
In a TCP sliding-window operation, for example, the sender might have a sequence of bytes to send (numbered 1 to 10) to a receiver who has a window size of five. The sender then would place a window around the first five bytes and transmit them together. It would then wait for an acknowledgment.
The receiver would respond with an ACK=6, indicating that it has received bytes 1 to 5 and is expecting byte 6 next. In the same packet, the receiver would indicate that its window size is 5. The sender then would move the sliding window five bytes to the right and transmit bytes 6 to 10. The receiver would respond with an ACK=11, indicating that it is expecting sequenced byte 11 next. In this packet, the receiver might indicate that its window size is 0 (because, for example, its internal buffers are full). At this point, the sender cannot send any more bytes until the receiver sends another packet with a window size greater than 0.
No comments:
Post a Comment
Your feedback and comments are valuable for us: