TCP详解
wireshark抓包得到的TCP三次握手结果
可以看出第一次客户端给服务器发送了一个SYN,客户端的Seq=0;接着服务器给客户端发送了SYN+ACK,此时ACK是上一次的Seq+1,即Ack=1,以及一个新的服务器的Seq=0;最后客户端发送一个ACK,其中Ack是上次服务器的Seq+1,即Ack=1.
一个完整的TCP头部
Transmission Control Protocol, Src Port: 58155, Dst Port: 443, Seq: 0, Len: 0
Source Port: 58155 //源端口号 16位
Destination Port: 443 //目的端口号 16位
[Stream index: 12]
[Stream Packet Number: 1]
[Conversation completeness: Complete, WITH_DATA (47)]
[TCP Segment Len: 0]
Sequence Number: 0 (relative sequence number) //序号 32位
Sequence Number (raw): 1388767775
[Next Sequence Number: 1 (relative sequence number)]
Acknowledgment Number: 0 //确认序列 32位
Acknowledgment number (raw): 0
1000 .... = Header Length: 32 bytes (8) //首部长度 4位
Flags: 0x002 (SYN) //一些标识状态的部分
000. .... .... = Reserved: Not set
...0 .... .... = Accurate ECN: Not set
.... 0... .... = Congestion Window Reduced: 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
[TCP Flags: ··········S·]
Window: 64240 //窗口大小 16位
[Calculated window size: 64240]
Checksum: 0x6575 [unverified] //校验和 16位
[Checksum Status: Unverified]
Urgent Pointer: 0 //紧急指针 16位
Options: (12 bytes), Maximum segment size, No-Operation (NOP), Window scale, No-Operation (NOP), No-Operation (NOP), SACK permitted
TCP Option - Maximum segment size: 1460 bytes
TCP Option - No-Operation (NOP)
TCP Option - Window scale: 8 (multiply by 256)
TCP Option - No-Operation (NOP)
TCP Option - No-Operation (NOP)
TCP Option - SACK permitted
[Timestamps]
[Time since first frame in this TCP stream: 0.000000000 seconds]
[Time since previous frame in this TCP stream: 0.000000000 seconds]