7?运输层 第7章 71运输层协议概述 7.2TCPP体系中的运输层 运输层 72.1运输层中的两个协议 722端口的概念 *7.3用户数据报协议UDP 7.3.1UDP概述 7.32UDP用户数据报的首部格式 ?7?运输层(续) 7.1运输层协议概述 74传输控制协议TCP 从通信和信息处理的角度看,运输层向它上面 74.1TCP概述 的应用层提供通信服务,它属于面向通信部分 742TCP报文段的首部 的最高层,同时也是用户功能中的最低层 74.3TCP的数据编号与确认 面向信息处理 应用层 744TCP的流量控制与拥塞控制 用户功能 *745TCP的重传机制 运输层 7.46采用随机早期丢弃RED进行拥塞控制 网络层 74.7TCP的运输连接管理 据链路层 网络功能 748TCP的有限状态机 物理层 运输层为相互通信的应用进程提供了逻辑通信 应用进程之间的通信 应用进程 端口运输层提供应用进程间的逻辑通信 两个主机进行通信实际上就是两个主机中的应 用进程互相通信 ●应用进程之间的通信又称为端到端的通信。 运输层的一个很重要的功能就是复用和分用 应用层不同进程的报文通 到运输层,再往下就共用网络层提供的服务。 路由器1 运输层提供应用进程间的逻辑通 卩协议的作用范围 向传送数据。但事实上这两个运输层之间并 运输层协议TCP和UDP的作用范围 没有一条水平方向的物理连接
1 ? 7 ? 运输层 *7.1 运输层协议概述 *7.2 TCP/IP 体系中的运输层 7.2.1 运输层中的两个协议 7.2.2 端口的概念 *7.3 用户数据报协议 UDP 7.3.1 UDP 概述 7.3.2 UDP 用户数据报的首部格式 ? 7 ? 运输层(续) 7.4 传输控制协议 TCP *7.4.1 TCP 概述 *7.4.2 TCP 报文段的首部 *7.4.3 TCP 的数据编号与确认 *7.4.4 TCP 的流量控制与拥塞控制 *7.4.5 TCP 的重传机制 7.4.6 采用随机早期丢弃 RED 进行拥塞控制 *7.4.7 TCP 的运输连接管理 7.4.8 TCP 的有限状态机 7.1 运输层协议概述 l 从通信和信息处理的角度看,运输层向它上面 的应用层提供通信服务,它属于面向通信部分 的最高层,同时也是用户功能中的最低层。 物理层 网络层 运输层 应用层 数据链路层 面向信息处理 面向通信 用户功能 网络功能 运输层为相互通信的应用进程提供了逻辑通信 5 4 3 2 1 运输层提供应用进程间的逻辑通信 主机 A 主机 B 应用进程 应用进程 路由器 1 路由器 2 AP1 WAN LAN2 AP2 AP3 AP4 IP 层 LAN1 AP1 AP2 AP4 端口 端口 5 4 3 2 1 IP 协议的作用范围 运输层协议 TCP 和 UDP 的作用范围 AP3 应用进程之间的通信 l 两个主机进行通信实际上就是两个主机中的应 用进程互相通信。 l 应用进程之间的通信又称为端到端的通信。 l 运输层的一个很重要的功能就是复用和分用。 应用层不同进程的报文通过不同的端口向下交 到运输层,再往下就共用网络层提供的服务。 l “运输层提供应用进程间的逻辑通信”。“逻辑通 信”的意思是:运输层之间的通信好像是沿水平 方向传送数据。但事实上这两个运输层之间并 没有一条水平方向的物理连接
运输层协议和网络层协议的主要 运输层的主要功能 应用进程 输层为应用进程之间提 端的逻辑通信 (但网络层是为主机之间提供逻辑通信) ●运输层还要对收到的报文进行差错检测 因特网 运输层需要有两种不同的运输协议,即面向连 接的TCP和无连接的UDP。 cP和UDP协议的作用范围 运输层与其上下层之间的关系的OSI 输层向上提供可靠的和不可靠的逻 表示法 辑通信信道 主机A 层 应用层 向《应用届实体 应用层实体 层接口 全双工可靠信道 运输实体一-运的协议}一运输实体1运输层 使用TcP协议 使用UDP协议 屈接口 网络层服务访问点 或网际层 72TCP/P体系中的运输层 7.21运输层中的两个协议 TCP与UDP TcPP的运输层有两个不同的协议: 两个对等运输实体在通信时传送的数据单位叫作 1)用户数据报协议UDP 运输协议数据单元 TPDU (Transport Protocol (User Datagram Protocol) Data Unit) (2)传输控制协议TCP TCP传送的数据单位协议是TCP报文段 (Transmission Control Protocol) UDP传送的数据单位协议是UDP报文或用户数 据报
2 运输层协议和网络层协议的主要 区别 2 应用进程 … 2 2 应用进程 … 2 IP 协议的作用范围 (提供主机之间的逻辑通信) TCP 和 UDP 协议的作用范围 (提供进程之间的逻辑通信) 因 特 网 运输层的主要功能 l 运输层为应用进程之间提供端到端的逻辑通信 (但网络层是为主机之间提供逻辑通信)。 l 运输层还要对收到的报文进行差错检测。 l 运输层需要有两种不同的运输协议,即面向连 接的 TCP 和无连接的 UDP。 运输层与其上下层之间的关系的 OSI 表示法 运输实体 运输协议 运输实体 运输层 层接口 运输服务用户 (应用层实体) 运输服务用户 (应用层实体) 网络层 层接口 (或网际层) 应用层 主机 A 主机 B 运输层服务访问点 TSAP 网络层服务访问点 NSAP 运输层向上提供可靠的和不可靠的逻 辑通信信道 应 用 ? 层 运 输 层 发 送 进 程 接 收 进 程 接 收 进 程 数据 数据 全双工可靠信道 数据 数据 使用 TCP 协议 使用 UDP 协议 不可靠信道 2 2 2 2 发 送 进 程 TCP/IP的运输层有两个不同的协议: (1) 用户数据报协议 UDP (User Datagram Protocol) (2) 传输控制协议 TCP (Transmission Control Protocol) 7.2 TCP/IP 体系中的运输层 7.2.1 运输层中的两个协议 l 两个对等运输实体在通信时传送的数据单位叫作 运输协议数据单元 TPDU (Transport Protocol Data Unit)。 l TCP 传送的数据单位协议是 TCP 报文段 (segment) l UDP 传送的数据单位协议是UDP 报文或用户数 据报。 TCP 与 UDP
TCP/P体系中的运输层协议 TCP与UDP UDP在传送数据之前不需要先建立连接。对 方的运输层在收到UDP报文后,不需要给出 输层 任何确认。虽然UDP不提供可靠交付,但在 某些情况下UDP是一种最有效的工作方式。 TCP则提供面向连接的服务。TCP不提供广 与各种网络接口 播或多播服务。由于TCP要提供可靠的、面 向连接的运输服务,因此不可避免地增加了许 多的开销。这不仅使协议数据单元的首部增大 很多,还要占用许多的处理机资源 还要强调两点 722端口的概念 ●运输层的UDP用户数据报与网际层的P数据报 端口就是运输层服务访问点TSAP。 有很大区别。P数据报要经过互连网中许多路 由器的存储转发,但UDP用户数据报是在运输 其数据通过端口向下交付给运输层,以及让运输 层的端到端抽象的逻辑信道中传送的。 层知道应当将其报文段中的数据向上通过端口交 TCP报文段是在运输层抽象的端到端逻辑信道 付给应用层相应的进程 中传送,这种信道是可靠的全双工信道。但这 从这个意义上讲,端口是用来标志应用层的进 样的信道却不知道究竟经过了哪些路由器,而 这些路由器也根本不知道上面的运输层是否建 立了TCP连接。 端口在进程之间的通信中所起的作用 端口 接收方 应用进程 应用进程 ●端口用一个16bt端口号进行标志。 ●端口号只具有本地意义,即端口号只是为 TCP复 TcP分用 了标志本计算机应用层中的各进程。在因 特网中不同计算机的相同端口号是没有联 TcP报文段 系的。 IP分用
3 TCP/IP 体系中的运输层协议 UDP TCP IP 应用层 与各种网络接口 运输层 TCP 与 UDP l UDP 在传送数据之前不需要先建立连接。对 方的运输层在收到 UDP 报文后,不需要给出 任何确认。虽然 UDP 不提供可靠交付,但在 某些情况下 UDP 是一种最有效的工作方式。 l TCP 则提供面向连接的服务。TCP 不提供广 播或多播服务。由于 TCP 要提供可靠的、面 向连接的运输服务,因此不可避免地增加了许 多的开销。这不仅使协议数据单元的首部增大 很多,还要占用许多的处理机资源。 还要强调两点 l 运输层的UDP用户数据报与网际层的IP数据报 有很大区别。IP数据报要经过互连网中许多路 由器的存储转发,但UDP用户数据报是在运输 层的端到端抽象的逻辑信道中传送的。 l TCP 报文段是在运输层抽象的端到端逻辑信道 中传送,这种信道是可靠的全双工信道。但这 样的信道却不知道究竟经过了哪些路由器,而 这些路由器也根本不知道上面的运输层是否建 立了 TCP 连接。 7.2.2 端口的概念 l 端口就是运输层服务访问点 TSAP。 l 端口的作用就是让应用层的各种应用进程都能将 其数据通过端口向下交付给运输层,以及让运输 层知道应当将其报文段中的数据向上通过端口交 付给应用层相应的进程。 l 从这个意义上讲,端口是用来标志应用层的进 程。 端口在进程之间的通信中所起的作用 应 用 层 运 输 层 网 络 层 TCP 报文段 UDP 用户数据报 应用进程 TCP 复用 222 IP 复用 UDP 复用 222 TCP 报文段 UDP 用户数据报 222 222 应用进程 端口 端口 TCP 分用 UDP 分用 IP 分用 IP 数据报 IP 数据报 发送方 接收方 端口 l端口用一个 16 bit 端口号进行标志。 l端口号只具有本地意义,即端口号只是为 了标志本计算机应用层中的各进程。在因 特网中不同计算机的相同端口号是没有联 系的
两类端口 DP使用的熟知端口号 一类是熟知端口,其数值一般为0-1023 一种新的应用程序出现时,必须为它指派 熟知端口 域名服务 另一类则是一般端口,用来随时分配给请求通 信的客户进程 下载引导程序你息的客户机端 TCP常用的熟知端口号 插口( socket) TCP使用“连接《(而不仅仅是“端口")作为最基本 文件传输协议《数据连接 的抽象,同时将TCP连接的端点称为插口 文件传输协议《控制连楼) ( socket),或套接字、套接口 ●插口和端口、|P地址的关系是 P地址 超文本传输协议 远程过程调用 插口( socke13162313 同一个名词 socket 73用户数据报协议UDP 有多种不同的意思 73.1UDP概述 ·应用编程接口AP称为 socket AP,简称为 UDP只在P的数据报服务之上增加了很少一 socket 点的功能,即端口的功能和差错检测的功能。 socket AP|中使用的一个函数名也叫作 socket e 虽然UDP用户数据报只能提供不可靠的交 调用 socket函数的端点称为 socket. 付,但UDP在某些方面有其特殊的优点 调用 socke t函数时其返回值称为 socket描述 ◎发送数据之前不需要建立连扫 符,可简称为 socket s oUDP的主机不需要维持复杂的连接状态表 在操作系统内核中连网协议的 Berkeley实现,称 oUDP用户数据报只有8个字节的首部开销。 为 socket实现 ◎网络出现的拥塞不会使源主机的发送速率降低。这对 某些实时应用是很重要的
4 两类端口 l 一类是熟知端口,其数值一般为 0~1023。当 一种新的应用程序出现时,必须为它指派一个 熟知端口。 l 另一类则是一般端口,用来随时分配给请求通 信的客户进程。 UDP使用的熟知端口号 端口号 服务进程 说 明 下载引导程序信息的服务器端口 53 Name server 域名服务 67 Bootps 68 Bootpc 下载引导程序信息的客户机端口 69 TFTP 简单文件传输协议 111 RPC 远程过程调用 123 NTP 网络时间协议 161 SNMP 简单网络管理协议 TCP常用的熟知端口号 端口号 服务进程 说明 文件传输协议(控制连接) 20 FTP 文件传输协议(数据连接) 21 FTP 23 Telnet 虚拟终端网络 25 SMTP 简单邮件传输协议 53 DNS 域名服务器 80 HTTP 超文本传输协议 111 RPC 远程过程调用 插口(socket) l TCP 使用“连接”(而不仅仅是“端口”)作为最基本 的抽象,同时将 TCP 连接的端点称为插口 (socket),或套接字、套接口。 l 插口和端口、IP 地址的关系是: IP 地址 131.6.23.13 端口号 1500 插口(socket) 131.6.23.13, 1500 同一个名词 socket 有多种不同的意思 l 应用编程接口 API 称为 socket API, 简称为 socket。 l socket API 中使用的一个函数名也叫作socket。 l 调用socket 函数的端点称为 socket。 l 调用 socke t函数时其返回值称为 socket描述 符,可简称为socket。 l 在操作系统内核中连网协议的 Berkeley 实现,称 为 socket 实现。 7.3 用户数据报协议 UDP 7.3.1 UDP 概述 l UDP 只在 IP 的数据报服务之上增加了很少一 点的功能,即端口的功能和差错检测的功能。 l 虽然 UDP 用户数据报只能提供不可靠的交 付,但 UDP 在某些方面有其特殊的优点。 ° 发送数据之前不需要建立连接 ° UDP 的主机不需要维持复杂的连接状态表。 ° UDP 用户数据报只有8个字节的首部开销。 ° 网络出现的拥塞不会使源主机的发送速率降低。这对 某些实时应用是很重要的
端口是用报文队列来实现 732UDP用户数据报的 首部格式 TFTP服务器 源|P地址 目的|P地址 入队列 出队列 入队列 伪首部 的端口长度 户数据报首部工二 发送在 UDP用户数据报 首部 吧教燕报 74传输控制协议TCP 741TCP概述 发送端 应用进程 应用进程 保国阻EF 窗口 发送缓存 选项(长度可变 写入数据块 CP报文段 TCP数据部分 匚发送存 卜接收缓存 报文段[报文段上 报段→ P首部 发送TcP报文段 743TCP的数据编号与确认 7.44TCP的流量控制与拥塞控制 1.滑动窗口的概念 TCP协议是面向字节的。TCP将所要传送的报文 TCP采用大小可变的滑动窗口进行流量控制。窗口 看成是字节组成的数据流,并使每一个字节对应于 大小的单位是字节 在TCP报文段首部的窗口字段写入的数值就是当前 ●在连接建立时,双方要商定初始序号。TCP每次 给对方设置的发送窗口数值的上限 发送的报文段的首部中的序号字段数值表示该报文 段中的数据部分的第一个字节的序号 ●发送窗口在连接建立时由双方商定。但在通信的过 程中,接收端可根据自己的资源情况,随时动态地 TcP的确认是对接收到的数据的最高序号表示确 调整对方的发送窗口上限值(可增大或减小)。 认。接收端返回的确认号是己收到的数据的最高序 号加1。因此确认号表示接收端期望下次收到的数 据中的第一个数据字节的序号
5 端口是用报文队列来实现 UDP 端口 51000 UDP 端口 69 2 2 出队列 入队列 出队列 入队列 TFTP 客户 TFTP 服务器 UDP 用户数据报 应 用 层 运 输 层 7.3.2 UDP 用户数据报的 首部格式 伪首部 源端口 目的端口 长 度 检验和 首 部 数 据 源 IP 地址 目的 IP 地址 0 17 UDP长度 IP 数据报 字节 4 4 1 1 2 字节 12 2 2 2 2 发送在前 UDP 用户数据报 首 部 数 据 7.4 传输控制协议 TCP 7.4.1 TCP 概述 2 端口 … 发送TCP报文段 TCP … TCP 发送缓存 接收缓存 报文段 报文段 … 报文段 端口 发送端 接收端 向发送缓存 写入数据块 从接收缓存 读取数据块 应用进程 应用进程2 TCP 首部 20 字节的 固定首部 目 的 端 口 数据 偏移 检 验 和 选 项 (长 度 可 变) 源 端 口 序 号 紧 急 指 针 窗 口 确 认 号 保 留 F I N 32 bit S Y N R S T P S H A C K U R G 比特 0 8 16 24 31 填 充 TCP 报文段 TCP 首部 TCP 数据部分 IP 首部 IP 数据部分 发送在前 7.4.3 TCP 的数据编号与确认 l TCP 协议是面向字节的。TCP 将所要传送的报文 看成是字节组成的数据流,并使每一个字节对应于 一个序号。 l 在连接建立时,双方要商定初始序号。TCP 每次 发送的报文段的首部中的序号字段数值表示该报文 段中的数据部分的第一个字节的序号。 l TCP 的确认是对接收到的数据的最高序号表示确 认。接收端返回的确认号是已收到的数据的最高序 号加 1。因此确认号表示接收端期望下次收到的数 据中的第一个数据字节的序号。 7.4.4 TCP 的流量控制与拥塞控制 1. 滑动窗口的概念 l TCP 采用大小可变的滑动窗口进行流量控制。窗口 大小的单位是字节。 l 在 TCP 报文段首部的窗口字段写入的数值就是当前 给对方设置的发送窗口数值的上限。 l 发送窗口在连接建立时由双方商定。但在通信的过 程中,接收端可根据自己的资源情况,随时动态地 调整对方的发送窗口上限值(可增大或减小)