计算机网络-TCP运输连接管理
目錄
- 1 運(yùn)輸連接概述
- 2 TCP的連接建立
- 3 TCP的連接釋放
1 運(yùn)輸連接概述
- TCP 是面向連接的協(xié)議
- TCP 連接有三個(gè)階段:連接建立,數(shù)據(jù)傳送,連接釋放
- TCP 連接的管理就是使 TCP 連接的建立和釋放都能正常地進(jìn)行
TCP 連接建立過程中要解決的三個(gè)問題:
TCP連接的建立采用的是客戶—服務(wù)器方式:
- 主動(dòng)發(fā)起連接建立的應(yīng)用進(jìn)程叫做客戶 (client)
- 被動(dòng)等待連接建立的應(yīng)用進(jìn)程叫做服務(wù)器 (server)
2 TCP的連接建立
- TCP 建立連接的過程叫做握手
- 握手需要在客戶和服務(wù)器之間交換三個(gè) TCP 報(bào)文段。稱之為三報(bào)文握手
- 采用三報(bào)文握手主要是為了防止已失效的連接請(qǐng)求報(bào)文段突然又傳送到了,因而產(chǎn)生錯(cuò)誤
三次報(bào)文握手的過程:
注意:大寫的ACK和小寫的ack代表的含義不同,大寫ACK代表確認(rèn)位,小寫ack代表確認(rèn)號(hào),ack=x+1代表之前序號(hào)x報(bào)文已經(jīng)正確收到了,并期待收到x+1報(bào)文,服務(wù)器B也選擇了序號(hào)seq=y,這里的x和y代表雙方各自發(fā)送的序號(hào)的獨(dú)立的
注意:當(dāng)A收到B的確認(rèn)后還會(huì)發(fā)送一次確認(rèn)報(bào)文給B,即確認(rèn)的確認(rèn),主要是為了防止已失效的連接請(qǐng)求報(bào)文段突然又傳送到了,因而產(chǎn)生錯(cuò)誤,考慮這樣一種情況,比如說A的第一個(gè)連接報(bào)文由于在某個(gè)站點(diǎn)滯留,B收到之后會(huì)認(rèn)為A又重新發(fā)了一次連接,這個(gè)時(shí)候B會(huì)發(fā)送確認(rèn)報(bào)文同意建立新的連接,當(dāng)A收到確認(rèn)連接的報(bào)文時(shí)由于這個(gè)確認(rèn)是對(duì)一個(gè)并不存在的連接請(qǐng)求,A不去理睬B的確認(rèn),B如果沒有對(duì)確認(rèn)的再次確認(rèn)么就會(huì)誤以為連接已經(jīng)建立好了而等待A去發(fā)送數(shù)據(jù),但A并沒有數(shù)據(jù)要發(fā)送,雙方就進(jìn)入了一個(gè)誤會(huì)的狀態(tài),所以第三次的握手對(duì)確認(rèn)的再確認(rèn)時(shí)非常必要的
3 TCP的連接釋放
- TCP 連接釋放過程比較復(fù)雜,數(shù)據(jù)傳輸結(jié)束后,通信的雙方都可釋放連接
- TCP 連接釋放過程是四報(bào)文握手
四次報(bào)文握手的過程:
注意:上述操作實(shí)際上是A告訴B,A的數(shù)據(jù)已經(jīng)發(fā)送完了,現(xiàn)在需要把發(fā)送方向這個(gè)連接釋放掉
注意:B接收到了A的釋放連接報(bào)文,會(huì)發(fā)出確認(rèn)報(bào)文,ack=u+1表示已經(jīng)收到了A發(fā)出的釋放連接報(bào)文,而自己的序號(hào)seq=v,這里u和v仍然是獨(dú)立的,意味著B這個(gè)時(shí)刻不一定需要釋放連接,因?yàn)锽可能還有數(shù)據(jù)要發(fā)送,所以說TCP連接處于半關(guān)閉狀態(tài)
注意:seq=v和seq=w中的v和w是相互獨(dú)立的,實(shí)際上是B在發(fā)送數(shù)據(jù)時(shí),又消耗了一部分字節(jié)。在最后一次A到B的確認(rèn)報(bào)文中,seq=u+1這里的u和第一輪B向A發(fā)送的確認(rèn)報(bào)文中的ack=u+1的u是一樣的
注意:A 必須等待 2MSL 的時(shí)間(MSL即報(bào)文最長壽命時(shí)間)
- 第一,為了保證 A 發(fā)送的最后一個(gè) ACK 報(bào)文段能夠到達(dá) B
- 第二,防止 “已失效的連接請(qǐng)求報(bào)文段”出現(xiàn)在本連接中,簡單來說就是設(shè)一個(gè)長一點(diǎn)的等待時(shí)間,在這段時(shí)間內(nèi)所有請(qǐng)求都消失在網(wǎng)絡(luò)里,這樣讓新的請(qǐng)求來的時(shí)候不會(huì)產(chǎn)生誤會(huì)
總結(jié)
以上是生活随笔為你收集整理的计算机网络-TCP运输连接管理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机网络-TCP拥塞控制
- 下一篇: C语言-宏定义#define的用法