- N +

tcp協議三次握手圖(udp協議和tcp協議)

大家好,今天小編來為大家解答以下的問題,關于tcp協議三次握手圖,udp協議和tcp協議這個很多人還不知道,現在讓我們一起來看看吧!

TCP協議的三次握手的過程

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

1、第一次握手:建立連接時,客戶端發送syn包(syn=j)到服務器,并進入SYN_SEND狀態,等待服務器確認;SYN:同步序列編號(SynchronizeSequenceNumbers)

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

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

完成三次握手,客戶端與服務器開始傳送數據。

TCP為什么是三次握手,而不是兩次或四次

網上有很多文章講TCP為什么建立連接時需要三次握手,關閉連接時需要四次握手,講了很多原理,反而讓很多人難以理解。

其實只有一句話:TCP連接是兩個端點之間的事,由于TCP連接是可靠連接,所以不管是建立連接還是關閉連接,需要兩個端點都要發送請求和收到確認

其次要理解TCP的通道是全雙工的,是可以讀和寫數據的,理解這個之后就明白了為什么關閉連接時需要四次握手。

首先講三次握手,建立連接時不涉及到讀寫通道,只是兩個端點的請求和確認。要記住是兩個端點之間的,兩個端點是平等的關系。

從客戶端的角度來說,它只需要發送一個請求syn,然后收到ack就能知道連接是可以建立的

從服務器端的角度,它也只需要發送一個請求syn,然后收到ack就能知道連接是可以建立的

所以建立連接時最少只需要三次握手即可,即服務器端收到客戶端syn,之后向客戶端發送ack的同時攜帶上自己的syn,這樣就只需要三次握手就能使雙方都發生syn和都收到ack.

當然你自己設計的時候也可以使用4次或者更多的握手,但是最少3次即可

關閉連接時也還是兩個端點都要發送請求和收到確認。但是關閉連接時涉及到兩個端點的讀寫通道的事。

從客戶端的角度來說,它發送一個關閉請求FIn,然后收到ack就知道可以關閉連接的

從服務器的角度來說,它發送一個關閉請求Fin,然后收到ack就知道可以關閉連接的

但是由于是讀和寫通道,所以服務器端在收到客戶端的關閉Fin時,可能還在往客戶端發送消息,所以只能先發送ack確認客戶端客戶關閉寫通道,這時候服務端不能使用通過一消息發送它的關閉Fin,只能過會等它自己寫完了,才能重新發送一個關閉請求的Fin。

所以比建立連接時多了一次握手,關閉連接時最少需要4次握手。理解了為什么需要4次握手之后,就不難理解TCP半關閉的概念。

TCP的三次握手的最終目的是什么

三次握手的目的是同步連接雙方的序列號和確認號并交換TCP窗口大小信息。

簡述TCP建立連接過程中使用的3次握手法

TCP握手協議在TCP/IP協議中,TCP協議提供可靠的連接服務,采用三次握手建立一個連接.第一次握手:建立連接時,客戶端發送syn包(syn=j)到服務器,并進入SYN_SEND狀態,等待服務器確認;

SYN:同步序列編號(SynchronizeSequenceNumbers)第二次握手:服務器收到syn包,必須確認客戶的SYN(ack=j+1),同時自己也發送一個SYN包(syn=k),即SYN+ACK包,此時服務器進入SYN_RECV狀態;

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

TCP三次握手和四次揮手是什么意思

TCP三次握手

就好比打電話,需要經過撥號,振鈴,接通。才能進行講話

過程:

A:我要跟你建立連接

B:好的,我知道了,我也要跟你建個連接

A:我知道你收到了我的連接請求,我也收到了你的連接請求

滑動窗口:

主要為了避免一次性發送的數據過多,導致對方緩存溢出。

滑動窗口是動態協商,也就是說,在建立連接的時候,就會進行協商

同時,在緩沖區發生變化的時候,也會進行協商。

TCP四次揮手

主要為了避免當一方斷開連接,而另一方不知道的情況下,需要耗費資源去維護本該斷開的連接

過程:

假設三次連接已經建立完成

A:我要跟你斷開連接了

B:好的,我知道你要斷開連接了

B:我也要跟你斷開連接

A:好的,那就斷開連接吧

如果你還想了解更多這方面的信息,記得收藏關注本站。

返回列表
上一篇:
下一篇: