传输层是实现两个用户进程之间端到端的可靠通信。经传输层处理后,都应表现为可靠的、顺序提交的服务。
7.1 传输服务
最常用的传输服务是面向连接的服务,面向连接意味着可靠和有序提交。然而实现这种服务必须付出建立、维护和终止逻辑连接的开销。
无连接的服务(或称数据报服务)不保证可靠的顺序提交,这个缺点有时显得不很重要。
服务质量 QOS ( Quality of Service )。服务质量参数是在建立连接过程中可协商的:
残留错误率;
传输失败的概率;
平均(或最大)传输时延;
平均(或最大)吞吐率;
优先级。
有些应用层协议由于其特殊性总是希望得到特别的服务质量。如:文件传输协议、事务处理协议、电子邮件协议。
加急投送服务:传输层实体可以提供加急投送服务,这种服务类似于高优先级服务。
连接管理服务:传输协议的主要作用是提供端—端数据传送服务。
7.2 传输协议
ISO 定义了三种类型的传输网络服务:
A 型:网络连接具有可接受的残留差错率和可接受的失效通知率。
B 型:网络连接具有可接受的残留差错率和不可接受的失效通知率。
C 型:网络连接具有不可接受的残留差错率。
如果网络协议检测到了差错,但不能恢复,则必须通知传输实体,这叫失效通知。
如果差错既没有得到纠正,也没有通知传输实体,这就是残留差错。
A 型网络服务是可靠的网络服务;
大多数 X.25 公用数据网属于 B 型网络;
C 型网络是不可靠的网络。
不同的网络,需要不同的传输协议, ISO 定义了 5 种类型的传输协议: TP0 、 TP1 、 TP2 、 TP3 和 TP4。
TP0 协议最简单,适应于 A 型网络, TP0 提供的端到端的传输连接是基于网络连接管理的。
TP1 协议适应于 B 型网络,它在 TP0 协议的基础上增加了最基本的差错恢复功能,差错恢复功能表现在对传输协议数据单元( TPDU )编号。
TP2 是 TP0 的增强型协议,同样适用于 A 型网络。它不同于 TP0 协议之处在于提供了多路复用功能。
TP3 协议综合了 TP1 和 TP2 的优点,它既具有 TP2 的多路复用和流控能力,也提供 TP1 的差错恢复功能,适用于 B 型网络。
TP4 协议适用于 C 型网络。 TP4 协议最复杂,功能也最齐全。
接收传输实体要求限制数据流动的速率可能是出于下面的原因:
接收端用户来不及接收数据;
接收端传输实体来不及接收数据。
实现传输层流控可采用下面一些方案:
接收传输实体拒绝接受网络服务送来的 TPDU ;
利用固定大小的滑动窗口协议;
利用 credit 信贷滑动窗口协议 .( P144 图 7.2 )
建立连接的过程有三个作用:
使通信双方确信对方存在;
协商任选参数,例如 TPDU 长度、窗口大小及服务质量等;
分配传输实体资源,例如存储缓冲区、连接入口表项等。
7.3 TCP 和 UDP
在 TCP/IP 协议簇中有两个传输级协议:传输控制协议 TCP ( Transmission Control Protocol )和用户数据报协议 UDP ( User Datagram Protocol )。 TCP 是面向连接的,而 UDP 是无连接的。 Internet 使用 TCP/IP 协议。
TCP 协议提供面向连接的可靠的传输服务,可适用于各种可靠的或不可靠的网络。 TCP 的功能基本与 ISO TP4 协议等价,但两者有一个重要的差别,即 TCP 的数据传送模型是面向字节流的,而 ISO TP4 是面向报文序列的。
TCP 用户送来的是字节流形式的数据: TCP 实体自主地决定如何把字节流分段,组成 TPDU 发送出去。 TCP 实体决定何时把积累的在接收缓冲区中的字节流数据提交给用户。 TCP 也允许用户把字节流分成报文,即推进( PUSH )命令指出报文的界限。
TCP 段头标志字段的控制信息 FIN 表示:数据发送完,连接可释放。 TCP 对连接的终止采用平稳断连的方法。连接的任何一端在数据要发送完时,把最后一个数据段的 FIN 标志置位,表示这是最后一批数据,连接可以随后关闭,但这是一方必须继续接收远端发来的数据,直到收到对方发来的 FIN 置位的段。这样, TCP 的断连是两方独立进行的,不会破坏途中传播的数据,而且还不需要采取额外防止破坏途中数据的措施。(判断、简答)
同步标志 SYN 用于连接建立阶段。 TCP 用三次握手过程建立连接,首先是发起方发送一个 SYN 标志置位( =1 )的字段,其中的发送顺序号为某个值 X ,称为寝顺序号 ISN ( Initial Sequence Number )。
5 . UDP 也是常用的传输层协议,它对应用级提供无连接的传输服务,虽然这种服务是不可靠的,不保证顺序的提交,但这并没有减少它的使用价值。