日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

计算机网络-基本概念(10)【传输层】TCP运输连接管理

發(fā)布時(shí)間:2024/9/18 编程问答 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 计算机网络-基本概念(10)【传输层】TCP运输连接管理 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

三次握手

  • A主動(dòng)建立連接。發(fā)送SYN=1,seq=x,進(jìn)入SYN-SENT(同步已發(fā)送)狀態(tài)。
  • B收到請(qǐng)求,同意建立連接,則向A發(fā)送確認(rèn)。發(fā)送SYN=1,ACK=1,seq=y,ack=x+1。進(jìn)入SYN-RCVD狀態(tài)。
  • A收到B的確認(rèn)后,還要向B給出確認(rèn)。發(fā)送ACK=1,seq=x+1,ack=y+1。
  • 為什么A最后還要發(fā)送一次確認(rèn)呢? 這主要是為了防止已失效的連接請(qǐng)求報(bào)文段突然又傳送到了B,因而產(chǎn)生錯(cuò)誤。

    所謂“已失效的連接請(qǐng)求報(bào)文段”是這樣產(chǎn)生的??紤]一種正常情況,A發(fā)出連接請(qǐng)求,但因連接請(qǐng)求報(bào)文丟失而未收到確認(rèn)。于是A再重傳一次連接請(qǐng)求。后來(lái)收到了確認(rèn),建立了連接。數(shù)據(jù)傳輸完畢后,就釋放了連接。A共發(fā)送了兩個(gè)連接請(qǐng)求報(bào)文段,其中各地一個(gè)丟失,第二個(gè)到達(dá)了B,沒(méi)有“已失效的連接請(qǐng)求報(bào)文段”。

    現(xiàn)假定出現(xiàn)一種異常情況,即A發(fā)出的第一個(gè)連接請(qǐng)求報(bào)文段并沒(méi)有丟失,而是在某些網(wǎng)絡(luò)節(jié)點(diǎn)長(zhǎng)時(shí)間滯留了,以致延誤到連接釋放以后的某個(gè)時(shí)間才到達(dá)B。但B收到此失效的連接請(qǐng)求報(bào)文段后,就誤認(rèn)為是A又發(fā)出一次新的連接請(qǐng)求。于是就向A發(fā)出確認(rèn)報(bào)文段,同意建立連接。假定不采用報(bào)文握手,那么只要B發(fā)出確認(rèn),新的連接就建立了。

    由于現(xiàn)在A并沒(méi)有發(fā)出建立連接的請(qǐng)求,因此不會(huì)理睬B的確認(rèn),也不會(huì)向B發(fā)送數(shù)據(jù)。但B卻以為新的運(yùn)輸連接已經(jīng)建立了,并一直等待A發(fā)來(lái)數(shù)據(jù)。B的許多資源就這樣白白浪費(fèi)了。

    四次揮手


    數(shù)據(jù)傳輸結(jié)束后,通信的雙方都可以釋放連接。現(xiàn)在A和B都處于ESTABLISHED狀態(tài)。A的應(yīng)用進(jìn)程先向其TCP發(fā)出連接釋放報(bào)文段,并停止再發(fā)送數(shù)據(jù),主動(dòng)關(guān)閉TCP連接。A把連接釋放報(bào)文段首部的終止控制位FIN置為1,其徐浩seq=u,它等于前面以傳送過(guò)去的數(shù)據(jù)的最后一個(gè)字節(jié)的序號(hào)加1.這時(shí)A進(jìn)入FIN-WAIT-1(終止等待)狀態(tài),等待B的確認(rèn)。請(qǐng)注意,TCP規(guī)定,FIN報(bào)文段即使不攜帶數(shù)據(jù),它也消耗掉一個(gè)序號(hào)。

    B收到連接釋放報(bào)文段后立即發(fā)出確認(rèn),確認(rèn)號(hào)是ack=u+1,而這個(gè)報(bào)文段自己的序號(hào)是v,等于B前面一傳送過(guò)的數(shù)據(jù)的最后一個(gè)字節(jié)的序號(hào)加1.然后B就進(jìn)入CLOSE-WAIT(關(guān)閉等待)狀態(tài)了。TCP服務(wù)器進(jìn)程這時(shí)應(yīng)通知高層應(yīng)用進(jìn)程,因而從A到B這個(gè)方向的連接就釋放了,這時(shí)的TCP連接處于半關(guān)閉狀態(tài),即A已經(jīng)沒(méi)有數(shù)據(jù)要發(fā)送了,但B若發(fā)送數(shù)據(jù),A仍要接受。也就是說(shuō)B到A這個(gè)方向的連接并未關(guān)閉,這個(gè)狀態(tài)可能會(huì)持續(xù)一段時(shí)間。

    A收到來(lái)自B的確認(rèn)后,進(jìn)入FIN-WAIT-2(終止等待2)狀態(tài),等待B發(fā)出的連接釋放報(bào)文段。

    若B已經(jīng)沒(méi)有要向A發(fā)送的數(shù)據(jù),其應(yīng)用進(jìn)程就通知TCP釋放連接。這時(shí)B發(fā)出的連接釋放報(bào)文段必須使FIN=1.現(xiàn)假定B的序號(hào)為W(在半關(guān)閉狀態(tài)B可能又發(fā)送了一些數(shù)據(jù))。B還必須重復(fù)上次已發(fā)送過(guò)的確認(rèn)號(hào)ack=u+1。這時(shí)B就進(jìn)入LAST-ACK(最后確認(rèn)狀態(tài)),等待A的確認(rèn)。

    A在收到B的連接釋放報(bào)文段后,必須對(duì)此發(fā)出確認(rèn)。在確認(rèn)報(bào)文段中把ACK置1,確認(rèn)號(hào)ack=w+1,然后進(jìn)入到TIME-WAIT(時(shí)間等待)狀態(tài)。請(qǐng)注意,現(xiàn)在TCP連接還沒(méi)有釋放掉。必須經(jīng)過(guò)時(shí)間等待計(jì)時(shí)器設(shè)置的時(shí)間2MSL后,A才進(jìn)入到CLOSED狀態(tài)。

    為什么A在TIME-WAIT狀態(tài)必須等待2MSL的時(shí)間呢? 兩個(gè)理由

  • 為了保證A發(fā)送的最后一個(gè)ACK報(bào)文段能夠到達(dá)B。
  • 防止上一節(jié)提到的“已失效的連接請(qǐng)求報(bào)文段”出現(xiàn)在本連接中。
  • 有限狀態(tài)機(jī)

    總結(jié)

    以上是生活随笔為你收集整理的计算机网络-基本概念(10)【传输层】TCP运输连接管理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。