• 沒有找到結果。

第6章 传输层 

N/A
N/A
Protected

Academic year: 2022

Share "第6章 传输层 "

Copied!
109
0
0

加載中.... (立即查看全文)

全文

(1)

6章 传输层

  传输服务

  传输协议的要素

  Internet的传输协议

(2)

传输服务

  传输层的功能及在协议层中的作用

  传输层提供的服务

  传输服务原语

(3)

OSI模型中的位置

  介于通信子网和资源子网之间,对高层用户屏 了通 信的细节

  弥补了通信子网所提供服务的差 和不足,提供端到 端之间的无差错保证

  传输层工作的简繁取决于通信子网提供服务的类型

通信子网 传输的使用者 资源子网

传输的提供者

应用层

表示层

会话层

传输层

网络层

链路层

物理层

(4)

传输层与上下层之间的 系 !

  传输层使高层用户看见的好象就在 个传输层 实体之间有一条端到端的、可靠的、全双工的 通信通道(即数字管道)

应用 (或会话层)

网络层 网络层

应用 (或会话层)

传输实体

传输地址 应用 /传输接口

网络地址 传输 /网络接口 传输协议 TPDU

主机 1 主机 2

Tnbm P482 Fig. 6-1 网络层、传输层和应用层

传输实体

(5)

传输服务

  传输层的功能及在协议层中的作用

  传输层提供的服务

  传输服务原语

(6)

传输层提供的服务

  面向连接的服务:通信可靠,对数据有 校验和重发

TCP/IP模型中应用层协议FTP、Telnet等

  面向非连接的服务:对数据无校验和重 发,通信速率高

TCP/IP模型中应用层协议SNMP、DNS等

(7)

传输服务

  传输层的功能及在协议层中的作用

  传输层提供的服务

  传输服务原语

(8)

传输服务原语是应用程序和传输 服务之间的接口 !

  一个典型的面向连接的服务原语

TPDU发送的

LISTEN (无) 阻塞,直到某个过程试图连接

CONNECT CONNECTION REQ 建立一个连接的活动尝试

SEND DATA 发送信息

RECEIVE (无) 阻塞,直到一个 DATA TPDU到达

DISCONNECT DISCONNECTION REQ 该方希望释放连接

(9)

Berkeley Sockets)

SOCKET 创建一个新的通信端点

BIND 将本地地址 联到套接字上

LISTEN 宣布愿意接受连接,给出队列大小 ACCEPT 阻塞呼叫者,直到连接尝试到达 CONNECT 主动建立连接的尝试

SEND 在指定连接上发送数据

RECEIVE 从指定连接中接收数据

CLOSE 释放指定的连接

(10)

  套接字的使用与文件的使用类似

取主机IP地址

将协议名转换成内部的二进制表示

创建一个套接字

将该套接字与服务器相连

接收

闭 客户端

将协议名转换成内部的二进制表示

创建一个套接字

将该套接字与本地协议端口相连

置等待消息方式

接收下一连接请求

发送

闭 服务器端

(11)

6章 传输层

  传输服务

  传输协议的要素

  Internet的传输协议

(12)

  传输层与数据链路层的比较

相同点:• 可靠的数据传输

不同点:• 数据链路层通过物理通道直接通信,而在传输层,其 面对的传输通道是一个网络

• 数据链路层的连接建立很简单,而传输层要 杂得多 • 数据链路层的通信是点对点的,每条输出线对应了唯

一的一个设备,而传输层则需要给出目的端地址 • 在数据链路层无中间存储环节,而在传输层,每一途

经的路由器都必须存储、寻径、转发,而寻径到转发 的时间随路由器本身的性能和路由算法而定

• 数据链路层通常使用一对发送缓冲区和接收缓冲区,

而在传输层,对每个连接都必须分配一定的缓冲区,

其缓冲区的管理将 杂得多

(13)

传输层必须讨论:

  寻址

  连接建立

  释放连接

  流量控制和缓冲策略

  多路 用

  崩溃的

(14)

传输服务访问点 TSAP

Transport Service Access Point)

  个程序要建立连接时,必须指明对方是 一 个应用程序,这个标记称为传输层地址,也称 为传输服务访问点( TSAP)

  在 TCP协议中传输层地址即TCP的端口号

  网络层地址称为网络服务访问点 NSAP(Network

Service Access Point),NSAP在IP协议中即IP

地址

(15)

  访问一个时间服务器

Tnbm P494 Fig. 6-8 TSAP、NSAP和传输连接

应用进程 TSAP 1208 应用层

传输连接 传输层

TSAP 1522 TSAP 1836

NSAP 网络层 NSAP

数据链路层

物理层

2 1

服务器2 服务器1

主机 1

3 4

主机 2

(16)

访问一个时间服务器的说明

1.  主机 2上的时间服务进程将自己连到1522号TSAP上,

等待即将到来的请求,例如,可以用 LISTEN调用

2.  主机 1上的一个应用进程想找出当天的时间,便发出一CONNECT请求,将1208号TSAP设定为源地址,

1522号TSAP设定为目的地址

3.  主机 1上的应用进程发送一个时间请求

4.  主机 2上的服务器进程以当前的时间作为应答

5.  传输连接释放

(17)

  well-known TSAP

