




已阅读5页,还剩162页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
传输层学习目标 了解 进程相互作用的Client Server模型掌握 网络环境进程通信端口概念掌握 传输层的基本功能与服务掌握 用户数据报协议UDP掌握 传输控制协议TCP 传输层教学内容 传输层概述用户数据报协议UDP传输控制协议TCP 传输层的目标是向应用层应用程序进程之间的通信提供有效 可靠 保证质量的服务 传输层在网络分层结构中起着承上启下的作用 通过执行传输层协议 屏蔽通信子网在技术 设计上的差异和服务质量的不足 向高层提供一个标准的 完善的通信服务 从通信和信息处理的角度看 应用层是面向信息处理的 而传输层是为应用层提供通信服务的 可靠是指传输层要处理并隔离低层的错误 透明是指高层用户不涉及端对端间通信的任何细节 传输层概述 传输层概述 当网络的边缘部分中的两个主机使用网络的核心部分的功能进行端到端的通信时 只有位于网络边缘部分的主机的协议栈才有运输层 而网络核心部分中的路由器在转发分组时都只用到下三层的功能 传输层概述 传输协议数据单元传输层之间传输的报文叫做传输协议数据单元 TransportProtocolDataUnit TPDU TPDU有效载荷是应用层的数据 传输层概述 传输层地址的作用 运输层为相互通信的应用进程提供了逻辑通信 54321 运输层提供应用进程间的逻辑通信 主机A 主机B 应用进程 应用进程 路由器1 路由器2 AP1 LAN2 WAN AP2 AP3 AP4 IP层 LAN1 AP1 AP2 AP4 端口 端口 54321 IP协议的作用范围 运输层协议TCP和UDP的作用范围 AP3 运输层协议和网络层协议的主要区别 应用进程 应用进程 IP协议的作用范围 提供主机之间的逻辑通信 TCP和UDP协议的作用范围 提供进程之间的逻辑通信 因特网 传输层概述 1 传输层功能建立 维护 拆除端到端的连接端到端连接有的很简单 有的非常复杂传输层实体的结合叫TC传输连接和网络层连接的区别柔性平台传输层适应低层变化 低层复杂 传输层弱 低层简单 传输层强流量控制显式 网络层流控解决不了 传输层流控解决隐式 低层服务质量好 依靠网络层 传输层概述 连接处理低层优 多个TC复用一个LC 复用 解复用低层次 一个TC分解到多个LC上 分流 合流数据处理低层强 数据拼接 分割低层弱 数据分段 合段支持正常 快速数据流故障检测与恢复 传输层概述 差错控制差错控制层次 DL CRC 反馈 超时重发 编号N 没有T 一定要 没有发现的差错 涌在端口机上需在T层一网打尽 两类数据错残留错 低层发生 没有查出的错误 TL数据包丢失TR数据重复TE差错分组可通知错 N层检出 但克服不了 通知T层 如流控失效 N通知T层 传输层概述 2 传输层服务和协议无连接服务 用户数据报协议UDP服务特点UDP用户数据报与IP数据报的差别面向连接的服务 传输控制协议TCP服务特点TCP连接与网络层连接服务 X 25 的差别面向的含义 TCP协议与其他协议的层次关系 传输层概述 15 运输服务和协议 在运行不同主机上应用进程之间提供逻辑通信运输协议运行在端系统中发送方 将应用报文划分为段 传向网络层接收方 将段重新装配为报文 传向应用层应用可使用的运输协议不止一个因特网 TCP和UDP 传输层概述 服务质量服务质量在通信之前由通信双方通过磋商确定具体量化的质量参数 主要有 连接建立延迟 连接释放延迟连接建立 释放失败概率传输时延吞吐率残留误码率传输失败概率 连接建立延迟从传输服务用户要求建立连接到收到连接确认之间所经历的时间 它包括了远端传输实体的处理延迟 连接建立延迟越短 服务质量越好 连接建立失败的概率在最大连接建立延迟时间内 连接未能建立的可能性 由于网络拥塞 缺少缓冲区或其他原因造成的失败 传输层概述 吞吐率吞吐率是在某个时间间隔内测得的每秒钟传输的用户数据的字节数 每个传输方向分别用各自的吞吐率来衡量 传输延迟传输延迟是指从源主机传输用户发送报文开始到目的主机传输用户接收到报文为止的时间 每个方向的传输延迟是不同的 传输层概述 残余误码率残余误码率用于测量丢失或乱序的报文数占整个发送的报文数的百分比 理论上残余误码率应为零 实际上它可能是一较小的值 安全保护安全保护为传输用户提供了传输层的保护 以防止未经授权的第三方读取或修改数据 传输层概述 优先级为传输用户提供用以表明哪些连接更为重要的方法 当发生拥塞事件时 确保高优先级的连接先获得服务 恢复功能当出现内部问题或拥塞情况下 传输层本身自发终止连接的可能性 传输层概述 关于传输层服务质量参数的使用 服务质量参数是传输用户在请求建立连接时设定的 表明希望值和最小可接受的值 传输层通过检查服务质量参数可以立即发现其中某些值是无法达到的 传输层可以不去与目的主机连接 而直接通知传输用户连接请求失败与失败的原因 有些情况下 传输层发现不能达到用户希望的质量参数 但可以达到稍微低一些的要求 然后再请求建立连接 并非所有的传输连接都需要提供所有的参数 大多数仅仅是要求残余误码 而其他参数则是为了完善服务质量而设置的 传输层概述 3 网络环境中分布式进程通信的基本概念主机通信实际上是两个主机中的应用进程互相通信 用户共享网络资源及网络所提供的服务功能通过网络环境中的分布式进程通信实现 传输层概述 单机系统中的进程通信方法进程和进程通信是操作系统中的一个最基本的概念 程序是静态的 表示程序设计者要求计算机完成功能应采取的操作顺序 进程是动态的 是程序的执行过程或者说是运行着的程序 具有并发性 是分配计算机资源的基本单位 统一由一个调度程序控制和管理 进程执行过程中有就绪 运行 阻塞等状态 这些状态随着进程的执行与外部条件的变化而发生转换 进程状态反映出进程执行过程的变化 在一台计算机中 不同的进程用进程号或进程标识 processID 惟一地标识出来 传输层概述 由于进程并发执行和共享资源的要求 进程运行中相互存在互斥和同步的关系从进程的观点看 操作系统的核心则是控制和协调这些进程的运行 解决进程之间的通信 目前的进程通信机制包括消息 缓冲区 管道和信号量等机制 传输层概述 网络环境进程通信特点网络中主机的高度自治性 不是在同一个主机系统之中 没有一个统一的高层进行控制与管理 一台主机对其他主机的以下信息一概无从知道 活动状态 位于其他主机系统中的各个进程状态 这些进程什么时间参与网络活动 希望与网络中哪一台主机的什么进程通信 传输层概述 网络环境中的分布式进程通信必须解决三个主要问题 进程命名与寻址方法多重协议的识别进程间相互作用的模式 传输层概述 网络环境中进程标识在一台计算机中 不同的进程用进程号或进程标识 processID 惟一地标识出来 网络环境中进程地址也叫做端口号 portnumber 是TCP及UDP协议与应用程序连接的访问点 端口号在主机中是惟一的 可作为网络环境中进程标识 网络环境中完整的进程标识应该是 本地主机地址 本地进程标识 远程主机地址 远程进程标识 传输层概述 多重协议的识别TCP IP的传输层就有TCP协议和UDP协议 网络环境中一个进程的全网惟一的标识需要一个三元组来表示 协议 本地地址 本地端口号 网络环境中一个完整的进程通信标识需要一个五元组来表示 协议本地地址本地端口号远地地址远地端口号 传输层概述 进程间相互作用模式 Client Server模型网络环境中进程通信要解决的进程间相互作用的模式在TCP IP协议体系中 进程间的相互作用采用客户 服务器 Client Server 模型客户与服务器分别表示相互通信的两个应用程序的进程客户向服务器发出服务请求 服务器响应客户的请求 提供客户机所需要的网络服务 传输层概述 客户 一次进程通信中发起的一方 服务器 接受进程通信的请求 提供服务的一方 每一次通信由客户进程随机启动 服务器进程处于等待状态 及时响应客户服务请求 传输层概述 为什么要采用客户机 服务器模型 网络资源分布的不均匀性表现在硬件 软件和数据等三个方面网络资源分布的不均匀性是客观存在的 同时也是网络应用系统设计者的设计思想的体现 资源共享 就是因为网络不同结点之间在硬件配置 计算能力 存储能力 以及数据分布等方面存在着差距与不均匀性能力强 资源丰富的充当服务器 能力弱或需要某种资源的成为客户 传输层概述 网络环境中进程通信的异步性分布在不同主机系统中的进程什么时间发出通信请求 希望和哪一台主机的哪一个进程通信 以及对方进程是否能接受通信请求是不确定的 网络分布式进程之间不存在一个高层的调度与协调 必须要建立一个体制 为准备通信的进程之间建立起连接 在进程交换数据的过程中维护连接 为数据交换提供同步 传输层概述 进程通信中Client Server模型实现方法客户机 服务器模型的工作实质是 请求驱动 在网络环境中 客户进程发出请求完全随机 在同一个时刻 可能有多个客户进程向一个服务器发出服务请求 为了实现服务器的功能 在服务器的设计中要解决服务器的 并发请求处理能力并发服务器的进程标识服务器安全 传输层概述 解决服务器处理并发请求的基本方案 设计一个并发服务器采用重复服务器的方法重复服务器 interativeserver 通过设置一个请求队列来存储客户机的服务请求 服务器采用先来先服务的原则来顺序处理客户机的服务请求 传输层概述 并发服务器 concurrentserver 并发服务器的核心是使用一个守护程序 daemon 守护程序在系统启动的时候随之启动 在没有客户的服务请求到达时 并发服务器处于等待状态 一旦客户机的服务请求到达 服务器根据客户的服务请求的进程号 去激活相应的子进程 而服务器回到等待状态 并发服务器叫做主服务器 master 把子服务器叫做从服务器 slave 主服务器必须拥有一个全网公认的进程地址 网络中的客户进程可以根据服务器进程的公认地址 向服务器提出服务请求 传输层概述 客户与并发服务器建立传输连接的过程 传输层概述 比较 并发服务器 并发服务器可以处理多个客户的服务请求 从服务器不依赖主服务器而独立处理客户服务请求 不同的从服务器可以分别处理不同的客户的服务请求 系统的实时性好 重复服务器 处理客户的服务请求的数量受到请求队列长度的限制 但可以有效地控制请求处理的时间并发服务器适应于面向连接的服务类型 重复服务器适应于无连接的服务类型 传输层概述 传输层概述 4 TCP IP的端口概念端口 16位地址 标识进行通信的进程 是运输层的服务访问点 插口 T层连接的端点 用IP地址 端口表示 插口的任意部分变化表示不同的连接 端口分类熟知端口 TCP IP体系公布 标识一些常用的应用层服务如TELNET23 FTP21 SMTP25 HTTP80 DNS53等 0 1023 注册端口 登记 固定服务使用动态端口 连接时随机产生 传输层教学内容 传输层概述用户数据报协议UDP传输控制协议TCP 1 UDP协议的主要特点 UDP是一种无连接的 不可靠的传输层协议 在完成进程到进程的通信中提供了有限的差错检验功能 设计比较简单的UDP协议的目的是希望以最小的开销来达到网络环境中的进程通信目的 进程发送的报文较短 同时对报文的可靠性要求不高 那么可以使用UDP协议 UDP没有拥塞控制 适于实时应用 用户数据报协议UDP 2 UDP的基本工作过程 UDP用户数据报传输过程中的封装与拆封 用户数据报协议UDP UDP报文传输队列 用户数据报协议UDP UDP的复用和分用 用户数据报协议UDP 3 UDP端口号 TCP IP协议族中用端口号来标识进程 端口号是在0到65535之间的整数 客户程序随机选取临时端口号 每一种服务器程序被分配了确定的全局一致的熟知端口号 每一个客户进程都知道相应的服务器进程的熟知端口号 用户数据报协议UDP UDP使用的熟知端口号 用户数据报协议UDP 4 UDP数据报格式 用户数据报协议UDP UDP检验和的检验范围 伪头部UDP头应用层数据 用户数据报协议UDP UDP检验和的讨论 为什么包括伪首部为什么采用检验和而不用CRC 用户数据报协议UDP 伪首部 源端口 目的端口 长度 检验和 数据 首部 UDP长度 源IP地址 目的IP地址 0 17 IP数据报 字节 4 4 1 1 2 12 2 2 2 2 字节 发送在前 数据 首部 UDP用户数据报 在计算检验和时 临时把 伪首部 和UDP用户数据报连接在一起 伪首部仅仅是为了计算检验和 计算UDP检验和的例子 1001100100010011 153 190000100001101000 8 1041010101100000011 171 30000111000001011 14 110000000000010001 0和170000000000001111 150000010000111111 10870000000000001101 130000000000001111 150000000000000000 0 检验和 0101010001000101 数据0101001101010100 数据0100100101001110 数据0100011100000000 数据和0 填充 1001011011101101 求和得出的结果0110100100010010 检验和 153 19 8 104 171 3 14 11 12字节伪首部 8字节UDP首部 7字节数据 按二进制反码运算求和将得出的结果求反码 全0171510871315全0数据数据数据数据数据数据数据全0 1 TCP协议的主要特点TCP是一种面向连接的 可靠的传输层协议 TCP协议建立在不可靠的网络层IP协议之上 IP不能提供任何可靠性机制 TCP的可靠性完全由自己实现 每个报文包含一个20字节的头 选项部分另加 和0个或多个数据字节 段的大小必须首先满足65535字节的IP包数据净荷长度限制 还要满足数据链路层最大传输单元 MTU 的限制 比如以太网的MTU为1500字节 传输控制协议TCP 传输层连接和数据链路层连接的比较 不同点 环境分组存储连接数目复杂性相似点 窗口顺序传输流量控制差错控制 传输控制协议TCP 53 全双工数据 同一连接上的双向数据流MSS 最大报文段长度MTU 最大传输单元面向连接 在进行数据交换前 初始化发送方与接收方状态 进行握手 交换控制信息 流量控制 发送方不能淹没接收方拥塞控制 抑止发送方速率来防止过分占用网络资源 端到端 一个发送方 一个接收方连接状态与端系统有关 不为路由器所知可靠 有序的字节流 没有 报文边界 流水线 TCP拥塞和流量控制设置滑动窗口协议发送和接收缓冲区 传输控制协议TCP TCP面向流的概念 发送TCP报文段 发送方 接收方 把字节写入发送缓存 从接收缓存读取字节 应用进程 应用进程 18 17 16 15 14 H 加上TCP首部构成TCP报文段 TCP TCP 字节流 字节流 H 表示TCP报文段的首部 x 表示序号为x的数据字节 TCP连接 TCP常用的熟知端口号 传输控制协议TCP TCP首部 20字节的固定首部 目的端口 数据偏移 检验和 选项 长度可变 源端口 序号 紧急指针 窗口 确认号 保留 FIN 32位 SYN RST PSH ACK URG 位08162431 填充 TCP数据部分 TCP首部 TCP报文段 IP数据部分 IP首部 发送在前 2 TCP报文结构 传输控制协议TCP TCP首部 20字节固定首部 目的端口 数据偏移 检验和 选项 长度可变 源端口 序号 紧急指针 窗口 确认号 保留 FIN SYN RST PSH ACK URG 位08162431 填充 源端口和目的端口字段 各占2字节 端口是运输层与应用层的服务接口 运输层的复用和分用功能都要通过端口才能实现 TCP首部 20字节固定首部 目的端口 数据偏移 检验和 选项 长度可变 源端口 序号 紧急指针 窗口 确认号 保留 FIN SYN RST PSH ACK URG 位08162431 填充 序号字段 占4字节 TCP连接中传送的数据流中的每一个字节都编上一个序号 序号字段的值则指的是本报文段所发送的数据的第一个字节的序号 TCP首部 20字节固定首部 目的端口 数据偏移 检验和 选项 长度可变 源端口 序号 紧急指针 窗口 确认号 保留 FIN SYN RST PSH ACK URG 位08162431 填充 确认号字段 占4字节 是期望收到对方的下一个报文段的数据的第一个字节的序号 TCP首部 20字节固定首部 目的端口 数据偏移 检验和 选项 长度可变 源端口 序号 紧急指针 窗口 确认号 保留 FIN SYN RST PSH ACK URG 位08162431 填充 数据偏移 即首部长度 占4位 它指出TCP报文段的数据起始处距离TCP报文段的起始处有多远 数据偏移 的单位是32位字 以4字节为计算单位 TCP首部 20字节固定首部 目的端口 数据偏移 检验和 选项 长度可变 源端口 序号 紧急指针 窗口 确认号 保留 FIN SYN RST PSH ACK URG 位08162431 填充 保留字段 占6位 保留为今后使用 但目前应置为0 TCP首部 20字节固定首部 目的端口 数据偏移 检验和 选项 长度可变 源端口 序号 紧急指针 窗口 确认号 保留 FIN SYN RST PSH ACK URG 位08162431 填充 紧急URG 当URG 1时 表明紧急指针字段有效 它告诉系统此报文段中有紧急数据 应尽快传送 相当于高优先级的数据 TCP首部 20字节固定首部 目的端口 数据偏移 检验和 选项 长度可变 源端口 序号 紧急指针 窗口 确认号 保留 FIN SYN RST PSH ACK URG 位08162431 填充 确认ACK 只有当ACK 1时确认号字段才有效 当ACK 0时 确认号无效 TCP首部 20字节固定首部 目的端口 数据偏移 检验和 选项 长度可变 源端口 序号 紧急指针 窗口 确认号 保留 FIN SYN RST PSH ACK URG 位08162431 填充 推送PSH PuSH 接收TCP收到PSH 1的报文段 就尽快地交付接收应用进程 而不再等到整个缓存都填满了后再向上交付 TCP首部 20字节固定首部 目的端口 数据偏移 检验和 选项 长度可变 源端口 序号 紧急指针 窗口 确认号 保留 FIN SYN RST PSH ACK URG 位08162431 填充 复位RST ReSeT 当RST 1时 表明TCP连接中出现严重差错 如由于主机崩溃或其他原因 必须释放连接 然后再重新建立运输连接 TCP首部 20字节固定首部 目的端口 数据偏移 检验和 选项 长度可变 源端口 序号 紧急指针 窗口 确认号 保留 FIN SYN RST PSH ACK URG 位08162431 填充 同步SYN 同步SYN 1表示这是一个连接请求或连接接受报文 TCP首部 20字节固定首部 目的端口 数据偏移 检验和 选项 长度可变 源端口 序号 紧急指针 窗口 确认号 保留 FIN SYN RST PSH ACK URG 位08162431 填充 终止FIN FINis 用来释放一个连接 FIN 1表明此报文段的发送端的数据已发送完毕 并要求释放运输连接 TCP首部 20字节固定首部 目的端口 数据偏移 检验和 选项 长度可变 源端口 序号 紧急指针 窗口 确认号 保留 FIN SYN RST PSH ACK URG 位08162431 填充 窗口字段 占2字节 用来让对方设置发送窗口的依据 单位为字节 TCP首部 20字节固定首部 目的端口 数据偏移 检验和 选项 长度可变 源端口 序号 紧急指针 窗口 确认号 保留 FIN SYN RST PSH ACK URG 位08162431 填充 检验和 占2字节 检验和字段检验的范围包括首部和数据这两部分 在计算检验和时 要在TCP报文段的前面加上12字节的伪首部 TCP首部 20字节固定首部 目的端口 数据偏移 检验和 选项 长度可变 源端口 序号 紧急指针 窗口 确认号 保留 FIN SYN RST PSH ACK URG 位08162431 填充 紧急指针字段 占16位 指出在本报文段中紧急数据共有多少个字节 紧急数据放在本报文段数据的最前面 TCP首部 20字节固定首部 目的端口 数据偏移 检验和 选项 长度可变 源端口 序号 紧急指针 窗口 确认号 保留 FIN SYN RST PSH ACK URG 比特08162431 填充 选项字段 长度可变 TCP最初只规定了一种选项 即最大报文段长度MSS MSS告诉对方TCP 我的缓存所能接收的报文段的数据字段的最大长度是MSS个字节 MSS MaximumSegmentSize 是TCP报文段中的数据字段的最大长度 数据字段加上TCP首部才等于整个的TCP报文段 其他选项 窗口扩大选项 占3字节 其中有一个字节表示移位值S 新的窗口值等于TCP首部中的窗口位数增大到 16 S 相当于把窗口值向左移动S位后获得实际的窗口大小 时间戳选项 占10字节 其中最主要的字段时间戳值字段 4字节 和时间戳回送回答字段 4字节 选择确认选项 接收窗口内但失序报文的选择确认 发送方可以只发送出错的报文 TCP首部 20字节固定首部 目的端口 数据偏移 检验和 选项 长度可变 源端口 序号 紧急指针 窗口 确认号 保留 FIN SYN RST PSH ACK URG 位08162431 填充 填充字段 这是为了使整个首部长度是4字节的整数倍 3 滑动窗口的理解 前移 不允许发送 已发送并收到确认 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给出的窗口值A构造出自己的发送窗口 TCP标准强烈不赞成发送窗口前沿向后收缩 传输控制协议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 P1 P2 P3 不允许接收 已发送确认并交付主机 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 54 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 P1 P2 P3 允许接收 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 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 P1 P2 P3 A的发送窗口内的序号都已用完 但还没有再收到确认 必须停止发送 发送缓存 最后被确认的字节 发送应用程序 发送缓存 最后发送的字节 发送窗口 已发送 TCP 序号增大 接收缓存 接收应用程序 已收到 接收窗口 TCP 接收缓存 下一个读取的字节 序号增大 下一个期望收到的字节 确认号 发送缓存与接收缓存的作用 发送缓存用来暂时存放 发送应用程序传送给发送方TCP准备发送的数据 TCP已发送出但尚未收到确认的数据 接收缓存用来暂时存放 按序到达的 但尚未被接收应用程序读取的数据 不按序到达的数据 需要强调三点 A的发送窗口并不总是和B的接收窗口一样大 因为有一定的时间滞后 TCP标准没有规定对不按序到达的数据应如何处理 通常是先临时存放在接收窗口中 等到字节流中所缺少的字节收到后 再按序交付上层的应用进程 TCP要求接收方必须有累积确认的功能 这样可以减小传输开销 82 4 TCP的控制机制 1 编号与确认单位对字节编号 将TCP报文解释为字节流 报文段中第1个数据字节在字节流中的位置编号长度32位 保证旧的同号分组在序号循环之前早已消失 重复序号 收到的旧分组没上交之前 又收到下一轮同编号分组 32位编码 意味着传送4GB字节后 才可能出现相同编号 受分组寿命的影响 分组不可能在网络中保持4GB数据传输的时间 相同序号分组循环回来之前 旧同号分组早已上交 捎带确认全双工系统集中确认 提高网络传输效率发方超时重发 收方收到差错报文 丢弃等待 不发送否认报文 收到重复报文 丢弃 发确认 未按序到达的报文处理方法没有规定 可能缓存或丢弃 传输控制协议TCP 83 传输策略和算法 TCP如何决定发送报文段的时机 三种机制 维持一个变量 值等于MSS 发送缓存中的数据达到MSS就发送发端应用程序指明要求发送报文段PUSH发送计时器差错控制特点反馈 超时重发 编号滑动窗口为0时 不能再发送数据 两种特殊情况例外 紧急数据可以发送 终止远端进程kill 可以发送一个字节的数据段 通知接收方重新声明它希望接收的下一字节及窗口大小 防止窗口声明丢失出现死锁情况 传输控制协议TCP 84 如何改进传输层的性能 策略1 发送方缓存应用程序的数据 等到形成一个比较大的段再发出 策略2 在没有可能进行 捎带 的情况下 接收方延迟发送确认段 策略3 使用Nagle算法 当应用程序每次向传输实体发出一个字节时 传输实体发出第一个字节并缓存所有其后的字节直至收到对第一个字节的确认 然后将已缓存的所有字节组段发出并对再收到的字节缓存 直至收到下一个确认 传输控制协议TCP 85 傻窗口症状 sillywindowsyndrome 传输控制协议TCP 86 策略4 使用Clark算法解决傻窗口症状 sillywindowsyndrome 傻窗口症状 当应用程序一次从传输层实体读出一个字节时 传输层实体会产生一个一字节的窗口更新段 使得发送方只能发送一个字节 解决办法 限制收方只有在具备一半的空缓存或最大段长的空缓存时 才产生一个窗口更新段 传输控制协议TCP 87 2 流量与拥塞控制流量控制 发送方不能发送太多 太快的数据让接收方缓冲区溢出的技术 显式流控有进行流控的相应字段设置和控制机制可变发送窗口 收方为主控制 发送端的发送窗口 总是和接收窗口保持一致窗口大小是字节 连接建立时双方商定 通信过程中 收端可根据资源情况随时动态调整接收窗口 并告知对方 使发送窗口保持一致 与DL层窗口不同 传输控制协议TCP 88 TCP连接的接收方有1个接收缓冲区 匹配速度服务 发送速率需要匹配接收方应用程序的提取速率 应用进程可能从接收缓冲区读数据缓慢 传输控制协议TCP TCP窗口概念 传输控制协议TCP 窗口与TCP的流量控制 传输控制协议TCP 窗口与TCP的流量控制 seq 1 DATA seq 201 DATA seq 401 DATA seq 301 DATA seq 101 DATA seq 201 DATA seq 501 DATA ACK 1 ack 201 rwnd 300 ACK 1 ack 601 rwnd 0 ACK 1 ack 501 rwnd 100 A B 允许A发送序号201至500共300字节 A发送了序号101至200 还能发送200字节 A发送了序号301至400 还能再发送100字节新数据 A发送了序号1至100 还能发送300字节 A发送了序号401至500 不能再发送新数据了 A超时重传旧的数据 但不能发送新的数据 允许A发送序号501至600共100字节 A发送了序号501至600 不能再发送了 不允许A再发送 到序号600为止的数据都收到了 丢失 流量控制举例 A向B发送数据 在连接建立时 B告诉A 我的接收窗口rwnd 400 字节 拥塞控制的一般原理 在某段时间 若对网络中某资源的需求超过了该资源所能提供的可用部分 网络的性能就要变坏 产生拥塞 congestion 出现资源拥塞的条件 对资源需求的总和 可用资源 5 7 若网络中有许多资源同时产生拥塞 网络的性能就要明显变坏 整个网络的吞吐量将随输入负荷的增大而下降 拥塞控制与流量控制的关系 拥塞控制所要做的都有一个前提 就是网络能够承受现有的网络负荷 拥塞控制是一个全局性的过程 涉及到所有的主机 所有的路由器 以及与降低网络传输性能有关的所有因素 流量控制往往指在给定的发送端和接收端之间的点对点通信量的控制 流量控制所要做的就是抑制发送端发送数据的速率 以便使接收端来得及接收 拥塞控制所起的作用 提供的负载 吞吐量 0 拥塞控制的一般原理 拥塞控制是很难设计的 因为它是一个动态的 而不是静态的 问题 当前网络正朝着高速化的方向发展 这很容易出现缓存不够大而造成分组的丢失 但分组的丢失是网络发生拥塞的征兆而不是原因 在许多情况下 甚至正是拥塞控制本身成为引起网络性能恶化甚至发生死锁的原因 这点应特别引起重视 开环控制和闭环控制 开环控制方法就是在设计网络时事先将有关发生拥塞的因素考虑周到 力求网络在工作时不产生拥塞 闭环控制是基于反馈环路的概念 属于闭环控制的有以下几种措施 监测网络系统以便检测到拥塞在何时 何处发生 将拥塞发生的信息传送到可采取行动的地方 调整网络系统的运行以解决出现的问题 98 拥塞控制拥塞 非正式地 太多的源发送太多太快的数据 使网络来不及处理 网络中的前10大问题之一 表现 丢包 路由器缓冲区溢出 长时延 路由器缓冲区中排队 控制拥塞的两类方法 网络辅助的拥塞控制 路由器为端系统提供反馈 端到端的拥塞控制 不能从网络得到明确的反馈 端系统根据观察到的时延和丢失现象推断出拥塞 TCP协议的拥塞控制 99 TCP的拥塞控制 端到端 双窗口机制发送窗口 Min 通知窗口 拥塞窗口 通知窗口 流控窗口 通知窗口 拥塞窗口 发送方根据拥塞状况控制发送数据量的窗口特点 端到端控制 没有网络辅助 发送方限制传输拥塞窗口是动态的 具有感知到网络拥塞的函数 不考虑流控 传输控制协议TCP 100 为什么需要拥塞窗口TCP算法的前提传输错误造成分组丢失少 大部分是拥塞造成的 定时器超时是拥塞出现的信号网络的容量和接收方的容量 流控不仅仅是使接收方来得及接收 有时限制条件是网络内部的容量 传输控制协议TCP 101 发送方如何感知网络拥塞 丢失事件 超时或者3个重复ACK发生丢失事件后 TCP发送方降低速率 拥塞窗口 三个机制 慢启动拥塞避免加增倍减算法AIMD拥塞控制参数 窗口门限值ssthresh 拥塞窗口cwnd拥塞控制算法条件 TCP每个报文段1MSS 收方对每个报文段发确认 接收方流控窗口足够大 发送窗口只受拥塞窗口制约 传输控制协议TCP 102 慢启动在连接开始时 拥塞窗口值 1MSS设置阈值 门限值ssthresh 每收到ACK 拥塞窗口加1当拥塞窗口 窗口门限值 进入拥塞避免阶段当出现超时 新窗口门限值 拥塞窗口的一半 新拥塞窗口值 1MSS 重复慢启动过程总结 初始速率很低 但以指数很快地增加 传输控制协议TCP 每RTT 轮次 倍增拥塞窗口值希望尽快达到期待的速率速率呈指数式上升 发送方 接收方 发送M1 确认M1 发送M2 M3 确认M2 M3 发送M4 M7 确认M4 M7 cwnd 1 cwnd 2 cwnd 4 发送M8 M15 cwnd 8 t t 发送方每收到一个对新报文段的确认 重传的不算在内 就使cwnd加1 轮次1 轮次2 轮次3 传输轮次 transmissionround 使用慢开始算法后 每经过一个传输轮次 拥塞窗口cwnd就加倍 一个传输轮次所经历的时间其实就是往返时间RTT 传输轮次 更加强调 把拥塞窗口cwnd所允许发送的报文段都连续发送出去 并收到了对已发送的最后一个字节的确认 例如 拥塞窗口cwnd 4 这时的往返时间RTT就是发送方连续发送4个报文段 并收到这4个报文段的确认 总共经历的时间 105 拥塞避免每经过一个RTT 拥塞窗口加1当出现超时 新窗口门限值 拥塞窗口的一半 新拥塞窗口值 1MSS 重复慢启动过程总结 拥塞窗口线性增长 避免网络再次出现拥塞加性增 加法增大 如没有检测到超时事件 每个RTT时间拥塞窗口值增加一个MSS 最大报文段长度 倍性减 乘法减少 超时后 拥塞窗口门限值减半 总结 若频繁超时 门限窗口值减少速度很快 传输控制协议TCP 门限状态变量ssthresh 慢开始门限ssthresh的用法如下 当cwndssthresh时 停止使用慢开始算法而改用拥塞避免算法 当cwnd ssthresh时 既可使用慢开始算法 也可使用拥塞避免算法 拥塞避免算法的思路是让拥塞窗口cwnd缓慢地增大 即每经过一个往返时间RTT就把发送方的拥塞窗口cwnd加1 而不是加倍 使拥塞窗口cwnd按线性规律缓慢增长 当网络出现拥塞时 无论在慢开始阶段还是在拥塞避免阶段 只要发送方判断网络出现拥塞 其根据就是没有按时收到确认 就要把慢开始门限ssthresh设置为出现拥塞时的发送方窗口值的一半 但不能小于2 然后把拥塞窗口cwnd重新设置为1 执行慢开始算法 这样做的目的就是要迅速减少主机发送到网络中的分组数 使得发生拥塞的路由器有足够时间把队列中积压的分组处理完毕 108 问题 什么时候从指数增长转变为线性增长 传输控制协议TCP 22 16 慢开始和拥塞避免算法的实现举例 当TCP连接进行初始化时 将拥塞窗口置为1 图中的窗口单位不使用字节而使用报文段 慢开始门限的初始值设置为16个报文段 即ssthresh 16 乘法减小 2 4 6 8 10 12 14 16 18 20 0 0 4 8 12 20 24 拥塞窗口cwnd 新的ssthresh值 网络拥塞 指数规律增长 ssthresh的初始值 慢开始 慢开始 慢开始 拥塞避免 加法增大 拥塞避免 加法增大 传输轮次 慢开始和拥塞避免算法的实现举例 发送端的发送窗口不能超过拥塞窗口cwnd和接收端窗口rwnd中的最小值 我们假定接收端窗口足够大 因此现在发送窗口的数值等于拥塞窗口的数值 22 16 乘法减小 2 4 6 8 10 12 14 16 18 20 0 0 4 8 12 20 24 拥塞窗口cwnd 新的ssthresh值 网络拥塞 指数规律增长 ssthresh的初始值 慢开始 慢开始 慢开始 拥塞避免 加法增大 拥塞避免 加法增大 传输轮次 慢开始和拥塞避免算法的实现举例 在执行慢开始算法时 拥塞窗口cwnd的初始值为1 发送第一个报文段M0 22 16 乘法减小 2 4 6 8 10 12 14 16 18 20 0 0 4 8 12 20 24 拥塞窗口cwnd 新的ssthresh值 网络拥塞 指数规律增长 ssthresh的初始值 慢开始 慢开始 拥塞避免 加法增大 拥塞避免 加法增大 传输轮次 慢开始和拥塞避免算法的实现举例 发送端每收到一个确认 就把cwnd加1 于是发送端可以接着发送M1和M2两个报文段 22 16 乘法减小 2 4 6 8 10 12 14 16 18 20 0 0 4 8 12 20 24 拥塞窗口cwnd 新的ssthresh值 网络拥塞 指数规律增长 ssthresh的初始值 慢开始 慢开始 慢开始 拥塞避免 加法增大 拥塞避免 加法增大 传输轮次 慢开始和拥塞避免算法的实现举例 接收端共发回两个确认 发送端每收到一个对新报文段的确认 就把发送端的cwnd加1 现在cwnd从2增大到4 并可接着发送后面的4个报文段 22 16 乘法减小 2 4 6 8 10 12 14 16 18 20 0 0 4 8 12 20 24 拥塞窗口cwnd 新的ssthresh值 网络拥塞 指数规律增长 ssthresh的初始值 慢开始 慢开始 慢开始 拥塞避免 加法增大 拥塞避免 加法增大 传输轮次 慢开始和拥塞避免算法的实现举例 发送端每收到一个对新报文段的确认 就把发送端的拥塞窗口加1 因此拥塞窗口cwnd随着传输轮次按指数规律增长 22 16 乘法减小 2 4 6 8 10 12 14 16 18 20 0 0 4 8 12 20 24 拥塞窗口cwnd 新的ssthresh值 网络拥塞 指数规律增长 ssthresh的初始值 慢开始 慢开始 慢开始 拥塞避免 加法增大 拥塞避免 加法增大 传输轮次 慢开始和拥塞避免算法的实现举例 当拥塞窗口cwnd增长到慢开始门限值ssthresh时 即当cwnd 16时 就改为执行拥塞避免算法 拥塞窗口按线性规律增长 22 16 乘法减小 2 4 6 8 10 12 14 16 18 20 0 0 4 8 12 20 24 拥塞窗口cwnd 新的ssthresh值 网络拥塞 指数规律增长 ssthresh的初始值 慢开始 慢开始 慢开始 拥塞避免 加法增大 拥塞避免 加法增大 传输轮次 22 16 乘法减小 2 4 6 8 10 12 14 16 18 20 0 0 4 8 12 20 24 拥塞窗口cwnd 新的ssthresh值 网络拥塞 指数规律增长 ssthresh的初始值 慢开始 慢开始 慢开始 拥塞避免 加法增大 拥塞避免 加法增大 慢开始和拥塞避免算法的实现举例 假定拥塞窗口的数值增长到24时 网络出现超时 表明网络拥塞了 传输轮次 22 16 乘法减小 2 4 6 8 10 12 14 16 18 20 0 0 4 8 12 20 24 拥塞窗口cwnd 新的ssthresh值 网络拥塞 指数规律增长 ssthresh的初始值 慢开始 慢开始 慢开始 拥塞避免 加法增大 拥塞避免 加法增大 慢开始和拥塞避免算法的实现举例 更新后的ssthresh值变为12 即发送窗口数值24的一半 拥塞窗口再重新设置为1 并执行慢开始算法 传输轮次 22 16 乘法减小 2 4 6 8 10 12 14 16 18 20 0 0 4 8 12 20 24 拥塞窗口cwnd 新的ssthresh值 网络拥塞 指数规律增长 ssthresh的初始值 慢开始 慢开始 慢开始 拥塞避免 加法增大 拥塞避免 加法增大 慢开始和拥塞避免算法的实现举例 当cwnd 12时改为执行拥塞避免算法 拥塞窗口按按线性规律增长 每经过一个往返时延就增加一个MSS的大小 传输轮次 119 问题 TCP连接等待重传计时器的超时会空闲较长的时间 超时处理后 拥塞窗口值回到1 使窗口恢复较慢 改进 快重传 收到连续的3个相同ACK时应立即重传丢失的报文 不必再等待计时器超时 快恢复 收到连续的3个相同ACK时 按照超时算法调整门限值拥塞窗口值调整为门限值 3MSS重复ACK为n个 拥塞窗口值调整为门限值 n3MSS发送窗口允许 按照拥塞避免算法继续发送收到新报文段的ACK 将拥塞窗口值缩小到门限值 传输控制协议TCP 快重传举例 发送方 接收方 发送M1 确认M1 t 确认M2 发送M2 发送M3 发送M4 发送M5 发送M6 重复确认M2 重复确认M2 重复确认M2 t 发送M7 丢失 24 从连续收到三个重复的确认转入拥塞避免 2 4 6 8 10 12 14 16 18 20 22 0 0 4 8 12 16 20 传输轮次 拥塞窗口cwnd 收到3个重复的确认执行快重传算法 慢开始 乘法减小 拥塞避免 加法增大 TCPReno版本 TCPTahoe版本 已废弃不用 ssthresh的初始值 拥塞避免 加法增大 新的ssthresh值 慢开始 快恢复 乘法减小 multiplicativedecrease 乘法减小 是指不论在慢开始阶段还是拥塞避免阶段 只要出现一次超时 即出现一次网络拥塞 就把慢开始门限值ssthresh设置为当前的拥塞窗口值乘以0 5 当网络频繁出现拥塞时 ssthresh值就下降得很快 以大大减少注入到网络中的分组数 加法增大additiveincrease 加法增大 是指执行拥塞避免算法后 在收到对所有报文段的确认后 即经过一个往返时间 就把拥塞窗口cwnd增加一个MSS大小 使拥塞窗口缓慢增大 以防止网络过早出现拥塞 必须强调指出 拥塞避免 并非指完全能够避免了拥塞 利用以上的措施要完全避免网络拥塞还是不可能的 拥塞避免 是说在拥塞避免阶段把拥塞窗口控制为按线性规律增长 使网络比较不容易出现拥塞 问题 A B双方已经建立了TCP连接 采用SlowStart算法进行流控 初始的阈值为32K字节 1K 1024 最大发送段长MSS为1K字节 发送方向为A B B没有数据要发送 B每收到一个数据报文都会发出一个应答报文 在整个过程中上层一直有数据要发送 并且都以MSS大小的报文发送 A的发送序列号从0开始 1 在传输过程中 A收到1个ACK为10240的报文 收到这个应答报文后 A处拥塞窗口的大小是多少 2 当收到ACK 32768的报文后 A处拥塞窗口的大小是多少 3 当阈值为32K字节 拥塞窗口为40K字节时 发送方发生了超时 求超时发生后拥塞窗口的大小和阈值的大小 传输控制协议TCP 问题答案 1 收到的为第10个报文的应答 变化后拥塞窗口的大小为112 收到的为第32个报文的应答 这时拥塞窗口已经超过阈值 应当使用线性增长 变化后的拥塞窗口大小为32K字节 3 拥塞窗口 1MSS 1KB 阈值 40 2 20KB 随机早期检测RED RandomEarlyDetection 使路由器的队列维持两个参数 即队列长度最小门限THmin和最大门限THmax RED对每一个到达的数据报都先计算平均队列长度LAV 若平均队列长度小于最小门限THmin 则将新到达的数据报放入队列进行排队 若平均队列长度超过最大门限THmax 则将新到达的数据报丢弃 若平均队列长度在最小门限THmin和最大门限THmax之间 则按照某一概率p将新到达的数据报丢弃 RED将路由器的到达队列划分成为三个区域 从队首发送 最小门限THmin 最大门限THmin 分组到达 平均队列长度Lav 排队 丢弃 以概率p丢弃 丢弃概率p与THmin和Thmax的关系 最小门限THmin 最大门限THma
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 虚拟现实试衣间创新创业项目商业计划书
- 物联网创新创业项目商业计划书
- 可可制品车间创新创业项目商业计划书
- 2025年甘肃省酒泉老年大学招聘教师考试笔试试题(含答案)
- 制作蔬菜汁与果汁混合的营养饮料创新创业项目商业计划书
- 淡水藻类养殖环保技术创新创业项目商业计划书
- 科技创新产品展示与体验直播创新创业项目商业计划书
- 乡村马拉松赛道创新创业项目商业计划书
- 输卵管结扎操作步骤
- 现场急救知识培训主持词课件
- 有限空间预案演练总结
- 配电网中性点运行方式
- 大金空调使用手册
- 五星班组建设评价标准(班组)
- GB/T 30790.5-2014色漆和清漆防护涂料体系对钢结构的防腐蚀保护第5部分:防护涂料体系
- (新教材) 教科版小学四年级科学上册:教学计划及进度表
- GB/T 10228-2015干式电力变压器技术参数和要求
- 村集体经济组织会计实务 课件
- 速写静物(课堂PPT)
- 膝关节体格检查专家讲座
- 花生膜下滴灌技术
评论
0/150
提交评论