1. 程式人生 > 其它 >面向連線的、可靠的、基於位元組流的傳輸控制協議(TCP/IP)

面向連線的、可靠的、基於位元組流的傳輸控制協議(TCP/IP)

原文連線:https://blog.csdn.net/xinshuzhan/article/details/108455496

前言

三次握手,四次揮手是面試中經常問到的問題,被提及的概率達到了80%,這個也是很多小夥伴的弱點,很多人在面試的時候無法正確的描述,只知道意思,所以你會聽到不同版本的tcp/ip協議,有用男女朋友打電話來解釋的,也有用兩個人喊話來解釋的,五花八門。但其實你能說明白也算是過關,我們今天來看看遇到這個問題時如何回答。

三次握手流程

1. 標準版

在TCP/IP協議中,TCP協議提供可靠的連線服務,採用三次握手建立一個連線。

第一次握手:建立連線時,客戶端傳送syn包(syn=j)到伺服器,並進入SYN_SEND狀態,等待伺服器確認。

第二次握手:伺服器收到syn包,必須確認客戶的SYN(ack=j+1),同時自己也傳送一個SYN包(syn=k),即SYN+ACK包,此時伺服器進入SYN_RECV狀態。

第三次握手:客戶端收到伺服器的SYN+ACK包,向伺服器傳送確認包ACK(ack=k+1),此包傳送完畢,客戶端和伺服器進入ESTABLISHED狀態,完成三次握手。

完成三次握手,客戶端與伺服器開始傳送資料

2. 簡單版

首先A向B發SYN(同步請求),然後B回覆SYN+ACK(同步請求應答),最後A回覆ACK確認,這樣TCP的一次連線(三次握手)的過程就建立了。