TCP拥塞控制报告

合集下载

TCP拥塞控制算法仿真实验设计

TCP拥塞控制算法仿真实验设计

TCP拥塞控制算法仿真实验设计TCP(Transmission Control Protocol)是一种常用的网络传输协议,它的拥塞控制算法起着至关重要的作用,能够适应网络状态的变化以确保数据的可靠传输,并最大化利用网络带宽。

拥塞控制算法的设计和评估需要进行仿真实验,以下是一个TCP拥塞控制算法仿真实验的设计:1.实验目标:-评估不同拥塞控制算法在不同网络条件下的性能表现;-比较不同拥塞控制算法在吞吐量、延迟和丢包率等方面的差异;-分析算法的稳定性和公平性。

2.实验环境:- 模拟器:选择合适的网络模拟器,如ns-3、Opnet、OMNET++等;-网络拓扑:设计适当的网络拓扑,可以包括不同类型的节点(如服务器、客户端、路由器)和链路;-网络条件:设置不同的网络条件,如带宽、延迟、丢包率等。

3.实验内容:- 算法选择:选择要研究的拥塞控制算法,如 Tahoe、Reno、NewReno、Cubic等;-算法实现:根据选定的算法,编写相应的代码或配置文件,并将其集成到网络模拟器中;-实验参数:设置合适的参数,如初始窗口大小、拥塞窗口阈值、快速重传的条件等;-拥塞控制实验:在选定的网络条件下,运行仿真实验,收集算法的性能指标,如吞吐量、延迟、丢包率等;-结果分析:分析实验结果,对比不同算法的性能表现,比较其优劣。

4.实验指标:-吞吐量:衡量网络或节点在单位时间内传输的数据量,可以通过收集传输结束时间和传输数据量计算;-延迟:衡量数据从发送端到接收端的传输时间,可以通过收集发送端和接收端的时间戳计算;-丢包率:衡量网络中发生的数据包丢失情况,可以通过统计发送端和接收端的数据包数量计算。

5.实验步骤:-设计网络拓扑并设置网络条件;-选择并实现要研究的拥塞控制算法;-设置实验参数,运行仿真实验;-收集实验结果,包括吞吐量、延迟、丢包率等;-分析实验结果,比较不同算法的性能表现。

6.结果分析:-对比不同算法的性能表现,包括吞吐量、延迟、丢包率等指标;-分析算法的稳定性,即在不同网络条件下是否能够稳定工作;-分析算法的公平性,即是否能够公平地与其他流进行竞争获取带宽;-结合实验结果,评估不同算法的优劣。

tcp数据传输的拥塞控制中的快重传算法和快恢复算法

tcp数据传输的拥塞控制中的快重传算法和快恢复算法

tcp数据传输的拥塞控制中的快重传算法和快恢复算法一、TCP数据传输中的拥塞控制TCP协议是一种可靠的传输协议,它通过拥塞控制机制来保证网络的可靠性和稳定性。

在TCP数据传输过程中,如果网络出现拥塞,就会导致数据包丢失或延迟,从而影响数据传输的效率和质量。

因此,TCP 协议需要通过拥塞控制机制来避免网络拥塞,并确保数据传输的顺利进行。

二、快重传算法快重传算法是TCP协议中常用的一种拥塞控制算法,它主要用于解决网络中出现丢包现象时的重传问题。

当一个发送方发现自己发送了一个分组后没有收到对应的确认消息时,它会认为该分组已经丢失,并立即重新发送该分组。

但是,在某些情况下,接收方其实已经正确地接收了该分组,并向发送方发送了确认消息。

这时,如果发送方继续重复发送该分组,就会导致网络拥塞。

快重传算法通过检测是否连续收到3个相同序号的确认消息来判断是否出现了丢包现象。

如果出现了丢包,则立即重发该分组,并不等待超时时间到达再进行重传。

这样可以避免网络拥塞,并提高数据传输的效率。

三、快恢复算法快恢复算法是TCP协议中另一种常用的拥塞控制算法,它主要用于解决网络中出现拥塞窗口减小时的问题。