每个服务都有自己固定的 TSAP,所有网络用户都 知道

  采用名字服务器( name server)或目录服 务器( directory server)

用户与名字服务器建立连接,向服务器发送一个 报文,指明服务的名称,服务器将该服务对应的 TSAP返回给用户,类似于114查号

  服务器方将分配的 TSAP通知主机

(18)

服务器方将分配的 TSAP通知主机

  初始连接协议 initial connection protocol)

Tnbm P496 Fig. 6-9 主机1的用户进程如何与主机2的时间服务器建立连接

(a) (b)

用户

主机 1 主机 2

服务器进程

TSAP

用户

主机 1 主机 2

服务器进程

时 间 服务

(19)

1.  服务器(主机2)上运行一个特殊的进程服务器,同时 侦听一系列的端口,等待用户的 TCP连接请求

2.  用户(主机1)设定所需服务的TSAP地址,发出一个 CONNECT请求

3.  主机2的进程服务器在收到请求后,便将请求装入被请 求服务器,被请求服务器将继承已建立的连接并为用 户提供服务

4.  主机2的进程服务器又继续侦听新的请求

(20)

传输层必须讨论:

  寻址

  连接建立

  释放连接

  流量控制和缓冲策略

  多路 用

  崩溃的

(21)

  通信子网的不可靠性

  通信子网中存在着延时和分组的丢失,以及由于 延时和丢失而带来的重 分组

  由于通信子网的尽力而为的传输原则,一个早已 超时的分组最终还是到达了目的端,所以有必要 将分组的生命周期限制在一个适当的范围内

  连接建立时,如何处理过期分组,保证连接的唯 一性是连接建立过程中首要考虑的问题

  常用的方法是: 三次握手法

(22)

连接建立过程

  正常的三次握手过程

  非正常的连接建立过程

  由延迟而重 的 TPDU的连接过程

  同时出现作废的 CR和ACC的情况

(23)

正常的连接建立过程

  正常连接的三次握手过程

Tnbm P501 Fig. 6-11

采用三次握手方法建立的正常情况 t

DATA(seq=x,ACK=y) ACC(seq=y,ACK=x)

CR(seq=x)

主机1 主机2

(a)正常操作

主机 1发出的连接请求序号为x (seq=x),主机2应答接受主机1的 连接请求,并声明自己的序列号为 y (seq=y,ACK=x),主机1收到 认 后发送第一个数据 TPDU并 认主2的序列号(seq=x,ACK=y),至 此,整个连接建立过程正常结束,

数据传输已正式 始

CR:Connection Request(连接请求)

ACC:Connection Accepted(接受连接)

(24)

连接建立过程

  正常的三次握手过程

  非正常的连接建立过程

  由延迟而重 的 TPDU的连接过程

  同时出现作废的 CR和ACC的情况

(25)

非正常的连接建立过程 1

  出现延迟的重 TPDU时三次握手的工作过程

来自一个已经释放连接的主机 1的延时 重 的连接请求,该 TPDU在主机1毫 不知晓的情况下到达主机 2,主机2通 过向主机 1发送一个接受连接请求的 TPDU来响应该TPDU,并声明自己的 序号为 y(seq=y,ACK=x),主机1收到 这个 认后感到莫名其妙并当即拒绝,

主机 2收到了主机1 的拒绝才意识到自 己受到了延时的重 TPDU的欺骗并 放弃该连接,据此,延时的重 请求 将不会产生不良后果

Tnbm P501 Fig. 6-11

采用三次握手建立的第二 情况

t

REJEC

T(ACK=y) ACC(seq=y,ACK=x)

CR(seq=x)

主机1 主机2

(b)重 的CR突然出现 旧的重

(26)

连接建立过程

  正常的三次握手过程

  非正常的连接建立过程

  由延迟而重 的 TPDU的连接过程

  同时出现作废的 CR和ACC的情况

(27)

非正常的连接建立过程 2

  子网中同时有作废的 CR和ACC的情况

与上例一样,主机 2收到了一个延时CR并做了 认应答,在这里,

键是要认识到主机 2已经声明使用y 作为从主机 2到主机1进行数据传输 的初始序号,因此主机 2十分清楚在 正常情况下,主机 1的数据传输应 带对 y 认的TPDU,于是,当第二 个延时的 TPDU到达主机2时,主机 2根据它 认的是序号z而不是y知道 这也是一个过时的重 TPDU,因 此也不会无故建立无人要求的连接

Tnbm P501 Fig. 6-11

采用三次握手建立的第三 情况

t

REJEC

T(ACK=y) ACC(seq=y,ACK=x)

CR(seq=x)

主机1 主机2

(c)重 的CR和重 的ACK 旧的重

(seq=x,ADATAz) CK=

(28)

传输层必须讨论:

  寻址

  连接建立

  释放连接

  流量控制和缓冲策略

  多路 用

  崩溃的

(29)

释放连接

  非对称释放

一方中止连接,则连接即告中断 缺陷:可能导致数据丢失

  对称释放

A提出中止请求,B同意即中止

问题:B如何知道A 收到了它的 认

(30)

非对称释放

  一方中止连接,则连接即告中断

已提出断 请 求所以不接受数

DR

DATA ACC

DATA CR

主机1 主机2

Tnbm P502 Fig.

6-12 突然释放连接将造成数据丢失

当连接建立后,主机 1发送了 一个数据 TPDU并正 抵达主2,接着,主机1发送了第二 个数据 TPDU,然而,主机2 在收到第二个 TPDU之前先突 然发出了释放连接请求

DISCONNECT,结果是连接

立即被释放,数据被丢失

(31)

释放连接

  非对称释放

一方中止连接,则连接即告中断 缺陷:可能导致数据丢失

  对称释放

A提出中止请求,B同意即中止

问题:B如何知道A 收到了它的 认?

(32)

对称释放

  A提出中止请求,B同意即中止

  对称释放方式适用于每个用户进程有固定数量的 数据需要发送,而且清楚地知道何时发送完毕的 情况

  其他情况下,决定所有工作是否已经完成,连接 是否应该释放,可能是没有把握的

  可以假想一 完美的协议:

A说:“ 我发送完了,你 ?”

如果B响应:“ 我也发送完了,再见,”

A收到了B的 认,连接便可以被安全释放

(33)

对称释放的几 情况

  三次握手的正常情况

  最后的 认 TPDU丢失

  应答丢失

  应答丢失以及后续的 DR丢失

(34)

对称释放 1

  三次握手的正常情况

Tnbm P505 Fig. 6-14(a) 三次握手的连接正常释放情况 主机1 主机2 发送DR

并启动计时 器

释放连接

发送ACK

发送DR 并启动计时

释放连接 DR

DR

ACK

主机 1在结束数据传输后决定 释放连接,于是发送 DR并启动 计时器,主机 2在收到主机1 的 DR后同意释放连接,也发送 DR并启动计时器,主机1 在计 时器没有超时前收到主机 2 的 DR,便正式释放连接并发送 ACK,主机2也在计时器没有 超时前收到主机 1 的ACK,于 是也释放了连接,至此整个数 据传输过程,包括建立连接、

传输数据和释放连接的过程正

常结束

(35)

对称释放的几 情况

  三次握手的正常情况

  最后的 认 TPDU丢失

  应答丢失

  应答丢失以及后续的 DR丢失

(36)

Tnbm P505 Fig. 6-14(b) 最后的 认TPDU丢失的情况 主机1 主机2 发送DR

并启动计时 器

释放连接

发送ACK

发送DR 并启动计时

DR

DR

ACK

丢失

(超时)

释放连接

┇ 主机1 主机2 发送DR

并启动计时 器

释放连接

发送ACK

发送DR 并启动计时

DR

DR

ACK

丢失 (超时)

释放连接

对称释放 2

  最后的 认 TPDU丢失

主机 1在结束数据传输后决定 释放连接,于是发送 DR并启 动计时器,主机 2在收到主机 1 的DR后同意释放连接,也 发送 DR并启动计时器,主机 1 在计时器没有超时前收到主2 的DR,便正式释放连接 并发送 ACK,然而主机2在计 时器超时后还未收到主机 1 的 ACK,但是由于已经超时,

于是也释放了连接

(37)

对称释放的几 情况

  三次握手的正常情况

  最后的 认 TPDU丢失

  应答丢失

  应答丢失以及后续的 DR丢失

(38)

对称释放 3

  应答丢失 主机 1在结束数据传输后决定 释放连接,于是发送 DR并启 动计时器,主机 2在收到主机 1 的DR后同意释放连接,也 发送 DR并启动计时器,然而,

主机 1 在计时器超时后还未 收到主机 2 的DR,于是又重 新发送 DR并启动计时器,下 面便是一个正常的三次握手,

并最后正常释放连接,即整 个数据传输过程正常结束

Tnbm P505 Fig. 6-14(c) 应答丢失的情况

主机1 主机2 发送DR

并启动计时 器

发送ACK

发送DR 并启动计时

DR

DR

ACK 丢失

释放连接

(超时)

发送DR 并启动计时

DR

发送DR 并启动计时

释放连接

(39)

对称释放的几 情况

  三次握手的正常情况

  最后的 认 TPDU丢失

  应答丢失

  应答丢失以及后续的 DR丢失

(40)

对称释放 4

  应答丢失以及后续的 DR丢失

主机 1在结束数据传输后决定释放 连接,于是发送 DR并启动计时器,

主机 2在收到主机1 的DR后同意释 放连接,也发送 DR并启动计时器,

然而,紧接着的一段时间内,线 路遇到了灾难性的干扰,无论是

一方的超时重发的 TPDU都不能 到达对方,最终,接收方计时器 的超时而也释放连接,发送方经 过 n次重发和超时后只能无奈地放 弃努力并释放连接

Tnbm P505 Fig. 6-14(d) 应答丢失以及后续的DR丢失 主机1 主机2 发送DR

并启动计时 器

N个超时

)释放连接

发送DR 并启动计时

DR

丢失

(超时)

释放连接

┇ 丢失

(超时)

发送DR 并启动计时

(41)

传输层必须讨论:

  寻址

  连接建立

  释放连接

  流量控制和缓冲策略

  多路 用

  崩溃的

(42)

