數(shù)據(jù)通信與計算機網(wǎng)絡(luò)課件 數(shù)據(jù)通信與計算機網(wǎng)絡(luò)第十四章_第1頁
數(shù)據(jù)通信與計算機網(wǎng)絡(luò)課件 數(shù)據(jù)通信與計算機網(wǎng)絡(luò)第十四章_第2頁
數(shù)據(jù)通信與計算機網(wǎng)絡(luò)課件 數(shù)據(jù)通信與計算機網(wǎng)絡(luò)第十四章_第3頁
數(shù)據(jù)通信與計算機網(wǎng)絡(luò)課件 數(shù)據(jù)通信與計算機網(wǎng)絡(luò)第十四章_第4頁
數(shù)據(jù)通信與計算機網(wǎng)絡(luò)課件 數(shù)據(jù)通信與計算機網(wǎng)絡(luò)第十四章_第5頁
已閱讀5頁,還剩86頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

數(shù)據(jù)通信與計算機網(wǎng)絡(luò)電信學(xué)院信通系 洪偉第

7

運輸層*7.1

運輸層協(xié)議概述*7.2

TCP/IP體系中的運輸層運輸層中的兩個協(xié)議端口的概念*7.3

用戶數(shù)據(jù)報協(xié)議UDPUDP概述UDP用戶數(shù)據(jù)報的首部格式第

7

運輸層(續(xù))7.4

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

TCP概述*7.4.2

TCP報文段的首部*7.4.3

TCP的數(shù)據(jù)編號與確認(rèn)*7.4.4

TCP的流量控制與擁塞控制*7.4.5

TCP的重傳機制7.4.6

采用隨機早期丟棄RED進行擁塞控制*7.4.7

TCP的運輸連接管理7.4.8

TCP的有限狀態(tài)機7.1

運輸層協(xié)議概述

從通信和信息處理的角度看,運輸層向它上面的應(yīng)用層提供通信服務(wù),它屬于面向通信部分的最高層,同時也是用戶功能中的最低層。應(yīng)用層網(wǎng)絡(luò)層

數(shù)據(jù)鏈路層物理層面向信息處理面向通信用戶功能運輸層網(wǎng)絡(luò)功能應(yīng)用進程之間的通信

兩個主機進行通信實際上就是兩個主機中的應(yīng)用進程互相通信。應(yīng)用進程之間的通信又稱為端到端的通信。

運輸層的一個很重要的功能就是復(fù)用和分用。應(yīng)用層不同進程的報文通過不同的端口向下

交到運輸層,再往下就共用網(wǎng)絡(luò)層提供的服

務(wù)。

“運輸層提供應(yīng)用進程間的邏輯通信”。

“邏輯通信”的意思是:運輸層之間的通信好像是沿水平方向傳送數(shù)據(jù)。但事實上這兩個運輸層之間并沒有一條水平方向的物理連接?!\輸層協(xié)議和網(wǎng)絡(luò)層協(xié)議的主要區(qū)別應(yīng)用進程

應(yīng)用進程…因

網(wǎng)IP協(xié)議的作用范圍(提供主機之間的邏輯通信)TCP和UDP協(xié)議的作用范圍(提供進程之間的邏輯通信)運輸層的主要功能

運輸層為應(yīng)用進程之間提供端到端的邏輯通信(但網(wǎng)絡(luò)層是為主機之間提供邏輯通信)。運輸層還要對收到的報文進行差錯檢測。

運輸層需要有兩種不同的運輸協(xié)議,即面向連接的TCP和無連接的UDP。運輸層與其上下層之間的關(guān)系的OSI表示法運輸實體運輸協(xié)議運輸服務(wù)用戶(應(yīng)用層實體)層接口運輸實體

運輸層層接口網(wǎng)絡(luò)層(或網(wǎng)際層)應(yīng)用層主機

A

主機

B運輸服務(wù)用戶(應(yīng)用層實體)運輸層服務(wù)訪問點TSAP網(wǎng)絡(luò)層服務(wù)訪問點NSAP運輸層向上層提供可靠的和不可靠的邏輯通信信道7.2

TCP/IP體系中的運輸層7.2.1運輸層中的兩個協(xié)議TCP/IP的運輸層有兩個不同的協(xié)議:用戶數(shù)據(jù)報協(xié)議UDP(UserDatagramProtocol)傳輸控制協(xié)議TCP(Transmission

Control

Protocol)

