IP传输层拥塞控制算法
|
一下: 在数据通信中,流量控制是管理两个节点之间数据传输速率的过程,以防止快速发送方压倒慢速接收方。 它为接收机提供了一种控制传输速度的机制,这样接收节点就不会被来自发送节点的数据淹没。 可以看到流量控制是通信双方之间约定数据量的一种机制,具体来说是借助于TCP协议的确认ACK机制和窗口协议来完成的。 窗口分为 固定窗口和可变窗口 ,可变窗口也就是 滑动窗口 ,简单来说就是通信双方根据接收方的接收情况动态告诉发送端可以发送的数据量,从而实现发送方和接收方的数据 收发能力匹配 。
这个过程非常容易捕捉,使用 wireshark在电脑上抓或者tcpdump在服务器 上抓都可以看到,大白在自己电脑上用wireshark抓了一条: ace是当前剩余的空间,rwnd的就是free buffer space区域的字节数。 HostB把当前的rwnd值放入报文头部的接收窗口receive window字段中,以此通知HostA自己还有多少可用空间, 而HostA则将未确认的数据量控制在rwnd值的范围内,从而避免HostB的接收缓存溢出。 可见 流量控制是端到端微观层面的数据策略 ,双方在数据通信的过程中并不关心链路带宽情况,只关心通信双方的接收发送缓冲区的空间大小,可以说是个 速率流量匹配策略 。 流量控制就像现实生活中物流领域中A和B两个仓库,A往B运送货物时只关心仓库B的剩余空间来调整自己的发货量,而不关心高速是否拥堵。 2.2 拥塞控制的必要性前面我们提到了微观层面点到点的流量控制,但是我们不由地思考一个问题: 只有流量控制够吗?答案是否定的。
我们还需要一个宏观层面的控去避免网络链路的拥堵,否则再好的端到端流量控制算法也面临 丢包、乱序、重传 问题,只能造成恶性循环。 (编辑:唐山站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |



