计算机网络CH08 传输层_第1页
计算机网络CH08 传输层_第2页
计算机网络CH08 传输层_第3页
计算机网络CH08 传输层_第4页
计算机网络CH08 传输层_第5页
已阅读5页,还剩95页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

内容纲要

传输层协议概述1\]

■82TCP/IP中的传输层

■8.3用户数据报协议UDP

________\___________\___________\__________1___________I___________I___________I____________I__________I______L______L_______L___

■8.4传输控制协议TCP

内容纲要

迪祥输层协议概法」

■8,付"中田修,耳I

18.4传输控制协议TCP

8」传输层协议概述

■传输层又称为运输层,位于应用层

和网络层之间,是分层网络体系结

-杈单核上部外一厂

一传输层为应用进程之间提供端到端

的逻辑通信(网络层是为主机之间

提供逻辑通信)。

■传输层用于增强和弥补通信子网的

服务不足,提供主机之间可靠有效

的通信。T////

8.1传输层协议概述

)从通信和信息处理的角度看,一传输层向

一它上面的应用层提供通信服东―它属于

面向通信部分的最高层,同时也是用户

功能中的最低层。

面向信息处理1应用层

传输层

面邮a棺网络层

数据链路层网络功能

物理层

//////

传输层协议和网络层协议主要区别

IP协议的作用范围

(提供主机之间的逻辑通%信)

TCP和UDP协议的作用范围

(提供进程之间的逻辑通信)---------1

传输层与其上下层之间的关系

的OSI表示法

主机A主机B

一g

在端系统上运行

主要功能之一是翁定

息和在目的系统上接

-

­数据的分段和组装

­数据流的控制

•错误检测和恢复

8

8.1传输层协议概述

■传输层实体能够根据高层应用的需求

—提供不同的服务质量齐不二目—

■传输层协议可以是面向连接的协议或

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

■传输层对高层用户屏蔽网络的差异,

使高层用户的对等实体在交互过程中

不受下层通信技术细节的影响。

9

8.1传输层协议概述

传输层协议的分类

-传输层协议的选择是根据高层用户

的需要和低层网络协议提供的服务

一高层对传输层服务的要求A

•通信子网所提供的服务N

•传输层协议=T-N

10

8.1传输层协议概述

网络提供的服务质量

■A型:网络连接具有可接受的低残留

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

■B型:网络连接具有可接受的低残留

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

■C型:网络连接具有不可接受的高差

\Oe\\\/////

11

8.1传输层协议概述

osi参考模型中的传输层协议分类

£TPO:简单类J支持A型网络。

■TPLj本差错恢复类,支持B型网黜

■TP2:复用类j支持A型网络。

5Tp3:差错恢复与复用类,支持B型网

1络。7IIIIII

-TP4:差错检测和恢复,复用类,支持

C型网络。

12

内容纲要

8J传输层称议概述

8.2TCP/IP中的传输层

8・3用户数据报协议UDP

8.2TCP/IP中的传输层

-传输层对高层用户屏蔽通信子网的细节,

使应用进程认为在两个传输层实体之间

有一条端到端的逻辑通信信道。但这条

逻辑通信信道对上层的表现却因传输层

使用的不同协议而有很大的差别O

■TCP/IP的传输层主要有两个不同的协

议,即面向连接的TCP协议和无连接的

UDP协议。

14

TCP/IP体系中的运输层协议

应用层

传输层向上层应用提供可靠的

和不可靠的逻辑通信信道

应11

数据数据数据数据

运全双工可靠信道

使用TCP协议使用UDP协议

8.2TCP/IP中的传输层

TCP/IP的传输层有两个不同协议:

■十用户数据报协议UDP[

-----(UserDatagramProtocol)

无连接,效率高,可靠性较低。

■*传输控制协议TCP^

(TransmissionControlProtocol)

面向连接,可靠性高,控制复杂。

17

8.2TCP/IP中的传输层

■两个对等运输实体在通信时传送的数

据单位叫作传输协议数据单元TPDU

'__(Transport^ProtocolDataUnit)。

■TCP传送的数据单位协议是TCP报

\X®(selgmtentjo~~~~~~~~7~~7~~T

-UDP传送的数据单位协议是UDP报

J

18

8.2TCP/IP中的传输层

■UDP在传送数据之前不需先建立连接一

对方的运输层在收到UDP报文后,不需

解出咨何

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

况下UDP是一种最有效的工作方式。

■在目前的网络传输条件下,使用UDP

往往也能提供足够的传输可靠性。

19

8.2TCP/IP中的传输层

■TCP则提供面向连接的服务。送心

」不提供广播或多播服务。\\\\

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

_的传输服务,,因此不可避免地增加了—

—许多控制开销。这不仅使协议数据单

元的首部增大很多,还要占用许多的

处理机资源。

■TCP适合大量数据传输的应用。

20

TCP/IP中的传输层与网际层

■传输层的UDP用户数据报与网际层的IP数据

报有很大区别。IP数据报要经过互连网中许

多路由器的存储转发J旦UDP用户数据报是

在传输层的端到端抽象的逻辑信道中传送的

-TCP报文段是在传输层抽象的端到端逻辑信

道中传送,这种信道是可靠的全双工信道。

但这样的信道却不知道究竟经过了哪些路由

器,而这些路由器也根本不知道上面的传输

层是否建立了TCP连接。

21

8.2TCP/IP中的传输层

端口的概念\

.端口就是传输层服务访问点JTSAPQ

■端口的作用就是让应用层的各种应用进

程都能将其数据通过端口向下交付给传

输层,―以及让传输层知道应当将其报文

段中的数据向上通过端口交付给应用层

相应的进程。

■从这个意义上讲,端口是应用层进程的

标识。

22

端口在进程之间的通信中所起的作用

发送方接收方

应用进程应用进程

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

TCP报文段用户数据

IP数据报IP数据报

8.2TCP/IP中的传输层

崎芦\\\

■端F口用一个16bit端口号进行标识,

有效的端口号为0-65535。

■端口号只具有本地意义,即端口号只

是为了标志本计算机应用层中的各进

程。在因特网中不同计算机的相同端

口号是没有联系的。

24

8.2TCP/IP中的传输层

端口类型nn\\\

1端口有两种类型]]44

类是熟知端口,其数值二般为G1023。

__这些端口号是TCP/IP体系确定并公布的,

「以便所有的用户进程都知道「■能够与它一

卡西亍曼产隼信。[~~~~~~//~~/

•另一类则是一般端口,用来随时分配给

请求通信的客户进程。

■熟知端口一般用于向公众提供服务。步

8.2TCP/IP中的传输层

_______I__I__I__1__k_

;UDP和TCP使用」用口号”作为计算机系

统中高层应用进程的标识,而IP地址则标识

了网络中的一台主机,IP地址和端口号的组

合称为插口(socket),或套接字、套接口一

■插口和端口、IP地址的关系是:

插□(socket)

26

8.2TCP/IP中的传输层

演\\\\\\

・TCP使用“连接”作为最基本的抽象

一个TCP连接是用它的两个端点来建

示的乙这个端点就是插口(socket)。__

■由于TCP使用两个端点来识别连接,一

一个计算机上的某个端口号可以被多个

连接所共享。

■UDP服务也使用插口地址实现通信。

27

名词socket的多种不同的意思

■应用编程接口API称为socketAPI,

■socketAPI中使用的一个函数名也叫

作socket。]|III~~II~~

■调用socket函数的端点称为socketo

■调用socket函数时其返回值称为

socket描述符,可简称为socketo

■在操作系统内核中连网协议的

Berkeley实现,称为socket实现。

28

内容纲要