兩個對等運輸實體在通信時傳送的數(shù)據(jù)單位叫作運輸協(xié)議數(shù)據(jù)單元TPDU(Transport

ProtocolData

Unit)。

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

(segment)

UDP傳送的數(shù)據(jù)單位協(xié)議是UDP報文或用戶數(shù)據(jù)報。TCP與UDPTCP/IP體系中的運輸層協(xié)議UDP

TCP應(yīng)用層IP與各種網(wǎng)絡(luò)接口運輸層TCP與UDP

UDP在傳送數(shù)據(jù)之前不需要先建立連接。對方的運輸層在收到UDP報文后,不需要給出任何確認(rèn)。雖然UDP不提供可靠交付,但在某些情況下UDP是一種最有效的工作方式。

TCP則提供面向連接的服務(wù)。TCP不提供廣播或多播服務(wù)。由于TCP要提供可靠的、面向連接的運輸服務(wù),因此不可避免地增加了許多的開銷。這不僅使協(xié)議數(shù)據(jù)單元的首部增大很多,還要占用許多的處理機資源。還要強調(diào)兩點

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

報有很大區(qū)別。IP數(shù)據(jù)報要經(jīng)過互連網(wǎng)中許多路由器的存儲轉(zhuǎn)發(fā),但UDP用戶數(shù)據(jù)報是

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

TCP報文段是在運輸層抽象的端到端邏輯信道中傳送,這種信道是可靠的全雙工信道。但這樣的信道卻不知道究竟經(jīng)過了哪些路由器,而這些路由器也根本不知道上面的運輸層是否建立了TCP連接。7.2.2

端口的概念端口就是運輸層服務(wù)訪問點TSAP。

端口的作用就是讓應(yīng)用層的各種應(yīng)用進程都能將其數(shù)據(jù)通過端口向下交付給運輸層,以及讓運輸層知道應(yīng)當(dāng)將其報文段中的數(shù)據(jù)向上通過端口交付給應(yīng)用層相應(yīng)的進程。

從這個意義上講,端口是用來標(biāo)志應(yīng)用層的進程。端口在進程之間的通信中所起的作用應(yīng)用層運輸層網(wǎng)絡(luò)層TCP報文段UDP用戶數(shù)據(jù)報應(yīng)用進程TCP復(fù)用IP復(fù)用UDP復(fù)用TCP報文段UDP用戶數(shù)據(jù)報應(yīng)用進程端口端口TCP分用UDP分用IP分用IP數(shù)據(jù)報IP數(shù)據(jù)報發(fā)送方接收方端口端口用一個16

bit端口號進行標(biāo)志。

端口號只具有本地意義,即端口號只是為了標(biāo)志本計算機應(yīng)用層中的各進程。在因特網(wǎng)中不同計算機的相同端口號是沒有聯(lián)系的。兩類端口

一類是熟知端口,其數(shù)值一般為0~1023。當(dāng)一種新的應(yīng)用程序出現(xiàn)時,必須為它指派一個熟知端口。

另一類則是一般端口,用來隨時分配給請求通信的客戶進程。插口(socket)

TCP使用“連接”(而不僅僅是“端口”)作為最基本的抽象,同時將TCP連接的端點稱為

插口(socket),或套接字、套接口。插口和端口、IP地址的關(guān)系是:IP地址3端口號15003,1500插口(socket)同一個名詞socket有多種不同的意思應(yīng)用編程接口API稱為socket

API,簡稱為socketsocket

API中使用的一個函數(shù)名也叫作socket。調(diào)用socket函數(shù)的端點稱為socket。

調(diào)用socket函數(shù)時其返回值稱為socket描述符,可簡稱為socket。

在操作系統(tǒng)內(nèi)核中連網(wǎng)協(xié)議的Berkeley實現(xiàn),稱為socket實現(xiàn)。7.3用戶數(shù)據(jù)報協(xié)議UDP7.3.1

UDP概述

UDP只在IP的數(shù)據(jù)報服務(wù)之上增加了很少一點的功能,即端口的功能和差錯檢測的功能。

雖然UDP用戶數(shù)據(jù)報只能提供不可靠的交付,但UDP在某些方面有其特殊的優(yōu)點。發(fā)送數(shù)據(jù)之前不需要建立連接UDP的主機不需要維持復(fù)雜的連接狀態(tài)表。UDP用戶數(shù)據(jù)報只有8個字節(jié)的首部開銷。

