为了论证起见,让我们谈谈TCP/IP,但如果其他技术更合适,请务必说出来!
我对经典链路聚合的理解是一种循环类型的发送方法,用于在任何层上组合带宽和理想的线路级冗余。
有没有一种方法可以绑定两个连接,镜像发送的数据并使用镜像进行实时纠错?也许甚至通过校验和而不是完全乘法?想想“网络突袭”。
这对于向应用程序添加纠错功能非常有用,这些应用程序本身不提供纠错功能。一个例子是无线网络上的 VoIP,它经常受到数据包延迟或丢失的影响。
为了论证起见,让我们谈谈TCP/IP,但如果其他技术更合适,请务必说出来!
我对经典链路聚合的理解是一种循环类型的发送方法,用于在任何层上组合带宽和理想的线路级冗余。
有没有一种方法可以绑定两个连接,镜像发送的数据并使用镜像进行实时纠错?也许甚至通过校验和而不是完全乘法?想想“网络突袭”。
这对于向应用程序添加纠错功能非常有用,这些应用程序本身不提供纠错功能。一个例子是无线网络上的 VoIP,它经常受到数据包延迟或丢失的影响。
我听说过这样的系统吗?否 可以建立这样的系统吗?绝对!
一个显而易见的简单方法是在“扩展器”中为每个数据包提供一个 ID 号。然后在您的“承包商”中检查是否已收到序列号。如果没有,则解封装数据。如果它让你删除数据。
Linux 提供了“TUN”和“TAP”接口,让你可以从用户空间创建虚拟网络接口,所以想出这样一个想法的原型应该不会太难。
以太网不提供您所描述的任何内容;以太网中没有任何错误更正。纠错留给上层协议,上层协议可能有也可能没有任何纠错。
冗余流量实际上会导致网络堆栈出现问题,并且它们会使用不必要的带宽。
一般来说,当检测到错误时,例如坏的以太网FCS(CRC),最好尽快丢弃坏的数据报(帧、包、段等),以免上层错过并询问它会被反感。
循环通常是一个坏主意,因为它会增加无序数据报,从而给上层协议带来问题。更好的方法是使用某种散列,以便单个数据流仅使用一个链接(跨链接传播数据流)。