![]() |
1
4
如果我理解的正确,你可以使用一些窗口,如果你还没有。 也就是说,不要接受窗口外的消息。例如,如果您的计数器为1000,您可以将接受的传入计数器ID的范围限制为1000…1031(包括1000…1031)。因此,超出这个范围的任何事情都是您无法处理的(强制您启动一些重新发送协议)。一旦你得到1000,你的上限将达到1032。一旦你的下限计数器是1001,你的上限就是1033,以此类推。你最后得到的是一个滑动窗。 如果这种情况是可以接受的,那么您需要检查的只是您的传入计数器ID在您接受的窗口内。这将是16位计数器的一个子集,因此您可以测试… incomingCounterID-lowerLimitCount<windowsize 只要处理无符号变量,就可以了。 希望这能有所帮助(而且是有道理的)。 |
![]() |
2
5
处理这个问题的通常方法是做模减法。序列号
例如,
|
![]() |
3
3
你的问题很久以前就在 RFC1982 如果您有未签名的序列号I1和I2,则适当的测试是 如果I1<gt;I2,则I1小于I2,并且
(或使用其反向大于测试) 对于32位无符号,2^(串行位-1)=2^31=x8000000 |
![]() |
4
0
我可以让客户保存两件事:
对于每个请求,客户机增加其内部计数器并将其保存在列表中。在请求消息中,它将消息计数器设置为模块65536。当响应消息出现时,客户机将遍历其等待的请求列表,以获取匹配的编号modulo 65536。如果此内部数字大于目前为止的最高值,则接受该消息。这将绕包问题推迟到40亿左右。下面是伪代码。
|
![]() |
5
0
这主要是一个组合的话,所以不要选择我作为答案,但既然你知道
你应该能够让一个相当好的系统运行。 请求方/响应方:
在请求者/响应者方面:
除非您以非常快的速度发送大量请求,否则这应该可以相当好地工作。这并不意味着网络上有任何人想做坏事。在这个设置上实现拒绝服务(DoS)是很简单的。 |
![]() |
migo101 · 整数溢出就是那个恶魔吗? 3 年前 |
![]() |
flyingbee · 如何只在一个div中创建滚动条 3 年前 |
![]() |
Anna_B · 使用鼠标按下的持续时间进行滚动 3 年前 |
![]() |
Sam Esmail · CSS深层嵌套溢出 7 年前 |
![]() |
Bart F. W. · z索引似乎不起作用 7 年前 |
![]() |
techguy2000 · css网格单元格内容溢出不工作 7 年前 |
![]() |
DF_ · Flexbox增长容器,增长到一定高度,然后滚动 7 年前 |
![]() |
sridesmet · 使用引导下拉菜单滚动挂起 7 年前 |