当网络出现拥塞时,TCP协议会将拥塞窗口减小,并重新开始慢启动过程。

但是,在某些情况下,网络并没有真正出现拥塞,而是由于其他原因导致了数据包丢失或延迟,这时重新开始慢启动过程会导致数据传输效率降低。

快恢复算法通过检测是否连续收到3个相同序号的确认消息来判断是否出现了拥塞窗口减小的情况。

如果出现了该情况,则将拥塞窗口增加1,并进入快恢复状态。

在快恢复状态下,TCP协议会继续发送数据包,并等待接收方发送确认消息。

如果连续收到3个相同序号的确认消息,则说明网络已经恢复正常,TCP协议会退出快恢复状态,并将拥塞窗口设置为新的值。

四、总结快重传算法和快恢复算法是TCP协议中常用的拥塞控制算法,它们可以有效地避免网络拥塞,并提高数据传输的效率。

tcp协议实验报告

tcp协议实验报告

tcp协议实验报告TCP协议实验报告一、引言在计算机网络中,TCP(Transmission Control Protocol)是一种常用的传输层协议,负责实现可靠的数据传输。

本实验旨在通过对TCP协议的实验研究,深入理解其工作原理和性能特点。

二、实验目的1. 理解TCP协议的基本原理和机制。

2. 掌握TCP协议的连接建立、数据传输和连接释放过程。

3. 了解TCP协议的流量控制和拥塞控制机制。

三、实验环境1. 操作系统:Windows 102. 实验工具:Wireshark、Python四、实验过程1. 连接建立在实验中,我们使用Python编写了一个简单的TCP服务器和客户端程序。

首先,客户端向服务器发起连接请求(SYN包),服务器接收到请求后发送确认包(SYN+ACK包),最后客户端发送确认包(ACK包)完成连接建立过程。

2. 数据传输在连接建立后,我们通过客户端向服务器发送数据,观察数据在网络中的传输情况。

Wireshark工具可以捕获和分析网络数据包,我们可以通过它来查看TCP 数据包的详细信息,包括源地址、目的地址、序列号、确认号等。

3. 连接释放当数据传输完成后,我们需要关闭TCP连接。

在实验中,我们模拟了正常关闭连接和异常关闭连接两种情况。

正常关闭连接时,客户端和服务器分别发送FIN包和ACK包,最后双方都发送FIN包完成连接释放。

异常关闭连接时,我们可以通过强制关闭客户端或服务器进程来模拟,观察TCP协议对连接异常关闭的处理过程。

五、实验结果通过实验,我们观察到TCP协议的一些重要特点和性能表现:1. 可靠性:TCP协议通过序列号和确认号机制,确保数据的可靠传输。

如果接收方收到的数据包乱序或丢失,TCP协议会要求发送方重新发送。

2. 流量控制:TCP协议通过滑动窗口机制实现流量控制,防止发送方发送速度过快导致接收方无法处理。

当接收方缓冲区已满时,会发送窗口为0的ACK包,告知发送方暂停发送。

TCP拥塞控制

TCP拥塞控制