網(wǎng)絡(luò)出現(xiàn)的擁塞不會使源主機的發(fā)送速率降低。這對某些實時應(yīng)用是很重要的。端口是用報文隊列來實現(xiàn)UDP

端口51000UDP端口69出隊列入隊列出隊列入隊列TFTP

客戶

TFTP

服務(wù)器UDP用戶數(shù)據(jù)報應(yīng)用層運輸層TCP首部20字節(jié)固定首部目

口數(shù)據(jù)偏移檢

和選

(長

變)源

口序

號緊

針窗

口確

認(rèn)

號保

留U

A

P

R

S

FR

C

S

S

Y

IG

K

H

T

N

N比特08162431填

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

輸層與應(yīng)用層的服務(wù)接口。運輸層的復(fù)用和分用功能都要通過端口才能實現(xiàn)。TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢

和選

項 (長

變)源端口序

號緊

針窗

口確

認(rèn)

號保

留U

A

P

R

S

FR

C

S

S

Y

IG

K

H

T

N

N比特

08162431填

充序號字段——占4字節(jié)。TCP連接中傳送的數(shù)據(jù)流

中的每一個字節(jié)都編上一個序號。序號字段的值則指的是本報文段所發(fā)送的數(shù)據(jù)的第一個字節(jié)的序號。TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢

和選

項 (長

變)源端口序

號緊

針窗

口確

認(rèn)

號保

留U

A

P

R

S

FR

C

S

S

Y

IG

K

H

T

N

N比特

08162431填

充確認(rèn)號字段——占4字節(jié),是期望收到對方的下一個報文段的數(shù)據(jù)的第一個字節(jié)的序號。TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢

和選

項 (長

變)源端口序

號緊

針窗

口確

認(rèn)

號保

留U

A

P

R

S

FR

C

S

S

Y

IG

K

H

T

N

N比特

08162431填

充數(shù)據(jù)偏移——占

4

bit,它指出TCP報文段的數(shù)據(jù)起始處距離

TCP報文段的起始處有多遠(yuǎn)。“數(shù)據(jù)偏移”的單位不是字節(jié)而是32

bit

字(4字節(jié)為計算單位)。TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢

和選

項 (長

變)源端口序

號緊

針窗

口確

認(rèn)

號保

留U

A

P

R

S

FR

C

S

S

Y

IG

K

H

T

N

N比特

08162431填

充保留字段——占6

bit,保留為今后使用,但目前應(yīng)置為0。TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢

和選

項 (長

變)源端口序

號緊

針窗

口確

認(rèn)

號保

留U

A

P

R

S

FR

C

S

S

Y

IG

K

H

T

N

N比特

08162431填

充緊急比特

URG

——

當(dāng)

URG 1

時,表明緊急指針字段有效。它告訴系統(tǒng)此報文段中有緊急數(shù)據(jù),應(yīng)盡快傳送(相當(dāng)于高優(yōu)先級的數(shù)據(jù))。TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢

和選

項 (長

變)源端口序

號緊

針窗

口確

認(rèn)

號保

留U

A

P

R

S

FR

C

S

S

Y

IG

K

H

T

N

N比特

08162431填

充確認(rèn)比特

ACK

——

只有當(dāng)

ACK 1

時確認(rèn)號字段才有效。當(dāng)

ACK 0

時,確認(rèn)號無效。TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢

和選

項 (長

變)源端口序

號緊

針窗

口確

認(rèn)

號保

留U

A

P

R

S

FR

C

S

S

Y

IG

K

H

T

N

N比特

08162431填

充推送比特PSH

(PuSH)——接收TCP收到推送比特置1的報文段,就盡快地交付給接收應(yīng)用進程,而不再等到整個緩存都填滿了后再向上交付。TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢

和選

項 (長

變)源端口序

號緊

針窗

口確

認(rèn)

號保

留U

A

P

R

S

FR

C

S

S

Y

IG

K

H

T

N

N比特

08162431填

充復(fù)位比特

RST

(ReSeT)

——

當(dāng)

RST 1

時,表明

TCP連接中出現(xiàn)嚴(yán)重差錯(如由于主機崩潰或其他原因),必須釋放連接,然后再重新建立運輸連接。TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢

和選

項 (長

變)源端口序

號緊

針窗

口確

認(rèn)

號保

留U

A

P

R

S

FR

C

S

S

Y

IG

K

H

T

N

N比特

08162431填

充同步比特SYN——同步比特SYN置為1,就表示這是一個連接請求或連接接受報文。TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢

和選

項 (長

變)源端口序

