当前位置:
文档之家› CH5-L13 TCP-差错控制-流量控制
CH5-L13 TCP-差错控制-流量控制
填
充
检验和: 2 字节 检验的范围:包括首部、数据、伪首部。 选项:功能的扩充(自学) 填充字段 :使整个首部长度是 4 字节的整数倍。
计算机网络原理 金可音 欢迎学生使用 计算机与通信学院
3. 差错控制
TCP协议的主要控制技术:
可靠传输:可靠的连接、差错控制 有效传输:
• 流量控制:避免因为接收方来不及接收而重传 • 拥塞控制:避免由于负载太大等原因而造成网络吞吐量的下降
金可音
欢迎学生使用
计算机与通信学院
2.TCP 报文段的首部简介(§5.5)
位 0 8 16 24 31
TCP 首部
20 字节的 固定首部
TCP 报文段
TCP 首部
TCP 数据部分
IP 首部
计算机网络原理 金可音
IP 数据部分
欢迎学生使用 计算机与通信学院
位0
8
源 端 口
16
24
目 的 端 口
31
(5-5)
RTTD 是 RTT 偏差的加权平均值。
计算机网络原理
金可音
欢迎学生使用
计算机与通信学院
RTT 偏差的加权平均值:RTTD
RFC 2988 建议的计算方法:
初值 RTTD 值=测量到的 RTT 样本值的一半。 以后的计算: 新的 RTTD = (1 ) (旧的RTTD)
TCP:基于字节流的流量控制
允许对方发送多少字节的数据 (而不是多少个报文段) 在连接建立时, B 告诉 A:“我的接收窗口 = 400(字节)”。 A的发送窗口不大于400字节(不大于B的接收窗口)
• 最多发送400字节未确认的数据
在 TCP 连接上利用滑动窗口机制实现流量控制
• 路由变化很大 • 延时差别很大
主要问题:
RTT是动态变化的,方差也很大
计算机网络原理
金可音
欢迎学生使用
计算机与通信学院
往返时延的分析
数据链路层:相邻二点的通信,往返时间变化不大
TCP :不相邻二点的进程之间通信,往返时间的方差很大。
往返时间的 概率分布
数据链路层
传输层 时间
T1
计算机网络原理 金可音 欢迎学生使用 计算机与通信学院
位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 首部 确 认 序 号 数据 偏移 保 留
U A P R S F R C S S Y I G K H T N N
20 字节 固定 首部 窗 口 紧 急 指 针
检 验 和
选
项
(长 度 可 变)
填
充
源端口和目的端口字段:各占 2 字节。
序号、确认序号、窗 口、ACK位:见差错控制和流量控制
金可音 欢迎学生使用 计算机与通信学院
A、B间全双工的TCP连接的每一端都有两个窗口
为便于理解,
计算机网络原理
TCP 面向流的概念
发送方
字节流 21 20 19
H 表示 TCP 报文段的首部 x 表示序号为 x 的数据字节
接收方
应用进程
把字节写入 发送缓存
应用进程
从接收缓存 读取字节 接收缓存 5 4
计算机网络原理
第13讲 TCP 差错控制和流量控制
【第5章 传输层 (第2讲)】
计算机与通信学院
School of Computer and Communication
大学计算机基础 金可音 欢迎学生使用
上讲小结(快速提问1)
上讲的重点是什么?
计算机网络原理
金可音
欢迎学生使用
计算机与通信学院
上讲要点复习(快速提问2)
计算机网络原理
金可音
欢迎学生使用
计算机与通信学院
本讲内容及其安排
1. TCP 概述 2. TCP 报文段首部简介 3. 差错控制
(§5.3.1) (§5.5)
(§5.6.1) (§5.6.2)
3.1 面向字节流控制方法的概念 3.2 基于字节流的差错控制 3.3 超时重传时间的选择
即:
计算机网络原理
金可音
欢迎学生使用
计算机与通信学院
位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 字节 固定 首部 窗 口 紧 急 指 针
检 验 和
选
项
(长 度 可 变)
本讲
差错控制 流量控制 面向字节流的滑动窗口 拥塞控制 可靠的连接
金可音 欢迎学生使用 计算机与通信学院
下讲
计算机网络原理
3.1 面向字节流控制方法的概念
TCP面向字节流的控制方法
将依次传送的数据看作数据流 建立TCP连接时,设置发送的第一个字节数据的序号 对数据流中的每个字节依次编号 一个报文段的“序号”: 该报文段中用户数据的第一个字节的序号 A、B双方各有一个发送窗口,一个接收窗口 四个窗口处于动态变化之中 只讨论全双工TCP连接中的其中一个单方向的传输: A向B发送 把字节编号取的很小,如,窗口大小为20字节
让接收方来得及接收
• 避免数据的丢失 • 减少重传,保证网络的效率,减少网络拥塞
一般方法:接收方控制发送方发送报文的速率
TCP:接收方允许发送方最多能发送多少数据 可以在TCP连接时协商
建立TCP连接时,默认的窗口大小是4096字节
计算机网络原理
金可音
欢迎学生使用
计算机与通信学院
基于字节流的流量控制
0 字节流 1 2 3
发送缓存 1817161514
加上 首部构成 TCP 报文段,再发送 131211 H
10 9 H
TCP 连接
8 7 6H
该报文的“序号”: 6
计算机网络原理 金可音 欢迎学生使用 计算机与通信学院
采用的差错控制策略
要点 采用连续ARQ技术 重发机制:超时重发 允许选择重发
T2
T3
难点:估算较为合理的重传时间。
计算机网络原理 金可音 欢迎学生使用 计算机与通信学院
往返时间RTT的样本值
样本值:当前(一次)的往返时间RTT 计算方法之一
发送方把发送报文,启动计时器 接收方收到确认报文,计算本次的RTT (加权平均往返时间RTTS的样本值)
计算机网络原理
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 连接中出现严重差错(如主机崩溃), 必须释放连接,再重新建立传输连接。
+ RTTS 新的 RTT 样本
(5-6)
是个小于 1 的系数,其推荐值是 1/4,即 0.25。
计算机网络原理
金可音
欢迎学生使用
计算机与通信学院
往返时间的测量过程中的一个问题
重传报文段后,收到了确认报文段 ACK 是对原来的报文段的确认,还是对重传的报文段的确认?
是对哪一个报文段 的确认? 收到 ACK
本讲教材分析
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 必须考虑传输效率
4. TCP 的流量控制
(§ 5.7.1)
(§5.7.1)
4.1 利用滑动窗口实现流量控制 4.2 死锁问题
5. 面向字节流的滑动窗口 6. 提高TCP的传输效率
计算机网络原理 金可音 欢迎学生使用
(§5.6.1) (§ 5.7.2 )
计算机与通信学院
本讲预习情况检查(快速提问3)
计算机网络原理
金可音
欢迎学生使用
计算机与通信学院
3.2 基于字节流的差错控制
差错控制:
基于序号的确认(不是基于报文段对报文段编号) 发送时:若首部“序号”字段=2000 表示本报文段中用户数据的第一个字节的序号=2000 回答时:若首部“确认序号”字段= 2300 表示2300号字节以前的数据已经正确收到, 希望收到的下一个字节是2300号字节 序号:本报文段中用户数据的第一个字节 确认序号:确认序号以前的数据已经正确收到
TCP 的主要特点 TCP 报文段首部的组成 什么是面向字节流的控制方法 序号、确认序号、窗 口的作用 如何计算加权平均往返时间RTTS 如何计算超时重传时间 RTO 流量控制的基本思想 TCP如何实现流量控制 TCP提高传输效率的措施
计算机网络原理
金可音
欢迎学生使用
改进:报文段每重传一次,就把 RTO 增大一些: 新的 RTO (旧的 RTO)