久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

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

 白雪~~~ 2012-03-02

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

 

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

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

 

 

二、TCP握手

 

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

1,、確保目的主機可用

2、確保目的主機正在偵聽目標(biāo)端口號

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

 

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

 

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

TCP把數(shù)據(jù)轉(zhuǎn)換成連續(xù)的字節(jié)流,,但是不能分辨出字節(jié)流的基礎(chǔ)消息和消息邊界。接收到字節(jié)流后,,上層應(yīng)用程序再把字節(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,、建立連接時,,客戶機向服務(wù)器發(fā)送一個TCP數(shù)據(jù)包,這個數(shù)據(jù)包中不含有任何數(shù)據(jù),,只有客戶機的啟動順序,、使用的目的端口號和TCP數(shù)據(jù)包的

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

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

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

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

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

 

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

 

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

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

4次斷開的基本流程:

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

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

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

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

 

 

 

由以上可見,,光是建立連接與終止連接就這么多步驟,,終于知道TCP為什么慢了,?但是正是這樣才提高了數(shù)據(jù)傳輸?shù)目煽啃?。?dāng)然,三次握手和四次斷開也不是我這寥寥數(shù)語能說清楚的,,自己的理解還很淺顯,,以后會繼續(xù)完善。
 
在TCP/IP協(xié)議中,,TCP協(xié)議提供可靠的連接服務(wù),,采用三次握手建立一個連接,如圖1所示,。 
(1)第一次握手:建立連接時,,客戶端A發(fā)送SYN包(SYN=j)到服務(wù)器B,并進入SYN_SEND狀態(tài),,等待服務(wù)器B確認(rèn),。 
(2)第二次握手:服務(wù)器B收到SYN包,必須確認(rèn)客戶A的SYN(ACK=j+1),,同時自己也發(fā)送一個SYN包(SYN=k),,即SYN+ACK包,此時服務(wù)器B進入SYN_RECV狀態(tài),。 
(3)第三次握手:客戶端A收到服務(wù)器B的SYN+ACK包,,向服務(wù)器B發(fā)送確認(rèn)包ACK(ACK=k+1),,此包發(fā)送完畢,客戶端A和服務(wù)器B進入ESTABLISHED狀態(tài),,完成三次握手,。 
完成三次握手,客戶端與服務(wù)器開始傳送數(shù)據(jù),。 
tcpip,socket ,tcp/ip連接和斷開過程圖解  
                               圖1 TCP三次握手建立連接 
由于TCP連接是全雙工的,因此每個方向都必須單獨進行關(guān)閉,。這個原則是當(dāng)一方完成它的數(shù)據(jù)發(fā)送任務(wù)后就能發(fā)送一個FIN來終止這個方向的連接,。收到一個 FIN只意味著這一方向上沒有數(shù)據(jù)流動,一個TCP連接在收到一個FIN后仍能發(fā)送數(shù)據(jù),。首先進行關(guān)閉的一方將執(zhí)行主動關(guān)閉,,而另一方執(zhí)行被動關(guān)閉。 
(1)客戶端A發(fā)送一個FIN,,用來關(guān)閉客戶A到服務(wù)器B的數(shù)據(jù)傳送(報文段4),。 
(2)服務(wù)器B收到這個FIN,它發(fā)回一個ACK,,確認(rèn)序號為收到的序號加1(報文段5),。和SYN一樣,一個FIN將占用一個序號,。 
(3)服務(wù)器B關(guān)閉與客戶端A的連接,,發(fā)送一個FIN給客戶端A(報文段6)。 
(4)客戶端A發(fā)回ACK報文確認(rèn),,并將確認(rèn)序號設(shè)置為收到序號加1(報文段7),。 
TCP采用四次揮手關(guān)閉連接如圖2所示。 
tcpip,socket ,tcp/ip連接和斷開過程圖解  
                               圖2  TCP四次揮手關(guān)閉連接 
1.為什么建立連接協(xié)議是三次握手,,而關(guān)閉連接卻是四次握手呢? 
這是因為服務(wù)端的LISTEN狀態(tài)下的SOCKET當(dāng)收到SYN報文的建連請求后,,它可以把ACK和SYN(ACK起應(yīng)答作用,,而SYN起同步作用)放在一個報文里來發(fā)送。但關(guān)閉連接時,,當(dāng)收到對方的FIN報文通知時,,它僅僅表示對方?jīng)]有數(shù)據(jù)發(fā)送給你了;但未必你所有的數(shù)據(jù)都全部發(fā)送給對方了,,所以你可以未必會馬上會關(guān)閉SOCKET,也即你可能還需要發(fā)送一些數(shù)據(jù)給對方之后,,再發(fā)送FIN報文給對方來表示你同意現(xiàn)在可以關(guān)閉連接了,所以它這里的ACK報文和FIN報文多數(shù)情況下都是分開發(fā)送的。 
2.為什么TIME_WAIT狀態(tài)還需要等2MSL后才能返回到CLOSED狀態(tài),? 
這是因為雖然雙方都同意關(guān)閉連接了,,而且握手的4個報文也都協(xié)調(diào)和發(fā)送完畢,按理可以直接回到CLOSED狀態(tài)(就好比從SYN_SEND狀態(tài)到 ESTABLISH狀態(tài)那樣),;但是因為我們必須要假想網(wǎng)絡(luò)是不可靠的,,你無法保證你最后發(fā)送的ACK報文會一定被對方收到,因此對方處于 LAST_ACK狀態(tài)下的SOCKET可能會因為超時未收到ACK報文,,而重發(fā)FIN報文,,所以這個TIME_WAIT狀態(tài)的作用就是用來重發(fā)可能丟失的 ACK報文

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多