本篇文章给大家谈谈网络传输优化:深入解析TCP拥塞控制与有序包传输策略,以及对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。
窗口值的大小代表着能够发送出去的但还没有收到ACK(Acknowledgement确认字符)的最大数据报文段。显然,窗口越大,数据发送的速度越快,但也更容易造成网络拥塞。
四个核心算法
1、慢启动image.png 创建新连接时,cwnd被初始化为最大大小报文段(MSS)。发送方根据拥塞窗口大小开始发送数据。每当一个段被确认时,cwnd只需添加1 个大小MSS。这样,cwnd的值随着网络往返时间(RTT)呈指数增长。
开始---cwnd=1
1个RTT后---cwnd=2*1=2
2个RTT后---cwnd=2*2=4
3个RTT后---cwnd=4*2=8
2、拥塞避免TCP如何避免网络拥塞?
当拥塞窗口cwnd达到阈值(慢启动门限(ssthresh))时,窗口大小不再呈指数增长,而是线性增长。
此时,当窗口中的所有消息段都被确认后,cwnd的大小加1,cwnd的值开始随着RTT(往返时延)线性增加。这样可以避免因增长过快而造成的网络拥塞。从而慢慢增加并调整到网络的最优值
TCP认为网络拥塞的主要原因是它重传了一个报文段
3、快速重传image.png 当发送方收到3个重复ACK(冗余ACK)时,不等待RTO(重传定时器)超时就开始重传。具体重传操作如下:
将ssthresh设置为cwnd的一半,将cwnd设置为ssthresh的值,重新进入拥塞避免阶段。事实上,当重传定时器(RTO)超时并且没有收到数据确认时,TCP就会重传该报文段。具体重传传输操作如下:
将ssthresh减少到cwnd值的一半。将cwnd重置为1,重新进入慢启动过程。4、快速恢复当发送方收到至少3个重复的Ack时,TCP认为网络状况还不错,可以很快恢复。
首先,TCP将拥塞窗口的大小设置为慢启动阈值+3个段大小。即cwndsshthresh+ 3 * MSS(3表示确认收到3个冗余数据包)如果再次收到重复的Ack,那么如果收到新的Ack则为cwndcwnd+1,那么,cwndsshthresh进入拥塞避免算法,以上就是TCP拥塞机制的整体核心内容。
TCP如何保证包的顺序传输
每次发送主机发送数据时,TCP 都会为每个数据包分配一个序列号,并等待特定的时间让接收主机确认分配的序列号。
如果发送主机在特定时间内没有收到接收主机的确认,则发送主机将重传数据包。
文章分享结束,网络传输优化:深入解析TCP拥塞控制与有序包传输策略和的答案你都知道了吗?欢迎再次光临本站哦!
【网络传输优化:深入解析TCP拥塞控制与有序包传输策略】相关文章:
2.米颠拜石
3.王羲之临池学书
8.郑板桥轶事十则
用户评论
最近在学习网络编程,对TCP拥塞机制很感兴趣!
有13位网友表示赞同!
有序传输确实很重要啊,特别是对于需要可靠性的应用。
有5位网友表示赞同!
不知道什么情况下会有网络拥塞?
有15位网友表示赞同!
包处理的过程应该蛮复杂的,想知道具体是如何保证有序传输的呢?
有20位网友表示赞同!
学习TCP协议是每个程序员必备的技能吧!
有6位网友表示赞同!
之前听说过流量控制,和拥塞机制有什么关系吗?
有14位网友表示赞同!
这个题目听起来很专业,希望能有深入讲解。
有15位网友表示赞同!
网络工程师的工作环境一定会充满挑战性。
有8位网友表示赞同!
学习这些技术可以让我更好地理解网络的运作方式。
有20位网友表示赞同!
包丢失和乱序传输确实会严重影响应用性能啊。
有19位网友表示赞同!
拥塞机制能解决多少问题呢?
有7位网友表示赞同!
这篇文章应该能帮我解答一些关于TCP协议的疑问。
有19位网友表示赞同!
网上有很多优秀的网络编程资源,不知道有没有推荐的吗?
有18位网友表示赞同!
TCP 的技术应用场景还挺广泛吧!
有17位网友表示赞同!
感觉学习这些知识很有价值,尤其是在这个互联网时代。
有9位网友表示赞同!
理解TCP拥塞机制可以让我写出更健壮的代码。
有13位网友表示赞同!
希望这篇文章能讲解得详细一些,方便新手入门。
有18位网友表示赞同!
网络世界真是太复杂了,还有很多需要我学习的地方。
有15位网友表示赞同!
TCP是现在网络通信的基础吗?
有16位网友表示赞同!