為什么TCP的初始序列號是隨機的


TCP在開始傳輸數據前,客戶端和服務器需要隨機生成自己的初始序列號(initial sequence number-ISN),然后通過三次握手進行交換確認。

問題:為什么ISN是隨機的?

考慮場景,B是服務器,A是一個合法的客戶端,C假冒A(比如模擬IP等)和B進行通信。

由於ISN是隨機的,最終C無法傳遞數據到B。

 

C假冒A,B接受后把ACK會直接發給A

由於A沒有發送過seq=ISN _C的請求,當A收到ISN_C的ack后直接發送reset 給B,最終關閉了鏈接。

加入初始序列號不是隨機的,而是可以推測的,那么C就可以拿到ISN_B,然后模擬一個ACK過去,B最終會建立鏈接,

C開始傳遞數據,這就會產生非常嚴重的安全問題,所以ISN隨機是必須的。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM