前言

在沒有理解TCP連接是如何建立和終止之前,我想你可能并不會使用connect,accept,close這三個函數(shù)并且使用netstat程序來調(diào)試應(yīng)用。所以掌握TCP連接的建立和終止勢在必行。

三次握手

  1. 客戶端首先通過調(diào)用connect函數(shù)發(fā)起主動打開(服務(wù)器為被動打開),這導(dǎo)致客戶端TCP發(fā)送一個SYN同步分節(jié)(Synchronize Sequence Numbers),告訴服務(wù)器將在連接中發(fā)送的數(shù)據(jù)的初始序列號,如圖為 J;(SYN分節(jié)不攜帶數(shù)據(jù),其所在的IP數(shù)據(jù)報只含有一個IP首部、一個TCP首部以及可能有的TCP選項)

  2. 服務(wù)器需要對客戶端的請求進(jìn)行確認(rèn),同時自己也發(fā)送一個SYN分節(jié)(包含服務(wù)器將在同一連接中發(fā)送的數(shù)據(jù)的初始序列號)

  3. 客戶端進(jìn)行確認(rèn)。

為什么發(fā)送加一的序列號呢?因為這是發(fā)送這一端所期待的下一個序列號,而且SYN占據(jù)一個字節(jié)的序列號空間;

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運,軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式