2、校驗和:和UDP的做法一樣,也要僞首部,和UDP不同的是這個功能在TCP中是必須的
3、確認:ACK的確認機制(下面是一些原則)
a、ACK報文不需要確認,也不消耗序號
b、當一端發送數據時,儘量包含捎帶確認。
c、收端推遲發送ACK報文段,如果僅有一個未確認的按序報文段;延遲到500ms,或者有第二個報文段接收時(轉d),或者有數據要發送時(轉b)
d、任何時候,不能有兩個(以上)未確認的報文段(就是說如果收端有兩個未確認的按序報文段,就馬上發送ACK報文段進行確認)
e、當收到一個序號比期望序號還大的報文段時,馬上發送ACK,讓發端進行快重傳
f、收到重複的報文段,就立即發送確認(解決ACK丟失問題)
g、丟失的報文段到達,發送確認,表示已經收到了丟失的報文
4、確認類型
累計確認:收端忽略掉所有失序報文,告知發端他期待下一個收到的序號,叫做肯定累計ACK。肯定是說:丟棄的,丟失的,重複的都不報告。
選擇確認(SACK):在某些新TCP實現裏面實現了這個東西,報告失序和重複的數據,作僞TCP首部選項字段的一部分。
5、重傳(兩種情況) : 重傳定時器時間到,或者 發端收到重複的三個ACK(快重傳)