流量控制和缓冲策略

  流量控制是发送方和接收方之间的传输速率上 的匹配,为使没有得到 认的 PDU在超时后 的重发,通常必须在缓冲区中暂存

  在数据链路层,实现的是点对点的通信,双方缓 冲区的大小根据滑动窗口协议而定

  而传输层实现的是端到端的通信,某一时刻,一

台主机可能同时与多台主机建立了连接,多个连

接必须有多组缓冲区,所以缓冲区的动态分配和

管理策略与数据链路层相比较要 杂得多

(43)

TPDU序号 主机A 消息 主机B

1 <请求8个缓冲区> A想要8个缓冲区

2 <ack=15,buf=4 > B只有4个缓冲区

3 <seq=0,data=m0> A发送了m0,A剩下3个缓冲区 4 <seq=1,data=m1> A发送了m1,A剩下2个缓冲区 5 <seq=2,data=m2> A发送了m2,A剩下1个缓冲区 6 <ack=1,buf=3> B 认了m0,m1,并剩下3个缓冲区 7 <seq=3,data=m3> A发送了m3,A剩下1个缓冲区

8 <seq=4,data=m4> A发送了m4后剩下0个缓冲区,暂停 9 <seq=2,data=m2> m2超时A重发m2,A剩下0个缓冲区 10 <ack=4,buf=0> B 认了m4,并剩下0个缓冲区

11 <ack=4,buf=1> B 认了m4,并剩下1个缓冲区 12 <ack=4,buf=2> B 认了m4,B有了2个缓冲区 13 <seq=5,data=m5> A发送了m5,A剩下1个缓冲区

14 <seq=6,data=m6> A发送了m6后剩下0个缓冲区,暂停 15 <ack=6,buf=0> B 认了m6,并剩下0个缓冲区 16 <ack=6,buf=4> B 认了m6,并剩下4个缓冲区

B没有收 到m2

A没有收ACK

可能 导致死

表示 上交了1

(44)

传输层必须讨论:

  寻址

  连接建立

  释放连接

  流量控制和缓冲策略

  多路 用

  崩溃的

(45)

多路 用

  向上多路 用

多个传输层的连接共用一个网络层的连接,将提 高网络层连接的利用率

  向下多路 用

一个传输层的连接合用多个网络层的连接来发

送,可增加其有效带宽,以提高传输速率

(46)

传输层必须讨论:

  寻址

  连接建立

  释放连接

  流量控制和缓冲策略

  多路 用

  崩溃的

(47)

崩溃的

  网络崩溃的

  主机崩溃的

  认和写操作的问题

(48)

网络崩溃的

  数据报子网: 如果传输层对丢失的 TPDU留 有副本,可以通过重发来解决

  虚电路子网: 必须重新建立连接,并询问远

端的传输实体 些 TPDU已经收到,没有收到

的则必须重发

(49)

崩溃的

  网络崩溃的

  主机崩溃的

  认和写操作的问题

(50)

主机崩溃的

  客户端主机崩溃, 将较为简单

  服务器崩溃,如能及时重新起动,则如何 与原客户主机的数据传输

重新连接后,客户端可能处于 状态之一:

S1—有一个未被 认的TPDU S0—没有未被 认的TPDU

在一般情况下,远端服务器的传输实体在接收到一个客户端的 TPDU后,先发送一个 认,再对应用进程执行一个写操作

(如存盘或交上层)。发送一个 认和执行一个写操作,是

个不同的而又不可分的事件,但 者不能同时进行

(51)

崩溃的

  网络崩溃的

  主机崩溃的

  认和写操作的问题

(52)

认和写操作的问题

  先发送 认,然后再执行写操作,中间发生崩溃

此时客户端将收到这个 认,当崩溃 声明到达时它处于状 态 S0,客户端将因此不再重发,因为它错以为那个TPDU已经 到达服务器端,客户端的这 决定会导致丢失一个 TPDU

  先执行写操作,然后再发送 认,中间发生崩溃

设想已经完成了写操作但在 认发出前系统发生了崩溃,此时客 户端将处于状态 S1并因此重传数据,从而会导致在服务器应用 进程的输出流上出现一个无法检测的重 的 TPDU

无论怎样对发送方和接收方的协议进行编程,总是存在协议不能正 地从

故障中 的情况,传输层无法彻底解决该问题,将由高一层协议处理

(53)

6章 传输层

  传输服务

  传输协议的要素

  Internet的传输协议

(54)

Internet的传输协议

  TCP和UDP都是Internet提供的传输层协议

  UDP (User Datagram Protocol)

  TCP (Transmission Control Protocol )

(55)

UDP (User Datagram Protocol)

  UDP简介

  UDP提供服务的应用

  RPC Remote Procedure Call)

  RTP Real-Time Transport Protocol)

(56)

UDP 简介

  UDP协议是无连接的数据报协议,它不提 供可靠性服务,但其相应的协议 销也较 小、效率较高

  域名系统 DNS、简单网络管理协议SNMP

使用的传输层协议是 UDP

(57)

UDP提供的服务

  UDP是面向非连接的,与IP协议相比,它

唯一增加的能力是提供端口协议,以保证

进程通信,传输的可靠性要靠应用程序来

解决,但效率高

(58)

UDP的数据报格式

  UDP源端口:UDP端口号,当不需要返回数据时,源 端口域置 0

  UDP目的端口:UDP端口号

  UDP长度:整个数据段的长度,包括头部和数据部分以 字节计,最小值为 8(仅头部长度)

  UDP校验和:可选域,全0为未选,全1表示校验和为0

