TCP璇句欢PPT课件.ppt

上传人:优*** 文档编号:127674826 上传时间:2020-04-04 格式:PPT 页数:52 大小:989.50KB
返回 下载 相关 举报
TCP璇句欢PPT课件.ppt_第1页
第1页 / 共52页
TCP璇句欢PPT课件.ppt_第2页
第2页 / 共52页
TCP璇句欢PPT课件.ppt_第3页
第3页 / 共52页
TCP璇句欢PPT课件.ppt_第4页
第4页 / 共52页
TCP璇句欢PPT课件.ppt_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《TCP璇句欢PPT课件.ppt》由会员分享,可在线阅读,更多相关《TCP璇句欢PPT课件.ppt(52页珍藏版)》请在金锄头文库上搜索。

1、第8章TCP协议 分组交换的因特网 TCP TCP 因特网 最重要的协议之一 TCP TCP位于传输层 提供一种全双工的 面向连接的 可靠的字节流服务 TCP提供的功能 确保数据正确到达而采取的措施如何识别给定机器上的多个目的进程为了进行可靠传输而交换的数据和确认信息的格式TCP的连接管理TCP性能的提高 图8 1TCP发送报文段的示意图 8 1TCP可靠传输的实现 1 面向字节流2 确认机制3 超时重传4 滑动窗口5 拥塞控制 面向字节流的TCP交付服务实现方法 应用进程间发送的数据被看作是一个个字节组成的数据流 给每个字节编一个序号 优点 应用进程产生的数据可以被协议模块分割成最合适的大小

2、来发送 或者通过缓存 组合成合适的数据块大小后发送 把应用程序和网络传输相分割 这就为流传输服务提供了一个一致的接口 确认机制 技术关键 要求接收端与发送端进行通信 在收到数据后要发回一个确认 ACK 消息 而源端也只有在收到接收端的确认消息后在发送下一个数据 TCP的确认信息指出了接收方期望收到的下一个报文段的序号 捎带确认累积确认 超时重传 技术关键 超时计时器时间的设定 实现方法 使用自适应重传算法来检测各个连接的时延 并调整相应的参数 平均往返时延RTT 旧往返时延RTT 1 新往返时延样本 重传时间 平均往返时延 往返时延RTT 往返时间的测量相当复杂 TCP报文段1没有收到确认 重

3、传 即报文段2 后 收到了确认报文段ACK 如何判定此确认报文段是对原来的报文段1的确认 还是对重传的报文段2的确认 发送一个TCP报文段 超时重传TCP报文段 收到ACK 时间 1 2 往返时延RTT 是对哪一个报文段的确认 往返时间样本的精确测量实现方法 Karn算法Karn算法 计算往返时间估计值时 忽略对应于重传报文段的样本 但是要使用补偿策略 对一个重传分组的许多后续分组 其定时时限均不变 直到获得一个新的有效样本时再更改时限值 补偿策略 新的重传时间 旧的重传时间 流量控制 实现方法 可变发送窗口具体过程 接收方的确认信息中包括一个窗口通告 当前接收缓冲区大小 根据窗口通告改变发送

4、窗口的大小 发送窗口在连接建立时由双方商定 但在通信的过程中 接收端可根据自己的资源情况 随时动态地调整对方的发送窗口上限值 可增大或减小 图8 2TCP滑动窗口的可视化表示 收到确认即可前移 100 200 300 400 500 600 700 800 900 101 201 301 401 501 601 701 801 1 可发送 不可发送 发送端要发送900字节长的数据 划分为9个100字节长的报文段 而发送窗口确定为500字节 发送端只要收到了对方的确认 发送窗口就可前移 发送TCP要维护一个指针 每发送一个报文段 指针就向前移动一个报文段的距离 收到确认即可前移 100 200

5、300 400 500 600 700 800 900 101 201 301 401 501 601 701 801 1 不可发送 100 200 300 400 500 600 700 800 900 101 201 301 401 501 601 701 801 1 发送窗口 可发送 不可发送 发送窗口前移 发送端已发送了400字节的数据 但只收到对前200字节数据的确认 同时窗口大小不变 现在发送端还可发送300字节 100 200 300 400 500 600 700 800 900 101 201 301 401 501 601 701 801 1 已发送并被确认 已发送但未被确

