Socket的3次握手連接與4次斷開握手

鏈接握手:web

1.客戶端發送創建鏈接請求socket

2.服務端確認鏈接請求spa

3.客戶端確認已經鏈接orm

以上3步完成後便可使用send recv了ci

斷開握手:若是要正確斷開必須通過4次握手。同步

1.客戶端發送請求中止TCP鏈接請求it

2.服務端收到請求後將這一個socket關閉基礎

3.服務端發送反向請求客戶端關閉socket鏈接webkit

4.客戶端確認服務端請求,關閉socket鏈接。請求




TCP是一個面向鏈接的服務,面向鏈接的服務是電話系統服務模式的抽象,每一次完整的數據傳輸都必須通過建

立鏈接,數據傳輸和終止鏈接3個過程,TCP創建鏈接的過程稱爲三次握手,下面看一下三次握手的具本過程

TCP三次握手過程

1 主機A經過向主機B 發送一個含有同步序列號的標誌位的數據段給主機B ,向主機B 請求創建鏈接,經過這個數據段,

主機A告訴主機B 兩件事:我想要和你通訊;你能夠用哪一個序列號做爲起始數據段來回應我.

2 主機B 收到主機A的請求後,用一個帶有確認應答(ACK)和同步序列號(SYN)標誌位的數據段響應主機A,也告訴主機A兩件事:

我已經收到你的請求了,你能夠傳輸數據了;你要用哪佧序列號做爲起始數據段來回應我

3 主機A收到這個數據段後,再發送一個確認應答,確認已收到主機B 的數據段:"我已收到回覆,我如今要開始傳輸實際數據了


這樣3次握手就完成了,主機A和主機B 就能夠傳輸數據了.

3次握手的特色

沒有應用層的數據

SYN這個標誌位只有在TCP建產鏈接時纔會被置1

握手完成後SYN標誌位被置0



TCP創建鏈接要進行3次握手,而斷開鏈接要進行4次,這是因爲TCP的半關閉形成的,由於TCP鏈接是全雙工的(

即數據可在兩個方向上同時傳遞)因此進行關閉時每一個方向上都要單獨進行關閉,這個單方向的關閉就叫半關閉.

關閉的方法是一方完成它的數據傳輸後,就發送一個FIN來向另外一方通告將要終止這個方向的鏈接.當一端收到一個FIN,它必須

通知應用層TCP鏈接已終止了這個方向的數據傳送,發送FIN一般是應用層進行關閉的結果.



4次斷開

1 當主機A完成數據傳輸後,將控制位FIN置1,提出中止TCP鏈接的請求

2 主機B收到FIN後對其做出響應,確認這一方向上的TCP鏈接將關閉,將ACK置1

3 由B 端再提出反方向的關閉請求,將FIN置1

4 主機A對主機B的請求進行確認,將ACK置1,雙方向的關閉結束.

由TCP的三次握手和四次斷開能夠看出,TCP使用面向鏈接的通訊方式,大大提升了數據通訊的可靠性,使發送數據端

和接收端在數據正式傳輸前就有了交互,爲數據正式傳輸打下了可靠的基礎

相關文章
相關標籤/搜索