0 8 16 31

UDP源端口 UDP目的端口

UDP长度 UDP校验和(可选)

Tnbm P526 Fig. 6-23 UDP的头部格式

(59)

UDP数据段的封装

UDP

头部 UDP数据区

IP头部 IP数据区

(60)

UDP (User Datagram Protocol)

  UDP简介

  UDP提供服务的应用

  RPC Remote Procedure Call)

  RTP Real-Time Transport Protocol)

(61)

远程过程调用 RPC

  将网络中的请求 -应答交互表示成过程调用形式,

例如:调用 get-IP-address(主机名)将发送 一个 UDP包给DNS服务器,并等待回答

  RPC对程序员屏 了网络运作的细节

  RPC是UDP的一个重要应用

(62)

一次 RPC的过程

2

3

4

Operating System

Client CPU

Operating System

Server CPU

Client stub

Server stub

Client

1 5

Server

Network

Stub是一个程序模块,用于在客户机和服务器之间传输远 程过程调用和响应的承接程序

Tnbm P528 Fig. 6-24 一次RPC过程中的步骤

1.  客户调用Client stub 2.  Client stub 将参数封装

并发送

3.  客户端OS内核将消息发 送到服务器

4.  服务器OS内核将分组交 Server stub

5.  服务器取出参数并调用

过程,最后将结果返回

(63)

RPC过程的说明

1.  客户机通过在本地调用Client stub,使用常规的方 法将参数压栈

2.  Client stub把参数封装(marshal)成消息并通过 系统调用进行发送

3.  客户机操作系统内核通过网络发送消息到服务器 4.  服务器操作系统内核通过网络从客户机接收消息 5.  Server stub调用服务器进程对参数进行拆封

6.  应答即为同一路径的逆向过程

(64)

RPC的应用

  RPC是客户机/服务器模式中实现分布式计算的 通信协议

  RPC采用非连接对话方式,具有错误控制能力

  RPC使服务器系统使用客户机提供的参数,执 行客户机指定的规程并返回结果

  从逻辑上看,按 OSI的七层构架,RPC属会话

层协议,但有些功能属应用层

(65)

UDP (User Datagram Protocol)

  UDP简介

  UDP提供服务的应用

  RPC Remote Procedure Call)

  RTP Real-Time Transport Protocol)

(66)

实时传输协议 RTP

  UDP的另一个重要应用是RTP

  RTP是一个传输层协议,但在应用层实现

  RTP是用于多媒体数据传输的协议

用户空间

OS内核 多媒体应用

RTP 套接字接口

UDP IP 以太网

Tnbm P529 Fig. 6-25(a) RTP在协议栈中的位置

(67)

  将多个实时数据流多路 用到一个 UDP流上,UDP流能被 送给某个地址(单址传输)或多个地址(多址传输)

  每个 RTP流的数据包有一个连续的编号,接收方可以根据此编号 定是否有数据包丢失

  RTP没有流量控制、差错控制、应答以及重传机制

  RTP的载荷可以是不同的多媒体信息,如单个的音频流,可以是 8 bit-8 kHz的PCM编码,也可以是GSM、MP3等

  编码方式在 RTP的包头上指出

  实时应用的另一个特征是需要时间戳,时间戳是相对于流

的第一个数据包的,这有助于在接收方消除抖动,以及多

个流的同步(如数字电视中的视频流和 个音频流)

(68)

RTP的头部格式

0 1 2 3 4 7 8 9 15 16 31

Ver.

P X CC M Payload type Sequence number

Timestamp(时间戳)

Synchronization source identifier(同步源标记)

Contributing source identifiers(有效源标记)

Tnbm P531 Fig. 6-26 RTP的头部格式

(69)

  P:指出数据包是否被填充为4字节的整倍数

  X:是否有扩展头

  CC:有多少个有效源(0-15)

  M:应用指定的标记位,如表示video帧的 始、音频通道中文 字的 始或其它可理解的应用

  载荷类型:信息的编码方式(如非压缩的 8 bit音频、MP3等)

  顺序号: RTP包的序号,以此检查是否丢包

  时间戳:由发送源产生,表示与第一个包的时间间隔

  同步源标记:数据包属于 个流,用于多路 用或解多路 用

  有效源标记:用于混合数据源,如果该字段出现,则该混合源

是同步数据源,每个分数据源被列在这里

(70)

RTP的姐妹协议RTCP

  RTCP(Realtime Transport Control Protocol)

实时传输控制协议

  RTCP处理反馈、同步和用户接口,而不传输数据

  反馈消息包括延时、抖动、带宽、拥塞以及其它网络 性能,可协调源端的传输速率、编码方式等,以适应 当前的传输环境,得到最好的服务质量

  同步是指不同的流数据可以用不同的时钟、不同的颗 粒度、不同的速率进行传输,而 RTCP可使其保持同步

  RTCP提供一 对不同的源端进行命名的方法,这将使

(71)

Internet的传输协议

  TCP和UDP都是Internet提供的传输层协议

  UDP (User Datagram Protocol)

  TCP (Transmission Control Protocol )

(72)