6、认 可发送 不可发送 指针 100 200 300 400 500 600 700 800 900 101 201 301 401 501 601 701 801 1 不可发送 指针 发送窗口前移 发送端收到了对方对前400字节数据的确认 但对方通知发送端必须把窗口减小到400字节 现在发送端最多还可发送400字节的数据 利用可变窗口大小进行流量控制双方确定的窗口值是400 主机A 主机B 允许A再发送300字节 序号201至500 A还能发送200字节 A还能发送200字节 序号301至500 A还能发送300字节 A还能发送100字节 序号401至500 A超时重发 但不能发送序号500以

7、后的数据 允许A再发送200字节 序号501至700 A还能发送100字节 序号501至700 不允许A再发送 到序号600的数据都已收到 以该图为例可以总结如下几点 1 发送方不必发送一个全窗口大小的数据 2 来自接收方的一个报文段确认数据并把窗口向右边滑动 这是因为窗口的大小是相对于确认序号的 3 正如从报文段7到报文段8中变化的那样 窗口的大小可以减小 但是窗口的右边沿却不能够向左移动 4 接收方在发送一个ACK前不必等待窗口被填满 在前面我们看到许多实现每收到两个报文段就会发送一个ACK 拥塞控制 实现方法 加速递减 慢启动 拥塞避免拥塞窗口 用于在发生拥塞时把数据流量限制为小于接收方

8、的缓冲区大小 发送窗口 Min 窗口通告 拥塞窗口 加速递减一旦发现丢失报文段 立即就将拥塞窗口一半作为门限窗口 然后拥塞窗口大小变为1 慢启动在启动新连接的传输或在拥塞之后增加通信量时 仅以一个报文段作为拥塞窗口的初始值 而每当收到一个确认之后 将拥塞窗口大小加1 以后以二的指数规律增加 拥塞避免是指当拥塞窗口到达门限窗口时 就将拥塞窗口指数增长速率降低为线性增长速率 避免网络再次出现拥塞 慢开始和拥塞避免算法的实现举例 当TCP连接进行初始化时 将拥塞窗口置为1 图中的窗口单位不使用字节而使用报文段 慢开始门限的初始值设置为16个报文段 即ssthresh 16 2 4 6 8 10 12

9、 14 16 18 20 22 0 0 4 8 12 16 20 24 传输次数 拥塞窗口cwnd ssthresh 16 慢开始 慢开始 拥塞避免 拥塞避免 更新后的ssthresh 12 慢开始和拥塞避免算法的实现举例 发送端的发送窗口不能超过拥塞窗口cwnd和接收端窗口rwnd中的最小值 我们假定接收端窗口足够大 因此现在发送窗口的数值等于拥塞窗口的数值 2 4 6 8 10 12 14 16 18 20 22 0 0 4 8 12 16 20 24 传输次数 拥塞窗口cwnd ssthresh 16 慢开始 慢开始 拥塞避免 拥塞避免 更新后的ssthresh 12 慢开始和拥塞避免算

10、法的实现举例 在执行慢开始算法时 拥塞窗口cwnd的初始值为1 发送第一个报文段M0 2 4 6 8 10 12 14 16 18 20 22 0 0 4 8 12 16 20 24 传输次数 拥塞窗口cwnd ssthresh 16 慢开始 慢开始 拥塞避免 拥塞避免 更新后的ssthresh 12 慢开始和拥塞避免算法的实现举例 2 4 6 8 10 12 14 16 18 20 22 0 0 4 8 12 16 20 24 传输次数 拥塞窗口cwnd ssthresh 16 慢开始 慢开始 拥塞避免 拥塞避免 更新后的ssthresh 12 发送端收到ACK1 确认M0 期望收到M1 后

11、 将cwnd从1增大到2 于是发送端可以接着发送M1和M2两个报文段 慢开始和拥塞避免算法的实现举例 接收端发回ACK2和ACK3 发送端每收到一个对新报文段的确认ACK 就把发送端的拥塞窗口加1 现在发送端的cwnd从2增大到4 并可发送M4 M6共4个报文段 2 4 6 8 10 12 14 16 18 20 22 0 0 4 8 12 16 20 24 传输次数 拥塞窗口cwnd ssthresh 16 慢开始 慢开始 拥塞避免 拥塞避免 更新后的ssthresh 12 慢开始和拥塞避免算法的实现举例 发送端每收到一个对新报文段的确认ACK 就把发送端的拥塞窗口加1 因此拥塞窗口cwnd

