简中国种海技术大车 第5章运输层(传输层) ·传输层与网络层是网络协议层次的核心。网络层 使用数据报或虚电路技术为蝙到,通信提供了数 计算机网络(第7版) 据包交付服务。 ·递输层(传输层)架构在网络层提供的服务之上, 把数据传递服务从两台计算机之间扩展到了两台 计算机上的进程之间,并且服务所需的可靠性独 第5章运输层(1) 立于当前使用的物理网络。 ·传输层为应用层使用网络提供了抽象的模式。 中国科学技术大学曾凡平 网络层(3)的主要内容 本章最重要的内容 ·4.7IP多播 运输层是整个网络体系结构的关键层次之一。一定要 ·4.7.1P多播的基本概念 清楚以下一些重要概念: ·4.7.2在局域网上进行硬件多播 ·4.7.3网际组管理协议IGMP和多播路由选择协议 (1)运输层为相互通信的应用进程提供逻辑通信 ·4.8虚拟专用网VPN和网络地址转换NAT (2)端口和套接字的意义 ·4.8.1虚拟专用网VPN (3)无连接的UDP的特点 ·4.8.2网络地址转换NAT (4)面向连接的TCP的特点 ·4.9多协议标记交换MPLS ·4.9.1MPLS的工作原理 (⑤)在不可靠的网络上实现可靠传输的原理,停止等待 ·4.9.2MPLS首部的位置与格式 协议和ARQ协议 (6)TCP的滑动窗口、流量控制、拥塞控制和连接管理 1,运 211川11,运给 511 第5章运输层(1) 5.1运输层协议概述 ·5.1运输层协议概述 ·5.1.1进程之间的通信 ·51.1进程之间的通信 ·5.1.2运输层的两个主要协议 ·5.1.2运输层的两个主要协议 ·5.1.3运输层的端口 ·5.2用户数据报协议UDP ·5.1.3运输层的端口 ·52.1UDP概述 ·5.2.2UDP的首部格式 ·5.3传输控制协议TCP概述 ·53.1TCP最主要的特点 ·5.3.2TCP的连接 ·5.4可靠传输的工作原理 ·5.4.1停止等待协议 ·5.4.2连续ARQ协议 ·5.5TCP报文段的首部格式 11运) 3111
( 7 ) 5 (1) (3) 4.7 IP 4.7.1 IP 4.7.2 4.7.3 IGMP 4.8 VPN NAT 4.8.1 VPN 4.8.2 NAT 4.9 MPLS 4.9.1 MPLS 4.9.2 MPLS 5 (1) 5.1 5.1.1 5.1.2 5.1.3 5.2 UDP 5.2.1 UDP 5.2.2 UDP 5.3 TCP 5.3.1 TCP 5.3.2 TCP 5.4 5.4.1 5.4.2 ARQ 5.5 TCP 5 (1) (2) (3) UDP (4) TCP (5) ARQ (6)TCP 5.1 5.1.1 5.1.2 5.1.3
5.1.1进程之间的通信 ·运输层的任务是在源机器的进程和目标机器的进 ·从通信和信息处理的角度看,传输层向它上面的 程之间提供数据传输功能,并且与当前所使用的 应用层提供通信服务,它属于面向通信部分的最 物理网络完全独立。 高层,同时也是用户功能中的最低层。传输层只 存在于通信子网以外的主机中。 ·运输层的最终目标是向它的用户提供高效的、 面向信息处理 可靠的和成本有效的数据传输服务,它的用户 应用层 用户功能 通常是应用层的进程。为了实现这个目标,运 输层需要充分利用网络层提供给它的服务。在运 传输层 输层内,完成这项工作的硬件和/或软件称为传 面向通信 网络层 输实体(transport entity)。 数据链路层 网络功能 物理层 11, 传输实体(transport entity) 运输层的作用 ·传输实体可以实现在主机的不同位置,可能在操 应用进程 应用进程 AP. 作系统内核,或者以一个链接库的形式绑定到网 AP. CAP AP. 端口运输层提供应用进程间的逻糯通信 端口 络应用中,或者以一个独立的用户进程运行,甚 至可以实现在网络接口卡上。前两种实现方式在 P层 Internet.上最常见。 ·传输实体与应用层和网络层实体的关系如下图所 a■”■目■■■■■■■■ 主机A 主机B 小。 AP 路由餐1 路由2 LAN WAN AP LAN, AP P协议的作用范圈 运输层协被TCP和UDP的作用范固 运输层为相互通信的应用进程提供了逻辑通信 () 811 11 传输层与其上下层之间的关系的OSI表示法 运输层的作用 ·“逻辑通信”的意思是“好像是这样通信,但事 实上并非真的这样通信”。 主机A 主机B ·从IP层来说,通信的两端是两台主机。但“两台 传输服务用户 传输服务用户 (应用层实体) 应用层 (应用层实体) 主机之间的通信”这种说法还不够清楚。 传输层服务访问点 TSAP 层接口 ·严格地讲,两台主机进行通信就是两台主机中的 应用进程互相通信。 传输实体 -一传输协议 --传输实体 传输层 ·从运输层的角度看,通信的真正端点并不是主机 而是主机中的进程。也就是说,端到端的通信是 网络层 层接口 网络层服务访问点 应用进程之间的通信。 NSAP (或网际层) ·应用进程之间的通信又称为端到端的通信。 12
5.1.1 / (transport entity) (transport entity) Internet OSI A B TSAP NSAP IP
维费2留滚老滑基斋器宾留终量室琴學举绿 基于端口的复用和分用功能 网是如此) 发送方 接收方 ·用户在网络层上并没有真正的控制权 所以它们不可 变 应用进程 应用进程 能用最好的路由器或者在数据链路层上用更好的错误 处理机制来解决服务 太差的问题 :惟一的可能是在网 用层 )昌昌眉 络层之上的另一层币提高服务质量。 ·从本质采讲,由于传翰层的存在,这使得传输服务有 TCP复用 UDP复用 TCP分用 UDP分用 可就比阀络服务更加可靠。丢失的分组和损坏的数据 可以在传输层上检测出来,并且由传输层来补偿。,而 UDE TCP报文段 UDP 传输服务原语可以通过调用库过程 (函数)来实 用户搬据报 TCP抱文段 用户据 现, 从而使得这些原语独立于网络服务原语。 P复用 P分用 ·传输层承担了将子网的技术、设计和各种缺陷与上层 隔离的关键作用。 P数编报 P数据报 6 网络层和运输层有明显的区别 屏蔽作用 网络层是为主机之间提供逻辑通信, ·运输层向高层用户屏蔽了下面网络核心的细 而运输层为应用进程之间提供端到端的逻辑通信。 节(如网络拓扑、所采用的路由选择协议 应用进程 应用进程 等),它使应用进程看见的就是好像在两个 运输层实体之间有一条端到端的逻辑通信信道。 互联网 AP AP 逻辑通信信道 P协议的作用范围 (提供主机之间的逻辑通信) 互联网 TCP和UDP协议的作用范圆 (提供进程之间的逻辑通信) 运输层协议和网络层协议的主要区别 411 7,1 运输层的作用 两种不同的运输协议 ·在一台主机中经常有多个应用进程同时分别和另 ·但这条逻辑通信信道对上层的表现却因运输层使 一台主机中的多个应用进程通信。 用的不同协议而有很大的差别。 ·这表明运输层有一个很重要的功能一一复用 ·当运输层采用面向连接的TCP协议时,尽管下 (multiplexing)和分用(demultiplexing)。应用层不 面的网络是不可靠的(只提供尽最大努力服务) 同进程的报文通过不同的魏口向下交到运输层, 但这种逻辑通信信道就相当于一条全双工的可靠 再往下就共用网络层提供的服务。 信道。 ·根据应用程序的不同需求,运输层需要有两种不 ·当运输层采用无连接的UDP协议时,这种逻辑 同的运输协议,即面向连接的TCP和无连接的 通信信道是一条不可靠信道。 UDP。 511 1811
(multiplexing) (demultiplexing ) TCP UDP TCP UDP
可靠信道与不可靠信道 TCP与UDP ·UDP:一种无连接协议 发送进程 接收进程 发送进程 接收进程 ·提供无连接服务。 用 ·在传送数据之前不需要先建立连接。 层 ·传送的数据单位协议是UDP报文或用户数据报。 ·对方的运输层在收到UDP报文后,不需要给出任何 确认。 ·虽然UDP不提供可靠交付,但在某些情况下UDP是 全双工可靠信道 人不可靠信道一 一种最有效的工作方式。 辅 层 使用面向连接的 使用无连接的 协议,如TCP。 协议,如UDP。 911 11给) 2211 5.1.2运输层的两个主要协议 TCP与UDP TCPAP的运输层有两个主要协议: ·TCP:一种面向连接的协议 ·(I)用户数据报协议UDP(User Datagram Protocol) ·提供面向连接的服务。 ·(2)传输控制协议TCP(Transmission Control Protocol) ·传送的数据单位协议是TCP报文段(segment)e ·TCP不提供广播或多播服务。 ·由于TCP要提供可靠的、面向连接的运输服务,因 应用层 此不可避免地增加了许多的开销。这不仅使协议数据 UDP TCP 运输层 单元的首部增大很多,还要占用许多的处理机资源。 p 与各种网络接口 TCPP体系中的运输层协议 1,运() 20111,运 2311 TCP与UDP 还要强调两点 ·两个对等运输实体在通信时传送的数据单位叫作 ·运输层的UDP用户数据报与网际层的IP数据报有很 运输协议数据单元TPDU(Transport Protocol 大区别。 Data Unit). ·P数据报要经过互连网中许多路由器的存储转发。 ·TCP传送的数据单位协议是TCP报文段 ·UDP用户数据报是在运输层的端到端抽象的逻辑信道中 (segment)。 传送的。 ·UDP传送的数据单位协议是UDP报文或用户数 ·TCP报文段是在运输层抽象的端到端逻辑信道中传 据报。 送,这种信道是可靠的全双工信道。但这样的信道 却不知道究竟经过了哪些路由器,而这些路由器也 根本不知道上面的运输层是否建立了TCP连接。 11E0 21111
5.1.2 TCP/IP (1) UDP (User Datagram Protocol) (2) TCP (Transmission Control Protocol) TCP UDP TPDU (Transport Protocol Data Unit) TCP TCP (segment) UDP UDP TCP UDP UDP UDP UDP UDP UDP TCP UDP TCP TCP (segment) TCP TCP UDP IP IP UDP TCP TCP
5.1.3运输层的端口 软件端口与硬件端口 ·运行在计算机中的进程是用进程标识符来标志的。 ·两个不同的概念。 ·但运行在应用层的各种应用进程却不应当让计算 ·在协议栈层间的抽象的协议端口是软件端口。 机操作系统指派它的进程标识符。这是因为在互 ·路由器或交换机上的端口是硬件端口。 联网上使用的计算机的操作系统种类很多,而不 同的操作系统又使用不同格式的进程标识符。 ·硬件端口是不同硬件设备进行交互的接口,而软 件端口是应用层的各种协议进程与运输实体进行 ·为了使运行不同操作系统的计算机的应用进程能 层间交互的一种地址。 够互相通信,就必须用统一的方法对TCPP体 系的应用进程进行标志。也称为对传输服务访问点 进行编址。 2511|11安给0 28 需要解决的问题 TCP/IP运输层端口 ·由于进程的创建和撤销都是动态的,发送方几乎 ·端口用一个16位端口号进行标志。 无法识别其他机器上的进程。 ·端口号只具有本地意义,即端口号只是为了标志 ·有时我们会改换接收报文的进程,但并不需要通 本计算机应用层中的各进程。 知所有发送方。 ·在互联网中,不同计算机的相同端口号是没有联 ·我们往往需要利用目的主机提供的功能来识别终 系的。 点,而不需要知道实现这个功能的进程。 由此可见,两个计算机中的进程要互相通信,不仅必须知 道对方的P地址(为了找到对方的计算机),而且还要知 道对方的端口号(为了找到对方计算机中的应用进程)。 1,运() 2111运 2911 端口号(protocol port number) 两大类端口 ·解决这个问题的方法就是在运输层使用协议端口 (1)服务器端使用的端口号 号(protocol port number),或通常简称为端口 ·熟知端口,数值一般为01023。 (port)。 ·登记端口号,数值为1024~49151,为没有熟知端口号的 应用程序使用的。使用这个范围的端口号必须在IANA登 ·虽然通信的终点是应用进程,但我们可以把端口 记,以防止重复。 想象是通信的终点,因为我们只要把要传送的报 (2)客户端使用的端口号 文交到目的主机的某一个合适的目的端口,剩下 ·又称为短暂端口号,数值为49152~65535,留给客户进程 的工作(即最后交付目的进程)就由TCP来完 选择暂时使用。 成。 ·当服务器进程收到客户进程的报文时,就知道了客户进 程所使用的动态端口号。通信结束后,这个端口号可供 其他客户进程以后使用。 11运0() 2”1111
5.1.3 TCP/IP (protocol port number) (protocol port number) (port) TCP TCP/IP 16 (1) 0~1023 1024~49151 IANA (2) 49152~65535