TCP提供的服务

  面向连接( Connection Orientation)

  端到端的服务( End – to – End Communication)

  完全可靠性服务( Complete Reliability)

IP协议不提供可靠性服务,而TCP将在IP的基础上提供可靠性服 务并保证数据发送和接收次序一致

  全双工服务( Full Duplex Communication)

  流接口( Stream Interface)

  可靠的连接建立( Reliable Connection Startup)

  完美的连接终止( Graceful Connection Shutdown)

(73)

TCP协议将讨论:

  TCP服务模型

  TCP数据段头

  TCP连接和释放管理

  TCP传输策略

  TCP拥塞控制

  TCP定时器管理

(74)

TCP服务模型

  端口 port

TCP的TSAP,与某一个应用程序相

通用端口( well-known port) 端口号小于1024 其他可由各主机自己定义

  套接字 socket

传输层的通信端点,它由 IP地址 + 端口号 组成

(75)

常用 TCP端口表

端口号 键字 服务说明 21 FTP 文件传输协议

23 TELNET 终端连接

25 SMTP 简单邮件传输协议 53 DNS 域名解析协议

80 HTTP 超文本传输协议 110 POP-3 远程E-mail访问

Tnbm P534 Fig. 6-27 已分配的常用的TCP端口

(76)

套接字举例

  一个套接字允许被多个连接同时使用,即多个 连接可同时连接到同一个套接字上

202.120.26.35 user1 port 500 user2 port 501

202.120.26.37 user3 port 500

A C

B

连接1

连接2

连接3

166.1.11.15

port 25

connection 1:

(202.120.26.35, 500)-(166.1.11.15, 25) connection 2:

(202.120.26.35, 501)-(166.1.11.15, 25) connection 3:

(202.120.26.37, 500)-(166.1.11.15, 25)

(77)

TCP协议将讨论:

  TCP服务模型

  TCP数据段头

  TCP连接和释放管理

  TCP传输策略

  TCP拥塞控制

  TCP定时器管理

(78)

TCP数据段头及说明

0 4 8 16 31

源端口 目的端口

序号 认号

段头长度 保留 码位 窗口大小

校验和 紧急指针

可选项(0个或更多个32位字)

数据 始

Tnbm P537 Fig. 6-29 TCP头

端口:每个端口对应一个应用程序 序号:发送的字节序号

认号:接收到的字节序号

段头长度:段头中包含多少个 32位字

(79)

TCP数据段头及说明

  保留:以备扩展之用

  码位:

URG: 紧急指针有效 ACK: 认号有效

PSH: 请求接收方,数据一到,立即送往应用程序

RST: 位由于主机崩溃或其他原因而出现的错误的连接 SYN: 用于建立连接

FIN: 用于断 连接

  窗口:接收方窗口大小

URG ACK PSH RST SYN FIN

(80)

TCP数据段头及说明 (续)

  校验和:包括报头、数据和伪段头

  紧急指针:当前序号到紧急位置的偏移量

  选项字段:用于提供一 增加额外设置的方法,如连接 建立时,双方说明最大的负载能力

  数据:真正要传输的数据

0 4 8 16 31

IP地址 目的IP地址

00000000 协议 = 6 TCP数据段长度

Tnbm P539 Fig. 6-30 包括在TCP校验和中的伪头

(81)

常用的选项字段

  最大数据段长度 MSS

目的站可接收的最大的数据段长度,这个值在 065535之间,默认值是536字节

  窗口扩大因子 n n<=14) (RFC1323)

窗口的大小=

首部中定义的窗口大小*2

窗口扩大因子

  选择性重发协议 RFC1106)

引入了 NAK机制

(82)

TCP协议将讨论:

  TCP服务模型

  TCP数据段头

  TCP连接和释放管理

  TCP传输策略

  TCP拥塞控制

  TCP定时器管理

(83)

  TCP连接的建立

采用三次握手( 3-way handshake)的方法

TCP包头中的同步位(SYN)和结束位(FIN)描 述连接建立和终止时的三次握手消息

Tnbm P540 Fig. 6-31(a) 一般情况下TCP连接的建立过程 其中

x:主叫方的初始序号 y:被叫方的初始序号 SYN (seq=x)

主机1 主机2

SYN (seq=y, ACK=x+1) SYN (seq

=x+1, ACK=y+1)

(84)

TCP连接管理

  TCP连接的建立 (续)

连接以端地址 ~ 端地址为标识

即使 边发起同一连接,也不会建立 个连接

SYN(seq=x)

主机1 主机2

SYN(seq=y)

SYN(seq=y, ACK=x+1) SYN(seq

=x, ACK=y+1)

Tnbm P540 Fig. 6-31(b) 呼叫冲突的情况

(85)

连接释放

2 FIN SEQ 151

SEQ 188,ACK 152 3 FIN SEQ 188;ACK 152 6

7 ACK 189

TCP 闭操作

[7]

ULP A

TCP A

1

Close to B

Connection Closed

8

ULP B

TCP B ULP A

Closing

4

Connection Closed

9 5

Closed to B

ULP:upper layer protocol

(86)

连接释放图说明

事件 动 作

1 TCP A的用户打算 闭它在TCP B中对等的上层协议的操作

2 TCP A发送一个FIN位置1的段,SEQ=151是上一次操作的继续,

