第6章传输层维护.ppt_第1页
第6章传输层维护.ppt_第2页
第6章传输层维护.ppt_第3页
第6章传输层维护.ppt_第4页
第6章传输层维护.ppt_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

诊断与测试 网络故障 第六章传输层维护 本章学习目标 理解并可以描述OSI模型中传输层的功能识别传输层的各组成部分理解TCP UDP IPX SPX等协议了解传输层的故障现象并能排除故障 本章要点内容 传输层的功能传输层的组件传输层的故障诊断与排除 本章学前要求 了解OSI七层的模型了解计算机网络基础知识 6 1传输层的功能 1 1传输层概述传输层也称为运输层 是介于低3层通信子网和高3层资源子网之间的一层 是OSI模型的核心 从通信和信息处理的角度看 传输层向它上面的应用层提供通信服务 它属于面向通信部分的最高层 同时也是用户功能中的最低层 传输层的最终目标是向它的用户 通常是应用层中的进程 提供高效的 可靠的和性价比合理的服务 为了实现这个目标 传输层需要充分利用网络层提供给它的服务 在传输层内部 完成这项工作的硬件和软件称为传输实体 传输实体可能位于操作系统的内核 或者在一个独立的用户进程中 或者以一个链接库的形式被绑定到网络应用中 或者位于网络接口卡上 6 1传输层的功能 1 传输层功能1 数据分段将数据发送给网络层之前 传输层将数据分段 而在将数据上传给会话层或应用层之前 传输层也需要重新组合数据 当传输层接受来自OSI模型中的上层所发送的数据时候 数据可能会太长以致不能被一次传输给网络层 这种情况下 正是传输层的功能将数据分解为更小的称为数据段的部分 然后将他们分别传送到网络层 每一个数据段都标记有一个序列号 所以 如果数据段到达目的地而顺序发生错乱 仍然可以利用此序列号将它们正确的组装起来 2 流量控制传输层的另一个功能是流量控制 它可以防止目的地被大量的数据淹没 这种情况可能会导致数据包的丢失 传输层实现这一功能 是通过确立一个传送数据包的最大字节数 在达到此值之前 接收方必需提供对收到数据包的确认 TCP IP协议中 这样一个最大字节数被称为窗口宽度 如果发送设备在发送了窗口宽度的字节之前 并没有回应 那么 它将停止发送数据 如果在一定的特定时间间隔中 没有收到确认 发送方将从最后收到确认的地方开始 重新发送数据 6 1传输层的功能 3 提供面向连接的可靠或面向无连接的不可靠传输服务可靠传输服务提供了一条端到端的虚电路 利用流量控制 确认 以及其他方式来保证数据的传送 这样的协议被称为面向连接的协议 典型的面向连接的协议是TCP 并不是所有的应用程序都需要传输层来提供可靠的QoS 有一些应用程序主要在局域网中 而不是在巨大的互联网中运行 而可靠性 虽然很重要 却可以轻易地实现 在这些应用程序中 用来提供高可靠性的开销与复杂的传输系统既不必要也不需要 这种情况下 应用程序将使用一个无连接的传输层协议 因为从网络带宽与处理的角度来说 它的开销较小 这样的协议也称为轻量级协议 典型的无连接的协议是UDP 传输层面向连接的会话并不只是提供可靠性给网络层 它同时通过校验和来保护数据 并且向应用程序提供了有用的信息 因此 如果一个应用程序要求传输层提供可靠的传输 则使用面向连接的协议 如果希望避免面向连接的协议所需要的附加开销的话 它就可以使用无连接协议 6 2传输层的组件 6 2 1TCP协议1TCP概述TCP TransmissionControlProtocol 传输控制协议 是专门为了在不可靠的互联网络上提供一个可靠的端到端字节流而设计的 互联网络与单个网络不同 因为互联网络的不同部分可能有截然不同的拓扑结构 带宽 延迟 分组大小和其他的参数 TCP的设计目标是能够动态的适应互联网络的这些特性 而且当面对多数失败的时候仍然足够健壮 2TCP报文段的结构TCP协议能为应用程序提供可靠的通信连接 使一台计算机发出的字节流无差错地发往网络上的其他计算机 对可靠性要求高的数据通信系统往往使用TCP协议传输数据 TCP报文段的格式如图所示 可以看出 一个TCP报文分为首部和数据两部分 TCP报文段首部的前20个字节是固定的 后面有4N字节是可有可无的选项 N为整数 因此TCP首部的最小长度是20个字节 首部提供了可靠服务所需的字段 6 2传输层的组件 08162431 图6 2报文段的格式 6 2传输层的组件 一个TCP数据报包括一个TCP头 后面是选项和数据 TCP头部信息如下 源端口及目标端口 各16位 表示不同的进程链接表示 发送序号 SequenceNumber 及回应序号 AcknowledgementNumber 各32位 表示双向传输数据的序号 偏移量 4位 表示报文头部后数据的开始位置 即TCP头长度 以32位为单位 另外TCP头还包含6个标志位 它们的意义分别为 SYN 标志位用来建立连接 让连接双方同步序列号 如果SYN 1而ACK 0 则表示该数据包为连接请求 如果SYN 1而ACK 1则表示接受连接 FIN 表示发送端已经没有数据要求传输了 希望释放连接 RST 用来复位一个连接 RST标志置位的数据包称为复位包 URG 为紧急数据标志 如果它为1 表示本数据包中包含紧急数据 此时紧急数据指针有效 ACK 为确认标志位 如果为1 表示包中的确认号时有效的 否则 包中的确认号无效 PSH 如果置位 接收端应尽快把数据传送给应用层 6 2传输层的组件 窗口尺寸 Window 16位 一般称为 滑动视窗 SlidingWindow TCP使用它进行流量控制 窗口大小为字节数 这个值是接收端期望接收的字节数 窗口大小是一个16位的字段 因而窗口大小最大为65535字节 TCP校验和 16位 检验整个TCP报文端 TCP首部和TCP数据 这是一个强制性的字段 一定是由发送端计算和存储 并由接收端进行验证 紧急指针 16位 在URG位为1时有效 表示紧急数据最后一个字节的序号 TCP的紧急方式是发送端向另一端发送紧急数据的一种方式 可选项 Option 这个选项比较少用 Option的长度为0 或32bit的整倍数 如果不足则填充到32bit的整倍数 6 2传输层的组件 3 TCP端口号要想获得TCP服务 发送方和接收方必须创建一种被称为套接字的端点 每个套接字有一个套接字号 地址 它是由主机的IP地址以及本地主机局部的一个16位数值组成的 此16位数值被称为端口 TCP层用端口号来区别不同类型的应用程序 由于在TCP报文段结构中端口地址是16bit 所以端口号的域值范围是0 65535 除了0号端口是无效端口之外 其他的1 65535号端口的具体分类如下 公用端口 它的范围是从0到1023 它们定义在一些应用广泛的服务上 注册端口 范围是从1024到49151 它们不确定地分配给一些应用服务 私有端口 其范围是从49152到65535 理论上不应为服务定义这些端口 常用的TCP协议所使用的端口号如下表所示 6 2传输层的组件 4 TCP的连接管理TCP是一个面向连接的可靠传输协议 面向连接表示两个应用端在利用TCP传送数据前必须先建立TCP连接 TCP的可靠性通过校验和 定时器 数据序号和应答来提供 通过给每个发送的字节分配一个序号 接收端接收到数据后发送应答 TCP协议保证了数据的可靠传输 数据序号用来保证数据的顺序 剔除重复的数据 在一个TCP会话中 有两个数据流 每个连接端从另外一端接收数据 同时向对方发送数据 因此在建立连接时 必须要为每一个数据流分配ISN 初始序号 为了了解实现过程 我们假设客户端C希望跟服务器端S建立连接 然后分析连接建立的过程 通常称作三阶段握手 6 2传输层的组件 4 TCP的连接管理 三次握手协议第一次握手 连接请求 客户端发送连接syn包 SEQ J 1000 CTL SYN 到服务器 并进入SYN SEND 同步信号已发送 状态 等待服务器确认 第二次握手 连接应答 服务器收到syn包 必须确认客户的SYN 自己发送一个应答ACK包 SEQ K 750 ACK J 1 1001 CTL SYN ACK 此时服务器进入SYN RECV 连接应答 状态 第三次握手 连接确认 客户端收到服务器的SYN ACK包 向服务器发送确认包ACK SEQ J 1000 ACK k 1 751 CTL ACK 此包发送完毕 客户端和服务器进入ESTABLISHED 建立连接 状态 完成三次握手 6 2传输层的组件 6 2 2UDP协议1 UDP协议概述UDP为应用程序提供了一种方法来发送经过封装的IP数据报 而且不必建立连接就可以发送这些IP数据报 2 UDP报文段的结构用户数据报UDP有两个字段 数据字段和首部字段 首部字段很简单 只有8个字节 由4个字段组成 每个字段都是两个字节 各字段意义如下 源端口字段源端口号目的端口字段目的端口号长度字段UDP数据报的长度校验和字段防止UDP数据报在传输中出错在计算校验和时在UDP数据报之前要增加12个字节的伪首部 伪首部并非TCP UDP数据报中实际的有效成分 图6 4给出来伪首部各字段的内容 伪首部的第3个字段全是零 第4个字段是IP首部中的协议字段的值 对于UDP 此协议字段值为17 第5个字段是UDP数据报的长度 UDP尤其适用在客户 服务器的情形下客户给服务器发送一个短的请求 并且期望一个短的应答回来 如DNS请求 也常用在时间性要求很高的实时传输服务中 如网络音频 网络视频等 6 2传输层的组件 3 UDP端口号UDP也使用端口号来标识发送和接收的应用程序 与TCP类似 UDP有两类端口 分别是 众所周知的端口用于UDP上的标准服务 包括DNS 端口号53 SNMP 端口号161 和其它一些协议 服务器在这些端口上监听想要访问服务的客户 临时端口 客户在自己的对话端使用临时端口 用户数据报协议UDP只在IP的数据报服务之上增加了很少的一点功能 这就是端口的功能 有了端口 运输层就能进行复用和分用 和差错检测的功能 虽然UDP用户数据报只能提供不可靠的交付 但UDP在某些方面由其特殊的优点 1 发送数据之前不需要建立连接 当然发送数据结束时也没有连接需要释放 因而减少了开销和发送数据之前的时延 2 UDP没有拥塞控制 也不保证可靠交付 因此主机不需要维持具有许多参数的 复杂的连接状态表 3 用户数据报只有8个字节的首部开销 比TCP的20个字节的首部要短 6 3传输层的故障诊断与排除 6 3 1TCP的故障分析与排除1 拒绝连接TCP最常见的问题是客户不能连接到远程系统 可能的原因一般这有两种 1 客户指定的端口号没有与之相连的监听应用程序试图连接到不存在的网络服务器 系统的TCP提供者简单地拒绝这个连接请求 客户试图建立连接 服务器也用Reset片段来响应 让客户离开 电路根本没有建立起来 也没有返回Synchronize片段 2 目的应用程序配置错误虚电路已经建立 Synchronize过程的完成说明了这一点 但监听应用程序在传输数据之前取消了连接 立刻开始电路关闭过程 出现这种情况的最可能的原因是 远程系统不想为这个客户提供服务 但是在连接建立之后才发现这一点 6 3传输层的故障诊断与排除 2 丢失虚电路有时连接建立得很好 但虚电路开始失败 其中一端从网络上消失 大部分情况下 发生的问题也许是 远程系统因为某种原因失去了与其他网络之间的物理连接 这可能是因为是电源关闭 连接失败或其它的问题 比如 主机NETOFF上的HTTP客户从上的HTTP服务器得到一个文件 在发出了 GET 请求以后 NETOFF突然失去与网络的物理连接 上的HTTP服务器试图将请求文件的内容返回到NETOFF 但是 由于NETOFF已经不在网络上 它就不能确认该数据 同样也不能返回Finish或Reset片段给服务器 因为服务器不知道电路已经取消 因为它已经不存在 它就假定数据已经丢失 并连续地重发出问题的数据 当持续往NETOFF重新发送数据时 其重试操作之间的时间间隔在增加 因为NETOFF没有确认该数据 所以持续发送数据 并一直将其确认计时器翻番 这个过程会持续一段时间 直到放弃操作并取消连接 6 3传输层的故障诊断与排除 6 3 2UDP的故障诊断与排除1 错误配置或丢失服务文件应该保证系统所用的服务文件与应用程序所期望的知名的端口号相匹配 例如 一些应用程序会询问系统与TFTP相连的端口号 并且如果系统服务文件中没有这个应用程序的记录项 那么它就不会给客户返回一个端口号 这个问题会导致客户不能够发送任何数据 因为它不能为应用程序找到目的端口号 想察看系统所用的知名的端口 请察看Unix主机上的 etc services文件 或者WindowsNT主机上的C WinNT System32 Drivers Etc SERVICE文件 2 防火墙阻断UDP信息很多网络管理员会阻断所有的UDP通信 但一些关键的端口除外 例如DNS 如果连接远程UDP应用程序确实碰到了问题 那么应该调查一下是否有远程防火墙阻断了UDP通信 注意这个问题也可

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论