计算机网络
往返时延RTT优化
往返时间RTT
往返时间:
往返时间(RTT)是指从数据段发送开始,到接 收到该数据段对应应答所经历的时间,主要由链路传播时 间、端系统处理时间和路由器排队/处理时间组成。 对同一个TCP连接,链路传播时间、端系统处理 时间相对固定,因此,网络拥塞情况可通过路由器排队/ 处理时间的变化而推断。
其中: pi为第i条路径的丢包率, RTTi为第i条路径的往返时延, b为每个ACK应答的分组数, pktsize为分组的大小, n为路径的总数。
基于MFD的多路径算法
可见, 要在给定的网络条件下提高端到端吞吐率, 必须减小往返时延RTTi。路径的往返时延是正向路径时延 以及反向路径时延之和。 第i条路径对应的正向路径时延为fi, 反向路径时延 为ri.不失一般性,假设ri≤ri +1(1≤i≤n)。如果采取MTCP算法, 则RTTi =fi+ri。 为了提高吞吐率,可以采用最小反馈时延MFD的多径 传输协议, 即选取时延最小的反向路径来传输应答分组。 MFD可以减少各条路径的往返时延 RTT‘i=fi+r1<fi+ri=RTTi ,从而提高端到端的吞吐率, 降低拥塞。
Freeze-TCP
Freeze-TCP用于解决主机移动所引起的丢包. 主要思想: 让移动主机监测无线信号的能量,并检测出即将发生 的主机切换事件.当切换即将发生时,移动主机向发送者 发送一个通告窗口为零的反馈,从而迫使发送者进入零窗 口探测模式. 在零窗口探测模式中,发送者不会改变它的拥塞窗口 和超时计时器的时长.
RTT分析
在无线环境下,忽略链路传播时延的前提下,在误码 丢包的作用下,RTT呈现无规律变化,且有趋小趋势. 因此,在无线环境下,考察RTT的变化区分误码丢 包与拥塞丢包进行发送速率的调整是可行的:在RTT变 小时,说明网络拥塞丢包风险小,拥塞窗口向下调整幅度 应较小;在RTT变大时,说明网络拥塞丢包风险大,拥 塞窗口向下调整幅度应较大,是符合无线网络实际情况的。

《TCP的拥塞控制》课件

《TCP的拥塞控制》课件

慢开始和拥塞避免算法的实现举例
拥塞窗口 cwnd
24 20
ssthresh 的初始值16
拥塞避免 “加法增大”
网络拥塞
拥塞避免 “加法增大” “乘法减小”
新的 ssthresh 值12
慢开始
8
4
指数规律增长
传输轮次
0
0 2 4 6 8 10 12 14 16 18 20 22
慢开始
慢开始
发送端的发送窗口不能超过拥塞窗口 cwnd 和接收端 窗口 rwnd 中的最小值。我们假定接收端窗口足够大, 因此现在发送窗口的数值等于拥塞窗口的数值。
● 使用慢开始算法后,每经过一个传输轮次,拥塞窗 口 cwnd 就加倍。
● 一个传输轮次所经历的时间其实就是往返时间 RTT。
●“传输轮次”更加强调:把拥塞窗口 cwnd 所允许 发送的报文段都连续发送出去,并收到了对已发送 的最后一个字节的确认。
● 例如,拥塞窗口 cwnd = 4,这时的往返时间 RTT 就是发送方连续发送 4 个报文段,并收到这 4 个报 文段的确认,总共经历的时间。
慢开始算法的原理
●在主机刚刚开始发送报文段时可先设置拥塞 窗口 cwnd = 1,即设置为一个最大报文段 MSS 的数值。
●在 每 收 到 一 个 对 新 的 报 文 段 的 确 认 后 , 将 拥 塞窗口加 1,即增加一个 MSS 的数值。
●用 这 样 的 方 法 逐 步 增 大 发 送 端 的 拥 塞 窗 口 cwnd,可以使分组注入到网络的速率更加合 理。
cwnd = 1 cwnd = 2
发送方每收到一个对新报文段的确认 (重传的不算在内)就使 cwnd 加 1。
发送方
接收方
发送 M1

tcp实验报告

tcp实验报告

tcp实验报告TCP实验报告一、实验目的TCP(Transmission Control Protocol)是一种面向连接的、可靠的传输协议,它在互联网通信中扮演着重要的角色。

本实验旨在通过实际操作和观察,深入理解TCP协议的工作原理和特点。

二、实验环境1. 操作系统:Windows 102. 编程语言:Python3.93. 实验工具:Wireshark三、实验步骤与结果1. 建立TCP连接通过Python的socket库,我们可以轻松地创建TCP连接。

在本实验中,我们编写了一个简单的服务器端和客户端程序,通过本地主机进行通信。

2. 数据传输与流量控制在TCP连接建立后,我们进行了数据的传输实验。

首先,我们发送了一个较小的数据包,观察到数据包的传输过程中,TCP协议会自动进行流量控制,确保数据的可靠传输。

接着,我们发送了一个较大的数据包,发现TCP会将大数据包拆分成多个小数据包进行传输,并在接收端进行重组。