12、随着传输次数按指数规律增长 2 4 6 8 10 12 14 16 18 20 22 0 0 4 8 12 16 20 24 传输次数 拥塞窗口cwnd ssthresh 16 慢开始 慢开始 拥塞避免 拥塞避免 更新后的ssthresh 12 慢开始和拥塞避免算法的实现举例 当拥塞窗口cwnd增长到慢开始门限值ssthresh时 即当cwnd 16时 就改为执行拥塞避免算法 拥塞窗口按线性规律增长 2 4 6 8 10 12 14 16 18 20 22 0 0 4 8 12 16 20 24 传输次数 拥塞窗口cwnd ssthresh 16 慢开始 慢开始 拥塞避免 更新后的ssthre

13、sh 12 慢开始和拥塞避免算法的实现举例 假定拥塞窗口的数值增长到24时 网络出现超时 表明网络拥塞了 2 4 6 8 10 12 14 16 18 20 22 0 0 4 8 12 16 20 24 传输次数 拥塞窗口cwnd ssthresh 16 慢开始 慢开始 拥塞避免 拥塞避免 更新后的ssthresh 12 慢开始和拥塞避免算法的实现举例 更新后的ssthresh值变为12 即发送窗口数值24的一半 拥塞窗口再重新设置为1 并执行慢开始算法 2 4 6 8 10 12 14 16 18 20 22 0 0 4 8 12 16 20 24 传输次数 拥塞窗口cwnd ssthres

14、h 16 慢开始 慢开始 拥塞避免 拥塞避免 更新后的ssthresh 12 慢开始和拥塞避免算法的实现举例 当cwnd 12时改为执行拥塞避免算法 拥塞窗口按按线性规律增长 每经过一个往返时延就增加一个MSS的大小 2 4 6 8 10 12 14 16 18 20 22 0 0 4 8 12 16 20 24 传输次数 拥塞窗口cwnd ssthresh 16 慢开始 慢开始 拥塞避免 拥塞避免 更新后的ssthresh 12 加速递减一旦发现丢失报文段 立即就将拥塞窗口大小变为1 慢启动在启动新连接的传输或在拥塞之后增加通信量时 仅以一个报文段作为拥塞窗口的初始值 而每当收到一个确认之后

15、 将拥塞窗口大小加1 以后以指数规律增加 拥塞避免是指当拥塞窗口到达拥塞时大小的一半时 就将拥塞窗口指数增长速率降低为线性增长速率 避免网络再次出现拥塞 减半 8 2端到端通信的实现 TCP使用连接而不是协议端口作为基本的抽象概念 连接是用一对端点来标识的 端点 主机IP地址 该主机上的TCP端口号 由于TCP使用两个端点来识别连接 一个机器上的某个TCP端口号可以被多个连接所共享 8 3TCP报文段 TCP封装 高层数据 TCP首部 TCP数据 IP首部 IP数据 TCP首部格式 源端口号和目的端口号 标识接收端和发送端的应用进程 序号 所发送的数据的第一字节的序号 用以标识从TCP发端向T

16、CP收端发送的数据字节流 序号计数达power 2 32 1后再回到零从新开始 确认序号 期望收到的下一个消息第一字节的序号 为确认的一端所期望接收的下一个序号 首部长度 以32比特为计算单位 窗口大小 滑动窗口协议中的窗口大小检校和 对整个TCP首部和TCP数据部分的校验 这个字段在TCP中是强制性的 一定由发端计算 并在收端进行验证 标识位有六个标识 以下为设置为1时的意义 为0时相反 紧急位 URG 紧急指针有效 紧急指针是一个正的偏移量 指出本报文段中的紧急数据的最后一个字节的序号 确认位 ACK 表示确认序号字段有意义急迫位 PSH 表示请求接收端的传输实体尽快交付应用层重建位 RST 表示出现严重差错 必须释放连接重建同步位 SYN SYN 1 ACK 0表示连接请求消息SYN 1 ACK 1表示同意建立连接消息终止位 FIN 表示数据已发送完 要求释放连接 8 4TCP的连接管理 1 连接建立2 数据传输3 连接释放 建立TCP连接 三次握手 主机1 主机2 接收 SYN 1发送 SYN 1seq y ACKx 1 收到 SYN ACK发送 ACKy 1 应用进程要求连接

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号