TCP模块要求传输的下一个序号

3 TCP B 认TCP A的FIN SEQ151,它的SEQ=188、ACK=152 4 TCP B向其用户发出一个close原语

5 TCP B用户应用程序 认同意 闭

6 TCP B再发出最后一个段,FIN位置1并SEQ=188、ACK=152同上 7 TCP A 认,ACK=189

8 TCP A连接 闭 9 TCP B连接 闭

注:握手用的报文长度仅一个字节

(87)

TCP协议将讨论:

  TCP服务模型

  TCP数据段头

  TCP连接和释放管理

  TCP传输策略

  TCP拥塞控制

  TCP定时器管理

(88)

TCP传输策略

  TCP使用与数据链路层不同的窗口协议来实现 流量控制

  数据链路层:在数据链路层的滑动窗口协议中,

发送窗口的滑动依赖于 认的到达

  TCP层:TCP的窗口大小是其缓冲区的尺寸,建

立连接的双方都将分配一个缓冲区作为接收数据

的存放空间,并相互通知对方,此后,每次对接

收数据 认的同时发布一个窗口公告( window

advertisement),报告剩余窗口的大小,任何

时刻,剩余的缓冲区空间的数量叫窗口大小

(89)

零窗口公告

  发送方收到一个零窗口公告时,必须停止发送,

直到接收方重新发送一个非零的窗口公告,但 有 情况可以除外

  发送紧急数据,如允许用户终止( kill)当前正 在远端机上运行的进程

  发送方可以发送一个字节的数据段通知对方,要

求接收方重申希望接收的下一字节及当前的窗口

大小,以防止可能的窗口公告丢失而导致的死锁

(90)

TCP层流量控制举例

发送方事件 接收方事件

通告窗口=2500 发送数据字节1~1000

发送数据字节1001~2000 发送数据字节2001~2500 收到1000的 认 收到2000的 认 收到2500的 认

认1000,窗口=1500 认2000,窗口=500 认2500,窗口=0

应用读出2000字节 2500,窗口=2000 发送数据字节2501~3500

发送数据字节3501~4500

3500,窗口=1000 4500,窗口=0 应用读出1000字节

4500,窗口=1000 收到3500的 认

收到4500的 认

收到4500的 认 发送方等待

发送方等待

(91)

TCP协议将讨论:

  TCP服务模型

  TCP数据段头

  TCP连接和释放管理

  TCP传输策略

  TCP拥塞控制

  TCP定时器管理

(92)

TCP拥塞控制

  数据的丢失有 情况

接收方的容量太小(接收缓冲区)

网络的容量太小(网络带宽)

Tnbm P548 Fig. 6-36所示

  源主机如何知道拥塞

收到 ICMP的源抑制报文

因报文丢失引起的超时

(93)

  网络拥塞造成数据包丢失,重发机制进 一步加剧了拥塞

TCP的拥塞控制方案应将由接收方的容量和由网络的容 量所产生的拥塞问题分 处理,除了已定义的接收窗 口外,还定义了拥塞窗口,拥塞窗口的动态调整:一 旦发现数据包丢失,则降低重发数据包的速率

  接收方承认的接收窗口表示接收缓冲区的容量

  拥塞窗口表示网络的容量

  接收窗口和拥塞窗口, 者取其小

(94)

拥塞窗口的具体实现

  拥塞窗口的初始化

  拥塞窗口大小的修正

  选择发送数据量

取 个窗口的最小值作为可以发送的数据量

(95)

拥塞窗口的初始化

  连接建立时,发送方将拥塞窗口的初始大小设置为最 大的数据段长度,并随后发一个最大长度的数据段,

如该数据段在定时器超时前得到了 认,发送方在原 来的拥塞窗口的基础上再增加一倍长度,发送 个数 据段,如 个数据段都得到了 认,则再增加一倍长 度,直到数据传输超时或到达接收方的窗口大小为止

  当拥塞窗口的大小为 n个数据段时,如果发送的n个数

据段都得到了 认,那么此时拥塞窗口的大小即为 n

个数据段对应的字节数

(96)

拥塞窗口的具体实现

  拥塞窗口的初始化

  拥塞窗口大小的修正

  选择发送数据量

取 个窗口的最小值作为可以发送的数据量

(97)

拥塞窗口大小的修正

  除接收窗口和拥塞窗口外,拥塞控制时还需 指定一个临界值,临界值的初始值为 64K,

如果发生数据传输超时,则将临界值置为当

前拥塞窗口的 1/2,并使拥塞窗口 到最大

的数据段长度,成功的传输使拥塞窗口按指

数增加(成倍),到达临界值后将按线性增

加(按最大的数据段长度)

(98)

拥塞窗口动态调整举例

假定原来拥塞窗口为 64KB,但已超时 最大的数据段长度为 1024(1K)

Tnbm P550 Fig. 6-37 Internet拥塞算法的一个实例

拥 塞 窗 口 (KB)

44 40 36 32 28 24 20 16 12 8 4

0 0 2 4 6 8 10 12 14 16 18 20 22 24 传输号 临界值2

临界值1

(99)

TCP协议将讨论:

  TCP服务模型

  TCP数据段头

  TCP连接和释放管理

  TCP传输策略

  TCP拥塞控制

  TCP定时器管理

