在因特網(wǎng)協(xié)議族(internet protocol suite)四層協(xié)議中,tcp層是位于ip層之上,應(yīng)用層之下的傳輸層。不同主機(jī)的應(yīng)用層之間經(jīng)常需要可靠的、像管道一樣的連接,但是ip層不提供這樣的流機(jī)制,而是提供不可靠的包交換。
應(yīng)用層向tcp層發(fā)送用于網(wǎng)間傳輸?shù)摹⒂?位字節(jié)表示的數(shù)據(jù)流,然后tcp把數(shù)據(jù)流分割成適當(dāng)長(zhǎng)度的報(bào)文段(通常受該計(jì)算機(jī)連接的網(wǎng)絡(luò)的數(shù)據(jù)鏈路層的最大傳送單元(mtu)的限制)。之后tcp把結(jié)果包傳給ip層,由它來(lái)通過(guò)網(wǎng)絡(luò)將包傳送給接收端實(shí)體的tcp層。tcp為了保證不發(fā)生丟包,就給每個(gè)字節(jié)一個(gè)序號(hào),同時(shí)序號(hào)也保證了傳送到接收端實(shí)體的包的按序接收。然后接收端實(shí)體對(duì)已成功收到的字節(jié)發(fā)回一個(gè)相應(yīng)的確認(rèn)(ack);如果發(fā)送端實(shí)體在合理的往返時(shí)延(rtt)內(nèi)未收到確認(rèn),那么對(duì)應(yīng)的數(shù)據(jù)(假設(shè)丟失了)將會(huì)被重傳。tcp用一個(gè)校驗(yàn)和函數(shù)來(lái)檢驗(yàn)數(shù)據(jù)是否有錯(cuò)誤;在發(fā)送和接收時(shí)都要計(jì)算和校驗(yàn)。
首先,tcp建立連接之后,通信雙方都同時(shí)可以進(jìn)行數(shù)據(jù)的傳輸,其次,它是全雙工的;在保證可靠性上,采用超時(shí)重傳和捎帶確認(rèn)機(jī)制。
在流量控制上,采用滑動(dòng)窗口協(xié)議,協(xié)議中規(guī)定,對(duì)于窗口內(nèi)未經(jīng)確認(rèn)的分組需要重傳。
在擁塞控制上,采用廣受好評(píng)的tcp擁塞控制算法(也稱(chēng)aimd算法),該算法主要包括三個(gè)主要部分:1、加性增、乘性減;2、慢啟動(dòng);3、對(duì)超時(shí)事件做出反應(yīng)。