主要原因有兩個方面:
- 很大程度上避免歷史報文被下一個相同四元組的 TCP 連接接收問題(主要方面)
- 防止黑客偽造相同序列號的 TCP 報文被接收
接下來,詳細說說第一點
假設每次建立 TCP 連接時,客戶端和服務端的初始序列號都是從 0 開始,這種話情況下,很容易出現歷史報文被下一個相同四元組的 TCP 連接接收問題
假設每次建立 TCP 連接時,客戶端和服務端的初始序列號都不一樣,這種情況下,大概率因為歷史報文的序列號不在對方接收窗口范圍內,進而很大程度上避免了歷史報文被下一個相同四元組的 TCP 連接接收問題