
计算机网络第五章谢希仁.pptx
189页第 5 章 运输层 第 5 章 运输层 n5.1 运输层协议概述 n5.2 用户数据报协议 UDP n5.3 传输控制协议 TCP 概述 n5.4 可靠传输的工作原理 n5.5 TCP 报文段的首部格式 n5.6 TCP 可靠传输的实现 n5.7 TCP 的流量控制 n5.8 TCP 的拥塞控制 n5.9 TCP 的运输连接管理 5.1 运输层协议概述 n5.1.1 进程之间的通信 n5.1.2 运输层的两个主要协议 n5.1.3 运输层的端口 运输层 5 4 3 2 1 运输层提供应用进程间的逻辑通信 主机 A主机 B 应用进程应用进程 路由器 1路由器 2 AP1 LAN2WAN AP2 AP3 AP4 IP 层 LAN1 AP1 AP2 AP4 端口 端口5 4 3 2 1 IP 协议的作用范围 运输层协议 TCP 和 UDP 的作用范围 AP3 5.1.1 进程之间的通信 n从通信和信息处理的角度看,运输层向它上面的 应用层提供通信服务,好像属于面向通信部分的 最高层,同时也是面向用户(应用访问)功能中 的最低层 n当网络的边缘部分中的两个主机使用网络的核心 部分的功能进行端到端的通信时,只有位于网络 边缘部分的主机的协议栈才有运输层,而网络核 心部分中的路由器在转发分组时都只用到下三层 的功能。
运输层的作用[1] n从IP层来说,通信的两端是两台主机(接口) 但“两台主机之间的通信”严格地讲,就是两台主 机中的应用进程互相通信 n从运输层的角度看,通信的两端并不是主机而是 主机中的进程也就是说,端到端的通信是应用 进程之间的通信 n运输层的作用就是:为主机两个独立的相互通信 的应用进程之间提供了逻辑通信(经下层实际通 信) 网络层和运输层有明显的区别 网络层是为主机之间提供逻辑通信, 而运输层为应用进程之间提供端到端的逻辑通信 应用进程 … 应用进程 … IP 协议的作用范围 (提供两主机之间的逻辑通信) TCP 和 UDP 协议的作用范围 (提供两进程之间的逻辑通信) 互联网 运输层协议和网络层协议的主要区别 运输层的作用[2] n在一台主机中经常有多个应用进程同时分别和另 一台主机中的多个应用进程通信 n这表明运输层有一个很重要的功能——复用 (multiplexing)和分用 (demultiplexing) n根据应用程序的不同需求,运输层需要有两种不 同的运输协议,即面向连接的 TCP 和无连接的 UDP 基于端口的复用和分用功能 应 用 层 运 输 层 网 络 层 TCP 报文段 UDP 用户数据报 应用进程 TCP 复用 IP 复用 UDP 复用 TCP 报文段 UDP 用户数据报 应用进程 端口端口 TCP 分用UDP 分用 IP 分用 IP 数据报IP 数据报 发送方 接收方 屏蔽-运输层作用[3] n运输层向高层用户屏蔽了下面网络核心的细节( 如网络拓扑、所采用的路由选择协议等),它使 应用进程看见的就是好像在两个运输层实体之间 有一条端到端的逻辑通信信道。
互联网 APAP 逻辑通信信道 应用进程 高层进程 TCP/IP应用通信协议的实现 本地进程 TCP/IP应用服务进程 应用进程 高层进程 TCP/IP应用通信协议的实现 本地进程 TCP/IP应用服务进程 两种不同的运输协议 n但这条逻辑通信信道对上层的表现却因运输层使 用的不同协议而有很大的差别 n当运输层采用面向连接的 TCP 协议时,尽管下 面的网络是不可靠的(只提供尽最大努力服务) ,但这种(提供)逻辑通信信道就相当于一条全 双工的可靠信道 n当运输层采用无连接的 UDP 协议时,(提供) 这种逻辑通信信道是一条不可靠信道 可靠信道与不可靠信道 ? 应 用 层 运 输 层 接收进程 全双工可靠信道 数据 使用 面向连接的 协议,如 TCP 使用 无连接的 协议,如 UDP 不可靠信道 发送进程 数据 接收进程发送进程 数据数据 5.1.2 运输层的两个主要协议 TCP/IP 的运输层有两个主要协议: n(1) 用户数据报协议 UDP (User Datagram Protocol) n(2) 传输控制协议 TCP (Transmission Control Protocol) TCPUDP IP 应用层 与各种网络接口 运输层 应用层进程 高层进程 TCP/IP应用通信协议的实现 本地进程 TCP/IP应用服务进程 TCP/IP 体系中的运输层协议 TCPUDP IP 应用层 与各种网络接口 运输层 应用进程 高层进程 TCP/IP应用通信协议的实现 本地进程 TCP/IP应用服务进程 应用(服务)协议:以一种协议方式支持双方应用服务的协议。
常用的应用协议 SMTP FTP Telnet RPC DNS SNMP TFTP 11153161692521 2023 HTTP 80 HTTPS 443 SNMP(trap) 162 TCP 与 UDP n两个对等运输实体在通信时传送的数据单位叫作 运输协议数据单元 TPDU (Transport Protocol Data Unit) nTCP 传送的数据单位协议是 TCP 报文段 (segment) n UDP 传送的数据单位协议是 UDP 报文或用户 数据报 TCP 与 UDP nUDP:一种无连接协议 n在传送数据之前不需要先建立连接提供无连接服 务 n传送的数据单位协议是 UDP 报文或用户数据报 n对方的运输层在收到 UDP 报文后,不需要给出任何 确认 n虽然 UDP 不提供可靠交付,但在某些情况下 UDP 是一种最有效的工作方式 TCP 与 UDP nTCP:一种面向连接的协议 n提供面向连接的服务 n传送的数据单位协议是 TCP 报文段 (segment) nTCP 不提供广播或多播服务 n由于 TCP 要提供可靠的、面向连接的运输服务,因 此不可避免地增加了许多的开销。
这不仅使协议数 据单元的首部增大很多,还要占用许多的处理机资 源 还要强调两点 n运输层的 UDP 用户数据报与网际层的IP数据报有很大 区别 nIP 数据报要经过互连网中许多路由器的存储转发 nUDP 用户数据报是在运输层的端到端抽象的逻辑信道中传送 的 nTCP 报文段是在运输层抽象的端到端逻辑信道中传送 ,这种信道是可靠的全双工信道 但这样的信道却不知道究竟经过了哪些路由器,而这 些路由器也根本不知道上面的运输层是否建立了 TCP 连 接 5.1.3 运输层的端口 n运行在计算机中的进程是用进程标识符来标志的 n但运行在应用层的各种应用进程却不应当让计算机 操作系统指派它的进程标识符这是因为在互联网 上使用的计算机的操作系统种类很多,而不同的操 作系统又使用不同格式的进程标识符 n为了使运行不同操作系统的计算机的应用进程能够 互相通信,就必须用统一的方法对传输层需要面对 的( TCP/IP 体系的)各个应用进程进行标志 端口号 (protocol port number) n解决这个问题的方法就是在运输层使用协议端口 号 (protocol port number),或通常简称为端 口 (port)。
n虽然通信的终点是应用进程,但我们可以把端口 想象是通信的终点,因为我们只要把要传送的报 文交到目的主机的某一个合适的目的端口,剩下 的工作(即最后交付目的进程)就由“端口”来完 成 软件端口与硬件端口 n两个不同的概念 n在协议栈层间的抽象的协议端口是软件端口 n路由器或交换机上的端口是硬件端口 n硬件端口是不同硬件设备进行交互的接口,而软 件端口是应用层的各种协议进程与运输实体进行 层间交互的一种地址 TCP/IP 运输层端口 n端口用一个 16 位端口号进行标志 n端口号只具有本地意义,即端口号只是为了标志 本计算机应用层中的各进程 n在互联网中,不同计算机的相同端口号是没有联 系的 由此可见,两个计算机中的进程要互相通信,不仅必须知 道对方的 IP 地址(为了找到对方的计算机),而且还要知 道对方的端口号(为了找到对方计算机中的应用进程) 两大类端口 (1) 服务器端使用的端口号 n熟知端口,数值一般为 0~1023 n登记端口号,数值为 1024~49151,为没有熟知端口号的应 用程序使用的使用这个范围的端口号必须在 IANA 机构登 记,以防止重复 (2) 客户端使用的端口号 n又称为短暂端口号,数值为 49152~65535,留给客户进程选 择暂时使用。
n当服务器进程收到客户进程的报文时,就知道了客户进程所 使用的动态端口号通信结束后,这个端口号可供其他客户 进程以后使用 常用的熟知端口 UDPTCP IP SMTP FTP Telnet RPC DNS SNMP TFTP 11153161692521 2023 HTTP 80 HTTPS 443 SNMP(trap) 162 5.2 用户数据报协议 UDP n5.2.1 UDP 概述 n5.2.2 UDP 的首部格式 5.2.1 UDP概述 nUDP 传输(只在 IP 的数据报服务之上)增加了 很少一点的功能: n复用和分用的功能 n差错检测的功能 n虽然 UDP 用户数据报只能提供不可靠的交付, 但 UDP 在某些方面有其特殊的优点 UDP 的主要特点 n(1) UDP 是无连接的,发送数据之前不需要建立连接, ,因此减少了开销和发送数据之前的时延 n(2) UDP 使用尽最大努力交付,即不保证可靠交付,因 此主机不需要维持复杂的连接状态表 n(3) UDP 是面向报文的UDP 对应用层交下来的报文 ,既不合并,也不拆分,而是保留这些报文的边界 UDP 一次交付一个完整的报文 n(4) UDP 没有拥塞控制,因此网络出现的拥塞不会使源 主机的发送速率降低。
这对某些实时应用是很重要的 很适合多媒体通信的要求 UDP 的主要特点 n(5) UDP 支持一对一、一对多、多对一和多对多 的交互通信 n(6) UDP 的首部开销小,只有 8 个字节,比 TCP 的 20 个字节的首部要短 面向报文的 UDP n发送方 UDP 对应用程序交下来的报文,在添加 首部后就向下交付 IP 层UDP 对应用层交下来 的报文,既不合并,也不拆分,而是保留这些报 文的边界 n应用层交给 UDP 多长的报文,UDP 就照样发 送,即一次发送一个报文 n接收方 UDP 对 IP 层交上来的 UDP 用户数据报 ,在去除首部后就原封不动地交付上层的应用进 程,一次交付一个完整的报文 面向报文的 UDP n因此,UDP的应用程序必须选择合适大小的报 文 n若报文太长,UDP 把它交给 IP 层后,IP 层在传送 时可能要进行分片,这会降低 IP 层的(重装)效 率 n若报文太短,UDP 把它交给 IP 层后,会使 IP 数据 报的首部的相对长度太大,这也降低了 IP 层的(载 荷)效率 UDP 是面向报文的 IP 数据报的数据部分IP 首部 IP 层 UDP 首部UDP 用户数据报的数据部分 运输层 应用层报文 应用层 5.2.2 UDP 的首部格式 用户数据报 UDP 有两个字段:数据字段和首部字段。
首部字段很简单,只有 8 个字节 伪首部源端口目的端口长 度检验和 数 据首 部 UDP长度源 IP 地址目的 IP 地址017 IP 数据报 字节 44112 122222字节 发送在前 数 据首 部 UDP 用户数据报 UDP用户数据报的首部和伪首部 UDP 基于端口的分用 IP 层 UDP 数据报到达 端口 2端口 3端口 1 UDP 分用 当运输层从 IP 层收到 UDP 数据报时,就根据首部中的 目的端口,把 UDP 数据报通过相应的端口,上交最后的 终点——应用进程 请注意,虽然在 UDP 之间的通信要用到其端 口号,但由于 UDP。