计算机网络第五章运输层_第1页
计算机网络第五章运输层_第2页
计算机网络第五章运输层_第3页
计算机网络第五章运输层_第4页
计算机网络第五章运输层_第5页
已阅读5页,还剩96页未读 继续免费阅读

下载本文档

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

文档简介

1、1 计算机网络计算机网络 第第 五五 章章 运输层运输层 2 内容提要内容提要 n运输层协议概述运输层协议概述 n用户数据报协议用户数据报协议UDP n传输控制协议传输控制协议TCP概述概述 n可靠传输的工作原理可靠传输的工作原理 nTCP可靠通信的具体实现可靠通信的具体实现 nTCP报文段的首部格式报文段的首部格式 nTCP连接管理连接管理 nTCP的流量控制的流量控制 nTCP的拥塞控制的拥塞控制 3 运输层协议概述运输层协议概述 n从通信和信息处理的角度看,运输层向它上面从通信和信息处理的角度看,运输层向它上面 的应用层提供通信服务,它属于面向通信部分的应用层提供通信服务,它属于面向通信

2、部分 的最高层,同时也是用户功能中的最低层。的最高层,同时也是用户功能中的最低层。 物理层 网络层 运输层 应用层 数据链路层 面向信息处理 面向通信 用户功能 网络功能 运输层为相互通信的应用进程提供了运输层为相互通信的应用进程提供了 逻辑通信逻辑通信 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 应用进程之间的通信应用进程之间的通

3、信 n两个主机进行通信实际上就是两个主机中的应两个主机进行通信实际上就是两个主机中的应 用进程互相通信。用进程互相通信。 n应用进程之间的通信又称为端到端的通信。应用进程之间的通信又称为端到端的通信。 n运输层的一个很重要的功能就是复用和分用。运输层的一个很重要的功能就是复用和分用。 应用层不同进程的报文通过不同的端口向下交应用层不同进程的报文通过不同的端口向下交 到运输层,再往下就共用网络层提供的服务。到运输层,再往下就共用网络层提供的服务。 n“运输层提供应用进程间的逻辑通信运输层提供应用进程间的逻辑通信”。“逻逻 辑通信辑通信”的意思是:运输层之间的通信好像是的意思是:运输层之间的通信好

4、像是 沿水平方向传送数据。但事实上这两个运输层沿水平方向传送数据。但事实上这两个运输层 之间并没有一条水平方向的物理连接。之间并没有一条水平方向的物理连接。 6 运输层的主要功能运输层的主要功能 n运输层为应用进程之间提供端到端的逻辑通信运输层为应用进程之间提供端到端的逻辑通信 (但网络层是为主机之间提供逻辑通信)。(但网络层是为主机之间提供逻辑通信)。 n运输层还要对收到的报文进行差错检测。运输层还要对收到的报文进行差错检测。 n运输层需要有两种不同的运输协议,即面向连运输层需要有两种不同的运输协议,即面向连 接的接的 TCP 和无连接的和无连接的 UDP。 7 TCP/IP的运输层有两个不

5、同的协议:的运输层有两个不同的协议: (1) 用户数据报协议用户数据报协议 UDP (User Datagram Protocol) (2) 传输控制协议传输控制协议 TCP (Transmission Control Protocol) 运输层中的两个协议运输层中的两个协议 8 n两个对等运输实体在通信时传送的数据单位叫作两个对等运输实体在通信时传送的数据单位叫作 运输协议数据单元运输协议数据单元 TPDU (Transport Protocol Data Unit)。 nTCP 传送的数据单位协议是传送的数据单位协议是 TCP 报文段报文段 (segment) n UDP 传送的数据单位协

6、议是传送的数据单位协议是 UDP 报文报文或或用户数用户数 据报据报。 TCP 与与 UDP 9 TCP/IP 体系中的运输层协议体系中的运输层协议 TCPUDP IP 应用层 与各种网络接口 运输层 10 TCP 与与 UDP nUDP 在传送数据之前不需要先建立连接。对在传送数据之前不需要先建立连接。对 方的运输层在收到方的运输层在收到 UDP 报文后,不需要给出报文后,不需要给出 任何确认。虽然任何确认。虽然 UDP 不提供可靠交付,但在不提供可靠交付,但在 某些情况下某些情况下 UDP 是一种最有效的工作方式。是一种最有效的工作方式。 nTCP 则提供面向连接的服务。则提供面向连接的服

7、务。TCP 不提供广不提供广 播或多播服务。由于播或多播服务。由于 TCP 要提供可靠的、面要提供可靠的、面 向连接的运输服务,因此不可避免地增加了许向连接的运输服务,因此不可避免地增加了许 多的开销。这不仅使协议数据单元的首部增大多的开销。这不仅使协议数据单元的首部增大 很多,还要占用许多的处理机资源。很多,还要占用许多的处理机资源。 11 TCP 与与 UDP n运输层的运输层的 UDP 用户数据报与网际层的用户数据报与网际层的IP数据数据 报有很大区别。报有很大区别。IP 数据报要经过互连网中许多数据报要经过互连网中许多 路由器的存储转发,但路由器的存储转发,但 UDP 用户数据报是在用

