TCP中seq ack號計算

2022-06-05 06:57:07 字數 960 閱讀 6112

tcp包頭格式

seq 和 ack 號存在於tcp報文首部中,是把控資料報順序和丟包現象。 seq是序號,ack是確認號,都占有4個位元組(於大寫ack不同,ack是報文中控制位中之一,占用一位,僅當ack = 1時 ack欄位才有效。建立tcp連線以後,所有報文中的ack欄位都為1。)

seq:占用4個位元組 即2^32位,所以序號範圍為[0,2^32-1],序號增加到2^32-1之後,下乙個序號又回到0,tcp是可靠的面向連線,通過tcp傳送的位元組流中的每個位元組都按照順序編號,而報頭中的序號字段值則是本報文段資料的第乙個位元組的序號。

ack:占用4個位元組,期望收到對方下乙個報文的第乙個資料位元組的序號。

一、 建立tcp連線的三次握手過程中seq和ack的值

1、建立連線請求報文

請求端a——>[syn=1,ack=0,seq=x,ack=0]——>服務端b

當請求端要和服務端通訊時,a首先向b傳送乙個syn=1(在tcp報文中的控制位syn位置標誌為1)和seq=x(x是隨機數【範圍0-2^32-1】)標記的包,請求和b建立連線。

2、回覆建立連線請求報文 

請求端a

TCP 抓包分析(seq ack)

總結 1 ack包可以和其他包合在一起,比如ack包可以攜帶資料 2 可以接收多個資料報後,一次性給乙個應答,不用每個資料報一一對應給應答 3 在通訊過程中,通過接收到的包的ack值可以判斷是否是上乙個本機傳送包的應答包 ack值與上乙個本機傳送包的seq有關 seq值和ack值的確定規則如下 三次...

TCP報文段中的序號和確認號

前言 序號欄位和確認號字段是tcp報文段首部中兩個最重要的字段,這兩個欄位是tcp可靠傳輸服務的關鍵部分。tcp把資料看成乙個無結構的 有序的位元組流。序號是建立在傳送的字元流之上的,而不是建立在傳送的報文段的序列之上 序號 32bit 乙個報文段的序號是該報文段首位元組的位元組流編號,舉個栗子 假...

TCP序列號和確認號詳解

1.序列號和確認號的簡介及作用 tcp協議工作在osi的傳輸層,是一種可靠的面向連線的資料流協議,tcp之所以可靠,是因為它保證了傳送資料報的順序。順序是用乙個序列號來保證的。響應包內也包括乙個序列號,表示接收方準備好這個序列號的包。在tcp傳送乙個資料報時,它會把這個資料報放入重發佇列中,同時啟動...