gpt4 book ai didi

c - 如何在 C 中使用 UDP 分配 PacketID 来跟踪不可靠网络上的数据包?

转载 作者:行者123 更新时间:2023-11-30 16:24:24 25 4
gpt4 key购买 nike

如果这个问题看起来很奇怪,我很抱歉。现在,我有一个客户端使用 UDP 通过可靠的网络向服务器发送数据包。对于我的项目,我必须使用 UDP 通过不可靠的网络发送这些数据包。为了模拟不可靠的网络,我正在运行sudo tc qdisc add dev lo root netem delay 100ms 20ms 25% loss 0.5% duplicate 1% reorder 25% 50%

由于数据包被丢弃和重复,我想为每个数据包分配一个 PacketID 以便跟踪每个数据包。例如,如果跳过 PacketID 5,则在正确发送 5 之前不会发送其他数据包。如果PacketID 5重复,则不会接受重复的版本。

我觉得我了解分配 PacketID 的方法,但我对套接字编程相当陌生,我不知道是否有更有效的方法。我不是在寻求答案(因为这是一个类项目),而是寻求一些关于我应该如何解决这个问题的建议和技巧

最佳答案

需要确认包。另外可以使用定时器。如果接收方收到 ID 为 n 的数据包,它将等待 n+1 个数据包 id,并一直等待,直到设置的计时器到期。所有 id 大于 n+1 的数据包都将被丢弃。当收到 n+1 个数据包时,必须从接收方向发送方发送一个确认数据包,其中 n+1 表示该数据包已收到。发送方可以等待,直到收到确认数据包。

关于c - 如何在 C 中使用 UDP 分配 PacketID 来跟踪不可靠网络上的数据包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53679138/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com