假设我们有具有多个千兆接口的交换机,并且有两台机器连接到该交换机,一台带有千兆网卡,一台带有 100 mbps 网卡,我们开始将文件从千兆机器复制到快速以太网机器。文件复制速度最大为 100 mbps,但 1 gbps 机器如何知道第二方速度并发送更慢?是通过 TCP 消息吗?如果我们发送 ICMP/UDP 数据包会发生什么?
发送方如何检测接收方速度?
网络工程
以太网
通讯协议
服务质量
2021-07-29 03:16:28
2个回答
从根本上说,如果交换机只能转发100M的数据包,那么交换机缓冲区就会溢出并丢包。
如果您使用 TCP,则发送方将通过放慢速度直到达到平衡(或多或少)来对没有 ACK 做出反应。
如果正在使用 TCP 并且没有以太网流量控制,则会发生以下情况。
- 发送方将开始发送数据包,最初很慢,但随着时间的推移会增加速率。
- 当数据速率过高时,交换机上的数据包缓冲区将填满,数据包将被丢弃。
- 然后发送方将降低数据速率,线路上的速率将保持在线路容量附近,逐渐增加,直到数据包被丢弃,然后再次回退。
其他协议组合可能会有所不同。在某些情况下,交换机可能会丢弃大量数据包。
第一个也是最常用的以太网流量控制系统使用“暂停帧”。暂停帧旨在作为在以太网网络中实施“背压”的一种手段,以便交换机缓冲区不会溢出,因为发送节点的速度仅限于下游设备可以标记的内容。不幸的是,它们造成了一些问题,即一个拥塞的流可能会导致其他未拥塞的流阻塞,因此它们在实践中经常被禁用。
其它你可能感兴趣的问题