九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
TCP/IP建鏈三次握手和斷開鏈接四次握手

一、面向連接的協(xié)議

 

UDP是一種無連接的協(xié)議,而TCP則是一種面向連接的協(xié)議。所謂面向連接的協(xié)議,就是在兩個對等端內部網(wǎng)之間直接建立邏輯連接。

它通過跟蹤數(shù)據(jù)的傳送,并確認和跟蹤序號來確保它成功到達接收方。簡單來說,TCP傳輸數(shù)據(jù)比UDP安全。

 

 

二、TCP握手

 

TCP面向連接的傳輸是以兩個主機間的握手開始的。一個主機發(fā)送到另一個主機之間的握手有以下三個作用:

1、確保目的主機可用

2、確保目的主機正在偵聽目標端口號

3、通知給目的主機發(fā)出者的序號,是雙方在傳輸數(shù)據(jù)時可以進行跟蹤。

 

三、TCP數(shù)據(jù)包

 

TCP主機之間通過握手進程互相建立起來一種虛擬連接。在握手期間,主機之間交換序號,當數(shù)據(jù)從一臺主機發(fā)送到另一臺主機時序號便跟蹤這些數(shù)據(jù)。

TCP把數(shù)據(jù)轉換成連續(xù)的字節(jié)流,但是不能分辨出字節(jié)流的基礎消息和消息邊界。接收到字節(jié)流后,上層應用程序再把字節(jié)流解釋成消息。

可以這么說:發(fā)送方將數(shù)據(jù)按協(xié)議封裝成TCP數(shù)據(jù)包,接收方也按協(xié)議讀取TCP數(shù)據(jù)包中的數(shù)據(jù)。

TCP數(shù)據(jù)包的最大值為65495字節(jié)。65495 = 總長度 - IP題頭(20字節(jié))- TCP題頭(20字節(jié))

下圖描述了數(shù)據(jù)是怎么分割的和怎么在數(shù)據(jù)開始部分加上題頭(IP題頭、TCP題頭、以太網(wǎng)題頭):

(根據(jù)協(xié)議層的不同,封裝在數(shù)據(jù)包中的信息有不同的名稱)

 

 

 

四、TCP建立連接:三次握手

 

1、建立連接時,客戶機向服務器發(fā)送一個TCP數(shù)據(jù)包,這個數(shù)據(jù)包中不含有任何數(shù)據(jù),只有客戶機的啟動順序、使用的目的端口號和TCP數(shù)據(jù)包的

最大分段大小(MSS),還包含一個同步標識——SYN(同步序號,假設SYN值為A);

2、服務器對自己的啟動序號和最大分段大小進行回復,即首先確認客戶機的SYN:發(fā)送一個ACK數(shù)據(jù)包,ACK數(shù)據(jù)包中的值為(A+1);

再發(fā)送一個SYN(里面是自己的序列號,假設為B),并定義MSS的大小。然后設置認領位,承認已接收到第一個數(shù)據(jù)包。

3、客戶機接收到了服務器的序號和分段大小信息,就發(fā)送一個ACK(B+1)來確認自己已收到,第三個數(shù)據(jù)包用來結束握手進程。

(三次握手只是我自己的初步理解,以后會逐步完善)

 

五、TCP終止連接:四次斷開

 

為什么建立連接要三次握手,而終止連接就要進行四次呢?

只是因為TCP連接是全雙工的,即數(shù)據(jù)可在兩個方向上同時傳遞,所以關閉時每個方向上都要單獨關閉,這種單方向的關閉就叫半關閉。

4次斷開的基本流程:

(1)、當主機一完成數(shù)據(jù)傳輸后,將FIN置為1,提出停止TCP連接的請求;

(2)、主機二收到主機一發(fā)來的FIN后,關閉連接,并將ACK置為1;

(3)、主機二反向提出終止連接,將FIN置為1;

(4)、主機一收到消息后,停止連接,并將ACK置為1,雙方向的關閉結束。

 

 

 

由以上可見,光是建立連接與終止連接就這么多步驟,終于知道TCP為什么慢了?但是正是這樣才提高了數(shù)據(jù)傳輸?shù)目煽啃?。當然,三次握手和四次斷開也不是我這寥寥數(shù)語能說清楚的,自己的理解還很淺顯,以后會繼續(xù)完善。
 
