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