When the connection is created do the TCP sender and TCP receiver negotiate to permit SACKs? Describe the process of the negotiation.
What will be an ideal response?
Yes. When the connection is created, the TCP sender and TCP receiver negotiate to permit SACKs. The negotiation uses the Options filed of the TCP header. Both sender and receiver should include SACKs option in the SYN messages.
Frame 1
```
(74 bytes on wire, 74 bytes captured)
Arrival Time: Aug 23, 2003 05:28:24.678021000
Time delta from previous packet: 0.000000000 seconds
Time since reference or first frame: 0.000000000 seconds
Frame Number: 1
Packet Length: 74 bytes
Capture Length: 74 bytes
Ethernet II, Src: 00:50:bf:90:7d:33, Dst: 00:07:85:3b:5e:40
Destination: 00:07:85:3b:5e:40 (Cisco_3b:5e:40)
Source: 00:50:bf:90:7d:33 (Mototech_90:7d:33)
Type: IP (0x0800)
Internet Protocol, Src Addr: 10.0.1.11 (10.0.1.11), Dst Addr: 10.0.2.22 (10.0.2.22)
Version: 4
Header length: 20 bytes
Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
0000 00.. = Differentiated Services Codepoint: Default (0x00)
.... ..0. = ECN-Capable Transport (ECT): 0
.... ...0 = ECN-CE: 0
Total Length: 60
Identification: 0x34e6 (13542)
Flags: 0x04
.1.. = Don't fragment: Set
..0. = More fragments: Not set
Fragment offset: 0
Time to live: 64
Protocol: TCP (0x06)
Header checksum: 0xeeb5 (correct)
Source: 10.0.1.11 (10.0.1.11)
Destination: 10.0.2.22 (10.0.2.22)
Transmission Control Protocol, Src Port: 3120 (3120), Dst Port: 4444 (4444), Seq:
780862119, Ack: 0, Len: 0
Source port: 3120 (3120)
Destination port: 4444 (4444)
Sequence number: 780862119
Header length: 40 bytes
Flags: 0x0002 (SYN)
0... .... = Congestion Window Reduced (CWR): Not set
.0.. .... = ECN-Echo: Not set
..0. .... = Urgent: Not set
...0 .... = Acknowledgment: Not set
.... 0... = Push: Not set
.... .0.. = Reset: Not set
.... ..1. = Syn: Set
.... ...0 = Fin: Not set Window size: 5840
Checksum: 0x94f9 (correct)
Options: (20 bytes)
Maximum segment size: 1460 bytes
SACK permitted
Time stamp: tsval 1979969, tsecr 0
NOP
Window scale: 0 (multiply by 1)
```
Frame 2
```
(74 bytes on wire, 74 bytes captured)
Arrival Time: Aug 23, 2003 05:28:24.687744000
Time delta from previous packet: 0.009723000 seconds
Time since reference or first frame: 0.009723000 seconds
Frame Number: 2
Packet Length: 74 bytes
Capture Length: 74 bytes
Ethernet II, Src: 00:07:85:3b:5e:40, Dst: 00:50:bf:90:7d:33
Destination: 00:50:bf:90:7d:33 (Mototech_90:7d:33)
Source: 00:07:85:3b:5e:40 (Cisco_3b:5e:40)
Type: IP (0x0800)
Internet Protocol, Src Addr: 10.0.2.22 (10.0.2.22), Dst Addr: 10.0.1.11 (10.0.1.11)
Version: 4
Header length: 20 bytes
Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
0000 00.. = Differentiated Services Codepoint: Default (0x00)
.... ..0. = ECN-Capable Transport (ECT): 0
.... ...0 = ECN-CE: 0
Total Length: 60
Identification: 0x0000 (0)
Flags: 0x04
.1.. = Don't fragment: Set
..0. = More fragments: Not set
Fragment offset: 0
Time to live: 62
Protocol: TCP (0x06)
Header checksum: 0x259c (correct)
Source: 10.0.2.22 (10.0.2.22)
Destination: 10.0.1.11 (10.0.1.11)
Transmission Control Protocol, Src Port: 4444 (4444), Dst Port: 3120 (3120), Seq:
747000110, Ack: 780862120, Len: 0
Source port: 4444 (4444)
Destination port: 3120 (3120)
Sequence number: 747000110
Acknowledgement number: 780862120
Header length: 40 bytes
Flags: 0x0012 (SYN, ACK)
0... .... = Congestion Window Reduced (CWR): Not set
.0.. .... = ECN-Echo: Not set
..0. .... = Urgent: Not set
...1 .... = Acknowledgment: Set
.... 0... = Push: Not set
.... .0.. = Reset: Not set
.... ..1. = Syn: Set
.... ...0 = Fin: Not set
Window size: 5792
Checksum: 0xe1bf (correct)
Options: (20 bytes)
Maximum segment size: 1460 bytes
SACK permitted
Time stamp: tsval 1979782, tsecr 1979969
NOP
Window scale: 0 (multiply by 1)
```