號緊

針窗

口確

認(rèn)

號保

留U

A

P

R

S

FR

C

S

S

Y

IG

K

H

T

N

N比特

08162431填

充終止比特

FIN

(FINal)

——

用來釋放一個連接。當(dāng)FIN 1

時,表明此報文段的發(fā)送端的數(shù)據(jù)已發(fā)送完畢,并要求釋放運輸連接。TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢

和源端口序

號緊

針窗

口確

認(rèn)

號保

留U

A

P

R

S

FR

C

S

S

Y

IG

K

H

T

N

N比特

08162431選

項 (長

充)窗口字段——占2字節(jié)。窗口字段用來控制對方發(fā)送的數(shù)據(jù)量,單位為字節(jié)。TCP連接的一端根據(jù)設(shè)置的緩存空間大小確定自己的接收窗口大小,然后通知對方以確定對方的發(fā)送窗口的上限。TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢

和選

項 (長

變)源端口序

號緊

針窗

口確

認(rèn)

號保

留U

A

P

R

S

FR

C

S

S

Y

IG

K

H

T

N

N比特

08162431填

充檢驗和——占2字節(jié)。檢驗和字段檢驗的范圍包括首部和數(shù)據(jù)這兩部分。在計算檢驗和時,要在TCP報文段的前面加上12字節(jié)的偽首部。TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢

和選

項 (長

變)源端口序

號緊

針窗

口確

認(rèn)

號保

留U

A

P

R

S

FR

C

S

S

Y

IG

K

H

T

N

N比特

08162431填

充緊急指針字段——占16

bit。緊急指針指出在本報文段中的緊急數(shù)據(jù)的最后一個字節(jié)的序號。TCP首部20字節(jié)固定首部數(shù)據(jù)偏移檢

和源

口 目

口緊

針窗

口確

認(rèn)

號保

留U

A

P

R

S

FR

C

S

S

Y

IG

K

H

T

N

N比特

08162431選

項 (長

充)選項字段——長度可變。TCP只規(guī)定了一種選項,即最大報文段長度MSS

(Maximum

Segment

Size)。MSS告訴對方TCP:“我的緩存所能接收的報文段的數(shù)據(jù)字段的最大長度是MSS個字節(jié)?!盡SS是TCP報文段中的數(shù)據(jù)字段的最大長度。數(shù)據(jù)字段序加號上TCP首部才等于整個的TCP報文段。TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢

和源端口序

號緊

針窗

口確

認(rèn)

號保

留U

A

P

R

S

FR

C

S

S

Y

IG

K

H

T

N

N比特

08162431選

項 (長

充)填充字段——這是為了使整個首部長度是4字節(jié)的整數(shù)倍。7.4.3

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

TCP協(xié)議是面向字節(jié)的。TCP將所要傳送的報

文看成是字節(jié)組成的數(shù)據(jù)流,并使每一個字節(jié)對應(yīng)于一個序號。

在連接建立時,雙方要商定初始序號。TCP每次發(fā)送的報文段的首部中的序號字段數(shù)值表示該報文段中的數(shù)據(jù)部分的第一個字節(jié)的序號。

TCP的確認(rèn)是對接收到的數(shù)據(jù)的最高序號表示確認(rèn)。接收端返回的確認(rèn)號是已收到的數(shù)據(jù)的最高序號加1。因此確認(rèn)號表示接收端期望下次收到的數(shù)據(jù)中的第一個數(shù)據(jù)字節(jié)的序號。7.4.4

TCP的流量控制與擁塞控制1.

滑動窗口的概念

TCP采用大小可變的滑動窗口進行流量控制。窗口大小的單位是字節(jié)。

在TCP報文段首部的窗口字段寫入的數(shù)值就是當(dāng)前給對方設(shè)置的發(fā)送窗口數(shù)值的上限。

發(fā)送窗口在連接建立時由雙方商定。但在通信的過程中,接收端可根據(jù)自己的資源情況,隨時動

態(tài)地調(diào)整對方的發(fā)送窗口上限值(可增大或減小)。1發(fā)送窗口收到確認(rèn)即可前移100

101

200

201

300

301

400

401

500

501

600

601

700

701 800

801

900可發(fā)送不可發(fā)送指針

發(fā)送端要發(fā)送900字節(jié)長的數(shù)據(jù),劃分為9個100字節(jié)長的報文段,而發(fā)送窗口確定為

500字節(jié)。

發(fā)送端只要收到了對方的確認(rèn),發(fā)送窗口就可前移。

