TCP SYN,ACK 詳解

來源:互聯網
上載者:User

TCP協議:::

三向交握:
握手過程的第一個段的代碼位設定為SYN,序號為x,表示開始一次握手。接收方收到這個段後,向寄件者回傳一個段。代碼位設定為SYN和ACK,序號設定為y,確認序號設定為x+1。寄件者在受到這個段後,知道就可以進行TCP資料發送了,於是,它又向接收者發送一個ACK段,表示,雙方的串連已經建立。
Client --> 置SYN標誌 序號 = J,確認號 = 0 ----> Server
Client <-- 置SYN標誌 置ACK標誌 序號 = K, 確認號 = J + 1 <-- Server
Clinet --> 置ACK標誌 序號 = J + 1,確認號 = K + 1 --> Server
a 發起方 b接受方
a發送一個SYN包給b,b回一個[SYN,ACK]給b,a再回一個ACK包給b;

資料交換:
a ----》b
a 發送資料完畢,(PSH,ACK) aseq = x,ack=y,datalen = z
b 接受到以後發送(ACK)  bseq = aack, back = aseq + alen, datalen=blen
b 發送資料完畢  (PSH,ACK)bseq = bseq + blen,back = back,datalen = blen
a  確認接受     (ACK)   aseq = back ,aack = bseq + blen
註:PSH標誌指示接收端應儘快將資料提交給應用程式層。從我協議分析的經曆來看,在資料轉送階段,幾乎所有資料包的發送都置了PSH位;而ACK標誌位在資料轉送階段也是一直是置位的

在資料轉送階段,按照常理應用程式層資料的傳輸是這樣的:(我們假定建立串連階段Client端最後的確認包中序號 = 55555, 確認號 = 22222)
Client --> 置PSH標誌,置ACK標誌 序號 = 55555, 確認號 = 22222,資料包長度 = 11 ---> Server
Client <-- 置ACK標誌,序號 = 22222, 確認號 = 55566 (=55555 + 11),資料包長度 = 0 <--- Server
Client <-- 置PSH標誌,置ACK標誌 序號 = 22223, 確認號 = 55566,資料包長度 = 22 <--- Server
Client --> 置ACK標誌,序號 = 55566, 確認號 = 22244(=22222+22),資料包長度 = 0 ---> Server
/////////////////////////////////////////////////////////////////////////////////////////

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.