前言

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

三次握手

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

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

  3. 客戶端進行確認。

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

延伸閱讀

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