上一節簡單寫了UDP協議,他屬於無腦式.算法
而TCP協議,是有思想的,而且至關嚴謹。亂序、丟包、重傳、擁塞的問題時常發生,一言不合就送達不了,於是要從算法層面來可靠性spa
TCP包頭的格式
除了第一行跟UDP頭同樣有源端口和目標端口.其餘的要複雜得多.blog
第二行是32位序號,能保證包順序class
第三行是32位確認序號.發出的包確定給個回覆.否則我怎麼知道有沒收到呢?若是沒有收到那我就從新發送咯.請求
它相應解決了丟包的問題im
第四行是請求的類型即狀態位,他是多樣化。有三次握手中的請求SYN、答應ACK、重鏈接RST協議
斷開鏈接的四次回收FIN等等,後面會詳細說明db
由於TCP是面向鏈接的,於是要維護雙方的鏈接狀態,這些帶狀態的包發送,會引發雙方狀態的變動img
TCP三次握手端口