傳輸控制協(xié)議TCP概述
發(fā)布時(shí)間:2014/9/5 20:44:48 訪問次數(shù):949
由于TCP協(xié)議比較復(fù)雜,OPA4344因此本節(jié)先對(duì)TCP協(xié)議進(jìn)行一般的介紹,然后再逐步深入討論TCP的可靠傳輸、流量控制和擁塞控制等問題。
TCP最主要的特點(diǎn)
TCP是TCP/IP體系中非常復(fù)雜的一個(gè)協(xié)議。下面介紹TCP最主要的特點(diǎn)。
(1) TCP是面向連接的運(yùn)輸層協(xié)議。這就是說,應(yīng)用程序在使用TCP協(xié)議之前,必須先建立TCP連接。在傳送數(shù)據(jù)完畢后,必須釋放已經(jīng)建立的TCP連接。也就是說,應(yīng)用進(jìn)程之間的通信好像在“打電話”:通話前要先撥號(hào)建立連接,通話結(jié)束后要掛機(jī)釋放連接。
(2)每一條TCP連接只能有兩個(gè)端點(diǎn)(endpoint),每一條TCP連接只能是點(diǎn)對(duì)點(diǎn)的(一對(duì)一)。這個(gè)問題后面還要進(jìn)一步討論。
(3) TCP提供可靠交付的服務(wù)。通過TCP連接傳送的數(shù)據(jù),無差錯(cuò)、不丟失、不重復(fù)、并且按序到達(dá)。
(4) TCP提供全雙工通信。TCP允許通信雙方的應(yīng)用進(jìn)程在任何時(shí)候都能發(fā)送數(shù)據(jù)。TCP連接的兩端都設(shè)有發(fā)送緩存和接收緩存,用來臨時(shí)存放雙向通信的數(shù)據(jù)。在發(fā)送時(shí),應(yīng)用程序在把數(shù)據(jù)傳送給TCP的緩存后,就可以做自己的事,而TCP在合適的時(shí)候把數(shù)據(jù)發(fā)送出去。在接收時(shí),TCP把收到的數(shù)據(jù)放入緩存,上層的應(yīng)用進(jìn)程在合適的時(shí)候讀取緩存中的數(shù)據(jù)。
(5)面向字節(jié)流。TCP中的“流”(stream)指的是流入到進(jìn)程或從進(jìn)程流出的字節(jié)序列。“面向字節(jié)流”的含義是:雖然應(yīng)用程序和TCP的交互是一次一個(gè)數(shù)據(jù)塊(大小不等),但TCP把應(yīng)用程序交下來的數(shù)據(jù)看成僅僅是一連串的無結(jié)構(gòu)的字節(jié)流。TCP并不知道所傳送的字節(jié)流的含義。TCP不保證接收方應(yīng)用程序所收到的數(shù)據(jù)塊和發(fā)送方應(yīng)用程序所發(fā)出的數(shù)據(jù)塊具有對(duì)應(yīng)大小的關(guān)系(例如,發(fā)送方應(yīng)用程序交給發(fā)送方的TCP共10個(gè)數(shù)據(jù)塊,但接收方的TCP可能只用了4個(gè)數(shù)據(jù)塊就把收到的字節(jié)流交付上層的應(yīng)用程序)。但接收方應(yīng)用程序收到的字節(jié)流必須和發(fā)送方應(yīng)用裎序發(fā)出的字節(jié)流完全一樣。當(dāng)然,接收方的應(yīng)用程序必須有能力識(shí)別收到的字節(jié)流,把它還原成有意義的應(yīng)用層數(shù)據(jù)。圖5-8是上述概念的示
意圖。
為了突出示意圖的要點(diǎn),我們只畫出了一個(gè)方向的數(shù)據(jù)流。但請(qǐng)注意,在實(shí)際的網(wǎng)絡(luò)中,一個(gè)TCP報(bào)文段包含上千個(gè)字節(jié)是很常見的,而圖中的各部分都只畫出了幾個(gè)字節(jié),這僅僅是為了更方便地說明“面向字節(jié)流”的概念。另一點(diǎn)很重要的是:圖5-8中的TCP連接是一條虛連接(也就是邏輯連接)而不是一條真正的物理連接。TCP報(bào)文段先要傳送到IP層,加上IP首部后,再傳送到數(shù)據(jù)鏈路層。再加上數(shù)據(jù)鏈路層的首部和尾部后,才離開主機(jī)發(fā)送到物理鏈路。
圖5-8指出,TCP和UDP在發(fā)送報(bào)文時(shí)所采用的方式完全不同。TCP并不關(guān)心應(yīng)用進(jìn)程一次把多長的報(bào)文發(fā)送到TCP的緩存中,而是根據(jù)對(duì)方給出的窗口值和當(dāng)前網(wǎng)絡(luò)擁塞的程度來決定一個(gè)報(bào)文段應(yīng)包含多少個(gè)字節(jié)(UDP發(fā)送的報(bào)文長度是應(yīng)用進(jìn)程給出的)。如果應(yīng)用進(jìn)程傳送到TCP緩存的數(shù)據(jù)塊太長,TCP就可以把它劃分短一些再傳送。如果應(yīng)用進(jìn)程一次只發(fā)來一個(gè)字節(jié),TCP也可以等待積累有足夠多的字節(jié)后再構(gòu)成報(bào)文段發(fā)送出去。關(guān)于TCP報(bào)文段的長度問題,在后面還要進(jìn)行討論。
由于TCP協(xié)議比較復(fù)雜,OPA4344因此本節(jié)先對(duì)TCP協(xié)議進(jìn)行一般的介紹,然后再逐步深入討論TCP的可靠傳輸、流量控制和擁塞控制等問題。
TCP最主要的特點(diǎn)
TCP是TCP/IP體系中非常復(fù)雜的一個(gè)協(xié)議。下面介紹TCP最主要的特點(diǎn)。
(1) TCP是面向連接的運(yùn)輸層協(xié)議。這就是說,應(yīng)用程序在使用TCP協(xié)議之前,必須先建立TCP連接。在傳送數(shù)據(jù)完畢后,必須釋放已經(jīng)建立的TCP連接。也就是說,應(yīng)用進(jìn)程之間的通信好像在“打電話”:通話前要先撥號(hào)建立連接,通話結(jié)束后要掛機(jī)釋放連接。
(2)每一條TCP連接只能有兩個(gè)端點(diǎn)(endpoint),每一條TCP連接只能是點(diǎn)對(duì)點(diǎn)的(一對(duì)一)。這個(gè)問題后面還要進(jìn)一步討論。
(3) TCP提供可靠交付的服務(wù)。通過TCP連接傳送的數(shù)據(jù),無差錯(cuò)、不丟失、不重復(fù)、并且按序到達(dá)。
(4) TCP提供全雙工通信。TCP允許通信雙方的應(yīng)用進(jìn)程在任何時(shí)候都能發(fā)送數(shù)據(jù)。TCP連接的兩端都設(shè)有發(fā)送緩存和接收緩存,用來臨時(shí)存放雙向通信的數(shù)據(jù)。在發(fā)送時(shí),應(yīng)用程序在把數(shù)據(jù)傳送給TCP的緩存后,就可以做自己的事,而TCP在合適的時(shí)候把數(shù)據(jù)發(fā)送出去。在接收時(shí),TCP把收到的數(shù)據(jù)放入緩存,上層的應(yīng)用進(jìn)程在合適的時(shí)候讀取緩存中的數(shù)據(jù)。
(5)面向字節(jié)流。TCP中的“流”(stream)指的是流入到進(jìn)程或從進(jìn)程流出的字節(jié)序列。“面向字節(jié)流”的含義是:雖然應(yīng)用程序和TCP的交互是一次一個(gè)數(shù)據(jù)塊(大小不等),但TCP把應(yīng)用程序交下來的數(shù)據(jù)看成僅僅是一連串的無結(jié)構(gòu)的字節(jié)流。TCP并不知道所傳送的字節(jié)流的含義。TCP不保證接收方應(yīng)用程序所收到的數(shù)據(jù)塊和發(fā)送方應(yīng)用程序所發(fā)出的數(shù)據(jù)塊具有對(duì)應(yīng)大小的關(guān)系(例如,發(fā)送方應(yīng)用程序交給發(fā)送方的TCP共10個(gè)數(shù)據(jù)塊,但接收方的TCP可能只用了4個(gè)數(shù)據(jù)塊就把收到的字節(jié)流交付上層的應(yīng)用程序)。但接收方應(yīng)用程序收到的字節(jié)流必須和發(fā)送方應(yīng)用裎序發(fā)出的字節(jié)流完全一樣。當(dāng)然,接收方的應(yīng)用程序必須有能力識(shí)別收到的字節(jié)流,把它還原成有意義的應(yīng)用層數(shù)據(jù)。圖5-8是上述概念的示
意圖。
為了突出示意圖的要點(diǎn),我們只畫出了一個(gè)方向的數(shù)據(jù)流。但請(qǐng)注意,在實(shí)際的網(wǎng)絡(luò)中,一個(gè)TCP報(bào)文段包含上千個(gè)字節(jié)是很常見的,而圖中的各部分都只畫出了幾個(gè)字節(jié),這僅僅是為了更方便地說明“面向字節(jié)流”的概念。另一點(diǎn)很重要的是:圖5-8中的TCP連接是一條虛連接(也就是邏輯連接)而不是一條真正的物理連接。TCP報(bào)文段先要傳送到IP層,加上IP首部后,再傳送到數(shù)據(jù)鏈路層。再加上數(shù)據(jù)鏈路層的首部和尾部后,才離開主機(jī)發(fā)送到物理鏈路。
圖5-8指出,TCP和UDP在發(fā)送報(bào)文時(shí)所采用的方式完全不同。TCP并不關(guān)心應(yīng)用進(jìn)程一次把多長的報(bào)文發(fā)送到TCP的緩存中,而是根據(jù)對(duì)方給出的窗口值和當(dāng)前網(wǎng)絡(luò)擁塞的程度來決定一個(gè)報(bào)文段應(yīng)包含多少個(gè)字節(jié)(UDP發(fā)送的報(bào)文長度是應(yīng)用進(jìn)程給出的)。如果應(yīng)用進(jìn)程傳送到TCP緩存的數(shù)據(jù)塊太長,TCP就可以把它劃分短一些再傳送。如果應(yīng)用進(jìn)程一次只發(fā)來一個(gè)字節(jié),TCP也可以等待積累有足夠多的字節(jié)后再構(gòu)成報(bào)文段發(fā)送出去。關(guān)于TCP報(bào)文段的長度問題,在后面還要進(jìn)行討論。
上一篇:TCP的連接
熱門點(diǎn)擊
- 以下地址中的哪一個(gè)和86.32/12匹配
- 因特網(wǎng)交換點(diǎn)IXP在全球的分布
- 以太網(wǎng)及其優(yōu)勢(shì)
- 微分控制
- OSI失敗的原因可歸納
- FCS體系結(jié)構(gòu)
- MF47型指針式萬用表的工作原理
- 為什么A在TIME-WAIT狀態(tài)必須等待2M
- 在物理層擴(kuò)展以太網(wǎng)
- 常用的絞合線的類別、帶寬和典型應(yīng)用
推薦技術(shù)資料
- 自制智能型ICL7135
- 表頭使ff11CL7135作為ADC,ICL7135是... [詳細(xì)]
- 人形機(jī)器人市場(chǎng)未來發(fā)展格局前景預(yù)測(cè)
- 新一代航空器用激光雷達(dá)CES2
- SPAD-SoC集成1080-
- 全球首款1080線激光雷達(dá)應(yīng)用
- 激光雷達(dá)行業(yè)市場(chǎng)發(fā)展新動(dòng)態(tài)
- AI時(shí)代存儲(chǔ)技術(shù)產(chǎn)品走向趨勢(shì)
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究