計算機網(wǎng)絡(luò)CH08 傳輸層_第1頁
計算機網(wǎng)絡(luò)CH08 傳輸層_第2頁
計算機網(wǎng)絡(luò)CH08 傳輸層_第3頁
計算機網(wǎng)絡(luò)CH08 傳輸層_第4頁
計算機網(wǎng)絡(luò)CH08 傳輸層_第5頁
已閱讀5頁,還剩95頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

內(nèi)容綱要

傳輸層協(xié)議概述1\]

■82TCP/IP中的傳輸層

■8.3用戶數(shù)據(jù)報協(xié)議UDP

________\___________\___________\__________1___________I___________I___________I____________I__________I______L______L_______L___

■8.4傳輸控制協(xié)議TCP

內(nèi)容綱要

迪祥輸層協(xié)議概法」

■8,付"中田修,耳I

18.4傳輸控制協(xié)議TCP

8」傳輸層協(xié)議概述

■傳輸層又稱為運輸層,位于應(yīng)用層

和網(wǎng)絡(luò)層之間,是分層網(wǎng)絡(luò)體系結(jié)

-杈單核上部外一廠

一傳輸層為應(yīng)用進程之間提供端到端

的邏輯通信(網(wǎng)絡(luò)層是為主機之間

提供邏輯通信)。

■傳輸層用于增強和彌補通信子網(wǎng)的

服務(wù)不足,提供主機之間可靠有效

的通信。T////

8.1傳輸層協(xié)議概述

)從通信和信息處理的角度看,一傳輸層向

一它上面的應(yīng)用層提供通信服東―它屬于

面向通信部分的最高層,同時也是用戶

功能中的最低層。

面向信息處理1應(yīng)用層

傳輸層

面郵a棺網(wǎng)絡(luò)層

數(shù)據(jù)鏈路層網(wǎng)絡(luò)功能

物理層

//////

傳輸層協(xié)議和網(wǎng)絡(luò)層協(xié)議主要區(qū)別

IP協(xié)議的作用范圍

(提供主機之間的邏輯通%信)

TCP和UDP協(xié)議的作用范圍

(提供進程之間的邏輯通信)---------1

傳輸層與其上下層之間的關(guān)系

的OSI表示法

主機A主機B

一g

在端系統(tǒng)上運行

主要功能之一是翁定

息和在目的系統(tǒng)上接

-

-數(shù)據(jù)的分段和組裝

-數(shù)據(jù)流的控制

?錯誤檢測和恢復(fù)

8

8.1傳輸層協(xié)議概述

■傳輸層實體能夠根據(jù)高層應(yīng)用的需求

—提供不同的服務(wù)質(zhì)量齊不二目—

■傳輸層協(xié)議可以是面向連接的協(xié)議或

,先連模正我。「1I■■

■傳輸層對高層用戶屏蔽網(wǎng)絡(luò)的差異,

使高層用戶的對等實體在交互過程中

不受下層通信技術(shù)細節(jié)的影響。

9

8.1傳輸層協(xié)議概述

傳輸層協(xié)議的分類

-傳輸層協(xié)議的選擇是根據(jù)高層用戶

的需要和低層網(wǎng)絡(luò)協(xié)議提供的服務(wù)

一高層對傳輸層服務(wù)的要求A

?通信子網(wǎng)所提供的服務(wù)N

?傳輸層協(xié)議=T-N

10

8.1傳輸層協(xié)議概述

網(wǎng)絡(luò)提供的服務(wù)質(zhì)量

■A型:網(wǎng)絡(luò)連接具有可接受的低殘留

差錯率和可接受的低故障通知率。

■B型:網(wǎng)絡(luò)連接具有可接受的低殘留

差錯率和不可接受的高故障通知率。

■C型:網(wǎng)絡(luò)連接具有不可接受的高差

\Oe\\\/////

11

8.1傳輸層協(xié)議概述

osi參考模型中的傳輸層協(xié)議分類

£TPO:簡單類J支持A型網(wǎng)絡(luò)。

