预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共44页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第7章传输控制协议TCP7.1概述①面向数据流; ②虚电路连接; ③有缓冲的传输; ④无结构的数据流; ⑤全双工连接。7.2提供可靠性 1.防丢失–带重传的肯定确认技术两个问题: 如何对待重复的数据? 定时器时限设置多长?3.RTT与重传定时器(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-R R←R+δ*Diff Dev←Dev+ρ*(|Diff|-Dev)(Dev的估计值) RT0←R+η*Dev δ、ρ在0—1之间,通常取: δ=1/23,ρ=1/22,η=22(3)Karn算法和定时器补偿 确认二义性:对于重传的报文段,收到确认后是对哪一次传输的确认无法确定。 结果:RTT样本值无法使用; Karn算法: 思想:当超时重传发生时,不再更新RTT估计器,忽略重传样本。 定时器补偿: 超时重传发生,加大定时时限:RT0←γ*RT0 (γ通常取2,即指数避退)。 对重传分组的后续分组,定时时限不变,直到获得一个新的有效样本时再更改时限值。7.3传输效率和流量控制-滑动窗口机制 思想:允许发送方不必等确认到来就可继续发送下面的分组,但规定一个上限。若多个分组的确认未到时,则暂停发送。2.TCP的滑动窗口技术3.TCP端到端流量控制-窗口大小可变技术 时机:目的主机缓冲区变小而不能接收源主机更多的数据时,就要进行流量控制。 TCP技术:可随时改变窗口大小。目的主机在确认时,还向源主机告知目的主机接收缓冲区的大小。1.什么是SWS? 接收方的小窗口通告造成发送方发送一系列小的报文段,严重浪费网络带宽。 2.启发式的避免策略: 接收方: (1)避免小窗口通告,在零窗口通告之后,只在可用缓冲区显著增加(缓冲区空间的一半或一个MSS)后才发送新的窗口通告 (2)推迟确认(最多500ms),窗口大小不到避免SWS策略所需的尺寸时,不确认。 为了使发送方正确估计RTT,至少每隔一个报文段要进行正常的确认。发送方:避免小报文段发送 Nagle算法:自适应推迟传输以便将数据组块 (1)连接建立后,最初的数据会立即发送。 (2)当缓冲区中数据不足一个报文段,则推迟发送。等到一个确认来到(确认触发)时,发送缓冲区中的小报文段。 问题:可能出现死锁吗? 确认丢失。 ①Nagle算法的两个优点: 自适应:确认到达得越快,数据也就发送得越快; 计算简单:不需要定时器。 ②可关闭Nagle算法,应用程序接口一般提供选项TCP-NODELAY来关闭Nagle算法。拥塞:交换节点(如路由器)数据报负载过重的现象。 回顾:IP层的拥塞控制技术: (ICMP源站抑制报文),是一种被动机制。 TCP拥塞控制的必要性:在TCP层,拥塞造成时延增加,这又会造成超时重传,控制不当会进一步加重拥塞。 TCP采用了一种主动控制机制。 1.拥塞控制技术: ①拥塞窗口cwnd ②加速递减技术 ③慢启动技术缺点:不能用socket编程实现, 保活定时器(间隔:2小时) ①为每一分组赋予序号。 11TCP攻击实例 确认二义性:对于重传的报文段,收到确认后是对哪一次传输的确认无法确定。 Kind=2(1byte) ◆应用层指明队列的最大长度 H冒充B向A发送SYN报文 第一版TCP:定义了选项表结束、无操作、MSS(最大报文段长度。 ActiveConnections 如何对待重复的数据? 此时,除了紧急数据和窗口试探报文外,不发其它数据。 若收到的报文失序,则丢失的报文段到达时,它的时间戳被回显。 240:httpsESTABLISHED …101…200201…320321…399 紧急数据发送和带外数据 (1)发SYN报文到目的主机的目标端口80KB2.IP层对改善TCP性能的支持 路由器发生拥塞时,早期的策略是尾部丢弃:当队列满时,丢弃随后到达的每一个数据报。 结果造成全局性同步:大量TCP连接只是被丢弃了一两个报文段而进入慢启动状态。 解决方案:RED–随机早期丢弃 方法:设置Tmin和Tmax,通常Tmax=2Tmin ①若队列长度<Tmin,则不丢弃。 ②若队列长度>Tmax,则丢弃新数据报。 ③若队列长度在Tmin—Tmax之间,则以概率P丢弃新报。P是动态变化的,通常正比于队列长度。 缺陷:突发数据时造成丢弃过多 改进:avg=(1-r)*avg+r*curr