3. 拥塞控制为了模拟网络拥塞的情况,我们在实验中人为地降低了网络带宽。

通过Wireshark抓包分析,我们观察到TCP协议在发现网络拥塞时,会自动减少发送速率,以避免网络的过载。

同时,我们还注意到TCP协议会根据网络的状况动态调整拥塞窗口的大小,以提高网络的利用率。

4. 可靠性与重传机制为了测试TCP协议的可靠性,我们在实验中故意模拟了数据包丢失的情况。

通过Wireshark的分析,我们发现当发送端未收到确认消息时,会自动触发重传机制,确保数据的可靠传输。

同时,TCP还会根据超时时间的动态调整,以适应不同网络环境下的传输速度。

五、实验总结通过本次实验,我们深入了解了TCP协议的工作原理和特点。

TCP作为一种可靠的传输协议,在互联网通信中发挥着重要的作用。

它通过流量控制、拥塞控制和重传机制等手段,确保了数据的可靠传输,并适应了不同网络环境的变化。

在今后的学习和实践中,我们将进一步深入研究TCP协议的细节,并结合实际应用场景,优化网络通信的性能和可靠性。

tcp的拥塞控制方法

tcp的拥塞控制方法

tcp的拥塞控制方法TCP的拥塞控制方法TCP(Transmission Control Protocol)是一种面向连接的、可靠的传输协议,它在互联网中扮演着重要的角色。

在TCP协议中,拥塞控制是一项非常重要的功能,它可以避免网络拥塞,保证网络的稳定性和可靠性。

本文将介绍TCP的拥塞控制方法。

TCP的拥塞控制方法主要包括四个方面:慢启动、拥塞避免、快重传和快恢复。

下面将分别介绍这四个方面的内容。

一、慢启动慢启动是TCP的一种拥塞控制算法,它的目的是在TCP连接开始时,尽可能快地找到网络的最大带宽。

在慢启动阶段,TCP发送方会将拥塞窗口cwnd的大小从一个初始值开始逐渐增加,直到网络出现拥塞为止。

具体来说,TCP发送方会将cwnd的大小设置为一个初始值(通常为2个MSS),然后每经过一个往返时间RTT(Round Trip Time),cwnd的大小就会翻倍。

例如,如果初始值为2个MSS,第一个RTT结束后cwnd的大小为4个MSS,第二个RTT 结束后cwnd的大小为8个MSS,以此类推。

这样做的目的是为了尽可能快地找到网络的最大带宽,从而提高TCP连接的传输效率。

二、拥塞避免拥塞避免是TCP的另一种拥塞控制算法,它的目的是在TCP连接运行过程中,尽可能地避免网络拥塞。

在拥塞避免阶段,TCP发送方会将拥塞窗口cwnd的大小逐渐增加,但是增加的速度会比慢启动阶段慢一些。

具体来说,TCP发送方会在每个RTT结束后将cwnd 的大小增加1个MSS,而不是翻倍。

这样做的目的是为了避免网络拥塞,从而保证TCP连接的稳定性和可靠性。

三、快重传快重传是TCP的一种拥塞控制算法,它的目的是在TCP连接出现数据包丢失时,尽可能快地重传丢失的数据包,从而避免网络拥塞。

在快重传算法中,TCP发送方会在接收到三个重复的ACK (Acknowledgement)时,立即重传丢失的数据包,而不是等待超时后再重传。

这样做的目的是为了尽可能快地恢复丢失的数据包,从而避免网络拥塞。

tcp的拥塞控制方法

tcp的拥塞控制方法

tcp的拥塞控制方法摘要:TCP是一种面向连接的、可靠的、全双工传输控制协议,它的拥塞控制算法是它可靠性的重要保障。

本文旨在介绍tcp的拥塞控制方法,并探讨它们的实现原理和特点,以期为其它研究者提供参考。

关键词:TCP;拥塞控制;窗口调整1 引言拥塞控制是Internet协议栈的重要组成部分,它不仅控制网络中的流量,也提高了数据传输的可靠性。