8、户数据报是在 运输层的端到端抽象的逻辑信道中传送的。运输层的端到端抽象的逻辑信道中传送的。 nTCP 报文段是在运输层抽象的端到端逻辑信道报文段是在运输层抽象的端到端逻辑信道 中传送,这种信道是可靠的全双工信道。但这中传送,这种信道是可靠的全双工信道。但这 样的信道却不知道究竟经过了哪些路由器,而样的信道却不知道究竟经过了哪些路由器,而 这些路由器也根本不知道上面的运输层是否建这些路由器也根本不知道上面的运输层是否建 立了立了 TCP 连接。连接。 12 端口的概念端口的概念 n端口就是运输层服务访问点端口就是运输层服务访问点 TSAP。 n端口的作用就是让应用层的各种应用进程都能将端口的作用

9、就是让应用层的各种应用进程都能将 其数据通过端口向下交付给运输层,以及让运输其数据通过端口向下交付给运输层,以及让运输 层知道应当将其报文段中的数据向上通过端口交层知道应当将其报文段中的数据向上通过端口交 付给应用层相应的进程。付给应用层相应的进程。 n从这个意义上讲,端口是用来标志应用层的进程。从这个意义上讲,端口是用来标志应用层的进程。 端口在进程之间的通信中所起的作用端口在进程之间的通信中所起的作用 应 用 层 运 输 层 网 络 层 TCP 报文段 UDP 用户数据报 应用进程 TCP 报文段 UDP 用户数据报 应用进程 端口端口 TCP 分用UDP 分用 IP 分用 IP 数据报I

10、P 数据报 发送方 接收方 14 端口端口 n端口用一个端口用一个 16 bit 端口号进行标志。端口号进行标志。 n端口号只具有本地意义,即端口号只是为端口号只具有本地意义,即端口号只是为 了标志本计算机应用层中的各进程。在因了标志本计算机应用层中的各进程。在因 特网中不同计算机的相同端口号是没有联特网中不同计算机的相同端口号是没有联 系的。系的。 15 三类端口三类端口 n熟知端口号熟知端口号,其数值一般为,其数值一般为 01023。当一。当一 种新的应用程序出现时,必须为它指派一个熟种新的应用程序出现时,必须为它指派一个熟 知端口。知端口。 n登记端口号登记端口号,数值为,数值为1024

11、49151,为没有,为没有 熟知端口号的应用程序使用的。使用这个范围熟知端口号的应用程序使用的。使用这个范围 的端口号必须在的端口号必须在 IANA 登记,以防止重复。登记,以防止重复。 n客户端口号客户端口号或或短暂端口号短暂端口号,数值为,数值为 4915265535,留给客户进程选择暂时使用。,留给客户进程选择暂时使用。 当服务器进程收到客户进程的报文时,就知道当服务器进程收到客户进程的报文时,就知道 了客户进程所使用的动态端口号。通信结束后,了客户进程所使用的动态端口号。通信结束后, 这个端口号可供其他客户进程以后使用。这个端口号可供其他客户进程以后使用。 16 端口号端口号 端口号指

12、示了正在使用的上层协议。端口号指示了正在使用的上层协议。 F T P S M T P T F T P D N S T e l n e t S N M P 2123255369161 TCP UDP 应用层应用层 运输层运输层 17 插口插口(socket) nTCP 使用使用“连接连接”(而不仅仅是而不仅仅是“端口端口”)作为作为 最基本的抽象,同时将最基本的抽象,同时将 TCP 连接的端点称为连接的端点称为插插 口口(socket),或,或套接字套接字、套接口套接口。 n插口和端口、插口和端口、IP 地址的关系是:地址的关系是: IP 地址 3 端口号 1500 131.

13、6.23.13, 1500 插口(socket) 18 内容提要内容提要 n运输层协议概述运输层协议概述 n用户数据报协议用户数据报协议UDP n传输控制协议传输控制协议TCP概述概述 n可靠传输的工作原理可靠传输的工作原理 nTCP可靠通信的具体实现可靠通信的具体实现 nTCP报文段的首部格式报文段的首部格式 nTCP连接管理连接管理 nTCP的流量控制的流量控制 nTCP的拥塞控制的拥塞控制 19 用户数据报协议用户数据报协议 UDP nUDP 只在只在 IP 的数据报服务之上增加了的数据报服务之上增加了 很少一点的功能,即端口的功能和差错很少一点的功能,即端口的功能和差错 检测的功能。检

14、测的功能。 n虽然虽然 UDP 用户数据报只能提供不可靠的用户数据报只能提供不可靠的 交付,但交付,但 UDP 在某些方面有其特殊的优在某些方面有其特殊的优 点。点。 20 UDP 的主要特点的主要特点 nUDP 是无连接的,即发送数据之前不需是无连接的,即发送数据之前不需 要建立连接。要建立连接。 nUDP 使用尽最大努力交付,即不保证可使用尽最大努力交付,即不保证可 靠交付,同时也不使用拥塞控制。靠交付,同时也不使用拥塞控制。 nUDP 是面向报文的。是面向报文的。UDP 没有拥塞控没有拥塞控 制,很适合多媒体通信的要求。制,很适合多媒体通信的要求。 nUDP 支持一对一、一对多、多对一和

