日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 單片機 > 小林coding
[導讀]大家好,我是小林。之前圖解過TCP的滑動窗口和流量控制的工作方式:圖解TCP重傳、滑動窗口、流量控制、擁塞控制當時花費了好幾個星期肝了這篇文章,因為為了方便大家理解他兩的工作方式,以及一些異常場景的分析,畫了很多變化的圖。還沒看過的同學,可以去看看,可以說把每一個階段的變化都解釋...

大家好,我是小林。之前圖解過 TCP 的滑動窗口和流量控制的工作方式:圖解 TCP 重傳、滑動窗口、流量控制、擁塞控制

當時花費了好幾個星期肝了這篇文章,因為為了方便大家理解他兩的工作方式,以及一些異常場景的分析,畫了很多變化的圖。

還沒看過的同學,可以去看看,可以說把每一個階段的變化都解釋的很清楚了。

但是,不管怎么樣圖解,它始終不會動呀,動起來的話,大家學起來就會更加深刻了。

我最近剛好發(fā)現兩個網站。

可以以「動圖」的方式來學習 TCP 的滑動窗口和流量控制工作方式。

滑動窗口

滑動窗口動圖體驗的網站地址:

https://www2.tkn.tu-berlin.de/teaching/rn/animations/gbn_sr/

下圖是我從網站錄制的一張動圖:

每個長方塊代表一個數據,上面的是發(fā)送方,下面的是接收方,長方塊的不同的顏色代表著不同的意義,而且發(fā)送發(fā)和接收方滑動窗口的也是不同的。

先來說說,「發(fā)送方」的長方塊顏色:


  • 黃色:代表已發(fā)送并且已被確認的數據;

  • 藍色:代表已發(fā)送但未被確認或者還未發(fā)送的數據;

  • 灰色背景:代表滑動窗口的大小,比如這個動圖滑動窗口大小是 5。

  • 紫色圈圈:代表超時重傳時間;

再來說說,「接收方」的長方塊顏色:


  • 深藍色:代表數據已經被接收;

  • 白色:代表還未接收到的數據;

  • 綠色:代表對發(fā)送方數據的ack確認包;

這個網站,可以自行設置一些參數。

比如,可以設置滑動窗口的大小、超時重傳時間、發(fā)送速率、確認模式(選擇性確認模式or普通確認模式)等等。

我這里設置幾個參數,給大家看看效果。

我把超時重傳時間時間縮短,并且確認模式是普通確認模式,動圖效果如下:

可以看到,這種確認模式在發(fā)生超時重傳的時候,會把發(fā)送窗口內已發(fā)送的數據都會重傳一遍。

接著,我把確認模式改成「選擇性確認」。其動圖效果如下:

可以看到,改用「選擇性確認」的方式,只會重傳丟失的那一個數據。

流量控制

流量控制動圖體驗的網站地址:

https://www2.tkn.tu-berlin.de/teaching/rn/animations/flow/

這個網站的可以設置參數就比較少,理解起來也很容易。

我這里簡單介紹下這些參數:

  • file size,發(fā)送的文件總大?。?/span>

  • buffer size,發(fā)送方和接收方的內核緩沖區(qū)的大小;

  • propagation time,發(fā)送方和接收方之間的傳播時間。

下圖是我從網站錄制的一張動圖:

可以看到,發(fā)送方和接收方共有兩個緩沖區(qū),一個是 buffer,指的是內核緩沖區(qū),另外一個是 application,指的是應用層的緩沖區(qū)。

對于發(fā)送發(fā)來說,當要發(fā)送數據的時候,需要從 application 拷貝數據到 buffer,而對于接收方來說,當接收到數據的時候,會先緩存到 buffer,然后再由應用程序從 buffer 讀取數據。

當接收方的 application 來不及從 buffer 讀取數據,而導致 buffer 堆積滿了,這時接收方就會給發(fā)送方通報一個接收窗口為0的報文,表示我已經不能再接收數據啦,比如下面這個情況。

大家可以去體驗這兩個網站,我感覺做的還是挺不錯到,對于學習 TCP 滑動窗口和流量控制會有很大的幫助。

當然,在使用之前,最好自己要學一點理論知識,看我之前的這篇就夠了:圖解 TCP 重傳、滑動窗口、流量控制、擁塞控制

好了,這次就說到這啦,下次見~

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
關閉