tcp的建立與釋放

2021-10-10 19:20:28 字數 1495 閱讀 6674

如下圖設定ip位址

切換simulattion模式,在pc0的desktop介面點開web browser在url中輸入伺服器的ip位址

因為http服務基於tcp的,所以傳送請求的時候會先建立tcp連線

從下圖客戶端傳送的tpc連線報文可以看出http服務使用tcp埠號(dest port)為80

報文序號(sequence mun)和確認序號(ack num)都為0

同時,伺服器的報文如下圖所示

報文序號(sequence mun)為0

確認序號(ack num)為1

由於客戶端的連線請求已消耗掉乙個序號

報文序號(sequence mun)為1

確認序號(ack num)為1

應用層向tcp層傳送用於網間傳輸的、用8位位元組表示的資料流,然後tcp把資料流分割槽成適當長度的報文段(通常受該計算機連線的網路的資料鏈路層的最大傳輸單元(mtu)的限制)。之後tcp把結果包傳給ip層,由它來通過網路將包傳送給接收端實體的tcp層。tcp為了保證不發生丟包,就給每個包乙個序號,同時序號也保證了傳送到接收端實體的包的按序接收。然後接收端實體對已成功收到的包發回乙個相應的確認(ack)

假設主機a為客戶端,主機b為伺服器,其釋放tcp連線的過程如下:

1) 關閉客戶端到伺服器的連線:首先客戶端a傳送乙個fin,用來關閉客戶到伺服器的資料傳送,然後等待伺服器的確認。其中終止標誌位fin=1,序列號seq=u

2) 伺服器收到這個fin,它發回乙個ack,確認號ack為收到的序號加1。

3) 關閉伺服器到客戶端的連線:也是傳送乙個fin給客戶端。

4) 客戶段收到fin後,並發回乙個ack報文確認,並將確認序號seq設定為收到序號加1。

主機a傳送fin後,進入終止等待狀態, 伺服器b收到主機a連線釋放報文段後,就立即給主機a傳送確認,然後伺服器b就進入close-wait狀態,此時tcp伺服器程序就通知高層應用程序,因而從a到b的連線就釋放了。此時是「半關閉」狀態。即a不可以傳送給b,但是b可以傳送給a。

此時,若b沒有資料報要傳送給a了,其應用程序就通知tcp釋放連線,然後傳送給a連線釋放報文段,並等待確認。a傳送確認後,進入time-wait,注意,此時tcp連線還沒有釋放掉,然後經過時間等待計時器設定的2msl後,a才進入到close狀態。

TCP建立連線與釋放連線

tcp建立連線與釋放連線 tcp建立連線與釋放連線 最近複習準備 計算機網路 考試,感覺tcp協議建立連線與釋放連線這兩個過程比較重要,所以把自己理解的部分寫下來。1.建立連線 三次握手 1 客戶端傳送乙個syn包給伺服器,然後等待應答。2 伺服器端回應給客戶端乙個ack 1 syn 1的tcp資料...

TCP建立連線與釋放連線

tcp建立連線與釋放連線 最近複習準備 計算機網路 考試,感覺tcp協議建立連線與釋放連線這兩個過程比較重要,所以把自己理解的部分寫下來。1.建立連線 三次握手 1 客戶端傳送乙個syn包給伺服器,然後等待應答。2 伺服器端回應給客戶端乙個ack 1 syn 1的tcp資料段。3 客戶必須再次回應伺...

TCP建立連線與釋放連線

tcp建立連線與釋放連線 最近複習準備 計算機網路 考試,感覺tcp協議建立連線與釋放連線這兩個過程比較重要,所以把自己理解的部分寫下來。1.建立連線 三次握手 1 客戶端傳送乙個syn包給伺服器,然後等待應答。2 伺服器端回應給客戶端乙個ack 1 syn 1的tcp資料段。3 客戶必須再次回應伺...