俵输层协议概述]1[

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

■a2TCP/IP中的传输层

■8.3用户数据报协议UDP

___\\L__F「1LL

■8.4传输控制协议TCP

8・3用户数据报协议UDP

■UDP是一个简单的面向用户数据报

的传输层协议。应用进程的输出正

产生一个UDP数据报,并组装成一

一个待发送的IP数据报1

■UDP只在的数据报服务之上增

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

能和有限的差错检测功能。

■UDP不提供可靠性。

30

8・3用户数据报协议UDP

■虽然UDP用户数据报只能提供不可

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

{发送数据2前木需要建立连接_______23

・婀,耳机机要维持复杂的连接状态表]

\UDP用户数据报只有斫净片的首部开销工

•网络出现的拥塞不会使源主机的发送速率降

低。这对某些实时应用是很重要的。

31

UDP用户数据报的首部格式

字节44112

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

字节122222

首部

IP数据报

用户数据报UDP有两个字段:数据字段和首部

字段。首部字段有8个字节,由4个字段组成,

每个字段都是两个字节。

字节44112

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

字节122222

「曲爵f1源端口|目的端口|长度|检验和[

<IP数据报

在计算检验和时,临时把“伪首部”和UDP用户数据

报连接在一起。伪首部仅仅是为了计算检验和。

字节44112

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

字节12_2222

[伪首部]源端口|目的端口|长度|检验和

UDP用户数据报|首部|数据

发送在前[工

首部|数.据一

------------------------------IP数据报----------

计算UDP检验和的例子

1001100100010011—153.19

040000100001101000—8.104

12字节

1010101100000011->171.3

伪首部171.314.11

全0|17|150000111000001011->14.11

8字节108713|0000000000010001—0和17

UDP首部“15一全。0000000000001111—15

数据|数据国据国常0000010000111111T1087

7字节

0000000000001101—13

数据数据|数据葭据届同

0000000000001111T15

0000000000000000一0(检验和)

0101010001000101->数据

使用16bit段反码运算0101001101010100一数据

0100100101001110一数据

填充部分仅参加计算

0100011100000000T数据和0(填充)

按二进制反码运算求和10010110111010117求和得出的结果

将得出的结果求反码0110100100010100一检验和

8.3用户数据报协议UDP

-UDP用户数据报的首部中长度

字段定义了数据报的总长度,即

T部加数据部分。

■-UDP用户数据报的首部中检验

和用来检验整个用户数据报(首

部加数据部分)出现的差错。

■计算伪首部可以增加可靠性。

36

UDP端口用报文队列来实现

应TFTP客尸TFTP服务器

层11

出队列入队列出队列入队列

UDP端口51000UDP

UDP用户数据报

8・3用户数据报协议UDP

-UDP提供无连接的服务,每

个用户数据报都是独立的,用户

卜肉据报不使用编号。

■-UDP是一个很小的不可靠的传

输层协议,没有流量控制;除了

检验和之外,没有差错控制机制。

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

38

内容纲要

■8,隼里毕愕增」

■82TCP/IP中的传输层

■8.4传输控制协议TCP

8.4传输控制协议TCP

-TCP提供一种面向连接的、全双工的、

现靠用字节快申斗二目\\\\

■在一个TCP连接中,仅有两方进行彼

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

-TCP的接收端必须丢弃重复的数据一

■TCP对字节流的内容不作任何解释。

对字节流的解释由TCP连接双方的应

用层解释。\[I///////

40

8.4传输控制协议TCP

-TCP通过下列方式来提供可靠性:

•应用数据被分割成TCP认为最适合发展的

性犀块称列*文粘*殳。J

协议中采用自适应的超时及重传策略C

「TCP可以对收到的数据进行重新排序,将

收到的数据以正确的顺序交给应用层。

•TCP的接收端必须丢弃重复的数据。

・TCP还能提供流量控制。

41

8.4传输控制协议TCP

、辛±|±|

友送”而接收端

TCP报文段格式

32bit

比特,0,816

III一产一.....31

源端口目的端口

20字节的

固定首部

TCP确认号

据UAPRSF

RCSSYI口

移GKHTNN

检验和紧急指针

选项(长度可变)填充

TCP报文段TCP首部TCP数据部分

发送在前1

IP首部IP数据部分

比特08162431

2O

源端口和目的端口字段——各占2字节。端口是传输

层与应用层的服务接口。传输层的复用和分用功能都

要通过端口才能实现。

中的每一个字节都编上一个序号。序号字段的值则指

的是本报文段所发送的数据的第一个字节的序号。

比特08162431

源端口目的端口

序号2O

TCF确认号立

首用口

数据UAPS

保留RCSY窗口

偏移GKHN

检验和紧急指针

选项(长度可变)填充

确认号字段——占4字节,是期望收到对方的下一个

报文段的数据的第一个字节的序号。

2O

数据偏移一一占4bit,它指出TCP报文段的数据起始

处距离TCP报文段的起始处有多远。“数据偏移”的

单位不是字节而是32bit字(4字节为计算单位)。

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

应置为Oo

比特08162431

2O

紧急比特URG—当URG=1时,表明紧急指

针字段有效。它告诉系统此报文段中有紧急数据,

应尽快传送(相当于高优先级的数据)。

比特08162431

2O

确认比特ACK——只有当ACK=1时确认号字

段才有效。当ACK=O时,确认号无效。

i

20

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

置1的报文段,就尽快地交付给接收应用进程,而不

再等到整个缓存都填满了后再向上交付。

比特08162431

2O

复位比特RST(Reset)——当RST=1时,表明TCP

连接中出现严重差错(如由于主机崩溃或其他原因),

必须释放连接,然后再重新建立运输连接。

比特08162431

2O

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

这是一个连接请求或连接接受报文。

比特08162431

源端口目的端口

序号2O

TCP确认号

首部

数据UAP需।窗口

保留RCS

偏移GKH

检验和紧急指针

选项(长度可变)填充

终止比特FIN(FINal)——用来释放一个连接。当

FIN=1时,表明此报文段的发送端的数据已发送

完毕,并要求释放运输连接。

比特08162431

源端口目的端口

序号

20

字节

固定

CP首部

TC部

据UAPRS

留RCSSY□

移GKHTN

检验和紧急指针

选项(长度可变)填充

窗口字段——占2字节。窗口字段用来控制对方发送

的数据量,单位为字节。TCP连接的一端根据设置的

缓存空间大小确定自己的接收窗口大小,然后通知对

方以确定对方的发送窗口的上限。

2O

检验和----占2字节。检验和字段检验的范围包括

首部和数据这两部分。在计算检验和时,要在TCP

报文段的前面加上12字节的伪首部。

比特08162431

2O

紧急指针字段——占16bito紧急指针指出在本报

文段中的紧急数据的最后一个字节的序号。

比特08162431

2O

选项字段——长度可变。TCP首部可以有多达

40字节的可选信息,用于把附加信息传递给终点,

或用来对齐其它选项。

8.4传输控制协议TCP

TCP首部的主要选叫\\'

,最大报文段长度MSS\\\

__MSS(MaximumSegmentSize)是

rrcp报文段中的数据字段的最大长度。一

MSS告诉对方TCP:“我的缓存所能

接收的报文段的数据字段的最大长度

是MSS个字节。”

■窗口扩大因子,用于长肥管道。

■时间戳,可用于测量往返时延RTT。

59

填充字段——这是为了使整个首部长度是4字节的

整数倍。

8.4传输控制协议TCP

TCP的数据编号与确认

■TCP协议是面向字节的。TCP将所

要传送的报文看成是字节组成的数据

流,并使每一个字节对应于一个序号。

■在连接建立时,双方要商定初始序号。

TCP每次发送的报文段的首部中的序

号字段数值表示该报文段中的数据部

分的第一个字节的序号。

61

8.4传输控制协议TCP

TCP的数据编号与确认

-TCP的确认是对接收到的数据的最高

序号表示确认。接收端返回的确认号

是已收到的数据的最高序号加工因

此确认号表示接收端期望下次收到的

数据中的第一个数据字节的序号。

■为提高效率,TCP可以累积确认,即

在接收多个报文段后,一次确认。

62

8.4传输控制协议TCP

一、TCP的流量控制

■TCP采用大小可变的滑动窗口进行流量典

____1

■TCP报文段首部的窗口字段写入的数值就

又当前给对方设置的发送窗口数值的上限

■发送窗口在连接建立时由双方商定。但在

通信的过程中,接收端可根据自己的资源

情况,随时动态地调整对方的发送窗口上

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

-------------发送窗口---------------►

a收到确认即可前移

1100101200201300301400401500501600601700701800801900

可发送---------------------------不可发送

指针

发送端要发送900字节长的数据,划分

为9个100字节长的报文段,而发送窗

口确定为500字节。

发送端只要收到了对方的确认,发送窗

口就可前未多。

发送TCP要维护一个指针。每发送一个

报文段,指针就向前移动一个报文段的

距离。

<--------------发送窗口---------------.

a收到确认即可前移

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

----------------可发送----------------------------不可发送---------->

指针---------------发送窗口前移

___________________________

|1100

101200poi500501600601700701800801900

__________A_______________

1已发送f

一已发送但-----j--------------------■可发送<An|岩;芋.

L并被确认丁未被确认

指针

发送端已发送400字节的数据,但只收到对

前200字节数据的确认,同时窗口大小不变。

现在发送端还可发送300字节。

发送端收到对方对前400字节数据的确认,但

对方通知发送端必须把窗口减小到400字节。

现在发送端最多还可发送400字节的数据。

V发送窗口前移

1100101200401500501600601700701800801900

=>

已发送.已发送但口

L并被确认一■可发送一不发送—

未被确认nJ►

指针

◄—发送窗口缩小

1100101200201300301400H01500501600601700701800801900

已发送

可发送.不可

并被确认L发送

指针

利用可变窗口大小进行流量控制

双方确定的窗口值是400

主机A主机B

SEQ=1

A还能发送300字节

SEQ=101

A还能发送200字节

;JACK=201,WIN=300允许A再发送300字节(序号201至500)

SEQ=301

A还能发送200字节(序号301至500)

SEQ=401

A还能发送100字节(序号401至500)

SEQ=201

A超时重发,但不能发送序号500以后的数据

4ACK=5O1,WIN=200

允许A再发送200字节(序号501至700)

SEQ=501

A还能发送100字节(序号501至700)

<ACK=601,WIN=0|

不允许A再发送(到序号600的数据都已收到)

8.4传输控制协议TCP

二、慢启动和拥塞避免

-发送端的主机在确定发送报文段的速

率时,既要根据接收端的接收能力,

又要从全局考虑不要使网络发生拥塞。

■因此,每一个TCP连接需要有以下两

一千姆态聿量l]7丁/j

•接收端窗口rwnd(receiverwindow)又

森为通知窗口(advertisedwindow)□

•拥塞窗口cwnd(congestionwindow)□

68

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

工接收窗口rwnd这是接收端根据其

目前的接收缓存大小所许诺的最新的

窗口值厂是来自接收端的流量控制。一

接收端将此窗口值放在TCP报文的

首部中的窗口字段,传送给发送端。

■拥塞窗口cwnd(congestionwindow)~

是发送端根据自己估计的网络拥塞程

度而设置的窗口值,是来自发送端的

流量控制o

69

■发送端的发送窗口的上限值应当取为

接收端窗口rwnd和拥塞窗口cwnd这

两个变量中较小的一个,即应按以下

公式崎总T1

发送窗日的上限值=Min[rwnd,cwnd]

■当rwnd<cwnd时,是接收端的接收

能力限制发送窗日的最大修------

时,则是网络的拥塞

限制发送窗口的最大值方

8.4传输控制协议TCP

慢启动算法的原理

■在刚开始发送时,可先将拥塞窗口

cwnd设置为一个最大报文段MSS的

数I武I丁I-----II□

■在每收到一个对新的报文段的确认后,

将拥塞窗口增加至2倍MSS的数值。

-用这样的方法逐步增大发送端的拥塞

窗口cwnd,可以使分组注入到网络的

速率更加合理。

慢启动和拥塞避免算法的实现举例

慢启动拥塞避免慢启动拥塞避免

当TCP连接进行初始化时,将拥塞窗口置为1。图中

的窗口单位不使用字节而使用报文段。

慢启动门限的初始值设置为16个报文段,

即ssthresh=16。

慢启动和拥塞避免算法的实现举例

发送端的发送窗口不能超过拥塞窗口cwnd和接收端

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

因此现在发送窗口的数值等于拥塞窗口的数值。

慢启动和拥塞避免算法的实现举例

在执行慢启动算法时,拥塞窗口cwnd的初始值为1,

发送第一个报文段M0o

慢启动和拥塞避免算法的实现举例

发送端收到ACK1(确认M0,期望收到M1)后,将

cwnd从1增大到2,于是发送端可以接着发送和

M2两个报文段。

慢启动和拥塞避免算法的实现举例

接收端发回ACa和ACK3O发送端每收到一个对新报

文段的确认ACK,就把发送端的拥塞窗口加倍。现在

发送端的cwnd从2增大到4,并可发送M4-M6*4

个报文段。

慢启动和拥塞避免算法的实现举例

「慢启动1拥塞避免~1卜慢启动I拥塞避免

发送端每收到一个对新报文段的确认ACK,就把发送

端的拥塞窗口加倍,因此拥塞窗口cwnd随着传输次

数按指数规律增长。

慢启动和拥塞避免算法的实现举例

慢启动拥塞避免慢启动拥塞避免

当拥塞窗口cwnd增长到慢开始门限值ssthresh时

(即当cwnd=16时),就改为执行拥塞避免算法,

拥塞窗口按线性规律增长。

慢启动和拥塞避免算法的实现举例

假定拥塞窗口的数值增长到24时,网络出现超时

(表明网络拥塞了)。

慢启动和拥塞避免算法的实现举例

更新后的ssthresh值变为12(即发送窗口数值24

的一半),拥塞窗口再重新设置为1,并执行慢启动

算法。

慢启动和拥塞避免算法的实现举例

当cwnd=12时改为执行拥塞避免算法,拥塞窗口

按按线性规律增长,每经过一个往返时延就增加一

个MSS的大小。

8.4传输控制协议TCP

乘法减小(multiplicativedecrease)

■“乘法减小”是指不论在慢启动阶段还

是拥塞避免阶段,;只要出现T次超时

(即出现一次网络拥塞),就把慢启

动门限值ssthresh设置为当前的拥塞

窗口值乘以0.5。

■当网络频繁出现拥塞时,ssthresh值就

下降得很快,以大大减少注入到网络

中的分组数。82

8.4传输控制协议TCP

加法增大(additiveincrease)

■“加法增大”是指执行拥塞避免算法

后,当收到对所有

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论