当前位置:文档之家› 网络协议分析与编程-07_传输控制协议TCP

网络协议分析与编程-07_传输控制协议TCP

第7章传输控制协议TCP

要求:

1. 掌握TCP的可靠性机制:确认、重传、序号;

2. 掌握TCP的流控和提高传输效率策略:滑动窗口机制;

3. 掌握TCP连接的建立与关闭协议:三次握手;

4. 掌握TCP的报文段格式;

5. 掌握TCP的拥塞控制技术;

6. 掌握TCP避免糊涂窗口综合症的技术;

7. 了解紧急数据发送和强迫数据发送。

7.1 概述

要实现可靠的数据流传输服务,

必须解决哪几个问题?

1.可靠性:

①防丢失:确认与重传;

②防重复:报文段序号;

2.传输效率、流量控制:滑动窗口机制;

3.拥塞控制:加速递减与慢启动技术;

4.建立连接:三次握手协议;

5.关闭连接:改进的三次握手协议。

可靠传输服务有哪些特点?

①面向数据流;

②虚电路连接;

③有缓冲的传输;

④无结构的数据流;

⑤全双工连接。

7.2 提供可靠性

①接收方收到

数据接收方

两个问题:

定时器时限设置多长?

2. 防重复–可捎带的累计确认技术

①为每一分组赋予序号。

②确认时也指明确认哪个分组。

③序号同时保证了分组间的正确顺序。

3. RTT与重传定时器

问题:超时重传,如何设置定时器的时限?

两个概念:

①RTT:往返时间,报文段发出到收到确认信息间的时间段。

②自适应重传算法:监视每个连接的性能,由此推算出合适的定时时限。当连接的性能变化时,随时修改定时时限。

重传定时时限的计算方法:

①早期的方法

②改进的方法

③Karn算法和定时器补偿

(1)早期的方法

R:RTT的估计值

M:本次测量的RTT值

RT0:定时时限

修改估计值:R ←αR + (1-α)M

(0≤α<1,通常取α=0.9)

计算时限:RT0 = βR

(β早期取2,后改为4)

缺陷:在RTT变化较大的场合,说明网络某处处于拥塞状态,但上述方法对此反映不敏感,从而造成不必要的重传,进一步加重网络负担。

(2)改进的方法

R:

M:本次测量的RTT值

RT0:定时时限

Diff:差值

Dev :平均偏差的估计值

Diff ←M -R

R ←R + δ*Diff

Dev ←Dev +ρ*(|Diff| -Dev) (Dev RT0 ←R +η*Dev

δ、ρ在0—1之间,通常取:

δ= 1/23,ρ= 1/22,η= 22

(3)Karn算法和定时器补偿

确认二义性:

哪一次传输的确认无法确定。

结果:RTT样本值无法使用;

Karn算法:

思想:当超时重传发生时,不再更新

忽略重传样本。

定时器补偿:

超时重传发生,加大定时时限:

(γ通常取2,即指数避退)。

对重传分组的后续分组,定时时限不变,直到获得一个新的有效样本时再更改时限值。

7.3 传输效率和流量控制-滑动窗口机制1.一般的滑动窗口机制

的确认未到时,则暂停发送。

不能发送

3. TCP端到端流量控制-窗口大小可变技术

时机:

发送窗口,初

7.4 糊涂窗口综合症SWS

1.什么是SWS?

接收方的小窗口通告造成发送方发送一系列小的报文段,严重浪费网络带宽。

2.启发式的避免策略:

接收方:

(1)避免小窗口通告,在零窗口通告之后,只在可用缓冲区显著增加(缓冲区空间的一半或一个MSS)后才发送新的窗口通告

(2)推迟确认(最多500ms),

SWS策略所需的尺寸时,不确认。

为了使发送方正确估计RTT,至少每隔一个报文段要进行正常的确认。

发送方:

Nagle算法:

(2)当缓冲区中数据不足一个报文段,则推迟发送。等到一个确认来到(确认触发)时,发送缓冲区中的小报文段。

问题:可能出现死锁吗?

确认丢失。

3.说明

①Nagle算法的两个优点:

自适应:确认到达得越快,数据也就发送得越快;

计算简单:不需要定时器。

②可关闭Nagle算法,应用程序接口一般提供选项TCP-NODELAY来关闭Nagle算法。

7.5 TCP拥塞控制技术

拥塞:交换节点(如路由器)数据报负载过重的现象。

回顾:IP层的拥塞控制技术:

(ICMP源站抑制报文),是一种被动机制。TCP拥塞控制的必要性:在TCP

时延增加,这又会造成超时重传,控制不当会进一步加重拥塞。

TCP采用了一种主动控制机制。

7.6 TCP报文

紧急指针

首部长度:

序号:

确认号:希望接收的对方下一报文段序号

到的数据字节序+1)

说明:

(1)序号和确认序号在一起使得确认可捎带进行。

(2)TCP采用累计确认策略。

问题:采用累计确认,确认丢失不一迫使发送方重传,为什么?

(3) TCP采用经受时延的确认(时延一般为

缺点:发送方无法收到所有成功传输的报文段的确认信息,对往返时间样本的精确测量带来影响。

相关主题