TCP

TCP通過下列方式來提供可靠性
(1)應(yīng)用數(shù)據(jù)被分割成TCP認(rèn)為最合適的發(fā)送數(shù)據(jù)塊。這和UDP完全不同,應(yīng)用程序產(chǎn)生的數(shù)據(jù)報(bào)長度將保持不變。由TCP傳遞給IP的信息單位稱為報(bào)文段或段(segement)

(2)當(dāng)TCP發(fā)出一個(gè)段后,他啟動(dòng)一個(gè)定時(shí)器。等待目的端確認(rèn)收到這個(gè)報(bào)文段,如果不能及時(shí)收到這個(gè)確認(rèn),將重發(fā)這個(gè)報(bào)文段。

(3)當(dāng)TCP收到發(fā)至TCP鏈接的另一端的數(shù)據(jù)。他將發(fā)送一個(gè)確認(rèn)。這個(gè)確認(rèn)不是立即發(fā)送,通常會(huì)延長幾分之妙

(4)TCP將保持他首部和數(shù)據(jù)的檢驗(yàn)和。這是端到端的檢驗(yàn)和,目的是檢測(cè)數(shù)據(jù)在傳輸?shù)倪^程中任何變化。如果收到的檢測(cè)和有差錯(cuò),TCP將丟棄這個(gè)報(bào)文段和不確認(rèn)收到此報(bào)文段(希望發(fā)端超時(shí)并重發(fā))

(5)既然TCP報(bào)文段作為IP數(shù)據(jù)報(bào)來傳輸?shù)?,而IP數(shù)據(jù)報(bào)的到達(dá)可能會(huì)失序,因此TCP報(bào)文段的到達(dá)也可能會(huì)失序。如果必要TCP將對(duì)收到的數(shù)據(jù)進(jìn)行重新排序,將收到的數(shù)據(jù)以正確的順序交給應(yīng)用層

(6)既然IP數(shù)據(jù)報(bào)會(huì)發(fā)生重復(fù),TCP的接收端必須丟棄重復(fù)的數(shù)據(jù)。

(7)TCP還提供了流量控制。TCP鏈接的每一個(gè)都有固定大小緩存空間。TCP的接收端只允許另一端發(fā)送接收端緩存區(qū)所能接納的數(shù)據(jù)。這是防止較快主機(jī)是較慢的主機(jī)的緩沖區(qū)溢出。

兩個(gè)應(yīng)用程序通過TCP連接交換8bit字節(jié)構(gòu)成的字節(jié)流。TCP不在字節(jié)流中插入記錄標(biāo)識(shí)符。我們將這稱為字節(jié)流服務(wù)(byte stream service)。如果一方的應(yīng)用程序先傳10字節(jié),又傳20字節(jié),再傳50字節(jié),連接的另一方將無法了解發(fā)方每次發(fā)送了多少字節(jié)。收方可以分4次接收這80個(gè)字節(jié),每次接收20字節(jié)。一端將字節(jié)流放到TCP連接上,同樣的字節(jié)流將出現(xiàn)在TCP連接的另一端。

另外,TCP對(duì)字節(jié)流的內(nèi)容不作任何解釋。TCP不知道傳輸?shù)臄?shù)據(jù)字節(jié)流是二進(jìn)制數(shù)據(jù),還是ASCII字符、EBCDIC字符或者其他類型數(shù)據(jù)。對(duì)字節(jié)流的解釋由TCP連接雙方的應(yīng)用層解釋。


TCP為應(yīng)用層提供全雙工服務(wù)。這意味數(shù)據(jù)能在兩個(gè)方向上獨(dú)立地進(jìn)行傳輸。因此,連接的每一端必須保持每個(gè)方向上的傳輸數(shù)據(jù)序號(hào)。

TCP提供了一種可靠的面向連接的字節(jié)流運(yùn)輸層服務(wù)。我們簡單地介紹了TCP首部中的各個(gè)字段,并在隨后的幾章里詳細(xì)討論它們。

TCP將用戶數(shù)據(jù)打包構(gòu)成報(bào)文段;它發(fā)送數(shù)據(jù)后啟動(dòng)一個(gè)定時(shí)器;另一端對(duì)收到的數(shù)據(jù)進(jìn)行確認(rèn),對(duì)失序的數(shù)據(jù)重新排序,丟棄重復(fù)數(shù)據(jù);TCP提供端到端的流量控制,并計(jì)算和驗(yàn)證一個(gè)強(qiáng)制性的端到端檢驗(yàn)和。

許多流行的應(yīng)用程序如Telnet、Rlogin、FTP和SMTP都使用TCP。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 18.1 引言 TCP是一個(gè)面向連接的協(xié)議。無論哪一方向另一方發(fā)送數(shù)據(jù)之前,都必須先在雙方之間建立一條連接。本章將...
    張芳濤閱讀 3,527評(píng)論 0 13
  • 20.1 引言 在第15章我們看到TFTP使用了停止等待協(xié)議。數(shù)據(jù)發(fā)送方在發(fā)送下一個(gè)數(shù)據(jù)塊之前需要等待接收對(duì)已發(fā)送...
    張芳濤閱讀 934評(píng)論 0 2
  • 個(gè)人認(rèn)為,Goodboy1881先生的TCP /IP 協(xié)議詳解學(xué)習(xí)博客系列博客是一部非常精彩的學(xué)習(xí)筆記,這雖然只是...
    貳零壹柒_fc10閱讀 5,192評(píng)論 0 8
  • 1.這篇文章不是本人原創(chuàng)的,只是個(gè)人為了對(duì)這部分知識(shí)做一個(gè)整理和系統(tǒng)的輸出而編輯成的,在此鄭重地向本文所引用文章的...
    SOMCENT閱讀 13,360評(píng)論 6 174
  • 21.1 引言 TCP提供可靠的運(yùn)輸層。它使用的方法之一就是確認(rèn)從另一端收到的數(shù)據(jù)。但數(shù)據(jù)和確認(rèn)都有可能會(huì)丟失。T...
    張芳濤閱讀 3,377評(píng)論 0 8

友情鏈接更多精彩內(nèi)容