1 / 12

RFC 2018: TCP-SACK

RFC 2018: TCP-SACK. ECE 4605 Edgar Duskin Ifiok Udowana. Introduction. What is TCP-SACK? A mechanism to overcome the poor performance TCP can experience with multiple lost packets. Why is TCP-SACK needed?

Download Presentation

RFC 2018: TCP-SACK

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. RFC 2018: TCP-SACK ECE 4605 Edgar Duskin Ifiok Udowana

  2. Introduction What is TCP-SACK? • A mechanism to overcome the poor performance TCP can experience with multiple lost packets. Why is TCP-SACK needed? • Regular TCP forces sender to wait a full round trip time to find out about a lost packet. • With cumulative acknowledgements, multiple dropped segments degrades throughput.

  3. 3 5 5 1 2 3 4 3 6 7 5 Current TCP Example • Packets 3 and 5 (of a 7 packet sequence) lost • After retransmitting 3, sender had to wait an entire RTT to know about the next missing packet

  4. TCP-SACK Concepts • Works by including information on correctly received packets in the TCP option header. • Sender doesn’t wait full RTT to know about next lost packet.

  5. TCP-SACK Example • Sender sends a 25 packet sequence • 5, 9, and 17 are lost • Receiver sends back a normal ACK 5, but will include blocks of contiguous data: • (1-4) • (6-8) • (10-17) • (18-25)

  6. Implementation 16 bit SRC Port 16 bit DST Port How is TCP-SACK implemented? • SACK uses the options field for block data • Does not remove or change the meaning of the ACK field 32 bit sequence number 32 bit ACK number HL flags 16 bit window size resvd 16 bit TCP checksum 16 bit urgent pointer Options (40 bytes) Data

  7. Implementation (cont’d) • Each block definition is 8 bytes. • Length is 1 byte • Kind (TCP option type identifier) is 1 byte • n blocks will have a length of 8*n+2 bytes • With a 40 byte Options header, only 4 blocks can really be defined. TCP-SACK Option Fields

  8. Interoperability How does TCP-SACK work with other hosts? • SACK employs a TCP-SACK permitted option to determine if SACK can be used in a TCP connection. • Receiver sends with SYN packet in handshake • If the sender is SACK-capable, SACK options will be used. • 2 bytes long TCP SACK-Permitted Option Field

  9. Results & Performance • RFC 2018 focuses primarily on the implementation details of TCP-SACK in the TCP header. • Assuming that SACK had the entire options field, it could consolidate up to 4 ACKs. • On lossy lines, SACK would allow the sender to repacket and resend the missing packets at once.

  10. TCP-SACK EXAMPLE

  11. Problems with RFC 2018 • Does not really explain what the sender should do once it receives the SACK options. • Focused more on the implementation details rather than algorithms and actual performance of TCP-SACK.

  12. Questions? • How many TCP options are usually implemented? • What exactly does the sender once it receives SACK options? • What is the disadvantage of making the right edge of the blocks the last segment of the contiguous data? • If there is space for only one block options, how does the performance of TCP-SACK compare to the regular TCP? • How many options out there are more important than TCP-SACK option? • Are dropped packets one of the biggest problems in today’s TCP performance?

More Related