計算機網路

2021-09-25 22:42:05 字數 2140 閱讀 7751

假設 a 為客戶端,b 為伺服器端。

三次握手的原因

第三次握手是為了防止失效的連線請求到達伺服器,讓伺服器錯誤開啟連線。

客戶端傳送的連線請求如果在網路中滯留,那麼就會隔很長一段時間才能收到伺服器端發回的連線確認。客戶端等待乙個超時重傳時間之後,就會重新請求連線。但是這個滯留的連線請求最後還是會到達伺服器,如果不進行三次握手,那麼伺服器就會開啟兩個連線。如果有第三次握手,客戶端會忽略伺服器之後傳送的對滯留連線請求的連線確認,不進行第三次握手,因此就不會再次開啟連線。

四次揮手的原因

客戶端傳送了 fin 連線釋放報文之後,伺服器收到了這個報文,就進入了 close-wait 狀態。這個狀態是為了讓伺服器端傳送還未傳送完畢的資料,傳送完畢之後,伺服器會傳送 fin 連線釋放報文。

time_wait

客戶端接收到伺服器端的 fin 報文後進入此狀態,此時並不是直接進入 closed 狀態,還需要等待乙個時間計時器設定的時間 2msl。這麼做有兩個理由:

tcp 使用超時重傳來實現可靠傳輸:如果乙個已經傳送的報文段在超時時間內沒有收到確認,那麼就重傳這個報文段。

乙個報文段從傳送再到接收到確認所經過的時間稱為往返時間 rtt,加權平均往返時間 rtts 計算如下:

其中,0 ≤ a < 1,rtts 隨著 a 的增加更容易受到 rtt 的影響。

超時時間 rto 應該略大於 rtts,tcp 使用的超時時間計算如下:   

其中 rttd 為偏差的加權平均值。

視窗是快取的一部分,用來暫時存放位元組流。傳送方和接收方各有乙個視窗,接收方通過 tcp 報文段中的視窗字段告訴傳送方自己的視窗大小,傳送方根據這個值和其它資訊設定自己的視窗大小。

傳送視窗內的位元組都允許被傳送,接收視窗內的位元組都允許被接收。如果傳送視窗左部的位元組已經傳送並且收到了確認,那麼就將傳送視窗向右滑動一定距離,直到左部第乙個位元組不是已傳送並且已確認的狀態;接收視窗的滑動類似,接收視窗左部位元組已經傳送確認並交付主機,就向右滑動接收視窗。

接收視窗只會對視窗內最後乙個按序到達的位元組進行確認,例如接收視窗已經收到的位元組為 ,其中 按序到達,而 就不是,因此只對位元組 31 進行確認。傳送方得到乙個位元組的確認之後,就知道這個位元組之前的所有位元組都已經被接收。

流量控制是為了控制傳送方傳送速率,保證接收方來得及接收。

接收方傳送的確認報文中的視窗字段可以用來控制傳送方視窗大小,從而影響傳送方的傳送速率。將視窗字段設定為 0,則傳送方不能傳送資料。

如果網路出現擁塞,分組將會丟失,此時傳送方會繼續重傳,從而導致網路擁塞程度更高。因此當出現擁塞時,應當控制傳送方的速率。這一點和流量控制很像,但是出發點不同。流量控制是為了讓接收方能來得及接收,而擁塞控制是為了降低整個網路的擁塞程度。

傳送的最初執行慢開始,令 cwnd = 1,傳送方只能傳送 1 個報文段;當收到確認後,將 cwnd 加倍,因此之後傳送方能夠傳送的報文段數量為:2、4、8 ...

注意到慢開始每個輪次都將 cwnd 加倍,這樣會讓 cwnd 增長速度非常快,從而使得傳送方傳送的速度增長速度過快,網路擁塞的可能性也就更高。設定乙個慢開始門限 ssthresh,當 cwnd >= ssthresh 時,進入擁塞避免,每個輪次只將 cwnd 加 1。

如果出現了超時,則令 ssthresh = cwnd / 2,然後重新執行慢開始。

在接收方,要求每次接收到報文段都應該對最後乙個已收到的有序報文段進行確認。例如已經接收到 m1 和 m2,此時收到 m4,應當傳送對 m2 的確認。

在傳送方,如果收到三個重複確認,那麼可以知道下乙個報文段丟失,此時執行快重傳,立即重傳下乙個報文段。例如收到三個 m2,則 m3 丟失,立即重傳 m3。

在這種情況下,只是丟失個別報文段,而不是網路擁塞。因此執行快恢復,令 ssthresh = cwnd / 2 ,cwnd = ssthresh,注意到此時直接進入擁塞避免。

慢開始和快恢復的快慢指的是 cwnd 的設定值,而不是 cwnd 的增長速率。慢開始 cwnd 設定為 1,而快恢復 cwnd 設定為 ssthresh。

計算機網路9 計算機網路效能

1.網路效能的衡量指標 2.速率 3.頻寬 4.延遲 5.丟包率 6.時延頻寬積 7.吞吐率 網路效能的好壞可以由網路的速率 頻寬 延遲 丟包率 網路頻寬積 吞吐率等方面來判斷,下面讓我們一一詳細介紹。速率 資料率 data rate 也稱 資料傳輸速率或位元率 bit rate 指的是 單位時間 ...

計算機網路 計算機網路的效能

目錄 1.網路效能的衡量指標 2.速率 3.頻寬 4.延遲 5.丟包率 6.時延頻寬積 7.吞吐率 網路效能的好壞可以由網路的速率 頻寬 延遲 丟包率 網路頻寬積 吞吐率等方面來判斷,下面讓我們一一詳細介紹。速率 資料率 data rate 也稱 資料傳輸速率或位元率 bit rate 指的是 單位...

計算機網路學習 計算機網路效能

出自 1.網路效能的衡量指標 2.速率 3.頻寬 4.延遲 5.丟包率 6.時延頻寬積 7.吞吐率 網路效能的好壞可以由網路的速率 頻寬 延遲 丟包率 網路頻寬積 吞吐率等方面來判斷,下面讓我們一一詳細介紹。速率 資料率 data rate 也稱 資料傳輸速率或位元率 bit rate 指的是 單位...