15、多支持一对一、一对多、多对一和多 对多的交互通信。对多的交互通信。 nUDP 的首部开销小,只有的首部开销小,只有 8 个字节。个字节。 21 UDP 是面向报文的是面向报文的 IP 数据报的数据部分IP 首部 IP 层 UDP 首部UDP 用户数据报的数据部分运输层 应用层报文 应用层 22 UDP 用户数据报的首部格式用户数据报的首部格式 伪首部源端口目的端口长 度检验和 数 据首 部 UDP长度源 IP 地址目的 IP 地址017 IP 数据报 字节44112 122222字节 发送在前 数 据首 部 UDP 用户数据报 23 UDP 基于端口的分用基于端口的分用 IP 层 UDP 数据

16、报到达 端口 2端口 3端口 1 UDP 分用 伪首部源端口目的端口长 度检验和 数 据首 部 UDP长度源 IP 地址目的 IP 地址017 IP 数据报 字节44112 122222字节 发送在前 数 据首 部UDP 用户数据报 用户数据报 UDP 有两个字段:数据字段和首部 字段。首部字段有 8 个字节,由 4 个字段组成, 每个字段都是两个字节。 伪首部源端口目的端口长 度检验和 数 据首 部 UDP长度源 IP 地址目的 IP 地址017 IP 数据报 字节44112 122222字节 发送在前 数 据首 部UDP 用户数据报 在计算检验和时,临时把“伪首部”和 UDP 用户数据 报

17、连接在一起。伪首部仅仅是为了计算检验和。 计算计算 UDP 检验和的例子检验和的例子 10011001 00010011 153.19 00001000 01101000 8.104 10101011 00000011 171.3 00001110 00001011 14.11 00000000 00010001 0 和 17 00000000 00001111 15 00000100 00111111 1087 00000000 00001101 13 00000000 00001111 15 00000000 00000000 0(检验和) 01010100 01000101 数据 010

18、10011 01010100 数据 01001001 01001110 数据 01000111 00000000 数据和 0(填充) 10010110 11101011 求和得出的结果 01101001 00010100 检验和 04 1 12 字节 伪首部 8 字节 UDP 首部 7 字节 数据 填充 按二进制反码运算求和 将得出的结果求反码 全 0 17 15 1087 13 15 全 0 数据 数据 数据 数据 数据 数据 数据 全 0 27 内容提要内容提要 n运输层协议概述运输层协议概述 n用户数据报协议用户数据报协议UDP n传输控制协议传输

19、控制协议TCP概述概述 n可靠传输的工作原理可靠传输的工作原理 nTCP可靠通信的具体实现可靠通信的具体实现 nTCP报文段的首部格式报文段的首部格式 nTCP连接管理连接管理 nTCP的流量控制的流量控制 nTCP的拥塞控制的拥塞控制 28 TCP(传输控制协议)(传输控制协议) nTCP是一种面向连接的协议是一种面向连接的协议 nTCP的目的:的目的:用于在不可靠的互连网络上用于在不可靠的互连网络上(不不 同的拓扑结构、带宽、延迟、分组大小及其它同的拓扑结构、带宽、延迟、分组大小及其它 参数参数)实现可靠的端实现可靠的端-端字节流服务端字节流服务 nIP层不保证报文正确传输,层不保证报文正

20、确传输,TCP进行进行超时重传超时重传 控制控制 n报文不一定按顺序到达,报文不一定按顺序到达,TCP进行进行重新装配重新装配 29 TCP 最主要的特点最主要的特点 nTCP 是是面向连接面向连接的运输层协议。的运输层协议。 n每一条每一条 TCP 连接只能有两个连接只能有两个端点端点 (endpoint),每一条,每一条 TCP 连接只能是连接只能是 一对一的。一对一的。 nTCP 提供提供可靠交付可靠交付的服务。的服务。 n TCP 提供提供全双工全双工通信。通信。 n面向字节流面向字节流。 30 TCP的功能的功能 n多路复用多种应用数据多路复用多种应用数据 nTCP同时接收多个应用数

21、据,把它们打包到数据段同时接收多个应用数据,把它们打包到数据段 中传给中传给IP nTCP能同时接收多个应用的数据能同时接收多个应用的数据 nTCP通过端口来实现跟踪记录到达的报文要转发到通过端口来实现跟踪记录到达的报文要转发到 的应用程序的应用程序(端口端口80:超文本传输协议,:超文本传输协议,http ) n测试所接收数据的完整性测试所接收数据的完整性 n比较比较TCP头的校验和,如果出现问题就给源主机发头的校验和,如果出现问题就给源主机发 一请求,要求其重发一份数据拷贝一请求,要求其重发一份数据拷贝 n顺序化乱序接收的数据顺序化乱序接收的数据 n通过查看通过查看TCP头中的序列号域可以

22、完成这个任务头中的序列号域可以完成这个任务 31 TCP的功能的功能 n速率速率-适应的流控适应的流控 n流量控制使用的是流量控制使用的是TCP窗口大小。源和目的机的窗口大小通窗口大小。源和目的机的窗口大小通 过过TCP头进行通信头进行通信 n如果机器的缓冲完全被填满,它就会发送一个有关最后收到如果机器的缓冲完全被填满,它就会发送一个有关最后收到 数据的应答报文,其中新的窗口大小为数据的应答报文,其中新的窗口大小为0。这样会有效地使发。这样会有效地使发 送停止,直到拥塞的机器能清理掉其缓冲送停止,直到拥塞的机器能清理掉其缓冲 n定时功能定时功能 n计时器可以间接地管理网络拥塞,其方法是当超时出

