前言
- 首先,不得不說,EPIC是真的大方,直接將GTAV免費送,沒有領取的小夥伴先點這裏白嫖一下,然後開始我們今天的正事。
- 可能博主也是等這94個G等迷糊了,想起了TCP的傳輸過程,文章不長,也是突然間想到記下來,大家看個樂呵就行,如果理解有誤,請大佬指正。
開始分析
首先附上下載過程圖片
TCP可靠傳輸的實現
- EPIC客戶端下載類似Steam,有5個進度條,我也不多廢話,直接看最後一個和倒數第二個進度條。
- 首先看一個動態圖點擊跳轉
- 看過之後你會發現,最後一個進度條和TCP的傳輸很像,怎麼像呢,下面我來解釋下。
- 以“字節”爲單位:可以把最後一個進度條的一個小方格看成一個字節(雖然肯定比字節大很多),你會發現,他們都是一個一個或一組一組往後傳輸的。
- 檢測丟失並重傳:深藍色的是沒有傳輸的,淺藍色的是丟失的(或錯誤的),粉色的是傳輸完成的,綠色的是傳輸完成並確認(寫入)的。偶爾會出現丟失(出現一個淺藍方格),那麼寫入就會停止,等待重傳後再繼續寫入。
- 有接收緩存:緩存的存在是協調高速設備和低速設備,最後一個進度條就類似緩衝區,寫入的速度非常快(達到400M每秒),而下載的速度相較就非常慢,緩衝區的存在協調了這種差距,偶爾寫入停止,等待沒有錯誤再繼續寫入。
後記
- 文章僅代表個人拙見,可能人家設計的進度條根本不是這個意思,但是將其作爲TCP傳輸模型也未嘗不可。
- 心(xian)血(de)來(dan)潮(teng)記錄一下個人發現,如有錯誤地方,請大佬指正。