随着网络的发展,拥塞控制算法也发生了很大的变化研究者们也不断对它们进行改进,以提高数据传输的效率。

其中TCP协议的拥塞控制算法是最为重要的,它是数据传输可靠性的重要保障。

本文旨在介绍TCP的拥塞控制方法,并探讨它们的实现原理以及特点,以期为其它研究者提供参考。

2 TCP的拥塞控制2.1 概述TCP的拥塞控制机制是在数据传输过程中通过窗口调整策略来控制网络容量的,它涉及到两个方面:1. 控制发送方的发送速率;2. 保证接收方的最大接收速率。

它的基本原理是:当网络中发生拥塞,接收方可能收到部分数据丢失或者超时,此时发送方会根据接收方的反馈信息进行窗口调节,降低发送的速率以免网络中的数据流过大,从而保证网络的可靠性。

2.2 方法TCP的拥塞控制方法一般有以下三种:(1)慢启动:慢启动的机制是一种自适应的机制,它根据网络的情况自动调整窗口大小,以保证最大的传输效率。

它的基本原理是:发送方在发送数据时,以慢启动的速率给网络中的接收方发送数据,接收方收到正确数据,则慢启动的窗口大小会加倍,直到达到最大窗口大小限制;如果接收方收到的数据有丢失,则发送方会减少窗口大小。

(2)拥塞避免:拥塞避免的机制是一种更为激进的窗口调整机制,它的基本原理是发送方根据网络状态,在慢启动的基础上逐渐增加窗口大小,但不会超过最大窗口大小限制。

(3)快速重传:快速重传是TCP协议的一种重要拥塞控制机制,它的基本原理是在发送方发现超时时,会立即以双倍的速率重发超时的数据,以避免因超时而引起的拥塞。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

TCP Vegas在拥塞避免阶段的具体算法为: 1、计算期望的吞吐量与实际吞吐量之间的差值

cwnd
其中 代表传输延时,也是当缓存中数据包为空时的RTT值 (BaseRTT), cwnd代表源端在每个往返时间(RTT)中允许发 送窗口的大小,期望的吞吐量为cwnd/T,设r代表实际网络 中的RTT,实际的吞吐量为cwnd /r

优点:
慢启动采用逐渐增大cwnd 的方法,可以防止 TCP 在启动一个连接时向网络发送过多的数据包 而造成不必要的数据丢失和网络拥塞,并且它还 能够避免采用单纯的AIMD 算法造成的吞吐量增 加过慢的问题 为了防止cwnd 的无限制增长引起网络拥塞,引 入一个状态变量:慢启动阈值ssthresh 当cwnd<ssthresh 时,使用上述的慢启动算法, cwnd 随 RTT 呈指数增长。 当cwnd>ssthresh 时,使用下面的拥塞避免 算法,减缓cwnd 的增长速度。
TCP 拥塞控制的四个阶段

慢启动阶段
拥塞避免阶段 快速重传阶段 快速恢复阶段



1慢启动阶段
当连接刚建立或超时时,进入慢启动阶段。
当新建TCP 连接时,拥塞窗口(cwnd)被初始化 为一个数据包大小(缺省为512或536bytes )。 实际发送窗口win取拥塞窗口与接收方提供的通 告窗口的较小值,即win=min(cwnd, awnd), 每收到一个ACK 确认,就增加一个数据包发送量, 这样慢启动阶段cwnd 随RTT呈指数级增长(1个、 2个、4个、8个…)
Vegas 算法


1994年,Brakmo提出了TCP Vegas算法, TCP Vegas是一种截然不同的拥塞控制算 法,它采用一种更巧妙的带宽估计策略, 根据期望的流量速率与实际速率的差估计 网络瓶颈处的可用带宽。 TCP Vegas对TCP Reno主要做了三个方 面的改进,分别是快速重传机制、拥塞避 免阶段和慢启动阶段,这三个方面改进的 具体情况如下:
从以上算法看出:在拥塞避免阶段,当数 据包超时时,cwnd 被置为1,重新进入慢 启动阶段,这会导致过大地减小发送窗口 尺寸,降低TCP 连接的吞吐量。因此,引 入了快速重传和快速恢复机制。
3快速重传阶段