23、现时减计时器可以间接地管理网络拥塞,其方法是当超时出现时减 慢传输率慢传输率 n应答接收应答接收 n没被应答的数据段被认为在传输过程中已丢失,并被重传没被应答的数据段被认为在传输过程中已丢失,并被重传 32 内容提要内容提要 n运输层协议概述运输层协议概述 n用户数据报协议用户数据报协议UDP n传输控制协议传输控制协议TCP概述概述 n可靠传输的工作原理可靠传输的工作原理 nTCP可靠通信的具体实现可靠通信的具体实现 nTCP报文段的首部格式报文段的首部格式 nTCP连接管理连接管理 nTCP的流量控制的流量控制 nTCP的拥塞控制的拥塞控制 33 可靠传输的工作原理可靠传输的工作原理 n在

24、理想传输条件下,不需要采取任何措施就能在理想传输条件下,不需要采取任何措施就能 够实现可靠传输。够实现可靠传输。 n实际的网络中,传输信道是不可靠的,通常会实际的网络中,传输信道是不可靠的,通常会 出现传输差错、丢包等现象。出现传输差错、丢包等现象。 n可靠传输协议的复杂性由不可靠的信道特性决可靠传输协议的复杂性由不可靠的信道特性决 定。定。 n几个可靠传输协议:几个可靠传输协议: n停止等待协议停止等待协议 n流水线协议(连续流水线协议(连续ARQ、滑动窗口)、滑动窗口) 停止等待协议停止等待协议 (a) 无差错情况 A 发送 M1 确认 M1 B 发送 M2 发送 M3 确认 M2 确认

25、M3 A 发送 M1 B 超时重传 M1 发送 M2 确认 M1 丢弃有差错 的报文 (b) 超时重传 tttt 35 停止等待协议停止等待协议 n在发送完一个分组后,必须暂时保留已在发送完一个分组后,必须暂时保留已 发送的分组的副本。发送的分组的副本。 n分组和确认分组都必须进行编号。分组和确认分组都必须进行编号。 n超时计时器的重传时间应当比数据在分超时计时器的重传时间应当比数据在分 组传输的平均往返时间更长一些。组传输的平均往返时间更长一些。 36 停止等待协议停止等待协议 确认丢失和确认迟到确认丢失和确认迟到 A 发送 M1 B 超时 重传 M1 发送 M2 丢弃 重复的 M1 重传确

26、认 M1 (a) 确认丢失 确认 M1 A 发送 M1 B 超时 重传 M1 发送 M2 丢弃 重复的 M1 重传确认M1 (b) 确认迟到 确认 M1 收下迟到 的确认 但什么也不做 tttt 37 停止等待协议停止等待协议 n使用上述的确认和重传机制,我们就可使用上述的确认和重传机制,我们就可 以以在不可靠的传输网络上实现可靠的通在不可靠的传输网络上实现可靠的通 信信。 n这种可靠传输协议常称为这种可靠传输协议常称为自动重传请求自动重传请求 ARQ (Automatic Repeat reQuest)。 nARQ 表明重传的请求是表明重传的请求是自动自动进行的。接进行的。接 收方不需要请求

27、发送方重传某个出错的收方不需要请求发送方重传某个出错的 分组分组 。 38 信道利用率信道利用率 n停止等待协议的优点是简单,但缺点是停止等待协议的优点是简单,但缺点是 信道利用率太低。信道利用率太低。 TDRTT A TD + RTT + TA B 分组 确认 t t 分组 确认 39 信道的利用率信道的利用率 U AD D TT T U RTT U信道复用率 TD发送分组所需时间 TA发送确认分组所需时间 RTT往返时间 40 流水线传输流水线传输 n发送方可发送方可连续发送连续发送多个分组,不必每发完一个分多个分组,不必每发完一个分 组就停顿下来等待对方的确认。组就停顿下来等待对方的确认

28、。 n由于信道上一直有数据不间断地传送,这种传输由于信道上一直有数据不间断地传送,这种传输 方式可获得很高的信道利用率。方式可获得很高的信道利用率。 B 分组 t t A ACK 41 连续连续 ARQ 协议协议 123456789101112 (a) 发送方维持发送窗口(发送窗口是 5) 发送窗口 (b) 收到一个确认后发送窗口向前滑动 向前 123456789101112 发送窗口 42 连续连续 ARQ 协议协议 n接收方一般采用接收方一般采用累积确认累积确认的方式。即不的方式。即不 必对收到的分组逐个发送确认,而是对必对收到的分组逐个发送确认,而是对 按序到达的最后一个分组发送确认,这