(100)

第6章 传输层 100 /

TCP定时器管理

  “ 保活 ”定时器

一旦建立连接,双方都将启动“ 保活 ”定时器,当 连接长时间无数据传输,所设定的 “ 保活 ”定时 器超时,超时一方会发送一个探测报文检查对方 是否存在,如没有得到响应,则终止连接

  重发定时器

  持续定时器

(101)

第6章 传输层 101 /

  TCP在发送一个数据段的同时,启动一个数据 重发定时器,如果在定时器超时前该数据段被

认,则 闭该定时器

  如果在 认到达之前定时器超时,则需要重发 该数据段(并且该定时器重新 始计时)

  重发定时器初始值的设定

与数据链路层点对点的情况不同,在 TCP层,源站点与

目的站点之间的网络距离是动态变化的,数据传输和信

号传播时间的离散性很大,线路的状态更是瞬息万变

所以,重发定时器的初始值不宜设定为固定大小

(102)

第6章 传输层 102 /

链路层和 TCP层的延时分布比较

(a)数据链路层中 认到达时间的概率密度 (b) TCP层中 认到达时间的概率密度 0.3

0.2

0.1

0 0 10 20 30 40 50 T

往返时间(ms)

Tnbm P551 Fig. 6-38

0 10 20 30 40 50 往返时间(ms)

T1 T2

0.3

0.2

0.1

0

(103)

第6章 传输层 103 /

  对于点对点的数据链路层,延时由数据传输延时和信 号传播延时 部分组成,对这 部分延时的估计基本 上是准 的(即误差很小),所以定时器初始值设定 为大于估计的 认返回时间即可,如图 6-33(a)所示

  TCP所面临的是完全不同的情况,端到端的连接可能

远隔重洋,需经过很多路由器的存储转发,途经路由

器的实际情况又是动态变化的,所以 TCP 认返回所

需时间的概率密度函数更接近于图 6-33(b)所示

(104)

第6章 传输层 104 /

超时后的适应性重发

  计算新的往返时间估计值

TCP不使用固定的重发定时器,而是根据对 网络性能的不断测定,主要是对远程的 认 报文作延时分析,不断调整超时间隔,自适 应地修正往返时间的估计值: RTT

Round-Trip Timer)

(105)

第6章 传输层 105 /

  往返时间估计值 RTT的 定

为尽可能避免因实际延时较大而进行的错误重发,同 时尽可能提高系统的 吐率,所以适应性重发机制 中往返时间估计值 RTT的 定将根据前一次的估计RTT

0

,并参考实测的往返时间 M

0

作动态调整 RTT = αRTT

0

+ (1 - α)M

0

其中: RTT

0

:前一次计算得到的往返时间估计值 M

0

:前一次实测得到的往返时间

α:修正因子,RTT

0

M

0

的参考权值

(通常取α = 7/8)

(106)

第6章 传输层 106 /

重发定时器初始值的设定

  固定为 βRTT

固定为往返时间估计值 RTT的β倍,初期β= 2,但经 验表明常量是很不 活的,当环境发生变化时不能 很好地适应

  偏差值方法

偏差值 D =αD

0

+ ( 1 -α) | RTT

0

- M

0

|

超时值 = RTT + 4*D

(107)

第6章 传输层 107 /

TCP定时器管理

  “ 保活 ”定时器

一旦建立连接,双方即启动“ 保活 ”定时器,当连 接长时间无数据传输,所设定的 “ 保活 ”定时器 超时,超时一方会发送一个探测报文检查对方是 否存在,如没有得到响应,则终止连接

  重发定时器

  持续定时器

(108)

第6章 传输层 108 /

持续定时器

  如接收方向发送方发出一个零窗口公告,发送方当即 停止发送,当接收方的上层处理了所收到的数据并释 放了全部的缓冲区后,将向发送方发出一个新的窗口 公告,以通知发送方可继续发送,如果此更新公告丢 失,双方将相互等待,出现死锁

  为防止死锁,每当发送方收到一个零窗口公告,即启

动一个持续定时器,如持续定时器超时,发送方将向

接收方发一探测报文(仅一字节) ,接收方的应答报

文将避免相互等待 (这正是上面所说:即使在发送方已收到

一个零窗口通告,也允许发送一个字节的数据报询问对方)

(109)

第6章 传输层 109 /

Thanks

jdyu@cs.sjtu.edu.cn

參考文獻

相關文件

《敦煌詩歌導論》〈第二章、釋道詩歌〉「第一節佛教詩歌」 [註 5] 以及汪泛舟《敦煌僧詩校 輯》「第三部分修道禪觀」 [註

在第一章我們已瞭解一元一次方程式的意義與解法,而在本章當中,我們將介紹

第四章 直角座標與二元一次方程式.

第四章 直角座標與二元一次方程式.

在現行的 99

 真值表必須在關鍵字table table table table及endtable endtable endtable之 endtable 間。. 

第四章: 中學報稅的設計 第五章: 初中諒程主建議 第六章: 高中諒我建議,..

第一篇 國際安全與軍事情勢 第一章 國際安全環境 第二章 全球軍事情勢 第三章 亞洲軍事情勢 第四章 中共軍事情勢.. 第二篇