当网络发生拥塞时,如果源端等待超时之后再 进行拥塞控制,那么从出现拥塞到实施控制有 一定的时延。除了超时之外,源端还可以使用 重复ACK作为拥塞信号。源端在接收到重复 ACK时并不能确定是由于分组丢失还是分组乱 序产生的,通常假定如果是分组乱序,在目的 端处理之前源端只可能收到一个或两个重复的 ACK;如果源端连续接收到三个或更多的重复 ACK,表明网络中某处已经发生了拥塞,这时, 源端不等到重传定时器超时就重发这个可能丢 失的分组,这就是快速重传算法。
TCP拥塞控制
小组成员:罗文文,马志强 孙帅一,何浩
拥塞控制的定义
当网络中存在过多报文时,网络的性能就会下降,这 种现象称为拥塞。 分组交换网络的性能(功率、往返时间RTT、吞吐量) 与负荷的关系用下图来说明
网络中的拥塞问题必须依靠TCP层端到端控 制和lP层链路控制的共同作用才能有效的解决, 其中TCP层的拥塞控制仍然会起主要的、基础的 作用。端到端TCP拥塞控制的本质思想是通过调 整发送端的发送速率来控制网络的负荷量。具体 地说,TCP不断地通过加大发送的速率来对当前 网络的实际承载能力进行探测,并随时准备对网 络发回的拥塞信息作出响应,即迅速减小向网络 中发送信息的速率,并在新的起点上继续对网络 进行试探。

在快速重传阶段,当源端收到3 个或3 个 以上重复的ACK 时,就判定数据包丢失, 同时ssthresh 设置为当前cwnd的一半, 并重传丢失的包,进入快速恢复阶段。
4快速恢复阶段

当快速重传算法重传了可能丢失的分组之 后,如果TCP重新进入慢启动阶段,将会使 拥塞窗口减为1,重新开始探测网络带宽, 从而严重影响网络吞吐量,因此快速恢复 算法在快速重传之后转去执行拥塞避免算 法,避免了过大地减小发送窗口而导致的 网络性能下降。


cwnd r

2、由(1)式得到路由器缓存中的数据包个数为


Hale Waihona Puke d (cwnd
cwnd ) r
(1)

3、塞窗口的调整策略:
cwnd (k ) 1, cwnd (k 1) cwnd (k ), cwnd (k ) 1,

TCP Vegas线性增大或减小窗口是基于d(k)的 大小,d(k)代表数据包在路由器中的数量,当 d(k)小于 时,说明网络资源还没有充分利用, 需要进一步的增大发送窗口,当d (k)大于 时, 则减小发送窗口,防止发生拥塞。如果在 , 之间,则窗口不变。可用下面的公式来说明:

2拥塞避免阶段


当TCP 源端发现超时或收到3 个相同的ACK 确 认帧时,即认为网络将发生拥塞,此时进入拥塞 避免阶段。 在拥塞避免阶段,慢启动域值ssthresh 将被设置 为当前cwnd 的一半,当发生超时时,cwnd 被 置为初始值1。此时,如果cwnd<ssthresh, TCP 重新进入慢启动过程;如果 cwnd>=ssthresh,则执行拥塞避免算法,即 cwnd 在每次收到一个ACK 确认时只增加 1/cwnd 个数据包。拥塞避免阶段cwnd 随RTT 呈线性增长。
算法描述如下:
初始化:cwnd=1 ssthresh=65535bytes win=min(cwnd, awnd) 当新的ACK确认到达时,执行以下算法: for every arrived packets if cwnd<ssthresh cwnd+=1;慢启动 else cwnd+=SMSS*SMSS/cwnd; 拥塞避免 阶段 当检测到丢包时,发送方执行以下操作: ssthresh=max[min(cwnd/2,awin),2]; 如果检测到定时器超时,cwnd=1; 其中SMSS是发送方的最大报文段长度.