■TPLj本差錯恢復(fù)類,支持B型網(wǎng)黜

■TP2:復(fù)用類j支持A型網(wǎng)絡(luò)。

5Tp3:差錯恢復(fù)與復(fù)用類,支持B型網(wǎng)

1絡(luò)。7IIIIII

-TP4:差錯檢測和恢復(fù),復(fù)用類,支持

C型網(wǎng)絡(luò)。

12

內(nèi)容綱要

8J傳輸層稱議概述

8.2TCP/IP中的傳輸層

8?3用戶數(shù)據(jù)報協(xié)議UDP

8.2TCP/IP中的傳輸層

-傳輸層對高層用戶屏蔽通信子網(wǎng)的細節(jié),

使應(yīng)用進程認為在兩個傳輸層實體之間

有一條端到端的邏輯通信信道。但這條

邏輯通信信道對上層的表現(xiàn)卻因傳輸層

使用的不同協(xié)議而有很大的差別O

■TCP/IP的傳輸層主要有兩個不同的協(xié)

議,即面向連接的TCP協(xié)議和無連接的

UDP協(xié)議。

14

TCP/IP體系中的運輸層協(xié)議

應(yīng)用層

傳輸層向上層應(yīng)用提供可靠的

和不可靠的邏輯通信信道

發(fā)

發(fā)

應(yīng)11

數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)

運全雙工可靠信道

使用TCP協(xié)議使用UDP協(xié)議

8.2TCP/IP中的傳輸層

TCP/IP的傳輸層有兩個不同協(xié)議:

■十用戶數(shù)據(jù)報協(xié)議UDP[

-----(UserDatagramProtocol)

無連接,效率高,可靠性較低。

■*傳輸控制協(xié)議TCP^

(TransmissionControlProtocol)

面向連接,可靠性高,控制復(fù)雜。

17

8.2TCP/IP中的傳輸層

■兩個對等運輸實體在通信時傳送的數(shù)

據(jù)單位叫作傳輸協(xié)議數(shù)據(jù)單元TPDU

'__(Transport^ProtocolDataUnit)。

■TCP傳送的數(shù)據(jù)單位協(xié)議是TCP報

\X?(selgmtentjo~~~~~~~~7~~7~~T

-UDP傳送的數(shù)據(jù)單位協(xié)議是UDP報

J

18

8.2TCP/IP中的傳輸層

■UDP在傳送數(shù)據(jù)之前不需先建立連接一

對方的運輸層在收到UDP報文后,不需

解出咨何

-雖然UDP不提供可靠交付,但在某些情

況下UDP是一種最有效的工作方式。

■在目前的網(wǎng)絡(luò)傳輸條件下,使用UDP

往往也能提供足夠的傳輸可靠性。

19

8.2TCP/IP中的傳輸層

■TCP則提供面向連接的服務(wù)。送心

」不提供廣播或多播服務(wù)。\\\\

上由PTCE要提供可靠的一面向連接一

_的傳輸服務(wù),,因此不可避免地增加了—

—許多控制開銷。這不僅使協(xié)議數(shù)據(jù)單

元的首部增大很多,還要占用許多的

處理機資源。

■TCP適合大量數(shù)據(jù)傳輸?shù)膽?yīng)用。

20

TCP/IP中的傳輸層與網(wǎng)際層

■傳輸層的UDP用戶數(shù)據(jù)報與網(wǎng)際層的IP數(shù)據(jù)

報有很大區(qū)別。IP數(shù)據(jù)報要經(jīng)過互連網(wǎng)中許

多路由器的存儲轉(zhuǎn)發(fā)J旦UDP用戶數(shù)據(jù)報是

在傳輸層的端到端抽象的邏輯信道中傳送的

-TCP報文段是在傳輸層抽象的端到端邏輯信

道中傳送,這種信道是可靠的全雙工信道。

但這樣的信道卻不知道究竟經(jīng)過了哪些路由

器,而這些路由器也根本不知道上面的傳輸

層是否建立了TCP連接。

21

8.2TCP/IP中的傳輸層

