好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

网络工程师教程8.pdf

11页
  • 卖家[上传人]:w****i
  • 文档编号:108947020
  • 上传时间:2019-10-25
  • 文档格式:PDF
  • 文档大小:52.46KB
  • / 11 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 第 8 章 传输层 1 第 8 章 传输层 本章基本要求:掌握 TCP/IP 传输层的协议组成,掌握常见的著名 TCP/IP 的端口分配 值;理解 TCP 可靠传输服务的主要实现机制;理解 OSI 传输层的功能;了解套接字和端口 概念, 本章难点:TCP 可靠传输的实现,端口与套接字的概念 建议教学时数:3-4 学时,无实验 上一章我们对 OSI 模型中最复杂的一个层次网络层进行了详细的介绍,本章我们将学 习 OSI 模型中最为重要的一层即传输层, 包括传输层的重要性、 传输层的功能, 并将 TCP/IP 的传输层作为传输的典型实例展开详细讨论 8.1 传输层功能概述 8.1.1 为什么需要传输层 我们知道,传输层是 OSI 模型中建立在网络层和会话层之间的一个层次那么为什么 还要在网络层之上再提供一个传输层而不直接就是会话层呢?其原因就在于网络层虽然提 供了从源网络到目标网络通信服务,但是其所提供的服务有可靠与不可靠之分如我们前 面所学过的 TCP/IP 的网络层就是一个典型的提供面向无连接的不可靠服务的例子不可靠 的 IP 协议提供“尽力而为(best effort)”的服务,但不保证端到端数据传输的可靠性,即 IP 分组在传输过程中会出现丢包、乱序或者是重复的情况。

      因此,需要在网络层之上增加一 个层次来弥补网络层所提供的服务质量的不足,以便为高层提供可靠的端到端通信 从通信子网的角度,我们也可以这样理解,作为资源子网中的端用户是不可能对通信 子网内部加以直接控制的,即不可能通过更换性能更好的路由器或增强数据链路层的纠错 能力来提高网络层的服务质量,其只能依靠在自己主机上所增加的这个传输层来检测分组 的丢失或数据的残缺并采取相应的补救措施所以传输层不仅有存在的必要,它还是 OSI 七层模型中非常重要的一层,起到承上启下的不可或缺的作用,从而被看成是整个分层体 系的核心但是,只有资源子网中的端设备才会具有传输层,通信子网中的设备一般至多 只具备 OSI 下面三层的功能即通信功能,如图 8.1 所示 计算机网络技术 2 网络层 数据链路层 物理层 应用层 表示层 会话层 传输层 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 网络层 数据链路层 物理层 网络层 数据链路层 物理层 网络层 数据链路层 物理层 APDU PPDU SPDU 分段 分组 帧 位 主机X 主机Y 图 8.1 传输层是与资源子网中的设备联系在一起的 根据上述原因,我们通常又将 OSI 模型中的下面三层称为面向通信子网的层,而将传 输层及以上的各层称为面向资源子网或主机的层。

      另一种划分则是将传输层及以下的各层 统称为面向数据通信的层,而将传输层之上的会话层、表示层及应用层这些不包含任何数 据传输功能的层统称为面向应用的层如图 8.2 所示 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 面 向 主 机 或 资 源 子 网 面 向 通 信 子 网 面 向 应 用 面 向 通 信 图 8.2 传输层在 OSI 模型中的地位 8.1.2 传输层功能 传输层是 OSI 模型中最重要的一层,其涉及从源主机到目的主机的可靠数据传输传 输层利用了网络层所提供的源到目标分组传输服务向会话层提供可靠的源主机到目标主机 的数据传输,并使之与当前使用的网络无关为了实现上述功能必须提供如下机制首先, 能够为高层数据的传输建立、维护与拆除传输连接,以实现透明的、可靠的端到端的传输 其次,要提供端到端的错误恢复与流量控制,以能对网络层出现的丢包、乱序或重复等问 题作出反应第三,当上层的协议数据包的长度超过网络层所能承载的最大数据传输单元 时,要提供必要的分段功能,从而在接收方的对等层还要提供合并分段的功能另外,有 第 8 章 传输层 3 时候还要提供多路复用机制,即如果网络层提供的是面向连接的服务,则传输层应该既能 够将一个高层应用复用到多个网络层连接上,又能够将多个高层应用复用到一个网络层连 接上。

      总之,传输层通过扩展网络层服务功能,并通过传输层与高层之间的服务接口向高 层提供了端到端节点之间的可靠数据传输,从而使系统之间实现高层资源的共享时不必再 考虑数据通信方面的问题 传输层中完成相应功能的硬件与(或)软件被称为传输实体,其可能位于在操作系统 内核中、用户进程内、网络应用程序库中或网络接口卡上在一个系统中,传输实体通过 网络服务与其它对等的传输实体通信,进而向传输层用户(可以是应用进程,也可以是会 话层协议)提供传输服务 8.2 TCP/IP 的传输层 由于 TCP/IP 的网络层提供的是面向无连接的数据报服务, 也就是说 IP 数据报传送会出 现丢失、重复或乱序的情况,因此在 TCP/IP 网络中传输层就变得极为重要TCP/IP 的传输 层提供了两个主要的协议即传输控制协议(transport control protocol,简称 TCP)和用户数 据报协议(user datagram protocol,简称 UDP) ,如图 8.3 所示 HTTPSMTPFTPTFTPDNS IPICMPRARP EthernetToken Ring TELNET UDPTCP ARP FDDIFrame Ralay 应用层 传输层 网际层 网络访问层 图 8.3 TCP/IP 的传输层 8.3 TCP 尽管 TCP/IP 的网络层提供的是一种面向无连接的 IP 数据报服务,但传输层的 TCP 旨 在向 TCP/IP 的应用层提供的是一种端到端的面向连接的可靠的数据流传输服务。

      TCP 常用 于一次传输要交换大量报文的情形,如文件传输、远程登录等 为了实现这种端到端的可靠传输,TCP 协议必须规定传输层的连接建立与拆除的方式、 数据传输格式、确认的方式、目标应用进程的识别以及差错控制和流量控制机制等与所 计算机网络技术 4 有网络协议类似,TCP 将自己所要实现的功能集中体现在了 TCP 的协议数据单元中 8.3.1TCP 分段的格式 TCP 的协议数据单元被称为分段(Segment) ,TCP 通过分段的交互来建立连接、传输 数据、发出确认、进行差错控制、流量控制及关闭连接分段分为两部分,即分段头和数 据,所谓分段头就是 TCP 为了实现端到端可靠传输所加上的控制信息,而数据则是指由高 层即应用层来的数据图 8.3 给出了 TCP 分段头的格式其中有关字段的说明如下: ? 源端口:主叫方的 TCP 端口号 ? 目标端口:被叫方的 TCP 端口号 ? 顺序号:分段的序列号,表示该分段在发送方的数据流中的位置 ? 确认号:下一个期望接收的 TCP 分段号,相当于是对对方所发送的并已被本方所 正确接收的分段的确认 顺序号和确认号共同用于 TCP 服务中的确认、 差错控制。

      ? 头长:TCP 头长,以 32 位字长为单位实际上相当于给出数据在数据段中的开始 位置 ? 预留:未用的 6 位,为将来的应用而保留,目前置为“0” ? 编码位:TCP 分段有多种应用,如建立或关闭连接、传输数据、携带确认等,这 些编码位用于给出与分段的作用及处理有关的控制信息详细参见表 8.1 ? 窗口:窗口的大小表示发送方可以接收的数据量,以八位字长为计量单位使用 可变大小的滑动窗口协议来进行流量控制 ? 校验和:用于对分段头和数据进行校验通过将所有 16 位字以补码形式相加,然 后再对相加和取补正常情况下应为“0” ? 紧急指针: 给出从当前顺序号到紧急数据位置的偏移量 ? 任选项:提供一种增加额外设置的方法, 如最大 TCP 分段的大小的约定 ? 填充:当任选项字段长度不足 32 位字长时,需要加以填充 ? 数据:来自高层即应用层的协议数据 源端口目的端口 顺序号 确认号 报头 长度 保留编码位窗口大小 校验和紧急指针 任选项 数据 …… 08162432 图 8.3 TCP 分段的格式 第 8 章 传输层 5 表 8.1 TCP 分段头中的编码位字段的含义 编码位(从左到右)的标识 该位置“1”的含义 URG 表示启用了紧急指针字段 ACK 表示确认字段是有效的 PSH 请求急迫操作, 即分段一到马上送应用程序而不等到接收缓 冲区满时才送应用程序 RST 连接复位。

      复位因主机崩溃或其他原因而出现错误的连接, 也可用于拒绝非法的分段或拒绝连接请求 SYN 与 ACK 合用以建立 TCP 连接如 SYN=1,ACK=0 表示连 接请求;而 SYN=1,ACK=1 表示同意建立连接 FIN 表示发送方已无数据要发送从而要释放连接, 但接收方仍可 继续接收发送方此前发送的数据 8.3.2 端口和套接字 上面 TCP 分段格式中出现了“源端口”和“目标端口”字段,那么端口在此起到什么 作用呢?“端口”是英文 port 的意译,作为计算机术语“端口”被认为是计算机与外界通信 交流的出入口 由网络 OSI 七层模型可知,传输层与网络层最大的区别是传输层提供进程通信能力, 网络通信的最终地址不仅包括主机地址,还包括可描述网络进程的某种标识所以 TCP/IP 协议所涉及的端口是指用于实现面向连接或无连接服务的通信协议端口,是对网络通信进 程的一种标识其属于一种抽象的软件结构,包括一些数据结构和 I/O(输入输出)缓冲区, 故属于软件端口范畴 应用程序(调入内存运行后一般称为:进程)通过系统调用与某传输层端口建立绑定 (binding)后,传输层传给该端口的所有数据都被建立这种绑定的相应进程所接收,相应进程 发给传输层的数据也都从该端口输出。

      在 TCP/IP 协议的实现中, 端口操作类似于一般的 I/O 操作,进程获取一个端口,相当于获取本地唯一的 I/O 文件,可以用一般的读写方式访问 类似于文件描述符,每个端口都拥有一个叫端口号的整数描述符,用来标识不同的端 口或进程在 TCP/IP 传输层,我们定义一个 16Bit 长度的整数作为端口标识,也就是说可 定义 216个端口, 其端口号从 0 到 216-1 由于 TCP/IP 传输层的 TCP 和 UDP 两个协议是两 个完全独立的软件模块,因此各自的端口号也相互独立,即各自可独立拥有 216个端口 端口号有两种基本分配方式,即全局分配和本地分配方式全局分配指由一个公认权 威的机构根据用户需要进行统一分配,并将结果公布于众,所以这是一种集中分配方式, 本地分配则是指当进程需要访问传输层服务时,向本地系统提出申请,系统返回本地唯一 的端口号,进程再通过合适的系统调用,将自己和该端口绑定起来,显然这是一种动态连 接方式实际的 TCP/IP 端口号分配综合了以上两种方式,并将端口号分为三部分: 计算机网络技术 6 ? 从 0 到 255 被规定作为公共应用服务的端口,如 WWW、FTP、DNS 和电子邮 件服务等,又被称为著名端口 (Well-known ports)。

      ? 从 256 到 1023 的端口,被保留用作商业性的应用开发,如一些网络设备厂商专 用协议的通信端口等 ? 1023 以上端口未做限定,即作为自由端口,以本地方式进行分配 表 8.2 列举了一些著名端口及其用途表中第一列为端口的十进制值,第二列是其在因 特网中的标准关键字,第三列则是对其作用的描述 表 8.2 一些著名端口及关键字 十进制 关键字 描述 7 ECHO Echo 9 DISCARD Discard 11 USERS Active Users 13 DAYTIME Daytime 15 NETSTAT Who is up of NETSTAT 17 QUOTE Quote of the Day 19 CHARGEN Character Generator 20 FTP-DATA File Transfer Protocol(Data) 21 FTP File Transfer Protocol 23 TELNET Termin。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.