16.1传输服务的地位和作用6.2传输协议的基本要素6.3面向连接的TCP协议6.4无连接的UDP协议第六章网络传输服务26.1传输服务的地位和作用1)什么是传输服务2)传输层的地位3)传输层的必要性4)传输层的功能31)什么是传输服务•为应用进程提供端到端的服务•增强网络层提供的服务质量QoS应用进程应用进程网络层网络层传输实体传输实体TPDU接口接口TSAP(传输地址)NSAP(网络地址)传输协议4什么是传输实体TransportEntity•在收/发两端的传输层实现对等实体通信的硬件或软件–利用网络层提供的点到点的分组传输服务–向高层提供端到端的TPDU(传输协议数据单元)传输服务5软件系统硬件系统主机总线CPU内存外设硬盘网卡打印软盘终端操作系统文字处理通信网络文件管理开发工具高级语言设备驱动应用软件应用软件传输实体的实现•用户进程•网络应用程序•OS内核•网卡/子网接口6点到点的传输(Point-to-Point)AEndCEndBEndR1R2R3A-to-R1R3-to-R1R1-to-R2R2-to-BR1-to-R2R3-to-R2C-to-R3R1-to-A7端到端的传输(End-to-End)R1R3R2AEndA-to-BC-to-ACEndBEnd8FramePacketTPDUTPDU传输协议数据单元TPDUDataDataDataPacketTPDUData传输层的数据封装92)传输层的地位传输层Transport传输层TransportOSI上三层OSI上三层OSI下三层OSI下三层用户进程管理通信子网向上提供标准的传输服务向下屏蔽不同的通信子网103)传输层的必要性•网络层的分组传输是不可靠的•无法确定数据到达终点的时间–子网中各站点存储转发的随机性•无法确定数据未达终点的状态–丢失/延迟/即刻到达有必要增强网络层提供的服务质量11•连接建立的延迟•连接建立失败的概率•吞吐率(Byte/s)•传输延迟•残余误码率•保护•优先级•恢复传输层服务质量的典型参数主机A主机BAB124)传输层的功能•端到端的连接管理–建立连接–数据传输–释放连接•流量控制•差错控制•L4与L2的比较13一个连接管理状态图服务器虚电路客户机空闲被动建立主动建立主动释放被动释放空闲Connect连接ConnectTPDUreceivedTPDUreceivedDisconnectTPDUreceivedDisconnectTPDUreceived14L2物理通信信道L4与L2的比较•功能相似–流量控制–差错控制–数据(报文/帧)排序•传输环境不同–通信子网的存储能力L4通信子网主机156.2传输协议的基本要素1)标识端点(传输用户)2)建立连接3)释放连接4)流量控制和缓冲策略5)多路复用6)崩溃恢复161)标识端点•需要实现传输用户的全网唯一标识•定义端点地址–NSAP–TSAP–主机地址应用进程网络层传输实体接口接口TSAP(传输地址)NSAP(网络地址)172)建立连接•传输连接的概念•识别接收方端点TSAP•建立连接面临的问题•重复连接问题的解决办法18传输连接的概念•概念–面向应用层需要传输服务的进程–在两个传输用户之间建立逻辑联系–承认对方是自己的传输连接端点•表象–内部表现为一些缓冲区和一组协议机制–外部表现为高可靠性19识别接收方端点TSAP•连接的发起方如何确定对方的TSAP?•静态分配TSAP–每个用户进程拥有固定的、公开的TASP–每个用户进程始终侦听TSAP•动态分配TSAP(用C/S方式)–进程服务器,统一处理传输连接请求–名字(或目录)服务器20进程服务器用户进程服务器进程1进程服务器服务器进程n1.请求连接进程13.进程1的TSAP2.装载进程1分配TSAP客户机服务器固定/公开初始连接协议21名字(目录)服务器用户进程服务器进程1名字服务器服务器进程n1.请求连接进程13.进程1的TSAP2.目录查询获知TSAP客户机服务器固定/公开22confirm建立连接面临的问题requestconfirmindicationresponse超时requestre-requestindicationindicationresponseresponseconfirm正常连接重复连接23重复连接的解决办法•非重复TSAP•过时连接表•分组的TTL机制•三次握手机制24非重复TSAP•方法–系统为每次连接赋予一个新的TSAP–当连接被释放时将此TSAP废弃•问题–不支持C/S动态连接方式(没有公认的TSAP地址概念)25过时连接表•方法–为每个连接分配连接标识符,存入TPDU–当连接被释放时,将此连接信息存入过时连接表–每个新的连接请求到达时,根据标识符核对过时连接表,如已过时则视为重复连接•问题–需要保留历史记录,不适应突变情况26分组的TTL机制•方法–定义和计数每个分组的生存时间TTL–超时未达目的地,视为陈旧分组,被抛弃•问题–消除重复连接请求需要依赖子网完成–网络层分组传输的不可靠性27三次握手建立连接Three-wayhandshaking•正常建立连接过程•对重复连接的处理–重复CR–重复CR与重复ACC并存28三次握手建立连接过程连接请求CR(seq=x)接受连接,回送确认ACC(seq=y,ACK=x)主机A主机B发送数据,回送确认Data(seq=x,ACK=y)连接成功!29重复连接请求CR重复连接请求CR(seq=x)接受连接,回送确认ACC(seq=x,ACK=y)主机A主机B拒绝连接,回送确认REJECT(ACK=y)x是重复连接请求,放弃连接!30重复CR与重复ACK接受连接,回送确认ACC(seq=y,ACK=x)主机A主机B拒绝连接,回送确认REJECT(ACK=y)应该ACK=y,实际ACK=z,重复!x是重复连接请求,放弃连接!313)释放连接•非对称释放–发送释放请求后单方终止连接–有可能丢失对方发送的数据•对称释放–各自独立发出释放连接请求–收到对方的释放确认之后才可释放连接–Two-army问题32Two-armyProblem•通信兵穿越白军防地,不可靠通信•蓝军2不知道蓝军1是否收到确认,不能贸然行动•采用“三次握手”机制发送同时进攻的建议接受同时进攻的建议收到对方的确认蓝军1蓝军233三次握手释放连接•正常释放连接•非正常情况–最后的确认TPDU丢失–应答TPDU丢失–应答及后续释放请求DR丢失34三次握手正常释放连接发送释放请求DR启动计时器发送释放请求DR启动计时器主机A主机B释放连接回送确认ACK释放连接35最后的确认TPDU丢失发送释放请求DR启动计时器发送释放请求DR启动计时器主机A主机B释放连接回送确认ACK(超时)释放连接丢失36应答TPDU丢失(超时)重发释放请求DR启动计时器发送释放请求DR启动计时器主机A主机B释放连接回送确认ACK释放连接发送释放请求DR启动计时器发送释放请求DR启动计时器丢失37应答和后续请求丢失(超时)发送释放请求DR启动计时器主机A主机B发送释放请求DR启动计时器发送释放请求DR启动计时器丢失(超时)释放连接(N个超时)释放连接384)流量控制和缓冲策略•流量控制(调整收/发速率)–滑动窗口协议•缓冲策略–L2•发送方缓冲区:准备重传•接收方缓冲区:准备排序–L4•通信子网的随机特性,不同于L239传输层的缓存策略和管理•缓存方式和策略•缓冲区的动态分配和管理–发送方申请/接收方分配–接收方在应答中夹带新的分配信息–阻塞–潜在死锁40缓存方式和策略•方式–固定大小–可变大小–为每个连接建立一个大的循环缓冲区•策略–发送方建缓冲区:适于低速突发信息传输–接收方建缓冲区:适于高速平稳信息传输41分配缓冲区发送0发送1发送2接收0接收1丢失AB申请8个缓冲区分配4个缓冲区42改变缓冲区发送3发送4接收3接收4AB应答数据0和1分配3个缓冲区超时重传2接收243阻塞发送5发送6接收5接收6AB应答数据4,缓冲区0应答数据4,缓冲区1应答数据4,缓冲区244潜在死锁AB应答数据6,缓冲区0应答数据6,缓冲区4丢失保持阻塞状态等待分配缓冲区等待接收数据用定时报告解除455)多路复用•向上多路复用–多个传输连接复用同一个网络连接•向下多路复用–一个传输连接在多个网络连接上循环传输L5L4L3L5L4L3466)崩溃恢复•什么是崩溃–主机或路由器不能正常工作,造成TPDU传输过程中断•什么是崩溃恢复–恢复崩溃前的工作状态,继续TPDU传输•崩溃恢复需要解决的问题–崩溃前发送的最后一个TPDU是否需要重传•解决办法47崩溃恢复的解决办法•崩溃前的状态–发送主机的状态–接收主机的状态•发送主机对最后TPDU的处理•结论–崩溃恢复工作必须由更高层次(应用层)来完成。48lastlastACK崩溃前发送主机的状态•S0–最后一个TPDU已被确认•S1–最后一个TPDU未被确认49崩溃前接收主机的状态•举例:收到TPDU后,回送确认,进行写操作•工作顺序AW:先回送确认,再进行写操作WA:先进行写操作,再回送确认•崩溃前状态–AC(W):确认-崩溃-未写–AWC:确认-写-崩溃–C(AW):崩溃-未确认/写•举例–WC(A):写-崩溃-未确认–WAC:写-确认-崩溃–C(WA):崩溃-未写/确认50崩溃前接收主机状态举例ACWAWCCAWCWAWACWCA51发送主机对最后TPDU的处理•重传策略–重传–不重传–在S0状态下重传–在S1状态下重传•重传策略的差错比较52重传最后的TPDUACWAWCCAWCWAWACWCA53不重传最后的TPDUACWAWCCAWCWAWACWCA54在S0状态下重传最后的TPDUACWAWCCAWCWAWACWCA55在S1状态下重传最后的TPDUACWAWCCAWCWAWACWCA56崩溃恢复差错情况发送策略接收状态解释差错类型重传AWC,WAC,WC(A)已写重复不重传AC(W),C(AW),C(WA)未写丢失AWC,WAC全部完成重复S0重传C(AW),C(WA)全部未做丢失WC(A)写/未确认重复S1重传AC(W)确认/未写丢失57课程总结•传输层的地位和作用–提供通信服务的最高层(端到端)–传输实体/传输协议数据单元TPDU•传输协议的基本要素–标识端点(NSAP,TSAP,主机地址)–建立连接:三次握手–释放连接:三次握手–滑动窗口流控/动态分配缓冲区–多路复用和崩溃恢复58思考题•传输层的主要功能是什么,与应用层和网络层是什么关系?•如何实现端到端的传输用户(进程)寻址?•建立连接的主要问题是什么,如何解决?•释放连接的主要问题是什么,如何解决?•比较传输层与数据链路层实现流量控制的异同。•崩溃恢复需要解决什么问题?