12008SPLENG计算机通信网ComputerNetworks第6章传输层本教案参考资料:《计算机网络》Tanenbaum第3、4版《计算机网络》谢希仁第4版马立香,段景山,毛玉明老师课件22008SPLENG传输层环境及面临的问题传输实体传输实体进程x进程y进程x进程y网络层及下层网络传输层传输层网络层及下层端——端通信向高层进程提供服务希望可靠希望高效希望廉价利用网络提供的服务问题是:网络能提供可靠的服务吗?可能丢失分组可能乱序可能重复因此传输层需要自己采用措施,才能向用户提供可靠服务★32008SPLENG传输层服务屏蔽具体网络细节和不同网络差异,为上层提供与具体网络无关的通信服务。功能各种网络的适配,网络通信的分流和复用、多个并发通信的管理、流量控制等。协议TCPUDPTP4分流:用多个网络通信来实现一个传输层的通信,提高传输层的通信速度复用:多个传输层的通信复用到一个网络通信上,可降低费用。传输层网络层传输层网络层★42008SPLENG6.1传输服务向用户(应用层进程)提供有效、可靠且价格合理的服务面向连接的服务无连接的服务★52008SPLENG为什么需要传输层数据链路层面向连接的服务无连接的服务网络层面向连接的服务无连接的服务传输层面向连接的服务无连接的服务——相连机器间——网络间——用户间通信子网差异大用户无法控制增强服务质量(QoS)将通信子网的技术、设计和缺陷与上层相隔离适合多任务系统的进程间通信控制★62008SPLENG传输层服务质量QoS(QualityofService)典型参数实现方式用户传输数据前设定希望值和最小可接受的值选项协商连接建立延迟连接建立失败的概率吞吐率传输延迟误码率(安全)保护优先级恢复功能72008SPLENG传输服务与网络服务网络服务由实际网络决定不直接面向用户传输服务由用户假定,隐藏网络服务的缺陷直接面向用户,必须简便、易用传输服务原语——用户访问传输服务简单传输服务原语P411图6-2BerkeleySocket原语(TCP)P414图6-5★82008SPLENG简单服务与套接字服务92008SPLENG面向连接的传输服务原语简单原语套接字原语发送的TPDU含义-SOCKET-创建一个通信端点-BIND-套接字附加本地地址-LISTEN-宣布愿意接受连接,给出队列大小LISTENACCEPT-阻塞至连接尝试到达CONNECTCONNECTCONN_REQ建立连接的尝试SENDSENDDATA在连接上发送数据RECEIVERECEIVE-在连接上接收数据DISCONNECTCLOSEDISCONN_REQ释放连接102008SPLENG一个简单连接管理模式的状态图112008SPLENG6.2传输协议的要素与数据链路层的类似之处差错控制、流量控制、连接管理等与数据链路层的差异数据传输通道数据链路层:物理通信信道传输层:子网目的端地址数据链路层:不一定显式指定传输层:必须显式指定连接建立过程数据链路层:简单,与直接相连的对方传输层:复杂,穿越网络通信子网的存储能力对传输层通信产生很大影响连接数量的差异数据链路层:少,固定分配缓冲区大小传输层:多且动态变化,必须采用特定的缓冲策略★路由器物理通信信道链路层运行环境路由器子网主机传输层运行环境122008SPLENG6.2.1寻址传输服务访问点TSAP——标识应用程序当主机1的某个应用进程希望与主机2的某个应用进程建立连接时,如何指明该应用进程?通过TSAP主机1上的应用进程如何知道主机2上服务器进程的TSAP?主机2上的服务器进程如何接收来自主机1应用进程的数据?★132008SPLENG服务器进程如何接收?方案各种服务预置固定不变的TSAP例:Telnet—23,SMTP—25,HTTP—80服务器进程在相应的TSAP上侦听问题服务器进程很多,但大多数很少使用,所有服务器进程全天候侦听——浪费解决进程服务器:侦听一系列TSAP名字服务器:侦听一个TSAP★142008SPLENG进程服务器进程服务器为其他服务器提供代理同时监听一组端口,等待外来的连接当用户请求的TSAP无专门服务器等待时,则指向一个进程无服务器进程服务器请求对应的服务器,然后新服务器执行用户的请求★152008SPLENG名字(目录)服务器查号台服务器登记?★162008SPLENG应用进程如何发送?问题传输实体怎么知道哪个网络层地址用来与TSAP对应的远程传输实体建立网络连接?解决——TSAP地址结构层次型结构例:地址=星系恒星行星国家网络主机端口Internet:(IP地址,本地端口)平面型结构——二级映射名字服务器广播查询★172008SPLENG6.2.2建立连接问题由通信子网不可靠造成的丢失、存储、重复分组问题问题的关键通信子网中存在延迟的重复分组你将离开我吗?嫁给我吧!不好啊嗯?嗯?不182008SPLENG端到端连接的问题问题的关键通信子网中可能存在延迟的重复分组崩溃恢复:假设链路层采用重传机制,当RA发送一帧P后链路出错,RA另选路径,并因为没有收到应答而重传P,在收端就得到重复分组路由器RA子网主机★192008SPLENG端到端连接的解决问题的关键通信子网中可能存在延迟的重复分组尤其糟糕的是前一连接的数据延迟到下一连接中出现解决初探每次连接都使用新的TSAP将导致进程服务器失效为每个连接分配一个连接标识符(递增的序列号)将导致每个传输实体长时间保持一定量的历史信息限制分组的生命周期★202008SPLENG限制分组的生命周期限制子网规模防止分组进入回路在每个分组内设置一个站段计数器丢弃站段计数器值超过某个特定值的分组为每个分组加上时间戳丢弃超过预定时间的旧分组-要求时钟同步212008SPLENG限制延迟的重复分组实际应用中,需要确定分组已无效对该分组的确认也已无效基本思想:确保在同一时刻永远不会出现两个序号相同的TPDU。222008SPLENG数据TPDU:基于时钟的方法传输实体在发送每个TPDU之前必须检查该TPDU是否将进入禁止区域措施:延迟T秒,或重新同步序号232008SPLENG连接TPDU:三次握手★242008SPLENG6.2.3释放连接非对称释放任意一方均可释放整个连接结果:可能导致数据丢失应用:电话系统中一方挂机,丢失数据对称释放每个方向独立释放本方连接结果:仍能继续接收数据应用:固定的发送量,并知道何时发送完毕问题:两军问题★252008SPLENG非对称释放★262008SPLENG对称释放两军问题连接的双方在确信对方也准备释放连接之前都不准备断开连接,那么连接将永远也得不到释放272008SPLENG对称释放连接的4种情况(a)(b)★282008SPLENG对称释放连接的4种情况(c)(d)★292008SPLENG对称释放:半连通的连接产生的原因A的DR和所有N次重发均丢失时,A放弃重发并释放连接B对A的释放连接企图一无所知,而处于连接有效状态消除的方法A直到收到一个应答后才能释放连接问题:如果B超时释放连接,A将无法释放连接任意一方在一段时间内没有收到任何TPDU,则自动释放连接302008SPLENG6.2.4流量控制和缓冲策略312008SPLENG6.2.4流量控制和缓冲策略与数据链路层的比较相似:滑动窗口等机制,实现收发速率匹配不同:缓冲策略(主机可以有多个连接)、子网容量缓冲策略发送方缓存:网络服务不可靠、低速突发信息接收方缓存:网络服务可靠、高速平稳的信息缓冲区大小——固定、可变、循环动态缓冲区管理发送方在对方申请缓冲空间从确认中分离接收方缓存子网的运载容量——动态调整滑窗大小可变大小的窗口★322008SPLENG缓冲区大小固定大小可变大小•最大TPDU:空间浪费•小于最大TPDU:长TPDU需占用多个缓冲区,维护复杂•提高内存利用率•缓冲区管理更复杂循环缓冲区•轻负荷时内存利用率低★332008SPLENG6.2.5多路复用需要价格因素(长时间占用虚电路):向上多路复用(a)传输技术(提高传输带宽):向下多路复用(b)342008SPLENG6.2.6崩溃恢复通信子网崩溃无连接服务:主机重传丢失的TPDU面向连接服务:网络层建立新的虚电路服务器崩溃服务器以广播方式向客户发送一个TPDU,说明自己的崩溃并要求客户通告所有已建立的连接所处的状态★352008SPLENG服务器崩溃恢复服务器有3种可能的事件发送确认(A)写数据到输出进程(W)崩溃(C)TPDUACKCSS0S1发确认写操作TPDUCSS1发确认写操作AC(W)丢失一个TPDUWC(A)重复一个TPDU★362008SPLENG服务器崩溃恢复服务器有3种可能的事件发送确认(A)写数据到输出进程(W)崩溃(C)第N层崩溃只能由第N+1层来恢复条件:第N+1层保留有足够的状态信息★