TCP傳輸控制協(xié)議概念淺述
在互聯(lián)網(wǎng)的使用中,作為最基礎(chǔ)的協(xié)議棧則是TCP/IP協(xié)議棧。那么其中所包含的基本協(xié)議則是TCP傳輸控制協(xié)議和IP互聯(lián)網(wǎng)協(xié)議。下面我們就將具體介紹一下這兩方協(xié)議的概念和基本結(jié)構(gòu)情況,以及作用。
TCP:Transmission Control Protocol 傳輸控制協(xié)議
TCP是一種面向連接(連接導(dǎo)向)的、可靠的、基于字節(jié)流的運(yùn)輸層(Transport layer)通信協(xié)議,由IETF的RFC 793說明(specified)。在簡化的計算機(jī)網(wǎng)絡(luò)OSI模型中,它完成第四層傳輸層所指定的功能,UDP是同一層內(nèi)另一個重要的傳輸協(xié)議。
在因特網(wǎng)協(xié)議族(Internet protocol suite)中,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)長度的報文段(通常受該計算機(jī)連接的網(wǎng)絡(luò)的數(shù)據(jù)鏈路層的***傳送單元(MTU)的限制)。之后TCP把結(jié)果包傳給IP層,由它來通過網(wǎng)絡(luò)將包傳送給接收端實體的TCP層。
TCP為了保證不發(fā)生丟包,就給每個字節(jié)一個序號,同時序號也保證了傳送到接收端實體的包的按序接收。然后接收端實體對已成功收到的字節(jié)發(fā)回一個相應(yīng)的確認(rèn)(ACK); 如果發(fā)送端實體在合理的往返時延(RTT)內(nèi)未收到確認(rèn),那么對應(yīng)的數(shù)據(jù)(假設(shè)丟失了)將會被重傳。TCP用一個校驗和函數(shù)來檢驗數(shù)據(jù)是否有錯誤;在發(fā)送和接收時都要計算校驗和。
首先,TCP建立連接之后,通信雙方都同時可以進(jìn)行數(shù)據(jù)的傳輸,其次,他是全雙工的;在保證可靠性上,采用超時重傳和捎帶確認(rèn)機(jī)制。
在流量控制上,采用滑動窗口協(xié)議,協(xié)議中規(guī)定,對于窗口內(nèi)未經(jīng)確認(rèn)的分組需要重傳。
在擁塞控制上,采用慢啟動算法。
什么是TCP/IP?
TCP/IP(Transmission Control Protocol/Internet Protocol) 即傳輸控制協(xié)議/網(wǎng)間協(xié)議,是一個工業(yè)標(biāo)準(zhǔn)的協(xié)議集,它是為廣域網(wǎng)(WANs)設(shè)計的。它是由ARPANET網(wǎng)的研究機(jī)構(gòu)發(fā)展起來的。
有時我們將TCP/IP描述為互聯(lián)網(wǎng)協(xié)議集"Internet Protocol Suite",TCP和IP是其中的兩個協(xié)議(后面將會介紹)。由于TCP和IP是大家熟悉的協(xié)議,以至于用TCP/IP或IP/TCP這個詞代替了整個協(xié)議集。這盡管有點(diǎn)奇怪,但沒有必要去爭論這個習(xí)慣。例如,有時我們討論NFS 是基于TCP/IP時,盡管它根本沒用到TCP(只用到IP,和另一種交互式 協(xié)議UDP而不是TCP)。
Internet是網(wǎng)絡(luò)的集合,包括ARPANET、NSFNET、分布在各地的局域網(wǎng)、以及其它類型的網(wǎng)絡(luò),如(DDN,Defense Data Network美國國防數(shù)據(jù)網(wǎng)絡(luò)),這些統(tǒng)稱為Internet。所有這些大大小小的網(wǎng)絡(luò)互聯(lián)在一起。(因為大多數(shù)網(wǎng)絡(luò)基本協(xié)議是由DDN組織開發(fā)的,所以以前有時DDN與Internet在某種意義上具有相同的含義)。網(wǎng)絡(luò)上的用戶可以互相傳送信息,除一些有授權(quán)限制和安全考慮外。一般的講,互聯(lián)網(wǎng)協(xié)議文檔案是Internet委員會自己采納的基本標(biāo)準(zhǔn)。 TCP/IP標(biāo)準(zhǔn)與其說由委員會指定,倒不如說由"輿論"來開發(fā)的。 任何人都可以提供一個文檔,以RFC(Request for Comment需求注釋) 方式公布。
TCP/IP的標(biāo)準(zhǔn)(傳輸控制協(xié)議/網(wǎng)間協(xié)議)在一系列稱為RFC的文檔中公布。文檔由技術(shù)專家、特別工作組、或RFC編輯修訂。公布一個文檔時,該文檔被賦予一個RFC量,如RFC959說明FTP、RFC793說明TCP、RFC791說明IP等。 最初的RFC一直保留而從來不會被更新,如果修改了該文檔,則該文檔又以一個新號碼公布。因此,重要的是要確認(rèn)你擁有了關(guān)于某個專題的***RFC文檔。文后會列出主要的RFC文檔號。