第六章传输层
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二.目的网络地址NSAP的定 位
• 传输地址TSAP为层次型地址(hierachical address):NSAP可直接来自于TSAP。如 TCP/IP的传输地址由网络地址和端口号组成。
• 传输地址TSAP为平面型地址空间(flat address space):需要名字服务器将TSAP转 换成NSAP。
• 以上服务质量参数一般是传输用户和传输层在建立连接时通过 2021/1/15 选项协商(option negotiation)而设定的。
传输服务原语
• 传输服务原语是传输用户用来访问传输服务的接口。 每种传输服务均有各自的访问原语。
• 以伯克利套接字(Berkeley Socket)为例,下表为面 向连接的TCP中的套接字原语。
2021/1/15
释放连接(connection release ) • 释放传输连接有两种方式:
1. 非对称释放(asymmetric release):任何一方发 出断连请求即可终止连接。容易造成数据丢失。
2021/1/15
2. 对称释放(symmetric release ):一条 连接的两个方向被看成是两个单独的连接 。一方发出断连请求表明它的数据已发送 完毕,但仍可以在连接上接收对方的数据 。只有双方都发出了断连请求,连接才被 终止。
• 向下多路复用(downward multiplexing): – 为一条传输连接建立多条网络连接,传输实 体按一定顺序在各个网络连接上并行发送数 据,从而提高了数据的整体传输速率。 – 物理线路须有足够大的容量。
2021/1/15
两种多路复用示意图
2021/1/15
• 在某些场合下(如LAN中),可采用广播方式 2021/1/1询5 问目的机器的NSAP。
建立连接(connection establishment
)
• 由于通信子网的不可靠性和存储能力,造成不可预知 的延迟,使得可靠地建立传输连接变得十分困难。一 些解决的方法有:
1. 给每个连接分配一个唯一的连接标识,每个传输实 体将用过的连接标识记在表中,以区别新旧连接。
• 寻址的两个问题: – 客户进程如何获知服务器进程的传输地址TSAP? – 客户传输实体如何从目的传输地址获得目的网络地址NSAP?
2021/1/15
一. 服务器传输地址TSAP的定位
• 有两个途径: – 众所周知的地址:对于一些经常使用的服务 ,可为其指定固定的传输地址,印在手册或 指南上广为传播。 – 对临时不常用的地址,有两种方法: • 初始连接协议(initial connection protocol) • 使用称为名字服务器(name server)或 目录服务器(directory server)的特殊服 务器进程。
第六章 传输层
• 传输层位于面向通信的底三层和 面向信息处理的高三层之间,为 高层用户提供独立于具体网络的 、经济、有效和可靠的端到端数 据传输服务。
2021/1/15
传输协议数据单元(TPDU)
• TPDU(transport protocol data unit)表示对等传输层 间传递的数据单元。
2021/1/15
面向连接的套接字通信
• 连接的建立: – 服务器端: 1. 执行SOCKET,创建一个新的套接字通信端点并为其 分配表空间。 2. 执行BIND为套接字分配一个本地地址和名字。 3. 执行LISTEN表示服务器进程愿意接受连接请求,并指 定连接等待队列的最大长度。 4. 执行ACCEPT,阻塞服务器进程,等待客户的连接请 求。一旦客户的连接请求到达,传输实体即为其创建 一个新的具有相同属性的套接字,并产生一个进程或 线程在新套接字上处理该连接。然后服务器进程回到 原来的套接字上继续监听连接请求。 – 客户端: 1. 执行SOCKET,创建一个新的套接字通信端点。不需 BIND。 2. 执行CONNECT,阻塞连接请求者并主动开始建立连 接的进程。当服务器的应答到来后,客户进程被唤醒 ,连接即告建立。
• 连接建立后,双方都可使用SEND和RECEIVE在已有的连接上 发送和接收数据。
• 连接的释放是对称的,当双方都执行了CLOSE后,连接即被释 2021/1/15 放。
面向连 接的套 接字通 信示意
图
2021/1/15
receive() send()
send() receive()
传输协议
• 传输层协议和数据链路层协议非常相似,都必 须进行顺序控制、差错控制、流量控制等工作 。
• 但由于运行的环境不同,两者的具体操作是大 不相同。传输层的端到端之间经过一个复杂的 、具有存储能力的通信子网,使得其在寻址、 连接的管理、控制协议等方面都非常复杂。
2021/1/15
寻址
• 用传输服务访问点TSAP(transport service access point)和网络服务访 问点NSAP(network service access point)来描述传输地址和网络地址 。
• 发送方采用可动态调整窗口大小的滑动窗口协 议来匹配网络的承载能力。
• 发送方定期地监视网络的传输能力c(网络每 秒钟可传输的TPDU数量)和循环时间r(从发 出TPDU到收到其确认为止所需的时间),然 后计算出发送窗口的大小(cr)。 – c可以简单地通过计算在某段时间间隔内确 认的TPDU数除以时间间隔来决定。测量时 应尽快发送数据。 – r可以从发送端精确获得,一般取某段时间 内的平均值。
• 死锁问题: – 由于包含缓冲区分配数的控制TPDU(确认)可能 会丢失,从而造成死锁。 – 解决方法:每台主机应定期向每个连接发送控制 TPDU。
• 随着内存价格大幅度下降,可以为主机配置大容量的 内存,基本上可解决收发缓冲匮乏的问题。
2021/1/15
动态缓冲的分配管理
2021/1/15
从子网能力出发
2021/1/15
三次握手连接释放法
• 为了可靠地终止连接,一方在发出断连请求后,必须 收到对方的断连请求(响应)才能终止连接。实际上 做不到。
• 实际中采用的三次握手连接释放法不是绝对可靠的, 但已令人足以满意了。 – 考虑后面图中的第4种情况,若主机2一次都没有 收到主机1的断连请求,就不会释放连接,形成一 个半开的连接(half-open connection),导致失 败。 – 为了清除半开的连接,协议规定任何一方在一给 定的时间内没有收到连接上的任何TPDU,就自动 释放连接。 – 每个传输实体都设置一个定时器,只要发送TPDU 就复位定时器,一旦定时器超时就自动发送一个 哑(dumb)TPDU,以防止连接长时间没有数据 传输而被对方终止。 – 若哑TPDU丢失,则对方释放连接,稍候本方也释
2021/1/15
时间和初始序号之间的线性关系
2021/1/15
4. 基于时钟的方法解决了数据TPDU的延迟重发问题, 其前提条件是双方已建立了传输连接,知道对方的初 始序号。但由于控制TPDU也会延迟,造成建立传输 连接的复杂。可采用三次握手(three-way handshake)的方法加以解决。
2021/1/15
1. 初始连接协议
• 如UNIX中的inetd。 • 服务器(机器)上运行一个具有众所周知传输
地址的特殊的进程服务器(process server), 作为各种服务器(进程)的代理。
2021/1/15
2. 名字服务器或目录服务器
• 客户进程从众所周知的名字服务器中通过对服 务的名字(已注册到名字服务器)进行查找, 即可获得相应的服务器进程的传输地址。
• 用户将报文封装在TPDU中交给网络层进行处理。
2021/1/15
服务质量QoS(Quality of Service)
• 传输层的主要功能可看成是增强网络层提供的服务质量。服务 质量的好坏是由一组服务质量参数来衡量的,主要有: 1. 连接建立延迟(Connection establishment delay):建立 一个连接所需的时间。 2. 连接建立失败的概率(Connection establishment failure probability):在指定的最大连接建立延迟内未能建立连接 的可能性。 3. 吞吐率(Throughput):一个连接上每秒钟传输的用户数 据的字节数。 4. 传输延迟(Transit delay):用户报文从源端发送到目的端 所需的时间。 5. 残余误码率(Residual error ratio):丢失或错乱报文的百 分比。 6. 保护(Protection):要求传输层提供保护,以防止未经授 权的第三方窃听或篡改用户报文。 7. 优先级(Priority):能指示被服务的连接的优先级别。 8. 恢复(Resilience):出现问题时,传输层能自发终止连接 的可能性。
2021/1/15
多路复用(multipຫໍສະໝຸດ Baiduexing)
• 向上多路复用(upward multiplexing): – 将去往相同目的节点的不同传输连接复用到 同一条网络连接上,使它们共同承担一条网 络连接的通信费用(按时)。 – 为了实现向上多路复用,每个主机应能将各 传输连接按目的主机进行分组,并将它们映 射到最少数量的网络连接上。 – 每个网络连接上的传输连接数应适中。
2. 限制分组的寿命:为每个分组设置一个寿命域(计 数器),每隔一定的时间寿命减1,减至0时就丢 弃分组。可以设定一个时间T(根据不同的协议, 为分组最大寿命的若干倍),当一个分组发送后, 经时间T,所有和该分组有关的分组就全不存在了 ,这大大简化了问题。
3. 为每台主机设置一个一直运转的计时时钟(二进制 计数器,位数足够大),每隔一定时间加1,当建 立连接时,用时钟的低k位作为本连接的初始序号 。此后的发送序号按序递增,不再参考计数器值, 但发送序号不能进入禁止区。
放连接。 2021/1/15
三次握手连 接释放的四
种情况
2021/1/15
流量控制和缓冲策略
• 传输层虽然和数据链路层一样都采用了滑动窗 口协议等机制来实现流量控制,但由于传输层 上(主机)的连接数多且不定,而中间通信子 网的传输能力有限,不可能为每条连接分配固 定数量的缓冲区。
• 由于发送流量涉及到接收端的接收能力和通信 子网的传输能力,因此必须从这两个方面来讨 论传输层上的流量控制。
• 发送流量应该取接收端和通信子网所能允许的 流量值中的较小值。
2021/1/15
从接收能力出发
• 传输层连接须对收发双方动态地分配缓冲区数量:发 送端应向接收端申请所需的缓冲空间(接收端一侧) ,接收端也应能根据情况决定为发送端预留多少空间 (动态可变),通过确认及时告知发送端,以便调整 发送流量。
• 传输地址TSAP为层次型地址(hierachical address):NSAP可直接来自于TSAP。如 TCP/IP的传输地址由网络地址和端口号组成。
• 传输地址TSAP为平面型地址空间(flat address space):需要名字服务器将TSAP转 换成NSAP。
• 以上服务质量参数一般是传输用户和传输层在建立连接时通过 2021/1/15 选项协商(option negotiation)而设定的。
传输服务原语
• 传输服务原语是传输用户用来访问传输服务的接口。 每种传输服务均有各自的访问原语。
• 以伯克利套接字(Berkeley Socket)为例,下表为面 向连接的TCP中的套接字原语。
2021/1/15
释放连接(connection release ) • 释放传输连接有两种方式:
1. 非对称释放(asymmetric release):任何一方发 出断连请求即可终止连接。容易造成数据丢失。
2021/1/15
2. 对称释放(symmetric release ):一条 连接的两个方向被看成是两个单独的连接 。一方发出断连请求表明它的数据已发送 完毕,但仍可以在连接上接收对方的数据 。只有双方都发出了断连请求,连接才被 终止。
• 向下多路复用(downward multiplexing): – 为一条传输连接建立多条网络连接,传输实 体按一定顺序在各个网络连接上并行发送数 据,从而提高了数据的整体传输速率。 – 物理线路须有足够大的容量。
2021/1/15
两种多路复用示意图
2021/1/15
• 在某些场合下(如LAN中),可采用广播方式 2021/1/1询5 问目的机器的NSAP。
建立连接(connection establishment
)
• 由于通信子网的不可靠性和存储能力,造成不可预知 的延迟,使得可靠地建立传输连接变得十分困难。一 些解决的方法有:
1. 给每个连接分配一个唯一的连接标识,每个传输实 体将用过的连接标识记在表中,以区别新旧连接。
• 寻址的两个问题: – 客户进程如何获知服务器进程的传输地址TSAP? – 客户传输实体如何从目的传输地址获得目的网络地址NSAP?
2021/1/15
一. 服务器传输地址TSAP的定位
• 有两个途径: – 众所周知的地址:对于一些经常使用的服务 ,可为其指定固定的传输地址,印在手册或 指南上广为传播。 – 对临时不常用的地址,有两种方法: • 初始连接协议(initial connection protocol) • 使用称为名字服务器(name server)或 目录服务器(directory server)的特殊服 务器进程。
第六章 传输层
• 传输层位于面向通信的底三层和 面向信息处理的高三层之间,为 高层用户提供独立于具体网络的 、经济、有效和可靠的端到端数 据传输服务。
2021/1/15
传输协议数据单元(TPDU)
• TPDU(transport protocol data unit)表示对等传输层 间传递的数据单元。
2021/1/15
面向连接的套接字通信
• 连接的建立: – 服务器端: 1. 执行SOCKET,创建一个新的套接字通信端点并为其 分配表空间。 2. 执行BIND为套接字分配一个本地地址和名字。 3. 执行LISTEN表示服务器进程愿意接受连接请求,并指 定连接等待队列的最大长度。 4. 执行ACCEPT,阻塞服务器进程,等待客户的连接请 求。一旦客户的连接请求到达,传输实体即为其创建 一个新的具有相同属性的套接字,并产生一个进程或 线程在新套接字上处理该连接。然后服务器进程回到 原来的套接字上继续监听连接请求。 – 客户端: 1. 执行SOCKET,创建一个新的套接字通信端点。不需 BIND。 2. 执行CONNECT,阻塞连接请求者并主动开始建立连 接的进程。当服务器的应答到来后,客户进程被唤醒 ,连接即告建立。
• 连接建立后,双方都可使用SEND和RECEIVE在已有的连接上 发送和接收数据。
• 连接的释放是对称的,当双方都执行了CLOSE后,连接即被释 2021/1/15 放。
面向连 接的套 接字通 信示意
图
2021/1/15
receive() send()
send() receive()
传输协议
• 传输层协议和数据链路层协议非常相似,都必 须进行顺序控制、差错控制、流量控制等工作 。
• 但由于运行的环境不同,两者的具体操作是大 不相同。传输层的端到端之间经过一个复杂的 、具有存储能力的通信子网,使得其在寻址、 连接的管理、控制协议等方面都非常复杂。
2021/1/15
寻址
• 用传输服务访问点TSAP(transport service access point)和网络服务访 问点NSAP(network service access point)来描述传输地址和网络地址 。
• 发送方采用可动态调整窗口大小的滑动窗口协 议来匹配网络的承载能力。
• 发送方定期地监视网络的传输能力c(网络每 秒钟可传输的TPDU数量)和循环时间r(从发 出TPDU到收到其确认为止所需的时间),然 后计算出发送窗口的大小(cr)。 – c可以简单地通过计算在某段时间间隔内确 认的TPDU数除以时间间隔来决定。测量时 应尽快发送数据。 – r可以从发送端精确获得,一般取某段时间 内的平均值。
• 死锁问题: – 由于包含缓冲区分配数的控制TPDU(确认)可能 会丢失,从而造成死锁。 – 解决方法:每台主机应定期向每个连接发送控制 TPDU。
• 随着内存价格大幅度下降,可以为主机配置大容量的 内存,基本上可解决收发缓冲匮乏的问题。
2021/1/15
动态缓冲的分配管理
2021/1/15
从子网能力出发
2021/1/15
三次握手连接释放法
• 为了可靠地终止连接,一方在发出断连请求后,必须 收到对方的断连请求(响应)才能终止连接。实际上 做不到。
• 实际中采用的三次握手连接释放法不是绝对可靠的, 但已令人足以满意了。 – 考虑后面图中的第4种情况,若主机2一次都没有 收到主机1的断连请求,就不会释放连接,形成一 个半开的连接(half-open connection),导致失 败。 – 为了清除半开的连接,协议规定任何一方在一给 定的时间内没有收到连接上的任何TPDU,就自动 释放连接。 – 每个传输实体都设置一个定时器,只要发送TPDU 就复位定时器,一旦定时器超时就自动发送一个 哑(dumb)TPDU,以防止连接长时间没有数据 传输而被对方终止。 – 若哑TPDU丢失,则对方释放连接,稍候本方也释
2021/1/15
时间和初始序号之间的线性关系
2021/1/15
4. 基于时钟的方法解决了数据TPDU的延迟重发问题, 其前提条件是双方已建立了传输连接,知道对方的初 始序号。但由于控制TPDU也会延迟,造成建立传输 连接的复杂。可采用三次握手(three-way handshake)的方法加以解决。
2021/1/15
1. 初始连接协议
• 如UNIX中的inetd。 • 服务器(机器)上运行一个具有众所周知传输
地址的特殊的进程服务器(process server), 作为各种服务器(进程)的代理。
2021/1/15
2. 名字服务器或目录服务器
• 客户进程从众所周知的名字服务器中通过对服 务的名字(已注册到名字服务器)进行查找, 即可获得相应的服务器进程的传输地址。
• 用户将报文封装在TPDU中交给网络层进行处理。
2021/1/15
服务质量QoS(Quality of Service)
• 传输层的主要功能可看成是增强网络层提供的服务质量。服务 质量的好坏是由一组服务质量参数来衡量的,主要有: 1. 连接建立延迟(Connection establishment delay):建立 一个连接所需的时间。 2. 连接建立失败的概率(Connection establishment failure probability):在指定的最大连接建立延迟内未能建立连接 的可能性。 3. 吞吐率(Throughput):一个连接上每秒钟传输的用户数 据的字节数。 4. 传输延迟(Transit delay):用户报文从源端发送到目的端 所需的时间。 5. 残余误码率(Residual error ratio):丢失或错乱报文的百 分比。 6. 保护(Protection):要求传输层提供保护,以防止未经授 权的第三方窃听或篡改用户报文。 7. 优先级(Priority):能指示被服务的连接的优先级别。 8. 恢复(Resilience):出现问题时,传输层能自发终止连接 的可能性。
2021/1/15
多路复用(multipຫໍສະໝຸດ Baiduexing)
• 向上多路复用(upward multiplexing): – 将去往相同目的节点的不同传输连接复用到 同一条网络连接上,使它们共同承担一条网 络连接的通信费用(按时)。 – 为了实现向上多路复用,每个主机应能将各 传输连接按目的主机进行分组,并将它们映 射到最少数量的网络连接上。 – 每个网络连接上的传输连接数应适中。
2. 限制分组的寿命:为每个分组设置一个寿命域(计 数器),每隔一定的时间寿命减1,减至0时就丢 弃分组。可以设定一个时间T(根据不同的协议, 为分组最大寿命的若干倍),当一个分组发送后, 经时间T,所有和该分组有关的分组就全不存在了 ,这大大简化了问题。
3. 为每台主机设置一个一直运转的计时时钟(二进制 计数器,位数足够大),每隔一定时间加1,当建 立连接时,用时钟的低k位作为本连接的初始序号 。此后的发送序号按序递增,不再参考计数器值, 但发送序号不能进入禁止区。
放连接。 2021/1/15
三次握手连 接释放的四
种情况
2021/1/15
流量控制和缓冲策略
• 传输层虽然和数据链路层一样都采用了滑动窗 口协议等机制来实现流量控制,但由于传输层 上(主机)的连接数多且不定,而中间通信子 网的传输能力有限,不可能为每条连接分配固 定数量的缓冲区。
• 由于发送流量涉及到接收端的接收能力和通信 子网的传输能力,因此必须从这两个方面来讨 论传输层上的流量控制。
• 发送流量应该取接收端和通信子网所能允许的 流量值中的较小值。
2021/1/15
从接收能力出发
• 传输层连接须对收发双方动态地分配缓冲区数量:发 送端应向接收端申请所需的缓冲空间(接收端一侧) ,接收端也应能根据情况决定为发送端预留多少空间 (动态可变),通过确认及时告知发送端,以便调整 发送流量。