Tcp 以太网接收缓冲区已满时会发生什么情况
我有一个很新的问题:假设我有两个设备通过以太网(TCP/IP)以100Mbps的速度通信。在一侧,我将向设备提供要传输的数据。在另一端,我将使用接收到的数据。我有能力选择两个设备的适当缓冲区大小 现在我的问题是:如果第二台设备的数据消耗率比第一台设备的数据传输率慢,那么会发生什么 我找到了一些,谈论超限计数器 以太网通信中是否有任何东西表明设备正忙,无法接收新数据包?所以我可以暂停从接收器设备传输 有没有人能给我提供一份或多份详细解释这个问题的文件,因为我没有找到Tcp 以太网接收缓冲区已满时会发生什么情况,tcp,embedded,ethernet,Tcp,Embedded,Ethernet,我有一个很新的问题:假设我有两个设备通过以太网(TCP/IP)以100Mbps的速度通信。在一侧,我将向设备提供要传输的数据。在另一端,我将使用接收到的数据。我有能力选择两个设备的适当缓冲区大小 现在我的问题是:如果第二台设备的数据消耗率比第一台设备的数据传输率慢,那么会发生什么 我找到了一些,谈论超限计数器 以太网通信中是否有任何东西表明设备正忙,无法接收新数据包?所以我可以暂停从接收器设备传输 有没有人能给我提供一份或多份详细解释这个问题的文件,因为我没有找到 感谢您提前以太网协议在MAC控
感谢您提前以太网协议在MAC控制器芯片上运行。MAC有两个单独的RX环(用于入口数据包)和TX环(用于出口数据包),这意味着它本质上是全双工的。RX/TX环也有片内FIFO,但环将PDU保存在主机内存缓冲区中。我已经在一个相关的 现在,可能会发生拥塞,但RX和TX是两条不同的路径,将由以下情况引起
TCP/IP是上层堆栈,位于内核内部(也可以位于用户平面),而ARPA协议(以太网)位于MAC控制器硬件内部。如果您了解这一点,您将了解路由器和交换机之间的区别(在没有TCP/IP堆栈的情况下) 由TCP来处理这个问题。物理层不关心,它最多会使用CRC检查帧内的错误和其他与帧相关的检查,与传输速率无关。感谢您的有益评论,此链接还详细解释了我要查找的内容。关键工作是TCP的流量控制TCP/IP和ethernet是两个不同的堆栈,请在下面找到我的答案。你想查找流量控制,根据接口的不同,通常有带内和带外流量控制,理想情况下,你想让流量控制告诉发送者在你吃饱时暂时停止向你发送内容。如果您不这样做,那么根据设计,您将以某种形式溢出,理想情况下,一些缓冲区开始丢弃数据包。有时,你可以在缓冲区中设置一个高水位线,以确定它开始这样做的级别。然后,一旦数据包丢失,只要你不通过填充缓冲区和反压挂断发送方或接收方,TCP/IP之类的协议就不在乎数据包丢失,它们会重试。存在不重试的协议。。。