TCP 是可靠且有序的位元組串流傳輸協定。它使用 32 位元序號識別每個位元組;這些數字的算術運算採用模 \(2^{32}\)。
三向交握 #
為了開啟連線,用戶端會傳送帶有初始序號 x 的 SYN。伺服器回覆 SYN+ACK,選擇自己的初始序號 y,並確認 x + 1。用戶端傳送確認 y + 1 的 ACK。即使 SYN 不攜帶任何應用程式位元組,它仍會消耗一個序號位置。
資料傳輸與關閉 #
每個 ACK 都會回報下一個預期的序號,因此會累積確認前面的所有位元組。TCP 會重傳未確認的資料,依接收端宣告的視窗調節傳送速率,並使用壅塞控制避免網路過載。正常關閉會在兩個方向各使用 FIN 區段;重設(RST)則會在沒有正常有序關閉的情況下中止連線。
評論
在 GitHub 上閱讀或評論(發表評論需要登入)