發(fā)送TCP要維護一個指針。每發(fā)送一個報文段,指針就向前移動一個報文段的距離。100

101

200

201

300

301

400

401

500

501

600

601

700

701 800

801

9001可發(fā)送不可發(fā)送1發(fā)送窗口收到確認(rèn)即可前移100

101

200

201

300

301

400

401

500

501

600

601

700

701 800

801

900可發(fā)送 不可發(fā)送指針發(fā)送窗口前移指針

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

200字節(jié)數(shù)據(jù)的確認(rèn),同時窗口大小不變?,F(xiàn)在發(fā)送端還可發(fā)送300字節(jié)。已發(fā)送并被確認(rèn)已發(fā)送但未被確認(rèn)100

101

200

201

300

301

400

401

500

501

600

601

700

701 800

801

9001已發(fā)送并被確認(rèn)已發(fā)送但未被確認(rèn)可發(fā)送不可發(fā)送1已發(fā)送并被確認(rèn)可發(fā)送100

101

200

201

300

301

400

401

500

501

600

601

700

701 800

801

900不可發(fā)送指針指針發(fā)送窗口縮小發(fā)送端收到了對方對前400字節(jié)數(shù)據(jù)的確認(rèn),但對方通知發(fā)送端必須把窗口減小到400字節(jié)?,F(xiàn)在發(fā)送端最多還可發(fā)送400字節(jié)的數(shù)據(jù)。發(fā)送窗口前移2.

慢開始和擁塞避免

發(fā)送端的主機在確定發(fā)送報文段的速率時,既要根據(jù)接收端的接收能力,又要從全局考慮不要使網(wǎng)絡(luò)發(fā)生擁塞。

因此,每一個TCP連接需要有以下兩個狀態(tài)變量:

接收端窗口rwnd(receiver

window)又稱為通知窗口(advertised

window)。擁塞窗口cwnd(congestion

window)。接收端窗口rwnd和擁塞窗口cwnd

(1)

接收端窗口

rwnd

這是接收端根據(jù)其目前的接收緩存大小所許諾的最新的窗口值,是來自接收端的流量控制。接收端將此窗口值放在TCP

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

(2)

擁塞窗口cwnd(congestionwindow)

是發(fā)送端根據(jù)自己估計的網(wǎng)絡(luò)擁塞程度而設(shè)置的窗口值,是來自發(fā)送端的流量控制。發(fā)送窗口的上限值

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

rwnd和擁塞窗口cwnd這兩個變量中較小的一個,即應(yīng)按以下公式確定:發(fā)送窗口的上限值

Min

[rwnd,

cwnd]