在TCP/IP協(xié)議中,TCP協(xié)議提供可靠的連接服務,采用三次握手建立一個連接,如圖1所示。 
(1)第一次握手:建立連接時,客戶端A發(fā)送SYN包(SYN=j)到服務器B,并進入SYN_SEND狀態(tài),等待服務器B確認。 
(2)第二次握手:服務器B收到SYN包,必須確認客戶A的SYN(ACK=j+1),同時自己也發(fā)送一個SYN包(SYN=k),即SYN+ACK包,此時服務器B進入SYN_RECV狀態(tài)。 
(3)第三次握手:客戶端A收到服務器B的SYN+ACK包,向服務器B發(fā)送確認包ACK(ACK=k+1),此包發(fā)送完畢,客戶端A和服務器B進入ESTABLISHED狀態(tài),完成三次握手。 
完成三次握手,客戶端與服務器開始傳送數(shù)據(jù)。 
 
                               圖1 TCP三次握手建立連接 
由于TCP連接是全雙工的,因此每個方向都必須單獨進行關閉。這個原則是當一方完成它的數(shù)據(jù)發(fā)送任務后就能發(fā)送一個FIN來終止這個方向的連接。收到一個 FIN只意味著這一方向上沒有數(shù)據(jù)流動,一個TCP連接在收到一個FIN后仍能發(fā)送數(shù)據(jù)。首先進行關閉的一方將執(zhí)行主動關閉,而另一方執(zhí)行被動關閉。 
(1)客戶端A發(fā)送一個FIN,用來關閉客戶A到服務器B的數(shù)據(jù)傳送(報文段4)。 
(2)服務器B收到這個FIN,它發(fā)回一個ACK,確認序號為收到的序號加1(報文段5)。和SYN一樣,一個FIN將占用一個序號。 
(3)服務器B關閉與客戶端A的連接,發(fā)送一個FIN給客戶端A(報文段6)。 
(4)客戶端A發(fā)回ACK報文確認,并將確認序號設置為收到序號加1(報文段7)。 
TCP采用四次揮手關閉連接如圖2所示。 
 
                               圖2  TCP四次揮手關閉連接 
1.為什么建立連接協(xié)議是三次握手,而關閉連接卻是四次握手呢? 
這是因為服務端的LISTEN狀態(tài)下的SOCKET當收到SYN報文的建連請求后,它可以把ACK和SYN(ACK起應答作用,而SYN起同步作用)放在一個報文里來發(fā)送。但關閉連接時,當收到對方的FIN報文通知時,它僅僅表示對方?jīng)]有數(shù)據(jù)發(fā)送給你了;但未必你所有的數(shù)據(jù)都全部發(fā)送給對方了,所以你可以未必會馬上會關閉SOCKET,也即你可能還需要發(fā)送一些數(shù)據(jù)給對方之后,再發(fā)送FIN報文給對方來表示你同意現(xiàn)在可以關閉連接了,所以它這里的ACK報文和FIN報文多數(shù)情況下都是分開發(fā)送的。 
2.為什么TIME_WAIT狀態(tài)還需要等2MSL后才能返回到CLOSED狀態(tài)? 
這是因為雖然雙方都同意關閉連接了,而且握手的4個報文也都協(xié)調和發(fā)送完畢,按理可以直接回到CLOSED狀態(tài)(就好比從SYN_SEND狀態(tài)到 ESTABLISH狀態(tài)那樣);但是因為我們必須要假想網(wǎng)絡是不可靠的,你無法保證你最后發(fā)送的ACK報文會一定被對方收到,因此對方處于 LAST_ACK狀態(tài)下的SOCKET可能會因為超時未收到ACK報文,而重發(fā)FIN報文,所以這個TIME_WAIT狀態(tài)的作用就是用來重發(fā)可能丟失的 ACK報文
本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
簡析TCP的三次握手與四次分手 | 果凍想
帶你熟悉TCP/IP協(xié)議《入門到精通》面試常見題
wireshark抓包圖解 TCP三次握手/四次揮手詳解
TCP/IP三次握手與四次揮手
如果你還看不懂這篇TCP/IP協(xié)議的話,就可以來打我了
TCP 協(xié)議在 STM32 上的移植
更多類似文章 >>
生活服務
熱點新聞
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服