TCP提供一種面向連接的、可靠的字節(jié)流服務(wù)。
在一個(gè)TCP連接中,僅有兩方進(jìn)行彼此通信。廣播和多播不能用于TCP。
TCP數(shù)據(jù)被封裝在一個(gè)IP數(shù)據(jù)報(bào)中如下圖:

TCP數(shù)據(jù)在IP數(shù)據(jù)報(bào)中的封裝
顯示TCP首部的數(shù)據(jù)格式。如果不計(jì)任選字段,它通常是20個(gè)字節(jié)。

序號(hào)用來(lái)標(biāo)識(shí)從tcp發(fā)端到tcp收端發(fā)送的數(shù)據(jù)字節(jié)流,它表示在這個(gè)報(bào)文段中的第一個(gè)數(shù)據(jù)字節(jié)。如果將字節(jié)流看做在兩個(gè)應(yīng)用程序間的單向流動(dòng),則tcp序號(hào)對(duì)每個(gè)字節(jié)進(jìn)行計(jì)數(shù)。序號(hào)是32bit的無(wú)符號(hào)數(shù),序號(hào)到達(dá)2(32)-1后又從0開始。
tcp為應(yīng)用層提供全雙工服務(wù)。這意味著數(shù)據(jù)能在兩個(gè)方向上獨(dú)立地進(jìn)行傳輸。因此,連接的每一端必須保持每個(gè)方向上的傳輸數(shù)據(jù)序號(hào)。
首部長(zhǎng)度給出首部中的32bit字的數(shù)目。這個(gè)字段占4bit,因此tcp最多有60字節(jié)的首部。然而,沒(méi)有任選字段,正常的長(zhǎng)度是20字節(jié)。
TCP將用戶數(shù)據(jù)打包構(gòu)成報(bào)文段;它發(fā)送數(shù)據(jù)后啟動(dòng)一個(gè)定時(shí)器;另一端對(duì)收到的數(shù)據(jù)進(jìn)行確認(rèn),對(duì)失序的數(shù)據(jù)進(jìn)行重新排序,丟棄重復(fù)數(shù)據(jù);TCP提供端到端的流量控制,并計(jì)算和驗(yàn)證一個(gè)強(qiáng)制性的端到端檢驗(yàn)和。
許多流行的應(yīng)用程序如Telnet,Rlogin,FTP和SMTP都使用tcp。