- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Ch03-运输层
运输层(Transport Layer) 第3章 内容领航 运输层概述 多路复用与多路分解 用户数据报协议(UDP) 可靠数据传输原理 传输控制协议(TCP) 运输层概述 运输层向它上面的应用层提供通信服务 运输层属于面向通信部分的最高层 与应用层协议不同,运输层及其以下各层与具体应用无关,主要关注数据如何传送的细节。 类比:货运系统 运输层也是用户端功能中的最低层 只有位于网络边缘部分的主机的协议栈才有运输层,而网络核心部分中的路由器在转发分组时都只用到下三层的功能。 运输层与网络层的关系 依赖关系 进程间通信依赖于主机间通信的实现。 网络层对时延、带宽的决定性作用。 例:因特网的网络层提供的是没有时延、带宽保证的服务,这就从根本上决定了因特网的运输层协议无法为上层应用提供时延和带宽上的保证。 强化关系 运输层可以在网络层基础上为用户提供额外的功能。 例:因特网网络层不提供进程间通信功能、可靠数据传输等服务,而运输层协议可以提供这些功能。 运输层向上层提供的服务 运输层向上层提供了一个简单的抽象 它使应用进程认为在两个运输层对等实体之间有一条直接的、端到端的逻辑通信信道。 TCP 提供一条全双工的可靠信道。 PDU:tcp报文段(tcp segment) UDP 提供一条不可靠信道。 PDU: udp报文或用户数据报(user datagram) 性格相反的孪生兄弟:UDP和TCP UDP 提供无连接服务、提供不可靠交付服务 协议简单、开销小 TCP 提供面向连接的服务、提供可靠交付服务 可靠交付:无丢失、无差错、按序交付 协议复杂、开销大。 首部字段多,占用更多处理机和内存资源。 运输层的逻辑通信 网络层数据与运输层数据的传输 网络层PDU:要经过互连网中许多路由器的存储转发 运输层PDU:在运输层抽象的端到端逻辑信道中传送 TCP连接与网络层 TCP连接是一条可靠的全双工信道。但TCP连接双方的运输层实体却不知道这条信道究竟经过了哪些路由器,而下面的路由器也根本不知道上层是否存在TCP连接。 多路复用与多路分解 链路的多路复用与多路分解 发送方:多个用户通过同一根链路发送各自的数据 接收方:多个用户从同一根链路上接收各自的数据 协议的多路复用与多路分解 发送方:多个上层协议将各自发送的数据交给同一个下层协议处理 接收方:同一个下层协议将收到的数据分别交给多个上层协议处理 只要上下层之间存在多对一的情况,都需要用到多路复用与多路分解。 端口号与协议字段 三类端口 熟知端口(Well Known Ports),数值一般为 0~1023。 注册端口号(Registered Ports),数值为1024~49151,提供给没有熟知端口号的应用程序使用。使用这个范围的端口号必须在IANA(Internet Assigned Numbers Authority)登记,以防止重复。 动态和/或私有端口号(Dynamic and/or Private Ports),数值为49152~65535,供客户进程临时使用,也叫临时端口号。 端口号详细分配情况可参见网址:/assignments/port-numbers 用户数据报协议(UDP) UDP只在IP的数据报服务上增加了很少的功能: 多路复用和多路分解 差错检测 UDP的特点 无连接、尽最大努力交付服务(不可靠交付服务) 支持一对一、一对多、多对一、多对多通信 首部开销小(8字节) 面向报文,应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文,但应用程序必须选择合适大小的报文(如DNS) 面向报文的UDP UDP首部格式 首部字段有8字节,由4个字段组成,每个字段各占2字节 伪首部 在计算检验和时,临时把“伪首部”附加在UDP报文前面。伪首部仅为计算检验和,并不传送。 UDP检验和 发送方 把伪首部、首部(检验和字段预先填充为全0)和数据分成2字节一组(如果最后一组只有一个字节,则在后面填充一个全0字节) 按二进制反码计算这些16位字的和 将此和的反码写入校验和字段 接收方 以同样方法计算反码和 如果和为全1,则表明无错,否则表明有错并丢弃 计算16位二进制数的反码和 计算规则 从低位到高位逐列进行计算,0加0等于0,0加1等于1,1加1等于0同时产生一个进位,若最高位相加后产生进位,则最后得到的结果要加1。 例: 计算反码和的C代码 UDP检验和计算举例 可靠数据传输 可靠数据传输的要求 数据无丢失 数据无差错 数据无重复 数据按序交付 思考 TCP的下层IP网络为它提供的是尽最大努力的数据报服务,它如何才能在不可靠数据传输服务的基础上实现向上层提供可靠数据传输服务呢? 停止等待协议 停止等待协议 停止等待协议小结 停止等待协议中使用到的技术 缓存:发送
文档评论(0)