29、按序到达的最后一个分组发送确认,这 样就表示:样就表示:到这个分组为止的所有分组到这个分组为止的所有分组 都已正确收到了都已正确收到了。 n累积确认有的优点是:容易实现,即使累积确认有的优点是:容易实现,即使 确认丢失也不必重传。缺点是:不能向确认丢失也不必重传。缺点是:不能向 发送方反映出接收方已经正确收到的所发送方反映出接收方已经正确收到的所 有分组的信息。有分组的信息。 43 Go-back-N(回退(回退 N) 44 选择性重传选择性重传 45 内容提要内容提要 n运输层协议概述运输层协议概述 n用户数据报协议用户数据报协议UDP n传输控制协议传输控制协议TCP概述概述 n可靠传输的

30、工作原理可靠传输的工作原理 nTCP可靠通信的具体实现可靠通信的具体实现 nTCP报文段的首部格式报文段的首部格式 nTCP连接管理连接管理 nTCP的流量控制的流量控制 nTCP的拥塞控制的拥塞控制 46 TCP 可靠通信的具体实现可靠通信的具体实现 nTCP 连接的每一端都必须设有两个窗连接的每一端都必须设有两个窗 口口一个一个发送窗口发送窗口和一个和一个接收窗口接收窗口。 n TCP 的可靠传输机制用的可靠传输机制用字节的序号字节的序号进行进行 控制。控制。TCP 所有的确认都是所有的确认都是基于序号基于序号而而 不是基于报文段。不是基于报文段。 n TCP 两端的四个窗口经常处于两端的

31、四个窗口经常处于动态变化动态变化 之中。之中。 nTCP连接的往返时间连接的往返时间 RTT 也也不是固定不不是固定不 变的变的。需要使用特定的算法估算较为合。需要使用特定的算法估算较为合 理的重传时间。理的重传时间。 47 以字节为单位的滑动窗口以字节为单位的滑动窗口 前移 不允许发送 已发送并 收到确认 A 的发送窗口 = 20 允许发送的序号 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 B 期望 收到的序号 前沿后沿 前移收缩 根据 B 给出的窗口

32、值 A 构造出自己的发送窗口 TCP 标准强烈不赞成 发送窗口前沿向后收缩 不允许发送已发送并 收到确认 A 的发送窗口位置不变 允许发送但尚未发送 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 已发送但未收到确认 56 P1P2P3 不允许接收已发送确认 并交付主机 B 的接收窗口 允许接收 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 5

33、4 55 56 未按序收到 可用窗口 A 发送了 11 个字节的数据 P3 P1 = A 的发送窗口(又称为通知窗口) P2 P1 = 已发送但尚未收到确认的字节数 P3 P2 = 允许发送但尚未发送的字节数(又称为可用窗口) 允许发送但尚未发送 A 的发送窗口向前滑动 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 已发送并收到确认 不允许 发送 已发送 但未收到确认 56 P1P2P3 允许接收 B 的接收窗口向前滑动 26 27 28 29 30 31 32

34、 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 已发送确认 并交付主机 不允许 接收 56 未按序收到 A 收到新的确认号,发送窗口向前滑动 先存下,等待缺少的 数据的到达 不允许 发送 已发送并收到确认 A 的发送窗口已满,有效窗口为零 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 已发送但未收到确认 56 P1P2 P3 A 的发送窗口内的序号都已用完, 但还没有收到

35、确认,必须停止发送。 51 发送缓存发送缓存 最后被确认 的字节 发送应用程序 发送缓存 最后发送 的字节 发送窗口 TCP 序号增大 52 接收缓存接收缓存 接收应用程序 已收到 接收窗口 TCP 接收缓存 下一个读取 的字节 序号增大 下一个期望收到的 字节(确认号) 53 发送缓存与接收缓存的作用发送缓存与接收缓存的作用 n发送缓存用来暂时存放:发送缓存用来暂时存放: n发送应用程序传送给发送方发送应用程序传送给发送方 TCP 准备发送准备发送 的数据;的数据; nTCP 已发送出但尚未收到确认的数据。已发送出但尚未收到确认的数据。 n接收缓存用来暂时存放:接收缓存用来暂时存放: n按序

36、到达的、但尚未被接收应用程序读取的按序到达的、但尚未被接收应用程序读取的 数据;数据; n不按序到达的数据。不按序到达的数据。 54 内容提要内容提要 n运输层协议概述运输层协议概述 n用户数据报协议用户数据报协议UDP n传输控制协议传输控制协议TCP概述概述 n可靠传输的工作原理可靠传输的工作原理 nTCP可靠通信的具体实现可靠通信的具体实现 nTCP报文段的首部格式报文段的首部格式 nTCP连接管理连接管理 nTCP的流量控制的流量控制 nTCP的拥塞控制的拥塞控制 55 TCP报文段报文段 IP首部首部TCP首部首部TCP数据数据 20字节字节20字节字节 IP数据报数据报 TCP报文

37、段报文段 TCP数据在数据在IP数据报中的封装数据报中的封装 TCP 首部 20 字节的 固定首部 目 的 端 口 数据 偏移 检 验 和 选 项 (长 度 可 变) 源 端 口 序 号 紧 急 指 针 窗 口 确 认 号 保 留 F I N 32 位 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 首部 发送在前 TCP 报文段的首部格式 TCP 首部 20 字节 固定 首部 目 的 端 口 数据 偏移 检 验 和 选 项 (长 度 可 变 ) 源 端 口 序 号 紧 急 指

38、针 窗 口 确 认 号 保 留 F I N S Y N R S T P S H A C K U R G 位 0 8 16 24 31 填 充 源端口和目的端口字段各占 2 字节。端口是运输 层与应用层的服务接口。运输层的复用和分用功能都 要通过端口才能实现。 TCP 首部 20 字节 固定 首部 目 的 端 口 数据 偏移 检 验 和 选 项 (长 度 可 变 ) 源 端 口 序 号 紧 急 指 针 窗 口 确 认 号 保 留 F I N S Y N R S T P S H A C K U R G 位 0 8 16 24 31 填 充 序号字段占 4 字节。TCP 连接中传送的数据流 中的每一

39、个字节都编上一个序号。序号字段的值则指 的是本报文段所发送的数据的第一个字节的序号。 TCP 首部 20 字节 固定 首部 目 的 端 口 数据 偏移 检 验 和 选 项 (长 度 可 变 ) 源 端 口 序 号 紧 急 指 针 窗 口 确 认 号 保 留 F I N S Y N R S T P S H A C K U R G 位 0 8 16 24 31 填 充 确认号字段占 4 字节,是期望收到对方的下一个 报文段的数据的第一个字节的序号。 TCP 首部 20 字节 固定 首部 目 的 端 口 数据 偏移 检 验 和 选 项 (长 度 可 变 ) 源 端 口 序 号 紧 急 指 针 窗 口

40、 确 认 号 保 留 F I N S Y N R S T P S H A C K U R G 位 0 8 16 24 31 填 充 数据偏移(即首部长度)占 4 位,它指出 TCP 报文 段的数据起始处距离 TCP 报文段的起始处有多远。“数 据偏移”的单位是 32 位字(以 4 字节为计算单位)。 TCP 首部 20 字节 固定 首部 目 的 端 口 数据 偏移 检 验 和 选 项 (长 度 可 变 ) 源 端 口 序 号 紧 急 指 针 窗 口 确 认 号 保 留 F I N S Y N R S T P S H A C K U R G 位 0 8 16 24 31 填 充 保留字段占 6

41、位,保留为今后使用,但目前 应置为 0。 TCP 首部 20 字节 固定 首部 目 的 端 口 数据 偏移 检 验 和 选 项 (长 度 可 变 ) 源 端 口 序 号 紧 急 指 针 窗 口 确 认 号 保 留 F I N S Y N R S T P S H A C K U R G 位 0 8 16 24 31 填 充 紧急 URG 当 URG 1 时,表明紧急指针字 段有效。它告诉系统此报文段中有紧急数据,应尽 快传送(相当于高优先级的数据)。 TCP 首部 20 字节 固定 首部 目 的 端 口 数据 偏移 检 验 和 选 项 (长 度 可 变 ) 源 端 口 序 号 紧 急 指 针 窗

42、 口 确 认 号 保 留 F I N S Y N R S T P S H A C K U R G 位 0 8 16 24 31 填 充 确认 ACK 只有当 ACK 1 时确认号字段才 有效。当 ACK 0 时,确认号无效。 TCP 首部 20 字节 固定 首部 目 的 端 口 数据 偏移 检 验 和 选 项 (长 度 可 变 ) 源 端 口 序 号 紧 急 指 针 窗 口 确 认 号 保 留 F I N S Y N R S T P S H A C K U R G 位 0 8 16 24 31 填 充 推送 PSH (PuSH) 接收 TCP 收到 PSH = 1 的报 文段,就尽快地交付接收

43、应用进程,而不再等到整个 缓存都填满了后再向上交付。 TCP 首部 20 字节 固定 首部 目 的 端 口 数据 偏移 检 验 和 选 项 (长 度 可 变 ) 源 端 口 序 号 紧 急 指 针 窗 口 确 认 号 保 留 F I N S Y N R S T P S H A C K U R G 位 0 8 16 24 31 填 充 复位 RST (ReSeT) 当 RST 1 时,表明 TCP 连 接中出现严重差错(如由于主机崩溃或其他原因),必 须释放连接,然后再重新建立运输连接。 TCP 首部 20 字节 固定 首部 目 的 端 口 数据 偏移 检 验 和 选 项 (长 度 可 变 )

44、源 端 口 序 号 紧 急 指 针 窗 口 确 认 号 保 留 F I N S Y N R S T P S H A C K U R G 位 0 8 16 24 31 填 充 同步 SYN 同步 SYN = 1 表示这是一个连接请 求或连接接受报文。 TCP 首部 20 字节 固定 首部 目 的 端 口 数据 偏移 检 验 和 选 项 (长 度 可 变 ) 源 端 口 序 号 紧 急 指 针 窗 口 确 认 号 保 留 F I N S Y N R S T P S H A C K U R G 位 0 8 16 24 31 填 充 终止 FIN (FINis) 用来释放一个连接。FIN 1 表明此报

45、文段的发送端的数据已发送完毕,并要求释 放运输连接。 TCP 首部 20 字节 固定 首部 目 的 端 口 数据 偏移 检 验 和 选 项 (长 度 可 变 ) 源 端 口 序 号 紧 急 指 针 窗 口 确 认 号 保 留 F I N S Y N R S T P S H A C K U R G 位 0 8 16 24 31 填 充 窗口字段窗口字段 占占 2 字节,用来让对方设置发送窗口的字节,用来让对方设置发送窗口的 依据,单位为字节。依据,单位为字节。 TCP 首部 20 字节 固定 首部 目 的 端 口 数据 偏移 检 验 和 选 项 (长 度 可 变 ) 源 端 口 序 号 紧 急

46、指 针 窗 口 确 认 号 保 留 F I N S Y N R S T P S H A C K U R G 位 0 8 16 24 31 填 充 检验和 占 2 字节。检验和字段检验的范围包括 首部和数据这两部分。在计算检验和时,要在 TCP 报文段的前面加上 12 字节的伪首部。 TCP 首部 20 字节 固定 首部 目 的 端 口 数据 偏移 检 验 和 选 项 (长 度 可 变 ) 源 端 口 序 号 紧 急 指 针 窗 口 确 认 号 保 留 F I N S Y N R S T P S H A C K U R G 位 0 8 16 24 31 填 充 紧急指针字段 占 16 位,指出在

47、本报文段中紧 急数据共有多少个字节(紧急数据放在本报文段数 据的最前面)。 TCP 首部 20 字节 固定 首部 目 的 端 口 数据 偏移 检 验 和 选 项 (长 度 可 变 ) 源 端 口 序 号 紧 急 指 针 窗 口 确 认 号 保 留 F I N S Y N R S T P S H A C K U R G 比特 0 8 16 24 31 填 充 选项字段 长度可变。TCP 最初只规定了一种选 项,即最大报文段长度 MSS。MSS 告诉对方 TCP: “我的缓存所能接收的报文段的数据字段的最大长 度是 MSS 个字节。” MSS (Maximum Segment Size) 是 TC

48、P 报文段中的数据字段的最大长度。 数据字段加上 TCP 首部 才等于整个的 TCP 报文段。 72 其他选项其他选项 n窗口扩大选项窗口扩大选项 占占 3 字节,其中有一个字字节,其中有一个字 节表示移位值节表示移位值 S。新的窗口值等于。新的窗口值等于TCP 首部中首部中 的窗口位数增大到的窗口位数增大到(16 + S),相当于把窗口值,相当于把窗口值 向左移动向左移动 S 位后获得实际的窗口大小。位后获得实际的窗口大小。 n时间戳选项时间戳选项占占10 字节,其中最主要的字字节,其中最主要的字 段时间戳值字段(段时间戳值字段(4 字节)和时间戳回送回答字节)和时间戳回送回答 字段(字段(

49、4 字节)。字节)。 n选择确认选项选择确认选项若报文段未按序号到达,缺若报文段未按序号到达,缺 少一些序号的数据,此选项对正确到达的数据少一些序号的数据,此选项对正确到达的数据 进行确认,不需要重传全部数据。进行确认,不需要重传全部数据。 最多能指最多能指 明明4个字节块的边界。个字节块的边界。 TCP 首部 20 字节 固定 首部 目 的 端 口 数据 偏移 检 验 和 选 项 (长 度 可 变 ) 源 端 口 序 号 紧 急 指 针 窗 口 确 认 号 保 留 F I N S Y N R S T P S H A C K U R G 位 0 8 16 24 31 填 充 填充字段 这是为了

50、使整个首部长度是 4 字节的 整数倍。 74 内容提要内容提要 n运输层协议概述运输层协议概述 n用户数据报协议用户数据报协议UDP n传输控制协议传输控制协议TCP概述概述 n可靠传输的工作原理可靠传输的工作原理 nTCP可靠通信的具体实现可靠通信的具体实现 nTCP报文段的首部格式报文段的首部格式 nTCP连接管理连接管理 nTCP的流量控制的流量控制 nTCP的拥塞控制的拥塞控制 75 TCP连接的建立连接的建立 n采用采用三次握手三次握手(three-way handshake)方法方法 n1. 请求端请求端(通常称为客户通常称为客户)发送一个发送一个SYN为为1的的 TCP段指明客户

51、打算连接的服务器的端口,以段指明客户打算连接的服务器的端口,以 及初始序号及初始序号(ISN); n2. 服务器发回包含服务器的初始序号的服务器发回包含服务器的初始序号的SYN 报文段作为应答。同时,将确认序号设置为客报文段作为应答。同时,将确认序号设置为客 户的户的ISN加加1以对客户的以对客户的SYN报文段进行确认;报文段进行确认; n3. 客户将确认序号设置为服务器的客户将确认序号设置为服务器的ISN加加1以以 对服务器的对服务器的SYN报文段进行确认。报文段进行确认。 76 TCP连接的建立连接的建立 主机主机1主机主机2 SYN J SYN K, ack=J+1 SYN J+1, a

52、ck=K+1 SYN J SYN J, ack K+1 SYN K, ack J+1 主机主机1主机主机2 SYN K TCP连接的建立连接的建立 (a) 一般情况:一般情况:3次握手次握手(b) 同时打开:只建立同时打开:只建立1个连接个连接 77 TCP三次握手三次握手 发送发送 SYN (seq=100 SYN=1) SYN 接收接收 Host AHost B 1 78 TCP三次握手三次握手 发送发送 SYN (seq=100 SYN=1) SYN 接收接收 发送发送 SYN, ACK (seq=300 ack=101 SYN=1, ACK=1) Host AHost B SYN 接收

53、接收 1 2 79 TCP三次握手三次握手 发送发送 SYN (seq=100 SYN=1) SYN 接收接收 发送发送 SYN, ACK (seq=300 ack=101 SYN=1, ACK=1) Established (seq=101 ack=301 ACK=1) Host AHost B 1 2 3 SYN 接收接收 80 TCP连接的释放连接的释放 主机主机1主机主机2 FIN J ack=J+1 ack=K+1 FIN J ack K+1 ack J+1 主机主机1主机主机2 FIN K 采用对称释放法,通信双方必须都向对方发送FIN置1 的TCP段并得到对方的应答,连接才被释放

54、 (a) 一般情况一般情况(b) 同时关闭同时关闭 FIN K CLOSED ESTABLISHED LISTEN CLOSE_WAIT FIN_WAIT_1 SYN_RCVD FIN_WAIT_2 CLOSING TIME_WAIT SYN_SENT LAST_ACK 主动打开 被动打开 被动关闭 主动关闭 起点 被动打开 主动打开 发送 SYN 同时打开 收到 SYN,发送 SYN, ACK 收到 ACK 数据传送 阶段 关闭 发送 FIN 关闭 发送 FIN 关闭 发送 FIN 收到 RST 收到 SYN 发送 SYN, ACK 关闭 或超时 收到 ACK 收到 SYN, ACK 发送

55、ACK 收到 ACK 收到 ACK 收到 FIN 发送 ACK 收到 FIN, ACK 发送 ACK 收到 FIN 发送 ACK 同时关闭 收到 FIN 发送 ACK 发送 SYN 定时经过两倍报文段寿命后 关闭 T C P 的的 有有 限限 状状 态态 机机 82 内容提要内容提要 n运输层协议概述运输层协议概述 n用户数据报协议用户数据报协议UDP n传输控制协议传输控制协议TCP概述概述 n可靠传输的工作原理可靠传输的工作原理 nTCP可靠通信的具体实现可靠通信的具体实现 nTCP报文段的首部格式报文段的首部格式 nTCP连接管理连接管理 nTCP的流量控制的流量控制 nTCP的拥塞控制

56、的拥塞控制 83 TCP 的流量控制与拥塞控制的流量控制与拥塞控制 滑动窗口的概念滑动窗口的概念 n流量控制流量控制:让发送方的发送速率不要太快,要让接收方来:让发送方的发送速率不要太快,要让接收方来 得及接收。得及接收。 nTCP 采用大小可变的滑动窗口进行流量控制。窗口大小采用大小可变的滑动窗口进行流量控制。窗口大小 的单位是字节。的单位是字节。 n在在 TCP 报文段首部的窗口字段写入的数值就是当前给对报文段首部的窗口字段写入的数值就是当前给对 方设置的发送窗口数值的上限。方设置的发送窗口数值的上限。 n发送窗口在连接建立时由双方商定。但在通信的过程中,发送窗口在连接建立时由双方商定。但

57、在通信的过程中, 接收端可根据自己的资源情况,随时动态地调整对方的发接收端可根据自己的资源情况,随时动态地调整对方的发 送窗口上限值送窗口上限值(可增大或减小可增大或减小)。 收到确认即可前移 1002003004005006007008009001012013014015016017018011 发送窗口 可发送不可发送 指针 n发送端要发送发送端要发送 900 字节长的数据,划分为字节长的数据,划分为 9 个个 100 字节长的报文段,而发送窗口确定为字节长的报文段,而发送窗口确定为 500 字节。字节。 n发送端只要收到了对方的确认,发送窗口就可发送端只要收到了对方的确认,发送窗口就可

58、前移。前移。 n发送发送 TCP 要维护一个指针。每发送一个报文要维护一个指针。每发送一个报文 段,指针就向前移动一个报文段的距离。段,指针就向前移动一个报文段的距离。 收到确认即可前移 1002003004005006007008009001012013014015016017018011 可发送不可发送 指针 1002003004005006007008009001012013014015016017018011 发送窗口 可发送不可发送 指针发送窗口前移 n发送端已发送了发送端已发送了 400 字节的数据,但只收到对前字节的数据,但只收到对前 200 字节数据的确认,同时窗口大小不变。字

59、节数据的确认,同时窗口大小不变。 n现在发送端还可发送现在发送端还可发送 300 字节。字节。 已发送 并被确认 已发送但 未被确认 1002003004005006007008009001012013014015016017018011 已发送 并被确认 已发送但 未被确认 可发送不可发送 指针 1002003004005006007008009001012013014015016017018011 已发送 并被确认 可发送 不可 发送 指针 发送窗口前移 发送窗口缩小 n发送端收到了对方对前发送端收到了对方对前 400 字节数据的确认,但字节数据的确认,但 对方通知发送端必须把窗口减小到对

60、方通知发送端必须把窗口减小到 400 字节。字节。 n现在发送端最多还可发送现在发送端最多还可发送 400 字节的数据。字节的数据。 利用可变窗口大小进行流量控制利用可变窗口大小进行流量控制 双方确定的窗口值是双方确定的窗口值是 400 SEQ = 1 SEQ = 201 SEQ = 401 SEQ = 301 SEQ = 101 SEQ = 501 ACK = 201, WIN = 300 ACK = 601, WIN = 0 ACK = 501, WIN = 200 主机 A主机 B 允许 A 再发送 300 字节(序号 201 至 500) A 还能发送 200 字节 A 还能发送 20

温馨提示

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

评论

0/150

提交评论