TCP是一種面向連接的字節(jié)流服務(wù),也就是說需要依靠TCP來通信的雙方必須事先建立連接,并且只能是一對一的連接,就像打電話一樣。
TCP服務(wù)主要利用以下的一些方式來保證可靠性:
1、報文段
應(yīng)用層提交給TCP的數(shù)據(jù),將會被分割成TCP認(rèn)為最合適大小的數(shù)據(jù)塊(報文段)后,再交給IP層。
2、超時重傳
TCP每發(fā)送出一個報文段后,都會啟動一個定時器,對目的端傳回的確認(rèn)信息進(jìn)行確認(rèn)計時,超時后便重傳。
3、確認(rèn)信號
當(dāng)TCP收到一個來自TCP的報文段后,便會發(fā)送回一個確認(rèn)信號。
4、檢驗(yàn)和
TCP將始終保持首部和數(shù)據(jù)的檢驗(yàn)和,如果收到的報文段的檢驗(yàn)和有差錯,便將其丟棄,希望發(fā)送端超時重傳。
5、重新排序
由于IP數(shù)據(jù)報的達(dá)到可能失序,因此TCP將會數(shù)據(jù)進(jìn)行重新排序,以正確的順序交給應(yīng)用層。
6、丟棄重復(fù)
由于IP數(shù)據(jù)報有可能重復(fù),因此TCP將會丟棄重復(fù)的數(shù)據(jù)。
7、流量控制
TCP連接的兩端都有固定大小的緩沖區(qū)空間,TCP接受端只允許對端發(fā)送本端緩沖區(qū)能容納的數(shù)據(jù)。