端口的概念\

.端口就是傳輸層服務(wù)訪問點JTSAPQ

■端口的作用就是讓應(yīng)用層的各種應(yīng)用進

程都能將其數(shù)據(jù)通過端口向下交付給傳

輸層,―以及讓傳輸層知道應(yīng)當將其報文

段中的數(shù)據(jù)向上通過端口交付給應(yīng)用層

相應(yīng)的進程。

■從這個意義上講,端口是應(yīng)用層進程的

標識。

22

端口在進程之間的通信中所起的作用

發(fā)送方接收方

應(yīng)用進程應(yīng)用進程

二4二4z|\二4二4"E1S二4二4二XzzN二N

TCP報文段用戶數(shù)據(jù)

IP數(shù)據(jù)報IP數(shù)據(jù)報

8.2TCP/IP中的傳輸層

崎蘆\\\

■端F口用一個16bit端口號進行標識,

有效的端口號為0-65535。

■端口號只具有本地意義,即端口號只

是為了標志本計算機應(yīng)用層中的各進

程。在因特網(wǎng)中不同計算機的相同端

口號是沒有聯(lián)系的。

24

8.2TCP/IP中的傳輸層

端口類型nn\\\

1端口有兩種類型]]44

類是熟知端口,其數(shù)值二般為G1023。

__這些端口號是TCP/IP體系確定并公布的,

「以便所有的用戶進程都知道「■能夠與它一

卡西亍曼產(chǎn)隼信。[~~~~~~//~~/

?另一類則是一般端口,用來隨時分配給

請求通信的客戶進程。

■熟知端口一般用于向公眾提供服務(wù)。步

8.2TCP/IP中的傳輸層

_______I__I__I__1__k_

;UDP和TCP使用」用口號”作為計算機系

統(tǒng)中高層應(yīng)用進程的標識,而IP地址則標識

了網(wǎng)絡(luò)中的一臺主機,IP地址和端口號的組

合稱為插口(socket),或套接字、套接口一

■插口和端口、IP地址的關(guān)系是:

插□(socket)

26

8.2TCP/IP中的傳輸層

演\\\\\\

?TCP使用“連接”作為最基本的抽象

一個TCP連接是用它的兩個端點來建

示的乙這個端點就是插口(socket)。__

■由于TCP使用兩個端點來識別連接,一

一個計算機上的某個端口號可以被多個

連接所共享。

■UDP服務(wù)也使用插口地址實現(xiàn)通信。

27

名詞socket的多種不同的意思

■應(yīng)用編程接口API稱為socketAPI,

■socketAPI中使用的一個函數(shù)名也叫

作socket。]|III~~II~~

■調(diào)用socket函數(shù)的端點稱為socketo

■調(diào)用socket函數(shù)時其返回值稱為

socket描述符,可簡稱為socketo

■在操作系統(tǒng)內(nèi)核中連網(wǎng)協(xié)議的

Berkeley實現(xiàn),稱為socket實現(xiàn)。

28

內(nèi)容綱要