第二个改进措施是当检测到超时并重传数 据包后,收到第1个或第2个非重复确认包 时,检查从重传该数据包到收到非重复确 认包的时间间隔,时间间隔若大于超时时 间,就认为发生了丢包,并重传该数据包。 这样能够不用等到重复的确认包到达,就 准确的传送在重传前发生丢包的那些数据, 这在发生多个丢包的时候尤为重要,否则 发送端会一直等待直到超时,其过程如下 图所示:
拥塞避免机制的改进

Reno是把丢包情况作为拥塞发生的信号,而 Vegas则是通过计算期望值的吞吐量与实际吞吐 量之间的差来估计网络瓶颈处的可用带宽。由于 Vegas不需要等到丢包才认为发生了拥塞,所以 能更有效的利用带宽。其基本思想是期望的吞吐 量与实际的吞吐量相差超过一定值时,就认为网 络拥塞程度严重,应该减小发送窗口;另一方面, 当两者之间的差距小于一定值时,则认为连接没 有完全有效的利用带宽,应该要增大发送窗口。
经典的TCP拥塞控制算法

TCP Tahoe
TCP Reno TCP NewReno TCP Vegas



TCP Tahoe 算法

Tahoe 算法是TCP 的早期版本。它的核心 思想是:让cwnd以指数增长方式迅速逼进 可用信道容量,然后慢慢接近均衡。 Tahoe 包括3 个基本的拥塞控制算法: “慢启动”、“拥塞避免”和“快速重 传”。
d (k )
cwnd (k ) 1, cwnd (k 1) cwnd (k ), cwnd (k ) 1,
d (k )
d (k )
慢启动阶段的改进

TCP Reno在慢启动阶段的每个RTT内窗口都会 增大一倍,TCP Vegas修改为每隔一个RTT才将 窗口增大一倍,在这之间,窗口固定不变。这样 是为了保证能够正确的比较吞吐量的差值, Vegas还在慢启动中加入了拥塞检测。在初始的 慢启动阶段,TCP Vegas通过计算期望的吞吐量 估计出可用的网络带宽,当实际的吞吐量变得比 期望的吞吐量小于一定门限值y时,窗口将会减小 1/8,并且从慢启动阶段进入拥塞避免阶段。为 慢启动加入拥塞检测是十分重要的,当网络带宽 变大时,其作用尤为明显,改进的慢启动算法对 改善丢包情况和超时现象十分有效。
基本概念




拥塞窗口(cwnd ):拥塞控制的关键参数,控制源端在 拥塞情况下一次最多能发送多少数据包。 接收窗口(rwnd):接收端对源端发送窗口大小所做的 限制,在建立连接时山接收方通过ACK确认带给源端 慢启动阀值(ssthresh ):拥塞控制中用来限制发送窗 口大小的门限值,它是慢启动阶段与拥塞避免阶段的 分界点,初始值设为65535 bytes或awnd的大小。 回路响应时间(RTT):一个数据包从源端发送到接收 端直至源端收到接收端R寸该数据包确认信息所经历 的时间间隔。 超时重传计数器(RTO ):描述数据包从发送到失效的 时间间隔,是源端用来判断数据报是否丢失和网络拥 塞的重要参数,通常设为2RTT或SRTT

Tahoe 算法存在着不足之处:在收到3 个 重复ACK 或在超时的情况下,Tahoe 置 cwnd 为1,然后进入慢启动阶段。这一方 面会引起网络的激烈振荡,另一方面大大 降低了网络的利用率。
TCP Reno算法

针对Tahoe算法的不足,提出了改进算 法Reno。改进主要有两方面:一是对于收 到连续3个重复的ACK确认,算法不经过慢 启动,而直接进入拥塞避免阶段;二是增 加了快速重传和快速恢复机制。Reno算法 以其简单、有效和鲁棒性成为TCP源算法的 主流,被广泛的采用。但它不能有效的处 理多个分组从同 一数据窗口丢失的情况。

发送端的发送窗口的上限值应当取为接收端窗口 rwnd 和拥塞窗口 cwnd 这两个变量中较小的一个, 即应按以下公式确定:
相关文档
最新文档