CH5-L13 TCP-差错控制-流量控制
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
序 号 TCP 首部 确 认 序 号 数据 偏移 保 留
U A P R S F R C S S Y I G K H T N N
20 字节 固定 首部 窗 口 紧 急 指 针
检 验 和
选
项
(长 度 可 变)
填
充
源端口和目的端口字段:各占 2 字节。
序号、确认序号、窗 口、ACK位:见差错控制和流量控制
U A P R S F R C S S Y I G K H T N N
20 字节 固定 首部
检 验 和
选
项
(长 度 可 变)
填
充
SYS、FIN:用于建立连接(参见下讲) 复位 RST (ReSeT) : RST 1 ,表明 TCP 连接中出现严重差错(如主机崩溃), 必须释放连接,再重新建立传输连接。
TCP 的主要特点 TCP 报文段首部的组成 什么是面向字节流的控制方法 序号、确认序号、窗 口的作用 如何计算加权平均往返时间RTTS 如何计算超时重传时间 RTO 流量控制的基本思想 TCP如何实现流量控制 TCP提高传输效率的措施
计算机网络原理
金可音
欢迎学生使用
(5-5)
RTTD 是 RTT 偏差的加权平均值。
计算机网络原理
金可音
欢迎学生使用
计算机与通信学院
RTT 偏差的加权平均值:RTTD
RFC 2988 建议的计算方法:
初值 RTTD 值=测量到的 RTT 样本值的一半。 以后的计算: 新的 RTTD = (1 ) (旧的RTTD)
计算机网络原理
金可音
欢迎学生使用
计算机与通信学院
3.2 基于字节流的差错控制
差错控制:
基于序号的确认(不是基于报文段对报文段编号) 发送时:若首部“序号”字段=2000 表示本报文段中用户数据的第一个字节的序号=2000 回答时:若首部“确认序号”字段= 2300 表示2300号字节以前的数据已经正确收到, 希望收到的下一个字节是2300号字节 序号:本报文段中用户数据的第一个字节 确认序号:确认序号以前的数据已经正确收到
T2
T3
难点:估算较为合理的重传时间。
计算机网络原理 金可音 欢迎学生使用 计算机与通信学院
往返时间RTT的样本值
样本值:当前(一次)的往返时间RTT 计算方法之一
发送方把发送报文,启动计时器 接收方收到确认报文,计算本次的RTT (加权平均往返时间RTTS的样本值)
计算机网络原理
即:
计算机网络原理
金可音
欢迎学生使用
计算机与通信学院
位0
8
源 端 口
16
24
目 的 端 口
31
序 号 TCP 首部 确 认序号 数据 偏移 保 留
U A P R S F R C S S Y I G K H T N N
20 字节 固定 首部 窗 口 紧 急 指 针
检 验 和
选
项
(长 度 可 变)
金可音
欢迎学生使用
计算机与通信学院
TCP的加权平均往返时间:RTTS
RTTS(又称为平滑Smoothed的往返时间)。 第一次测量到 RTT 样本时, RTTS =RTT 样本值。 以后,每测量到一个新的 RTT 样本: 新的 RTTS (1 ) (旧的 RTTS) (新的 RTT 样本) (5-4) 式中,0 1。
0 字节流 1 2 3
发送缓存 1817161514
加上 首部构成 TCP 报文段,再发送 131211 H
10 9 H
TCP 连接
8 7 6H
该报文的“序号”: 6
计算机网络原理 金可音 欢迎学生使用 计算机与通信学院
采用的差错控制策略
要点 采用连续ARQ技术 重发机制:超时重发 允许选择重发
让接收方来得及接收
• 避免数据的丢失 • 减少重传,保证网络的效率,减少网络拥塞
一般方法:接收方控制发送方发送报文的速率
TCP:接收方允许发送方最多能发送多少数据 可以在TCP连接时协商
建立TCP连接时,默认的窗口大小是4096字节
计算机网络原理
金可音
欢迎学生使用
计算机与通信学院
基于字节流的流量控制
填
充
检验和: 2 字节 检验的范围:包括首部、数据、伪首部。 选项:功能的扩充(自学) 填充字段 :使整个首部长度是 4 字节的整数倍。
计算机网络原理 金可音 欢迎学生使用 计算机与通信学院
3. 差错控制
TCP协议的主要控制技术:
可靠传输:可靠的连接、差错控制 有效传输:
• 流量控制:避免因为接收方来不及接收而重传 • 拥塞控制:避免由于负载太大等原因而造成网络吞吐量的下降
本讲教材分析
5.3.1 TCP最主要的特点 5.5 TCP 报文段的首部格式 5.6 TCP 可靠传输的实现
5.6.1 以字节为单位的滑动窗口 5.6.2 超时重传时间的选择 5.6.3 选择确认 SACK
5.7 TCP的流量控制
5.7.1 利用滑动窗口实现流量控制 5.7.1 必须考虑传输效率
计算机网络原理 金可音 欢迎学生使用 计算机与通信学院
位0
8
源 端 口
16
24
目 的 端 口
31
序 号 TCP 首部 确 数据 偏移 保 留 认 号 窗 口 紧 急 指 针
U A P R S F R C S S Y I G K H T N N
20 字节 固定 首部
检 验 和
选
项
(长 度 可 变)
传输层的作用和重要性 传输层如何满足不同应用的需求 什么是传输层的端口 UDP的特点 TCP的特点 可靠通信原理
如何纠错 如何解决报文丢失 如何解决重复报文 停等协议的缺点 连续ARQ协议的原理 发送窗口的概念
金可音 欢迎学生使用 计算机与通信学院
计算机网络原理
计算机与通信学院
1. TCP 概述 (§5.3.1)
提供可靠交付的服务:差错控制 是面向连接的传输层协议。
通信前双方建立连接(协商),见§5.9;
TCP 连接是一条虚连接而不是物理连接。
提供流量控制、拥塞控制,提高网络效率 提供全双工通信。 采用面向字节流的控制技术
计算机网络原理
本讲
差错控制 流量控制 面向字节流的滑动窗口 拥塞控制 可靠的连接
金可音 欢迎学生使用 计算机与通信学院
下讲
计算机网络原理
3.1 面向字节流控制方法的概念
TCP面向字节流的控制方法
将依次传送的数据看作数据流 建立TCP连接时,设置发送的第一个字节数据的序号 对数据流中的每个字节依次编号 一个报文段的“序号”: 该报文段中用户数据的第一个字节的序号 A、B双方各有一个发送窗口,一个接收窗口 四个窗口处于动态变化之中 只讨论全双工TCP连接中的其中一个单方向的传输: A向B发送 把字节编号取的很小,如,窗口大小为20字节
金可音
欢迎学生使用
计算机与通信学院
2.TCP 报文段的首部简介(§5.5)
位 0 8 16 24 31
TCP 首部
20 字节的 固定首部
TCP 报文段
TCP 首部
TCP 数据部分
IP 首部
计算机网络原理 金可音
IP 数据部分
欢迎学生使用 计算机与通信学院
位0
8
源 端 口
16
24
目 的 端 口
31
+ RTTS 新的 RTT 样本
(5-6)
是个小于 1 的系数,其推荐值是 1/4,即 0.25。
计算机网络原理
金可音
欢迎学生使用
计算机与通信学院
往返时间的测量过程中的一个问题
重传报文段后,收到了确认报文段 ACK 是对原来的报文段的确认,还是对重传的报文段的确认?
是对哪一个报文段 的确认? 收到 ACK
计算机网络原理
金可音
欢迎学生使用
计算机与通信学院
本讲内容及其安排
1. TCP 概述 2. TCP 报文段首部简介 3. 差错控制
(§5.3.1) (§5.5)
(§5.6.1) (§5.6.2)
3.1 面向字节流控制方法的概念 3.2 基于字节流的差错控制 3.3 超时重传时间的选择
• 路由变化很大 • 延时差别很大
主要问题:
RTT是动态变化的,方差也很大
计算机网络原理
金可音
欢迎学生使用
计算机与通信学院
往返时延的分析
数据链路层:相邻二点的通信,往返时间变化不大
TCP :不相邻二点的进程之间通信,往返时间的方差很大。
往返时间的 概率分布
数据链路层
传输层 时间
T1
填
充
1) ACK位(确认位): 只有当 ACK 1 时确认序号才有效 2)确认序号:可以是捎带应带
计算机网络原理 金可音 欢迎学生使用 计算机与通信学院
3.3 超时重传时间的选择 (§5.6.2)
超时重传时间 RTO (RetransmissionTime-Out)
应该满足:重传时间>往返时间 RTT TCP 报文段需要经过路由器转发:
发送一个 TCP 报文段 1
超时重传 TCP 报文段 2 往返时间 RTT? 往返时间 RTT?
时间
Karn 算法:不采用重传报文段的往返时间样本。
计算机网络原理
金可音
欢迎学生使用
计算机与通信学院
修正的 Karn 算法
分析
报文重传,说明时延增大(或出错) 可能会连续重传,超时重传时间 RTO无法更新
计算机网络原理
第13讲 TCP 差错控制和流量控制
【第5章 传输层 (第2讲)】
计算机与通信学院
School of Computer and Communication
大学计算机基础 金可音 欢迎学生使用
上讲小结(快速提问1)
上讲的重点是什么?
计算机网络原理
金可音
欢迎学生使用
计算机与通信学院
上讲要点复习(快速提问2)
TCP:基于字节流的流量控制
允许对方发送多少字节的数据 (而不是多少个报文段) 在连接建立时, B 告诉 A:“我的接收窗口 = 400(字节)”。 A的发送窗口不大于400字节(不大于B的接收窗口)
• 最多发送400字节未确认的数据
在 TCP 连接上利用滑动窗口机制实现流量控制
改进:报文段每重传一次,就把 RTO 增大一些: 新的 RTO (旧的 RTO)
系数 的典型值是 2
实践证明,这种策略较为合理。
计算机网络原理
金可音
欢迎学生使用
计算机与通信学院
4. TCP 的流量控制 (§5.7)
4.1 利用滑动窗口实现流量控制 (§5.7.1)
流量控制(flow control)的作用:
充
数据偏移(即首部长度): 4 位,单位是 4 字节。 首部最多64(16×4)字节 保留字段: 6 位,保留为今后使用,目前应置为 0。
计算机网络原理 金可音 欢迎学生使用 计算机与通信学院
位0
8
源 端 口
16
24
目 的 端 口
31
序 号 TCP 首部 确 数据 偏移 保 留 认 号 窗 口 紧 急 指 针
计算机网络原理 金可音 欢迎学生使用 计算机与通信学院
位0
8
源 端 口
16
24
目 的 端 口
31
序 号 TCP 首部 确 数据 偏移 保 留 认 号 窗 口 紧 急 指 针
U A P R S F R C S S Y I G K H T N N
20 字节 固定 首部
检 验 和
选
项
(长 度 可 变)
填
• 若 很接近于零,表示主要采用原有的平滑RTT 值 RTT 值更新较慢。 • 若 很接近于 1,表示主要采用新测到的RTT 值 RTT 值更新较快。 • RFC 2988 推荐的 值为 1/8,即 0.125。
计算机网络原理 金可音 欢迎学生使用 计算机与通信学院
超时重传时间 RTO (RetransmissionTime-Out) RTO 应略大于加权平均往返时间 RTTS。 RFC 2988 建议使用下式计算 RTO: RTO RTTS + 4 RTTD
金可音 欢迎学生使用 计算机与通信学院
A、B间全双工的TCP连接的每一端都有两个窗口
为便于理解,
计算机网络原理
TCP 面向流的概念
发送方
字节流 21 20 19
H 表示 TCP 报文段的首部 x 表示序号为 x 的数据字节
接收方
应用进程
把字节写入 发送缓存
应用进程
从接收缓存 读取字节 接收缓存 5 4
4. TCP 的流量控制
(§ 5.7.1)
(§5.7.1)
4.1 利用滑动窗口实现流量控制 4.2 死锁问题
5. 面向字节流的滑动窗口 6. 提高TCP的传输效率
计算机网络原理 金可音 欢迎学生使用
(§5.6.1) (§ 5.7.2 )
计算机与通信学院
Leabharlann Baidu
本讲预习情况检查(快速提问3)