卫星通信的“以太网帧”相当于什么?

网络工程 UDP
2022-02-28 00:20:14

我目前正在为基于 UDP 的网络协议实现纠错我们选择实施纠错以减少数据包重传的次数。

架构非常简单:在我们的 UDP 数据包中(在有效负载部分),我们包含一个纠错码(在这种特定情况下基于 Reed-Solomon);因此,如果 UDP 数据包在传输过程中损坏,我们的应用程序能够“修复”UDP 有效负载,而无需请求重新传输数据包。仅当数据包完全丢失或损坏太多时才需要重新传输。

主要问题是:要使这种架构正常工作,UDP 数据包即使损坏也必须传送到目的地。但是,如果数据包损坏,网络设备和操作系统本身可能会丢弃数据包。

我解决了 UDP 传输层的问题:幸运的是,UDP 的校验和是可选的,因此可以禁用它。禁用 UDP 的校验和功能使我们能够接收损坏的 UDP 数据包(因此我们可以尝试自己修复它们)。

我还解决了 IPv4 层的问题:IPv4 的校验和仅检查 IPv4 标头的完整性,而不检查有效负载。这完全没问题,因为我们的应用程序能够修复有效负载损坏,但当然不能修复 IPv4 标头损坏。

最后一个问题需要解决:数据链路层。例如,以太网帧具有确保整个帧完整性的校验和;这意味着如果 UDP 有效载荷损坏,以太网帧校验和将无效,因此网络设备或操作系统将丢弃数据包。

另一方面,我们的网络协议需要纠错功能,因为它将用于卫星通信(我想数据包不使用以太网帧传输到卫星)。但我无法找到有关“卫星帧”以及它们如何处理完整性检查的信息。

卫星通信中通常使用什么样的帧?而且,最重要的是,这些帧是只检查标头完整性(如 IPv4)还是整个数据包完整性(如以太网帧)?

非常感谢。

1个回答

虽然以太网在有线链路中无处不在,但卫星通信却没有这样的单一标准。ISP 可能使用类似于以太网的东西或完全不同的东西。没有单一的答案,您必须询问 ISP。

顺便提一下,ETSI 标准已经使用双级 FEC,请参阅https://www.etsi.org/deliver/etsi_ts/102100_102199/10218801/01.01.01_60/ts_10218801v010101p.pdf很可能,大多数其他协议也使用 FEC。

也就是说,最好将您的 FEC 设为可选。这样,您可以减少不可靠链路上的错误和数据包丢失,同时省略不提供任何好处的链路上的开销。