我有一个非常新手的问题:假设我有两台设备通过以太网(TCP / IP)以100Mbps通信。在一方面,我将为设备提供要传输的数据。另一方面,我将使用收到的数据。我可以选择两种设备的足够缓冲区大小。
现在我的问题是:如果来自第二台设备的数据消耗率低于第一台设备的数据传输速率,那么将会发生什么?
我发现了一些,谈论超限计数器。
以太网通信中是否有任何内容表明设备暂时无法接收新数据包?所以我可以暂停接收设备的传输。
有人可以向我提供一份或多份详细解释此问题的文件,因为我找不到任何文件。
先谢谢你
答案 0 :(得分:2)
以太网协议在MAC控制器芯片上运行。 MAC有两个独立的RX环(用于入口数据包)和TX环(用于出口数据包),这意味着它本质上是全双工的。 RX / TX环也具有片上FIFO,但环保持PDU在主机存储器缓冲区中。我在其中一个相关的post
中介绍了一些功能现在,可能会发生拥塞,但RX和TX又是两条不同的路径,并且将由于以下条件而导致
现在,关于对等设备:独立系统可以注意背压,当发生这种情况时,我们通常会拖尾数据包。如果对等设备对该设备的问题很慢,这对对等设备是不可知的。
溢出的定义是:接收方硬件无法处理接收到硬件缓冲区的数据的次数,因为输入速率超过了接收方处理数据的能力。
我建议选择任何MAC控制器的数据表(例如:Intel's ethernet Controller),您将获得所有问题。或者,如果您看到任何MAC控制器的设备驱动程序。
TCP / IP是位于内核内部的上层堆栈(也可以位于用户平面中),而ARPA协议(以太网)位于MAC控制器硬件内部。如果您了解这一点,您将了解路由器和交换机之间的区别(没有TCP / IP堆栈)。