俵輸層協(xié)議概述]1[

-■---1-/---8----1.---i-----1--------1--------1--------1--------1--------1--------1--------1--------1--------

■a2TCP/IP中的傳輸層

■8.3用戶數(shù)據(jù)報協(xié)議UDP

___\\L__F「1LL

■8.4傳輸控制協(xié)議TCP

8?3用戶數(shù)據(jù)報協(xié)議UDP

■UDP是一個簡單的面向用戶數(shù)據(jù)報

的傳輸層協(xié)議。應(yīng)用進程的輸出正

產(chǎn)生一個UDP數(shù)據(jù)報,并組裝成一

一個待發(fā)送的IP數(shù)據(jù)報1

■UDP只在的數(shù)據(jù)報服務(wù)之上增

加了很少一點的功能,即端口的功

能和有限的差錯檢測功能。

■UDP不提供可靠性。

30

8?3用戶數(shù)據(jù)報協(xié)議UDP

■雖然UDP用戶數(shù)據(jù)報只能提供不可

靠的交付,但UDP在某些方面有其

{發(fā)送數(shù)據(jù)2前木需要建立連接_______23

?婀,耳機機要維持復(fù)雜的連接狀態(tài)表]

\UDP用戶數(shù)據(jù)報只有斫凈片的首部開銷工

?網(wǎng)絡(luò)出現(xiàn)的擁塞不會使源主機的發(fā)送速率降

低。這對某些實時應(yīng)用是很重要的。

31

UDP用戶數(shù)據(jù)報的首部格式

字節(jié)44112

源IP地址目的IP地址017UDP長度

字節(jié)122222

首部

IP數(shù)據(jù)報

用戶數(shù)據(jù)報UDP有兩個字段:數(shù)據(jù)字段和首部

字段。首部字段有8個字節(jié),由4個字段組成,

每個字段都是兩個字節(jié)。

字節(jié)44112

源IP地址目的IP地址017UDP長度

字節(jié)122222

「曲爵f1源端口|目的端口|長度|檢驗和[

<IP數(shù)據(jù)報

在計算檢驗和時,臨時把“偽首部”和UDP用戶數(shù)據(jù)

報連接在一起。偽首部僅僅是為了計算檢驗和。

字節(jié)44112

源IP地址目的IP地址017UDP長度

字節(jié)12_2222

[偽首部]源端口|目的端口|長度|檢驗和

UDP用戶數(shù)據(jù)報|首部|數(shù)據(jù)

發(fā)送在前[工

首部|數(shù).據(jù)一

------------------------------IP數(shù)據(jù)報----------

計算UDP檢驗和的例子

1001100100010011—153.19

040000100001101000—8.104

12字節(jié)

1010101100000011->171.3

偽首部171.314.11

全0|17|150000111000001011->14.11

8字節(jié)108713|0000000000010001—0和17

UDP首部“15一全。0000000000001111—15

數(shù)據(jù)|數(shù)據(jù)國據(jù)國常0000010000111111T1087

7字節(jié)

0000000000001101—13

數(shù)據(jù)數(shù)據(jù)|數(shù)據(jù)葭據(jù)屆同

0000000000001111T15

0000000000000000一0(檢驗和)

0101010001000101->數(shù)據(jù)

使用16bit段反碼運算0101001101010100一數(shù)據(jù)

0100100101001110一數(shù)據(jù)

填充部分僅參加計算

0100011100000000T數(shù)據(jù)和0(填充)

按二進制反碼運算求和10010110111010117求和得出的結(jié)果

將得出的結(jié)果求反碼0110100100010100一檢驗和

8.3用戶數(shù)據(jù)報協(xié)議UDP

-UDP用戶數(shù)據(jù)報的首部中長度

字段定義了數(shù)據(jù)報的總長度,即

T部加數(shù)據(jù)部分。

■-UDP用戶數(shù)據(jù)報的首部中檢驗

和用來檢驗整個用戶數(shù)據(jù)報(首

部加數(shù)據(jù)部分)出現(xiàn)的差錯。

■計算偽首部可以增加可靠性。

36

UDP端口用報文隊列來實現(xiàn)

應(yīng)TFTP客尸TFTP服務(wù)器

層11

出隊列入隊列出隊列入隊列

UDP端口51000UDP

UDP用戶數(shù)據(jù)報

8?3用戶數(shù)據(jù)報協(xié)議UDP

-UDP提供無連接的服務(wù),每

個用戶數(shù)據(jù)報都是獨立的,用戶

卜肉據(jù)報不使用編號。

■-UDP是一個很小的不可靠的傳

輸層協(xié)議,沒有流量控制;除了

檢驗和之外,沒有差錯控制機制。

■UDP可以用于多播和廣播。

38

內(nèi)容綱要

■8,隼里畢愕增」

■82TCP/IP中的傳輸層

■8.4傳輸控制協(xié)議TCP

8.4傳輸控制協(xié)議TCP

-TCP提供一種面向連接的、全雙工的、

現(xiàn)靠用字節(jié)快申斗二目\\\\

■在一個TCP連接中,僅有兩方進行彼

此通信o廣播和多播不能用fElcp0

-TCP的接收端必須丟棄重復(fù)的數(shù)據(jù)一

■TCP對字節(jié)流的內(nèi)容不作任何解釋。

對字節(jié)流的解釋由TCP連接雙方的應(yīng)

用層解釋。\[I///////

40

8.4傳輸控制協(xié)議TCP

-TCP通過下列方式來提供可靠性:

?應(yīng)用數(shù)據(jù)被分割成TCP認為最適合發(fā)展的

性犀塊稱列*文粘*殳。J

協(xié)議中采用自適應(yīng)的超時及重傳策略C

「TCP可以對收到的數(shù)據(jù)進行重新排序,將

收到的數(shù)據(jù)以正確的順序交給應(yīng)用層。

?TCP的接收端必須丟棄重復(fù)的數(shù)據(jù)。

?TCP還能提供流量控制。

41

8.4傳輸控制協(xié)議TCP

、辛±|±|

友送”而接收端

TCP報文段格式

32bit

比特,0,816

III一產(chǎn)一.....31

源端口目的端口

20字節(jié)的

固定首部

TCP確認號

數(shù)

據(jù)UAPRSF

RCSSYI口

移GKHTNN

檢驗和緊急指針

選項(長度可變)填充

TCP報文段TCP首部TCP數(shù)據(jù)部分

發(fā)送在前1

IP首部IP數(shù)據(jù)部分

比特08162431

2O

節(jié)

源端口和目的端口字段——各占2字節(jié)。端口是傳輸

層與應(yīng)用層的服務(wù)接口。傳輸層的復(fù)用和分用功能都

要通過端口才能實現(xiàn)。

中的每一個字節(jié)都編上一個序號。序號字段的值則指

的是本報文段所發(fā)送的數(shù)據(jù)的第一個字節(jié)的序號。

比特08162431

源端口目的端口

序號2O

節(jié)

TCF確認號立

首用口

數(shù)據(jù)UAPS

保留RCSY窗口

偏移GKHN

檢驗和緊急指針

選項(長度可變)填充

確認號字段——占4字節(jié),是期望收到對方的下一個

報文段的數(shù)據(jù)的第一個字節(jié)的序號。

2O

節(jié)

數(shù)據(jù)偏移一一占4bit,它指出TCP報文段的數(shù)據(jù)起始

處距離TCP報文段的起始處有多遠?!皵?shù)據(jù)偏移”的

單位不是字節(jié)而是32bit字(4字節(jié)為計算單位)。

保留字段——占6bit,保留為今后使用,但目前

應(yīng)置為Oo

比特08162431

2O

節(jié)

緊急比特URG—當URG=1時,表明緊急指

針字段有效。它告訴系統(tǒng)此報文段中有緊急數(shù)據(jù),

應(yīng)盡快傳送(相當于高優(yōu)先級的數(shù)據(jù))。

比特08162431

2O

節(jié)

確認比特ACK——只有當ACK=1時確認號字

段才有效。當ACK=O時,確認號無效。

i

20

推送比特PSH(Push)—接收方TCP收到推送比特

置1的報文段,就盡快地交付給接收應(yīng)用進程,而不

再等到整個緩存都填滿了后再向上交付。

比特08162431

2O

節(jié)

復(fù)位比特RST(Reset)——當RST=1時,表明TCP

連接中出現(xiàn)嚴重差錯(如由于主機崩潰或其他原因),

必須釋放連接,然后再重新建立運輸連接。

比特08162431

2O

節(jié)

同步比特SYN——同步比特SYN置為1,就表示

這是一個連接請求或連接接受報文。

比特08162431

源端口目的端口

序號2O

節(jié)

TCP確認號

首部

數(shù)據(jù)UAP需?窗口

保留RCS

偏移GKH

檢驗和緊急指針

選項(長度可變)填充

終止比特FIN(FINal)——用來釋放一個連接。當

FIN=1時,表明此報文段的發(fā)送端的數(shù)據(jù)已發(fā)送

完畢,并要求釋放運輸連接。

比特08162431

源端口目的端口

序號

20

字節(jié)

固定

CP首部

TC部

數(shù)

據(jù)UAPRS

留RCSSY□

移GKHTN

檢驗和緊急指針

選項(長度可變)填充

窗口字段——占2字節(jié)。窗口字段用來控制對方發(fā)送

的數(shù)據(jù)量,單位為字節(jié)。TCP連接的一端根據(jù)設(shè)置的

緩存空間大小確定自己的接收窗口大小,然后通知對

方以確定對方的發(fā)送窗口的上限。

2O

節(jié)

檢驗和----占2字節(jié)。檢驗和字段檢驗的范圍包括

首部和數(shù)據(jù)這兩部分。在計算檢驗和時,要在TCP

報文段的前面加上12字節(jié)的偽首部。

比特08162431

2O

節(jié)

緊急指針字段——占16bito緊急指針指出在本報

文段中的緊急數(shù)據(jù)的最后一個字節(jié)的序號。

比特08162431

2O

節(jié)

選項字段——長度可變。TCP首部可以有多達

40字節(jié)的可選信息,用于把附加信息傳遞給終點,

或用來對齊其它選項。

8.4傳輸控制協(xié)議TCP

TCP首部的主要選叫\(zhòng)\'

,最大報文段長度MSS\\\

__MSS(MaximumSegmentSize)是

rrcp報文段中的數(shù)據(jù)字段的最大長度。一

MSS告訴對方TCP:“我的緩存所能

接收的報文段的數(shù)據(jù)字段的最大長度

是MSS個字節(jié)?!?/p>

■窗口擴大因子,用于長肥管道。

■時間戳,可用于測量往返時延RTT。

59

填充字段——這是為了使整個首部長度是4字節(jié)的

整數(shù)倍。

8.4傳輸控制協(xié)議TCP

TCP的數(shù)據(jù)編號與確認

■TCP協(xié)議是面向字節(jié)的。TCP將所

要傳送的報文看成是字節(jié)組成的數(shù)據(jù)

流,并使每一個字節(jié)對應(yīng)于一個序號。

■在連接建立時,雙方要商定初始序號。

TCP每次發(fā)送的報文段的首部中的序

號字段數(shù)值表示該報文段中的數(shù)據(jù)部

分的第一個字節(jié)的序號。

61

8.4傳輸控制協(xié)議TCP

TCP的數(shù)據(jù)編號與確認

-TCP的確認是對接收到的數(shù)據(jù)的最高

序號表示確認。接收端返回的確認號

是已收到的數(shù)據(jù)的最高序號加工因

此確認號表示接收端期望下次收到的

數(shù)據(jù)中的第一個數(shù)據(jù)字節(jié)的序號。

■為提高效率,TCP可以累積確認,即

在接收多個報文段后,一次確認。

62

8.4傳輸控制協(xié)議TCP

一、TCP的流量控制

■TCP采用大小可變的滑動窗口進行流量典

____1

■TCP報文段首部的窗口字段寫入的數(shù)值就

又當前給對方設(shè)置的發(fā)送窗口數(shù)值的上限

■發(fā)送窗口在連接建立時由雙方商定。但在

通信的過程中,接收端可根據(jù)自己的資源

情況,隨時動態(tài)地調(diào)整對方的發(fā)送窗口上

限值(可增大或減小)。63

-------------發(fā)送窗口---------------?

a收到確認即可前移

1100101200201300301400401500501600601700701800801900

可發(fā)送---------------------------不可發(fā)送

指針

發(fā)送端要發(fā)送900字節(jié)長的數(shù)據(jù),劃分

為9個100字節(jié)長的報文段,而發(fā)送窗

口確定為500字節(jié)。

發(fā)送端只要收到了對方的確認,發(fā)送窗

口就可前未多。

發(fā)送TCP要維護一個指針。每發(fā)送一個

報文段,指針就向前移動一個報文段的

距離。

<--------------發(fā)送窗口---------------.

a收到確認即可前移

1200I20I3Oo|3Ol40。|40150050160。|601700,018001801900

----------------可發(fā)送----------------------------不可發(fā)送---------->

指針---------------發(fā)送窗口前移

___________________________

|1100

101200poi500501600601700701800801900

__________A_______________

1已發(fā)送f

一已發(fā)送但-----j--------------------■可發(fā)送<An|巖;芋.

L并被確認丁未被確認

指針

發(fā)送端已發(fā)送400字節(jié)的數(shù)據(jù),但只收到對

前200字節(jié)數(shù)據(jù)的確認,同時窗口大小不變。

現(xiàn)在發(fā)送端還可發(fā)送300字節(jié)。

發(fā)送端收到對方對前400字節(jié)數(shù)據(jù)的確認,但

對方通知發(fā)送端必須把窗口減小到400字節(jié)。

現(xiàn)在發(fā)送端最多還可發(fā)送400字節(jié)的數(shù)據(jù)。

V發(fā)送窗口前移

1100101200401500501600601700701800801900

=>

已發(fā)送.已發(fā)送但口

L并被確認一■可發(fā)送一不發(fā)送—

未被確認nJ?

指針

?—發(fā)送窗口縮小

1100101200201300301400H01500501600601700701800801900

已發(fā)送

可發(fā)送.不可

并被確認L發(fā)送

指針

利用可變窗口大小進行流量控制

雙方確定的窗口值是400

主機A主機B

SEQ=1

A還能發(fā)送300字節(jié)

SEQ=101

A還能發(fā)送200字節(jié)

;JACK=201,WIN=300允許A再發(fā)送300字節(jié)(序號201至500)

SEQ=301

A還能發(fā)送200字節(jié)(序號301至500)

SEQ=401

A還能發(fā)送100字節(jié)(序號401至500)

SEQ=201

A超時重發(fā),但不能發(fā)送序號500以后的數(shù)據(jù)

4ACK=5O1,WIN=200

允許A再發(fā)送200字節(jié)(序號501至700)

SEQ=501

A還能發(fā)送100字節(jié)(序號501至700)

<ACK=601,WIN=0|

不允許A再發(fā)送(到序號600的數(shù)據(jù)都已收到)

8.4傳輸控制協(xié)議TCP

二、慢啟動和擁塞避免

-發(fā)送端的主機在確定發(fā)送報文段的速

率時,既要根據(jù)接收端的接收能力,

又要從全局考慮不要使網(wǎng)絡(luò)發(fā)生擁塞。

■因此,每一個TCP連接需要有以下兩

一千姆態(tài)聿量l]7丁/j

?接收端窗口rwnd(receiverwindow)又

森為通知窗口(advertisedwindow)□

?擁塞窗口cwnd(congestionwindow)□

68

接收端窗口rwnd和擁塞窗口cwnd

工接收窗口rwnd這是接收端根據(jù)其

目前的接收緩存大小所許諾的最新的

窗口值廠是來自接收端的流量控制。一

接收端將此窗口值放在TCP報文的

首部中的窗口字段,傳送給發(fā)送端。

■擁塞窗口cwnd(congestionwindow)~

是發(fā)送端根據(jù)自己估計的網(wǎng)絡(luò)擁塞程

度而設(shè)置的窗口值,是來自發(fā)送端的

流量控制o

69

■發(fā)送端的發(fā)送窗口的上限值應(yīng)當取為

接收端窗口rwnd和擁塞窗口cwnd這

兩個變量中較小的一個,即應(yīng)按以下

公式崎總T1

發(fā)送窗日的上限值=Min[rwnd,cwnd]

■當rwnd<cwnd時,是接收端的接收

能力限制發(fā)送窗日的最大修------

時,則是網(wǎng)絡(luò)的擁塞

限制發(fā)送窗口的最大值方

8.4傳輸控制協(xié)議TCP

慢啟動算法的原理

■在剛開始發(fā)送時,可先將擁塞窗口

cwnd設(shè)置為一個最大報文段MSS的

數(shù)I武I丁I-----II□

■在每收到一個對新的報文段的確認后,

將擁塞窗口增加至2倍MSS的數(shù)值。

-用這樣的方法逐步增大發(fā)送端的擁塞

窗口cwnd,可以使分組注入到網(wǎng)絡(luò)的

速率更加合理。

慢啟動和擁塞避免算法的實現(xiàn)舉例

慢啟動擁塞避免慢啟動擁塞避免

當TCP連接進行初始化時,將擁塞窗口置為1。圖中

的窗口單位不使用字節(jié)而使用報文段。

慢啟動門限的初始值設(shè)置為16個報文段,

即ssthresh=16。

慢啟動和擁塞避免算法的實現(xiàn)舉例

發(fā)送端的發(fā)送窗口不能超過擁塞窗口cwnd和接收端

窗口rwnd中的最小值。我們假定接收端窗口足夠大,

因此現(xiàn)在發(fā)送窗口的數(shù)值等于擁塞窗口的數(shù)值。

慢啟動和擁塞避免算法的實現(xiàn)舉例

在執(zhí)行慢啟動算法時,擁塞窗口cwnd的初始值為1,

發(fā)送第一個報文段M0o

慢啟動和擁塞避免算法的實現(xiàn)舉例

發(fā)送端收到ACK1(確認M0,期望收到M1)后,將

cwnd從1增大到2,于是發(fā)送端可以接著發(fā)送和

M2兩個報文段。

慢啟動和擁塞避免算法的實現(xiàn)舉例

接收端發(fā)回ACa和ACK3O發(fā)送端每收到一個對新報

文段的確認ACK,就把發(fā)送端的擁塞窗口加倍?,F(xiàn)在

發(fā)送端的cwnd從2增大到4,并可發(fā)送M4-M6*4

個報文段。

慢啟動和擁塞避免算法的實現(xiàn)舉例

「慢啟動1擁塞避免~1卜慢啟動I擁塞避免

發(fā)送端每收到一個對新報文段的確認ACK,就把發(fā)送

端的擁塞窗口加倍,因此擁塞窗口cwnd隨著傳輸次

數(shù)按指數(shù)規(guī)律增長。

慢啟動和擁塞避免算法的實現(xiàn)舉例

慢啟動擁塞避免慢啟動擁塞避免

當擁塞窗口cwnd增長到慢開始門限值ssthresh時

(即當cwnd=16時),就改為執(zhí)行擁塞避免算法,

擁塞窗口按線性規(guī)律增長。

慢啟動和擁塞避免算法的實現(xiàn)舉例

假定擁塞窗口的數(shù)值增長到24時,網(wǎng)絡(luò)出現(xiàn)超時

(表明網(wǎng)絡(luò)擁塞了)。

慢啟動和擁塞避免算法的實現(xiàn)舉例

更新后的ssthresh值變?yōu)?2(即發(fā)送窗口數(shù)值24

的一半),擁塞窗口再重新設(shè)置為1,并執(zhí)行慢啟動

算法。

慢啟動和擁塞避免算法的實現(xiàn)舉例

當cwnd=12時改為執(zhí)行擁塞避免算法,擁塞窗口

按按線性規(guī)律增長,每經(jīng)過一個往返時延就增加一

個MSS的大小。

8.4傳輸控制協(xié)議TCP

乘法減小(multiplicativedecrease)

■“乘法減小”是指不論在慢啟動階段還

是擁塞避免階段,;只要出現(xiàn)T次超時

(即出現(xiàn)一次網(wǎng)絡(luò)擁塞),就把慢啟

動門限值ssthresh設(shè)置為當前的擁塞

窗口值乘以0.5。

■當網(wǎng)絡(luò)頻繁出現(xiàn)擁塞時,ssthresh值就

下降得很快,以大大減少注入到網(wǎng)絡(luò)

中的分組數(shù)。82

8.4傳輸控制協(xié)議TCP

加法增大(additiveincrease)

■“加法增大”是指執(zhí)行擁塞避免算法

后,當收到對所有

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論