網路封包

TCP / IP (Transmission Control Protocol over Internet Protocol)使用的是三項交握流程

當你的電腦向某台主機請求資源時,你會發送 SYN 訊息給這台電腦

當這台電腦收到訊息後,會開始將資源 SYN/ACK 傳送給你

而你在接收到資源時,必須要再回傳 ACK(Acknowledgement)確認訊息 給這台電腦,才算完成。

常見的是,封包通常會需要用到續傳方式,逐步將檔案資源提供給請求端,

這也表示,TCP/IP 在傳輸大型檔案,需要續傳流程時,就必須要持續保持三項交握流程。

舉例來說,

從A網站下載檔案時,一開始不確定你的網路頻寬有多少,因此會先丟2個封包,讓你的電腦透過 TCP回傳 ACK(Acknowledgement)確認訊息給 A 網站,讓 A 網站知道你的網路頻寬還能在網上堆疊

接著,A電腦會逐步增加封包量,由 2 封包開始增為 4封包,8封包,16封包….逐步往上

直到傳輸量超過你的頻寬時,會先造成封包遺失,這時A電腦沒有收到 ACK 時,就會知道已經超過負載

這時 A 電腦就會開始往下調節,直到抓到一個可以穩定的封包量,將檔案穩定傳輸給你

因此,在下載過程,同時也會需要用到上傳 ACK 的流量

如果,在下載頻寬足夠,但是上傳的頻寬過小,也會導致上傳 ACK 頻寬爆滿,連帶會再將下載速度拖慢。