当前位置:文档之家› 网络协议分析与编程-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 提供可靠性1. 防丢

失–带重传的肯定确认技

接收方收数据接收数据发送方

数据后向源站发发送分组确认(ACK);发送确认接收分组发送分组接收确

认②设置定时发送确认接收分组器,

源站在限定超时重传时间内未

收到ACK ,则重发。接收确认.

两个问题:如何对待重复的数据?定时器时限设置多长?

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:RTT的估计值M:本次测量的RTT值RT0:定时时限Diff:差值

Dev :平均偏差的估计值Diff

←M -RR ←R + δ*DiffDev ←Dev +ρ*(|Diff| -Dev) (Dev的估计值)RT0 ←R +η*Devδ、ρ在0—1之间,通常取:322= 1/2δ= 2,η= 1/2,

ρ.

(3)Karn算法和定时器补偿确认二义性:对于重传的报文段,收到确认后是对哪一次传输的确认无法确定。结果:RTT 样本值无法使用;Karn算法:思想:当超时重传发生时,不再更新RTT估计器,忽略重传

样本。定时器补偿:超时重传

发生,加大定时时限:RT0 ←γ*RT0(γ通常取2,即指数

避退)。对重传分组的后续分组,定时时限不变,直到获得一个

新的有效样本时再更改时限值。.

7.3 传输效率和流量控制

-滑动窗口机制1.一般的

滑动窗口机制

思想允许发送方不必等确认到来就可继续送下面的分组,但规定一个上限。若多个分的确认未到时,则暂停发送。

分组流WindowSize=81 2 3 4 5 6 7 8 9 10 11 12 13已

发并已发未未发但不能发送可以发得到确认得到确

认.

2. TCP的滑动窗口技术

分组WindowSize=400(5) TC连两端各有1 2 ..100 101

102 ……4100 410个窗口(送

窗口和未发已发已发不能发送

得到确认得到确认可以发收窗口)(1)数据流的各字节被编上序号。(2) TCP的滑动窗口按字节操作而不是按报文段或分组

操作。(3) TCP窗口大小为字节数。最大为65535字节。(4)通信双方都设有发送和接收缓

冲区(相当于发送窗口和接收

窗口)。默认大小各系统有差异,如4096、等。发送缓冲区大小为默认窗口大小。16384、8192.

3. TCP端到端流量控制-窗口

大小可变技术时机:目的主机缓冲区变小而不能接收源主机更多的数据时,就要进行流量控制。

TC技术可随时改变窗口大小。目的主机在确时,还向源主机告知目的主机接收缓冲区的大小发送窗口,初

320 321…399200 201 ……

101 …始时400发送窗口,变为120确认(200)窗口通告(120)说明:接收方使用0窗口通告来停止所有的传输。此时,除了紧急数据和窗口试探报文外,不发其它数据。窗口通告丢失或造成死锁0防止非窗口试探报文:

7.4 糊涂窗口综合症SWS 1.什么是SWS ?接收方的小窗口通告造成发送方发送一系列小的报文段,严重浪费网络带宽。

2.启发式的避免策略:

接收方:(1)

避免小窗口通告,

在零窗口通告之后,只在可用

缓冲区显著增加(缓冲区空间

的一半或一个MSS)后才发送

新的窗口通告(2)推迟确认(最多500ms),窗口大小不到避免SWS策略所需的尺寸时,不确认。为了使发送方正确估计RTT,至少每隔一个报文段要进行正常的确

认。.

发送方:避免小报文段发送Nagle算法:自适应推迟传输

以便将数据组块(1)连接建立后,最初的数据会立即发送。(2)

相关主题