什么是拥塞控制制和流量控制的区别

网络拥塞控制和流量控制_文库下载
1亿文档 免费下载
当前位置: &
& 网络拥塞控制和流量控制
网络拥塞控制和流量控制
网络拥塞控制和流量控制
浅析Internet中的拥塞控制和流量控制
计算机网络在当今社会生活中起到越来越重要的作用,其规模也成爆炸式的增长,应用也越来越广,但是随着人们对网络的要求越来越高,网络拥塞和数据冲突问题已经引起人们的密切关注。拥塞控制和流量控制技术针对网路中的拥塞和数据冲突而成为网络领域的核心技术。
网络拥塞和流量控制的原理
1.网络拥塞的含义
网络拥塞指的是在分组交换网络中传送分组的数目太多时,由于存储转发节点的资源有限而造成网络传输性能的下降情况。网络发生拥塞时,一般会出现数据丢失,时延加大,吞吐量下降,严重时甚至会导致“拥塞崩溃”的现象。
拥塞发生的主要原因在于网络能够提供的资源不足以满足用户的需求,这些资源包括缓存空间、链路带宽容量和中间节点处理能力,由于互联网是基于TCP/IP协议的网络,而TCP/IP协议提供的是一种“尽力而为”的传输服务,互联网的这种机制导致其缺乏“接纳控制”能力,在网络资源不足时不能限制用户的数量,只能依靠降低服务质量来继续为用户服务。
1网络流量不均衡引起的拥塞
$ns duplex-link $n0 $n2 2Mb 10ms DropTail
$ns duplex-link $n1 $n2 2Mb 10ms DropTail
$ns duplex-link $n2 $n3 2Mb 10ms DropTail
如图所示为流量分布的不均衡,图中带宽分布是均衡的,节点0与节点2之间,节点1与节点2之间,节点2与节点3之间链路带宽都是2Mb,在0和1都以2Mb/s的速率向2发送数据时,在2会发拥塞。
产生拥塞的主要原因:
(1) 存储空间不足。当一个端口收到几个输入端口的报文时,接收的报文就会在这
个端口的缓冲区中排队。如果端口没有足够的存储空间存储,在缓冲区占满时,报文就会被丢弃,对突发的数据流更是如此。适当增加存储空间在某种程度上可以缓解拥塞,但是如果过于增加存储空间,报文会因在缓冲区中排队时间过长而超时,源端会认为他们已经被丢弃而选择了重发,从而浪费了网络的资源,
Word文档免费下载:(下载1-3页,共3页)
? ? ? ? ? 计算机网络的拥塞控制与流量控制 服务质量QoS 移动IP技术 移动自组网络技术 无线传感器网络 无线Mesh网络 网络安全 计算机网络的拥塞控制与流量控制 ...本文通过对网络流量控制与拥塞控制技术进行概念解读,并对通信网络中存在拥塞的原因和需 要进行流量控制的原因进行阐释。介绍现有拥塞控制的技术和现有流量控制的技术;...流量控制与拥塞控制区别
01:02:30 标签:网络 基础 [推送到技术圈] 流量控制: 流量控制 DTE 与 DCE 速度之间存在很大差异,这样在数据的传送与接收...浅析Internet中的拥塞控制和流量控制_互联网_IT/计算机_专业资料。浅析 Internet 中的拥塞控制和流量控制作者:李希源 学号: 前言计算机网络在当今社会生活中...流量控制和拥塞控制拥塞控制 ? 分组交换网的拥塞控制 ? 帧中继的拥塞控制 ? ATM网的拥塞控制 ? 流量控制 ? 拥塞控制 ? ? 在某段时间,若对网络中某资源的...第六章 6.1 网络流量控制 网络流量控制与拥塞控制的测试及分析 6.1.1 流量控制与滑动窗口流量控制是指通过接收方的反馈来控制发送方发送速率的技术。当接收方...拥塞控制与流量控制王巍 w_wei@ 哈尔滨工程大学 拥塞的基本概念拥塞的概念当网络存在过多的报文时,网络的性 能会下降,这种现象称为拥塞。有拥塞控制...流量控制和拥塞控制拥塞控制 分组交换网的拥塞控制 帧中继的拥塞控制 ATM网的拥塞控制 网的拥塞控制 流量控制 拥塞控制在某段时间,若对网络中某资源的需求超过了 ...ES2008-TX/TF, ES3008-TX,ES3508,ES2024,ES3508A 等交换器中采用了独特的背压流量控制技术防止网络的拥塞 和数据包的丢失.这种类型的拥塞控制是具体针对半双工...拥塞控制是一个全局性 的过程,涉及到所有的主机、路由器,以及与降低网络传输性能有关的所有因素。 流量控制:指点对点通信量的控制,是端到端正的问题。流量控制所...【图文】计算机网络中的拥塞控制和流量控制_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
计算机网络中的拥塞控制和流量控制
&&计算机网络中的拥塞控制和流量控制
大小:486.00KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢中国领先的IT技术网站
51CTO旗下网站
基于UDP传输协议的实现分析之流量和拥塞控制
基于UDP的数据传输协议是一种互联网数据传输协议。UDT的主要目的是支持高速广域网上的海量数据传输,而互联网上的标准数据传输协议TCP在高带宽长距离网络上性能很差。
作者:jimmee来源:| 18:18
对于一个带宽1Gbps, RTT为100ms的网络来说
BDP=1,000,000,000*0.1/8=12,500,000字节=12207K=12M
传统TCP接收窗口大小=65535byte=64K, 显然满足不了
udt使用包大小1500byte, 默认接口窗口大小为8192, 因此
接收窗口的大小为=,288,000字节=1M
因此, 可以看到udt的默认设置已经足够.
Congestion Control(拥塞控制)
1. 两个重要的参数:
congestion window size and the inter-packet sending interval
2. 主要的接口
1) init: when the UDT socket is connected.
2) close: when the UDT socket is closed.
3) onACK: when ACK is received.
4) onLOSS: when NACK is received.
5) onTimeout: when timeout occurs.
6) onPktSent: when a data packet is sent.
7) onPktRecv: when a data packet is received.
3. udt的拥塞算法:
On ACK packet received:
1) If the current status is in the slow start phase, set the
congestion window size to the product of packet arrival rate and
(RTT + SYN). Slow Start ends. Stop.
2) Set the congestion window size (CWND) to: CWND = A * (RTT + SYN) +16.
3) The number of sent packets to be increased in the next SYN period
(inc) is calculated as:
if (B &= C)
inc = 1/PS;
inc = max(10^(ceil(log10((B-C)*PS*8))) * Beta/PS, 1/PS);
where B is the estimated link capacity and C is the current
sending speed. All are counted as packets per second. PS is the
fixed size of UDT packet counted in bytes. Beta is a constant
value of 0.0000015.
4) The SND period is updated as:
SND = (SND * SYN) / (SND * inc + SYN).
Java代码&&&*/&&&&&&&public&void&onACK(long&ackSeqno){&&&&&&&&&&&//increase&window&during&slow&start&&&&&&&&&&&if(slowStartPhase){&&&&&&&&&&&&&&&congestionWindowSize+=ackSeqno-lastAckSeqN&&&&&&&&&&&&&&&lastAckSeqNumber&=&ackSeqno;&&&&&&&&&&&&&&&//but&not&beyond&a&maximum&size&&&&&&&&&&&&&&&if(congestionWindowSizesession.getFlowWindowSize()){&&&&&&&&&&&&&&&&&&&slowStartPhase=false;&&&&&&&&&&&&&&&&&&&if(packetArrivalRate0){&&&&&&&&&&&&&&&&&&&&&&&packetSendingPeriod=1000000.0/packetArrivalR&&&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&&&&else{&&&&&&&&&&&&&&&&&&&&&&&packetSendingPeriod=(double)congestionWindowSize/(roundTripTime+Util.getSYNTimeD());&&&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&}else{&&&&&&&&&&&&&&&//1.if&it&is&&not&in&slow&start&phase,set&the&congestion&window&size&&&&&&&&&&&&&&&//to&the&product&of&packet&arrival&rate&and(rtt&+SYN)&&&&&&&&&&&&&&&double&A=packetArrivalRate/*(roundTripTime+Util.getSYNTimeD());&&&&&&&&&&&&&&&congestionWindowSize=(long)A+16;&&&&&&&&&&&&&&&if(logger.isLoggable(Level.FINER)){&&&&&&&&&&&&&&&&&&&logger.finer(&receive&rate&&+packetArrivalRate+&&rtt&&+roundTripTime+&&set&to&window&size:&&+(A+16));&&&&&&&&&&&&&&&}&&&&&&&&&&&}&&&&&&&&&&&&&&//no&rate&increase&during&slow&start&&&&&&&&&&&if(slowStartPhase)&&&&&&&&&&&&&&//no&rate&increase&&immediately&&after&a&NAK&&&&&&&&&&&if(loss){&&&&&&&&&&&&&&&loss=false;&&&&&&&&&&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&//4.&compute&the&increase&in&sent&packets&for&the&next&SYN&period&&&&&&&&&&&double&numOfIncreasingPacket=computeNumOfIncreasingPacket();&&&&&&&&&&&&&&//5.&update&the&send&period&&&&&&&&&&&double&factor=Util.getSYNTimeD()/(packetSendingPeriod*numOfIncreasingPacket+Util.getSYNTimeD());&&&&&&&&&&&packetSendingPeriod=factor*packetSendingP&&&&&&&&&&&//packetSendingPeriod=0.995*packetSendingP&&&&&&&&&&&&&&statistics.setSendPeriod(packetSendingPeriod);&&&&&&&}&&&
On NAK packet received:
1) If it is in slow start phase, set inter-packet interval to
1/recvrate. Slow start ends. Stop.
2) If this NAK starts a new congestion period, increase inter-packet
interval (snd) to snd = snd * 1.125; Update AvgNAKNum, reset
NAKCount to 1, and compute DecRandom to a random (average
distribution) number between 1 and AvgNAKNum. Update LastDecSeq.
3) If DecCount &= 5, and NAKCount == DecCount * DecRandom:
a. Update SND period: SND = SND * 1.125;
b. Increase DecCount by 1;
c. Record the current largest sent sequence number (LastDecSeq).
/*&(non-Javadoc)&&&&&&*&@see&udt.CongestionControl#onNAK(java.util.List)&&&&&&*/&&&&&&public&void&onLoss(ListlossInfo){&&&&&&&&&&loss=true;&&&&&&&&&&long&firstBiggestlossSeqNo=lossInfo.get(0);&&&&&&&&&&nACKCount++;&&&&&&&&&&/*1)&If&it&is&in&slow&start&phase,&set&inter-packet&interval&to&&&&&&&&&&&&&&1/recvrate.&Slow&start&ends.&Stop.&*/&&&&&&&&&&if(slowStartPhase){&&&&&&&&&&&&&&if(packetArrivalRate0){&&&&&&&&&&&&&&&&&&packetSendingPeriod&=&100000.0/packetArrivalR&&&&&&&&&&&&&&}&&&&&&&&&&&&&&else{&&&&&&&&&&&&&&&&&&packetSendingPeriod=congestionWindowSize/(roundTripTime+Util.getSYNTime());&&&&&&&&&&&&&&}&&&&&&&&&&&&&&slowStartPhase&=&false;&&&&&&&&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&long&currentMaxSequenceNumber=session.getSocket().getSender().getCurrentSequenceNumber();&&&&&&&&&&//&2)If&this&NAK&starts&a&new&congestion&epoch&&&&&&&&&&if(firstBiggestlossSeqNolastDecreaseSeqNo){&&&&&&&&&&&&&&//&-increase&inter-packet&interval&&&&&&&&&&&&&&packetSendingPeriod&=&Math.ceil(packetSendingPeriod*1.125);&&&&&&&&&&&&&&//&-Update&AvgNAKNum(the&average&number&of&NAKs&per&congestion)&&&&&&&&&&&&&&averageNACKNum&=&(int)Math.ceil(averageNACKNum*0.875&+&nACKCount*0.125);&&&&&&&&&&&&&&//&-reset&NAKCount&and&DecCount&to&1,&&&&&&&&&&&&&&nACKCount=1;&&&&&&&&&&&&&&decCount=1;&&&&&&&&&&&&&&/*&-&compute&DecRandom&to&a&random&(average&distribution)&number&between&1&and&AvgNAKNum&*/&&&&&&&&&&&&&&decreaseRandom&=(int)Math.ceil((averageNACKNum-1)*Math.random()+1);&&&&&&&&&&&&&&//&-Update&LastDecSeq&&&&&&&&&&&&&&lastDecreaseSeqNo&=&currentMaxSequenceNumber;&&&&&&&&&&&&&&//&-Stop.&&&&&&&&&&}&&&&&&&&&&//*&3)&If&DecCount&=&5,&and&NAKCount&==&DecCount&*&DecRandom:&&&&&&&&&&else&if(decCount=5&&&&nACKCount==decCount*decreaseRandom){&&&&&&&&&&&&&&//&a.&Update&SND&period:&SNDSND&=&SND&*&1.125;&&&&&&&&&&&&&&packetSendingPeriod&=&Math.ceil(packetSendingPeriod*1.125);&&&&&&&&&&&&&&//&b.&Increase&DecCount&by&1;&&&&&&&&&&&&&&decCount++;&&&&&&&&&&&&&&//&c.&Record&the&current&largest&sent&sequence&number&(LastDecSeq).&&&&&&&&&&&&&&lastDecreaseSeqNo=&currentMaxSequenceNumber;&&&&&&&&&&}&&&&&&&&&&&&&&&&&&&statistics.setSendPeriod(packetSendingPeriod);&&&&&&&&&&&&&&&&}&&&
【编辑推荐】【责任编辑: TEL:(010)】
大家都在看猜你喜欢
原创专题专题专题原创
24H热文一周话题本月最赞
讲师:3人学习过
讲师:2人学习过
讲师:3人学习过
精选博文论坛热帖下载排行
在软件领域,很少能有像《人月神话》一样具有深远影响力并且畅销不衰的著作。Brooks博士为人们管理复杂项目提供了最具洞察力的见解。既有很...
订阅51CTO邮刊流量控制与拥塞控制的区别。为什么要把流量控制与拥塞控制分为两个名词? - 知乎98被浏览6303分享邀请回答register u_int cw = tp-&snd_cwnd;
register u_int incr = tp-&t_maxseg;
if (cw & tp-&snd_ssthresh)
incr = incr * incr / cw ;
tp-&snd_cwnd = min(cw + incr, TCP_MAXWIN&&tp-&snd_scale);
慢启动的原则就是收到一个ACK窗口大小就续一个。但是如果当前的拥塞窗口大小小于慢启动的阈值,增加值为1除以拥塞窗口大小并加上一个常量,而拥塞窗口的上限又等于连接发送窗口的最大值,所以使用这样一个过程进行拥塞控制,更新拥塞窗口的大小。另外,题主你觉得和流量控制在定义和方法上存在重复的那是端到端拥塞控制,这是在网络层没有提供对于拥塞控制的显式支持。所以只能通过对传输层的网络行为(丢包、时延)观察判定拥塞是否发生,如果发生就相应的减小窗口值。但还存在网络辅助的拥塞控制,比如网络组件(路由器)向发送方提供关于拥塞的反馈。[1] Kurose, James F. Computer Networking: A Top-Down Approach Featuring the Internet, 3/E. Pearson Education India, 2005.[2] Wright, Gary R., and W. Richard Stevens. TcP/IP Illustrated. Vol. 2. Addison-Wesley Professional, 1995.7012 条评论分享收藏感谢收起以下试题来自:
问答题简答题流量控制与拥塞控制有和关系与区别?
流量控制与拥塞控制的关系与区别如下:①流量控制:接收端向发送端发出信号,请求发送端降低发送速率;拥塞控制......
为您推荐的考试题库
您可能感兴趣的试卷
你可能感兴趣的试题
1.问答题 共享广播信道采用基于信道的共享和基于排队的共享两种方法。信道共享可采用频分复用或时分复用,无论采用哪种技术都可以有固......2.问答题 SLIP协议主要特点是:(1)SLIP没有差错检测的功能。如果一个SLIP帧在传输中出了差错,就只能靠高层来进行纠正。......3.问答题 主要特点:(1)点对点协议,既支持异步链路,也支持同步链路。(2)PPP是面向字节的。PPP不采用序号和确......4.问答题 分三大类。1信息帧:用于数据传输,还可同时用来对已收到的数据进行确认和执行轮询功能。2监督帧:用于数据流控制,帧本身不......5.问答题 CRC是在发送期间进行计算的。一旦把最后一位数据送上外出线路,就立即把CRC编码附加在输出流的后面发出。如果把CRC放在帧的头......

我要回帖

更多关于 拥塞控制流量控制关系 的文章

 

随机推荐