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