《数据通信与计算机网络(第二版)》
电子教案
笫二十讲
运输服务和运输协议
1
本讲内容
第八章 运输层
运输服务和服务质量
运输服务
服务质量
运输协议机制
寻址
A型网络服务上的运输协议
B型网络服务上的运输协议
C型网络服务上的运输协议
2
运输层
• 运输层是OSI模型的第四层,它承上启下,
是整个网络协议体系的核心。
• 运输层的主要职能是在源计算机到目的计
算机之间提供可靠的、经济的数据传送服
务。服务是由运输实体(运输服务提供者)
来完成的,它使用网络层提供的服务,独
立于所使用的物理网络。
• 使用运输服务的实体可以是会话实体,也
可以直接是应用实体(运输服务用户、TS
用户)。
3
运输层
• 运输实体
4
运输服务
• 和网络层相似,运输层也提供两种类型的
服务。
– 面向连接的运输服务是一种可靠的服务,整个
连接生存期包括连接建立、数据传输和连接释
放三个阶段。
– 无连接的运输服务是一种不可靠的、高效的服
务,整个服务期间不需要建立连接。
• 为什么还需要运输服务?
5
运输服务
• 运输层通过运输服务原语向运输用户提供服务。
– 如Unix的Socket、Windows的Winsock。
阶段 服务 原语 参数
连
接
建
立
建
立
连
接
被呼地址,主呼地址,选项,服务质量,TS用户数据
被呼地址,主呼地址,选项,服务质量,TS用户数据
响应地址,选项,服务质量,TS用户数据
响应地址,选项,服务质量,TS用户数据
数
据
传
输
常
规
数
据
TS用户数据
TS用户数据
加
速
数
据
TS用户数据
TS用户数据
连
接
释
放
释
放
连
接
TS用户数据
连接释放原因,TS用户数据
6
服务质量
• 服务质量(Quality of Service,QoS)
– QoS衡量运输层的总体性能。
• 为满足运输层QoS,运输层需要弥补网络
层服务质量的缺陷。
– 如果网络层服务质量比较高,那么运输层实现
比较简单;
– 如果网络层服务质量比较低,那么运输层实现
比较复杂。
7
服务质量
• 服务质量参数
– 连接建立延迟
– 连接建立失败概率
– 吞吐量
– 残留差错率
– 传输延迟
– 保护性
– 优先权
– 回弹率
8
服务质量
• QoS协商(选项协商)
9
运输协议机制
• 运输协议数据单元(Transport Protocol
Data Unit,TPDU)
TPDU 含 义
CR 运输连接请求,要求与对等运输实体建立运输连接
CC 确认,对CR TPDU的确认
DR 释放请求,要求释放与对等运输实体之间的运输连接
DC 确认,对DR TPDU的确认
DT,DATA 数据,一个运输实体向对等运输实体发送用户数据
AK,ACK 确认,对数据TPDU的认可
REJ,REJECT 拒绝,对数据TPDU拒绝接受
10
运输协议机制
• 根据与用户要求的差错行为有关的质量对网
络服务分类:
– A型网络服务
具有可接受的残留差错率和可接受的被告知的差错率的
网络连接,也就是完美的网络服务。
– B型网络服务
具有可接受的残留差错率和不可接受的、被告知的差错
率的网络连接,即完美的分组递交,但若有故障发生时,
网络层则通过相应的网络服务报告该故障的发生。
– C型网络服务
具有不可接受的残留差错率的网络连接,即网络连接不
可靠,可能丢失(或有重复)分组。
11
寻址
• 运输层寻址:运输服务访问点(Transport
Service Access Point,TSAP)。
12
寻址
• 相对于TSAP,网络层寻址为网络服务访问
点 ( Network Service Access Point,
NSAP)。
• TCP/IP协议中
– TSAP即TCP为端口号(port number)
– NSAP即IP地址
– NSAP(IP地址)和TSAP(TCP端口号)的结
合唯一地标识了一个主机上的一个应用进程。
• 寻址例:一个时间服务进程
13
A型网络服务上的运输协议
• A型网络提供可靠的网络服务,其上的运输
协议比较简单。
• A型网络服务可分为三种情况:
– 可靠、顺序、信息长度任意的网络服务
– 可靠、无序、信息长度任意的网络服务
– 可靠、无序、信息长度不能超过最大长度的网
络服务
14
• 可靠的顺序网络服务
– 可接受任意长的信息
– 百分之百地可靠
– 按顺序传递数据到目的地
– 讨论3个问题
• 复用
• 流量控制
• 连接建立和终止
A型网络服务上的运输协议
15
• 复用
– 运输协议实现对运输服务用户的复用:多个用
户使用同一个运输协议,它们通过TSAP加以
区分。
– 对于网络服务而言,运输实体也实现复用:
• 多条运输连接复用一条网络连接;
• 一条运输连接可以使用多条网络连接。
– 对应有2种复用
• 向上复用:复用/解复用
• 向下复用:分流/合流
A型网络服务上的运输协议
16
A型网络服务上的运输协议
• 2种类型的流量控制
– 层内流控(对等流控):指同一层内的实体之
间的流量控制。
17
A型网络服务上的运输协议
– 层间流控:指不同层实体之间的流控。
• 一层实体向另一层实体发出信息时必须得到该实体
的同意,从而实现这两个层次之间的流量控制。
18
• 对等流控的目的是为了限制数据(TPDU)
的发送速度,因为:
– 接收方用户可能跟不上数据流。
– 接收方运输实体可能跟不上TPDU流。
• 运输实体通过缓冲区实现对等流控的几种
措施:
1. 接收运输实体什么都不做。
2. 用网络服务来完成。
3. 滑动窗口机制
4. 信用量方案
A型网络服务上的运输协议
19
• 信用量方案
– 方案的基本组成部分有:发送窗口与接收窗口,
每个窗口又有上缘和下缘。
• 对发送窗口,建立连接后,下缘置为0,上缘是对等
运输实体给出的信用量,发送一个TPDU后,下缘
加1,上缘通过AK TPDU调整,上缘和下缘之间的
差即是可发送的TPDU数,当上缘和下缘重合时不
能发送TPDU;
• 对接收窗口,初始时下缘置为0,确认后作调整,上
缘是对等实体的信用量,上缘和下缘之差表示可接
收的TPDU数,发信用量后调整。
A型网络服务上的运输协议
20
A型网络服务上的运输协议
– 信用量方案例
• TPDU的确认和流量控制是分开的。
21
• 连接建立
A型网络服务上的运输协议
22
• 连接释放
A型网络服务上的运输协议
23
• 可靠无序网络服务
– 网络服务百分之百可靠
– 数据长度为任意
– 但可能有失序情况发生
– 讨论1个问题:对于这种网络服务,为什么必
须使用序号来标明各TPDU之间的关系?
• 流控中的问题
• 连接建立中的问题
A型网络服务上的运输协议
24
• 无序网络服务流控中的问题
A型网络服务上的运输协议
25
A型网络服务上的运输协议
• 无序网络服务连接建立中的问题
26
• 可靠有限长网络服务
– 网络服务不能接受任意长数据,即TPDU长度
不能超过某一最大值。
– 如果用户要求发送的数据块超过最大值,那么
必须把数据分割成较小的段,然后一段一段发
送,接收方再把这些段拼接成块,然后再交给
用户。
• 需要有一个块结束标志EOT,运输实体收到带有
EOT的DT TPDU后,把前面收到的没有EOT的DT
TPDU顺序拼接在一起交给用户。
A型网络服务上的运输协议
27
B型网络服务上的运输协议
• B型网络服务:数据传输可靠(但可能不按
顺序),但可能有网络故障。
• 在任何情况下,运输实体必须能从数据丢
失或网络连接断开中得到恢复。序号是一
种有效的手段。
• 序号也是一种处理网络故障的有效手段。
– 网络连接复位
– 网络连接断开
28
C型网络服务上的运输协议
• C型网络
– 网络服务不可靠,不仅有数据丢失、失序,而
且有网络复位、连接断开等。
– 相应的运输实体是最复杂和最困难的。
– 讨论6个问题
• 重传策略
• 重复检测
• 流量控制
• 连接建立
• 连接释放
• 崩溃恢复
29
• 重传策略
– 需要重传的两种情况
• TPDU信息被破坏,但能到达目的运输实体;
• TPDU没有到达目的地。
– 使用确认-超时方法检测是否出现需要重传的情
况。
• 接收运输实体确认每个成功的TPDU 。
• 使用重传计时器判断超时。
C型网络服务上的运输协议
30
– 如何设置合适的重传计时器值?
• 计时器值固定
• 基于观察值
– 运输层部分重要计时器
计时器 说明
重传计时器T1 重发一个未确认的TPDU
重建连接计时器 在同一对用户之间从释放连接到建立另一条连接间的最
小时间
窗口计时器 AK TPDU间的最大时间
重发CR计时器 重发CR TPDU的时间
保持计时器TR 收不到确认而终止连接的时间
不活动计时器I 收不到TPDU而终止连接的时间
C型网络服务上的运输协议
31
• 重复检测
– 三种可能产生重复的情况
– 可以用序号来识别重复,但处理起来并不很容
易。
– 分两种情况对待:
• 在连接释放前收到重复TPDU。
• 在连接释放后收到重复TPDU。
C型网络服务上的运输协议
32
• 对于连接释放前收到重复TPDU,需注意两种情况:
– 可能多个AK TPDU确认同一个DT TPDU;
– 在TPDU生存期内发生序号循环。
C型网络服务上的运输协议
33
• 对于连接释放后的重复问题就比较难处理,特别
是连接释放后在同一对运输实体之间又建立一条
新的连接时更易产生问题。
• 解决办法:
– 序号跨越连接
• 下一条连接的序号从上一条连接的最后一个序号(加1)开始,
运输实体在建立连接时,把这个序号传送到对等运输实体。
– 使用连接标识符
• 每个TPDU都有这个标识符,每建立一条连接就产生一个以前
没有用过的连接标识符,当收到TPDU时,可以检查这个
TPDU是否为当前运输连接的。
C型网络服务上的运输协议
34
– 如何解决当系统崩溃时无法知道序号或连接标
识符的问题?
• 引入生存期的概念:每个TPDU在通信子网中停留
时间不能超过生存期。
• 可用的技术
– 受限制的子网设计。
– 每个TPDU设置一个站计数器。
– 每个TPDU加上时间信息。
C型网络服务上的运输协议
35
• 流量控制
– 使用修改过的信用量流控方案
• 以(AK N,CREDIT M)表示一个AK TPDU确认了
N(及以前的)DT TPDU,并且给出新的信用量值
M,允许发送运输实体发送N+1到N+M的DT TPDU。
这种机制是很有力的,能满足各种确认和信用量指
示的要求。
– 解决其中潜在的死锁
• 引入一个窗口计时器
• 对AK TPDU作出确认
C型网络服务上的运输协议
36
• 连接建立
– C型网络中TPDU可能丢失或被延迟,导致两
次握手连接建立失败。
C型网络服务上的运输协议
37
– 因此使用三次握手(Three-Way Handshake)方法建
立连接。
a) 正常
b) CR延迟
C型网络服务上的运输协议
运输实体A 运输实体B
CR X
CC Y,X
DT X,Y
A发起连接建立
B 接受
A 确认并发数据
旧的 CR X
CC Y,X
REJ Y
旧的CR X 到达B
B接受
A拒绝B的连接
38
c) CC延迟
d) CR,DT 延迟
C型网络服务上的运输协议
CR X 旧的C
C Z,W
REJ Z CC Y
,X
DT X,Y
A发起连接建立
旧的CC到达A
A拒绝该CC
B接受
A接受正常的CC并发数据
旧的CR X
旧的DT X,WCC Y
,X
REJ Y
旧的CR到达B
B接受
旧的DT到达B
A拒绝
39
• 连接释放
– 使用三次握手及计时器超时方法释放连接。
C型网络服务上的运输协议
a) 正常情况
DR
DR启动时钟
DC
停止钟
DC 启动时钟
ACK
删除连接
ACK
停止钟,删除连接
DR
DR启动时钟
DC
停止钟
DC 启动时钟
ACK
删除连接
超时,删除连接
…
…
丢失
b) ACK丢失
40
C型网络服务上的运输协议
c) DC丢失 d) DC丢失及以后的每个DR均丢失
DR
启动时钟
DC
删除连接
DR
DR启动时钟
DC
启动时钟
DR
丢失
DR
超时,DR
ACK
停时钟,删除连接
停止钟
启动时钟
DC
启动时钟
DC
ACK
丢失
超时,DR
丢失
超时,删除连接
…
…
几次超时后,
删除连接
…
…
41
• 崩溃恢复
– 当一个系统发生崩溃而又重新启动后,会形成
半开通状态。
– 清除半开通连接的一种方法
• 引入一个计时器,在一定的时间内若没有收到
TPDU,就发送一个“伪”TPDU(也称探测TPDU),
等待确认。
• 一旦由于某种原因而使一方处于不活动状态,另一
方就会收不到确认,连续若干次收不到确认即自动
释放连接。
C型网络服务上的运输协议
42
练习题
运输层提供哪两类运输服务?在TCP/IP中分别对
应哪两个协议机制?在实际的应用中,二者的侧
重面是什么?
对于有序的可靠网络访问,TPDU序号一定需要
吗?如果没有序号,可能会损失什么功能?
使用两次握手方法建立连接是否可能产生死锁,
请举例说明。
43