(7-1

當(dāng)rwnd<cwnd時,是接收端的接收能力限制發(fā)送窗口的最大值。

當(dāng)cwnd<rwnd時,則是網(wǎng)絡(luò)的擁塞限制發(fā)送窗口的最大值。慢開始算法的原理

在主機剛剛開始發(fā)送報文段時可先將擁塞窗口cwnd設(shè)置為一個最大報文段MSS的數(shù)值。

在每收到一個對新的報文段的確認(rèn)后,將擁塞窗口增加至多一個MSS的數(shù)值。

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

cwnd,可以使分組注入到網(wǎng)絡(luò)的速率更加合理。乘法減小(multiplicative

decrease)

“乘法減小“是指不論在慢開始階段還是擁塞避免階段,只要出現(xiàn)一次超時(即出現(xiàn)一次網(wǎng)絡(luò)擁塞),就把慢開始門限值ssthresh設(shè)置為當(dāng)前的擁塞窗口值乘以0.5。

當(dāng)網(wǎng)絡(luò)頻繁出現(xiàn)擁塞時,ssthresh值就下降得很快,以大大減少注入到網(wǎng)絡(luò)中的分組數(shù)。加法增大(additive

increase)

“加法增大”是指執(zhí)行擁塞避免算法后,當(dāng)收到對所有報文段的確認(rèn)就將擁塞窗

口cwnd增加一個MSS大小,使擁塞窗口緩慢增大,以防止網(wǎng)絡(luò)過早出現(xiàn)擁塞。必須強調(diào)指出

“擁塞避免”并非指完全能夠避免了擁塞。利用以上的措施要完全避免網(wǎng)絡(luò)擁塞還是不可能的。

“擁塞避免”是說在擁塞避免階段把擁塞窗口控制為按線性規(guī)律增長,使網(wǎng)絡(luò)比較不容易出現(xiàn)擁塞。3.

快重傳和快恢復(fù)

快重傳算法規(guī)定,發(fā)送端只要一連收到三個重復(fù)的ACK即可斷定有分組丟失

了,就應(yīng)立即重傳丟失的報文段而不必繼續(xù)等待為該報文段設(shè)置的重傳計時器的超時。

不難看出,快重傳并非取消重傳計時器,而是在某些情況下可更早地重傳丟失的

報文段??熘貍髋e例主機A主機BA發(fā)送M1

和M2B確認(rèn)M1

和M23A收到了三個重復(fù)的確認(rèn)ACK,就立即重傳M3,而不必等待超時重傳。3丟失!A發(fā)送M但丟失了A發(fā)送M4M1,

M2ACK2,

ACK3M3M4ACK3M5ACK3M6ACK3M3B只能再次確認(rèn)M2(因為M3

沒有收到)A發(fā)送M5B發(fā)送第二個重復(fù)確認(rèn)ACK3A發(fā)送M6B發(fā)送第三個重復(fù)確認(rèn)ACK3快恢復(fù)算法當(dāng)發(fā)送端收到連續(xù)三個重復(fù)的ACK時,就按乘法減小重新設(shè)置慢開始門限ssthresh。與慢開始不同之處是擁塞窗口

cwnd

不是設(shè)置為1,而是設(shè)置為

ssthresh

+

3

MSS。若收到的重復(fù)的ACK為n

個(n

>3),則將cwnd設(shè)置為ssthresh+nMSS。若發(fā)送窗口值還容許發(fā)送報文段,就按擁塞避免算法繼續(xù)發(fā)送報文段。若收到了確認(rèn)新的報文段的ACK,就將cwnd縮小到ssthresh。7.4.5

TCP的重傳機制

重傳機制是TCP中最重要和最復(fù)雜的問題之一。

TCP每發(fā)送一個報文段,就對這個報文段設(shè)置一次計時器。只要計時器設(shè)置的重傳時間到但還沒有收到確認(rèn),就要重傳這一報文段。往返時延的自適應(yīng)算法

記錄每一個報文段發(fā)出的時間,以及收到相應(yīng)的確認(rèn)報文段的時間。這兩個時間之差就是報文段的往返時延。

將各個報文段的往返時延樣本加權(quán)平均,就得出報文段的平均往返時延RTT。

每測量到一個新的往返時延樣本,就按下式重新計算一次平均往返時延RTT:平均往返時延RTT(舊的RTT)

(1)

(新的往返時延樣本)在上式中,01。參數(shù)

的選擇

很接近于

1,表示新算出的平均往返時延RTT

和原來的值相比變化不大,而新的往返時延樣本的影響不大(RTT值更新較慢)。

若選擇

接近于零,則表示加權(quán)計算的平均往返時延RTT

受新的往返時延樣本的影響較大(RTT值更新較快)。典型的

值為

7/8。超時重傳時間RTO(RetransmissionTime-Out)計時器的

RTO

應(yīng)略大于上面得出的

RTT,即: RTO

RTT

(7-3)這里

是個大于1

的系數(shù)。

若取

很接近于1

,發(fā)送端可及時地重傳丟失的報文段,因此效率得到提高。

但若報文段并未丟失而僅僅是增加了一點時延,那么過早地重傳反而會加重網(wǎng)絡(luò)的負(fù)擔(dān)。因此TCP

原先的標(biāo)準(zhǔn)推薦將

值取為

2。Karn算法在計算平均往返時延RTT時,只要報文段重傳了,就不采用其往返時延樣本。

這樣得出的平均往返時延RTT和重傳時間就較準(zhǔn)確。修正的Karn算法報文段每重傳一次,就將重傳時間增大一些:新的重傳時間

(舊的重傳時間)

(7-4)系數(shù)

的典型值是2

當(dāng)不再發(fā)生報文段的重傳時,才根據(jù)報文段的往返時延更新平均往返時延RTT和重傳時間的數(shù)

值。實踐證明,這種策略較為合理。7.4.7

TCP的運輸連接管理1.

運輸連接的三個階段

運輸連接就有三個階段,即:連接建立數(shù)據(jù)傳送和連接釋放。運輸連接的管理就是使運輸連接的建立和釋放都能正常地進行。連接建立過程中要解決以下三個問題:要使每一方能夠確知對方的存在。

要允許雙方協(xié)商一些參數(shù)

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論