Information

Author(s) Olivier Bonaventure
Deadline No deadline
Submission limit No limitation
Category tags tcp

Tags

Sign in

The TCP Windows Scale option

The TCP Window Scale option, defined in RFC1323 and described in the TCP chapter of Computer Networking: Principles, Protocols and Practice allows endhosts to use a larger window than TCP's default 64 KBytes window.


Impact of the window scale option

The window scale option has been correctly negotiated on this connection. Assuming that that the client will use on the entire connection the same window size that it announced in the SYN, can you infer the value of the receive window that it will advertise inside its first segments ?

# Length Summary Status
0 28 bytes Transmission Control Protocol, Src Port: 53736, Dst Port: 1234, Seq: 1395955212, Len: 0
1 28 bytes Transmission Control Protocol, Src Port: 1234, Dst Port: 53736, Seq: 2170178573, Ack: 1395955213, Len: 0
2 20 bytes Transmission Control Protocol, Src Port: 53736, Dst Port: 1234, Seq: 1395955213, Ack: 2170178574, Len: 0  
3 22 bytes Transmission Control Protocol, Src Port: 53736, Dst Port: 1234, Seq: 1395955213, Ack: 2170178574, Len: 2  

0000  d1e804d25334960c  0000000070027080  
0010  00000000020405a0  01030309          

0000  Ñè.ÒS4......p.p.
0010  ............    
  • Transmission Control Protocol, Src Port: 53736, Dst Port: 1234, Seq: 1395955212, Len: 0
    • Source Port: 53736
      • Destination Port: 1234
        • Sequence number: 1395955212
          • Acknowledgment number: 0
            • 0111 .... = Header Length: 28 bytes (7)
              • Flags: 0x002 (SYN)
                • 000. .... .... = Reserved: Not set
                  • ...0 .... .... = Nonce: Not set
                    • .... 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 value: 28800
                                    • Calculated window size: 28800
                                      • Urgent pointer: 0
                                        • Options: (8 bytes), Maximum segment size, No-Operation (NOP), Window scale
                                          • TCP Option - Maximum segment size: 1440 bytes
                                            • Kind: Maximum Segment Size (2)
                                              • Length: 4
                                                • MSS Value: 1440
                                                • TCP Option - No-Operation (NOP)
                                                  • Kind: No-Operation (1)
                                                  • TCP Option - Window scale: 9 (multiply by 512)
                                                    • Kind: Window Scale (3)
                                                      • Length: 3
                                                        • Shift count: 9
                                                          • Multiplier: 512
                                                      0000  04d2d1e8815a4c0d  5334960d70127080  
                                                      0010  00000000020405a0  01030309          

                                                      0000  .ÒÑè.ZL.S4..p.p.
                                                      0010  ............    
                                                      • Transmission Control Protocol, Src Port: 1234, Dst Port: 53736, Seq: 2170178573, Ack: 1395955213, Len: 0
                                                        • Source Port: 1234
                                                          • Destination Port: 53736
                                                            • Sequence number: 2170178573
                                                              • Acknowledgment number: 1395955213
                                                                • 0111 .... = Header Length: 28 bytes (7)
                                                                  • Flags: 0x012 (SYN, ACK)
                                                                    • 000. .... .... = Reserved: Not set
                                                                      • ...0 .... .... = Nonce: Not set
                                                                        • .... 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 value: 28800
                                                                                        • Calculated window size: 28800
                                                                                          • Urgent pointer: 0
                                                                                            • Options: (8 bytes), Maximum segment size, No-Operation (NOP), Window scale
                                                                                              • TCP Option - Maximum segment size: 1440 bytes
                                                                                                • Kind: Maximum Segment Size (2)
                                                                                                  • Length: 4
                                                                                                    • MSS Value: 1440
                                                                                                    • TCP Option - No-Operation (NOP)
                                                                                                      • Kind: No-Operation (1)
                                                                                                      • TCP Option - Window scale: 9 (multiply by 512)
                                                                                                        • Kind: Window Scale (3)
                                                                                                          • Length: 3
                                                                                                            • Shift count: 9
                                                                                                              • Multiplier: 512
                                                                                                          0000  d1e804d25334960d  815a4c0e5010????  
                                                                                                          0010  00000000                            

                                                                                                          0000  Ñè.ÒS4...ZL.P.??
                                                                                                          0010  ....            
                                                                                                          • Transmission Control Protocol, Src Port: 53736, Dst Port: 1234, Seq: 1395955213, Ack: 2170178574, Len: 0
                                                                                                            • Source Port: 53736
                                                                                                              • Destination Port: 1234
                                                                                                                • Sequence number: 1395955213
                                                                                                                  • Acknowledgment number: 2170178574
                                                                                                                    • 0101 .... = Header Length: 20 bytes (5)
                                                                                                                      • Flags: 0x010 (ACK)
                                                                                                                        • 000. .... .... = Reserved: Not set
                                                                                                                          • ...0 .... .... = Nonce: Not set
                                                                                                                            • .... 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
                                                                                                                                        • .... .... ..0. = Syn: Not set
                                                                                                                                          • .... .... ...0 = Fin: Not set
                                                                                                                                          • Window size value: 57
                                                                                                                                            • Calculated window size: ?
                                                                                                                                            • Urgent pointer: 0
                                                                                                                                            0000  d1e804d25334960d  815a4c0e5018????  
                                                                                                                                            0010  00000000610a                        

                                                                                                                                            0000  Ñè.ÒS4...ZL.P.??
                                                                                                                                            0010  ....a.          
                                                                                                                                            • Transmission Control Protocol, Src Port: 53736, Dst Port: 1234, Seq: 1395955213, Ack: 2170178574, Len: 2
                                                                                                                                              • Source Port: 53736
                                                                                                                                                • Destination Port: 1234
                                                                                                                                                  • Sequence number: 1395955213
                                                                                                                                                    • Acknowledgment number: 2170178574
                                                                                                                                                      • 0101 .... = Header Length: 20 bytes (5)
                                                                                                                                                        • Flags: 0x018 (PSH, ACK)
                                                                                                                                                          • 000. .... .... = Reserved: Not set
                                                                                                                                                            • ...0 .... .... = Nonce: Not set
                                                                                                                                                              • .... 0... .... = Congestion Window Reduced (CWR): Not set
                                                                                                                                                                • .... .0.. .... = ECN-Echo: Not set
                                                                                                                                                                  • .... ..0. .... = Urgent: Not set
                                                                                                                                                                    • .... ...1 .... = Acknowledgment: Set
                                                                                                                                                                      • .... .... 1... = Push: Set
                                                                                                                                                                        • .... .... .0.. = Reset: Not set
                                                                                                                                                                          • .... .... ..0. = Syn: Not set
                                                                                                                                                                            • .... .... ...0 = Fin: Not set
                                                                                                                                                                            • Window size value: 57
                                                                                                                                                                              • Calculated window size: ?
                                                                                                                                                                              • Urgent pointer: 0
                                                                                                                                                                                • TCP payload (2 bytes)