seq和ack號存在於TCP報文段的首部中,seq是序號,ack是確認號,大小均為4字節。
seq:占 4 字節,序號範圍[0,2^32-1],序號增加到 2^32-1 後,下個序號又回到 0。TCP 是面向字節流的,通過 TCP 傳送的字節流中的每個字節都按順序編號,而報頭中的序號字段值則指的是本報文段數據的第壹個字節的序號。
ack:占 4 字節,期望收到對方下個報文段的第壹個數據字節的序號。
擴展資料:
壹個TCP連接的建立是通過三次握手來實現的
1. (A) _> [SYN] _> (B)
假如服務器B和客戶機A通訊. 當A要和B通信時,A首先向B發壹個SYN (Synchronize) 標記的包,告訴B請求建立連接.
註意: 壹個 SYN包就是僅SYN標記設為1的TCP包(參見TCP包頭Resources). 認識到這點很重要,只有當B受到A發來的SYN包,才可建立連接,除此之外別無他法。因此,如果妳的防火墻丟棄所有的發往外網接口的SYN包,那麽妳將不能主動連接外部任何主機,除非不是TCP協議。
2. (A) <_ [SYN/ACK] <_(B)
接著,B收到後會發壹個對SYN包的確認包(SYN/ACK)回去,表示對第壹個SYN包的確認,並繼續握手操作.
註意: SYN/ACK包是僅SYN 和 ACK 標記為1的包.
3. (A) _> [ACK] _> (B)
A收到SYN/ACK 包,A發壹個確認包(ACK),通知B連接已建立。至此,三次握手完成,壹個TCP連接完成
Note: ACK包就是僅ACK 標記設為1的TCP包. 需要註意的是當三此握手完成、連接建立以後,TCP連接的每個包都會設置ACK位
握手階段:
百度百科-三次握手