题目0229-响应报文时间
题目描述
IGMP 协议中,有一个字段称作最大响应时间(Max Response Time),HOST收到查询报文,解析出MaxResponseTime字段后,
需要在(0,MaxResponseTime)(s)时间内选取随机时间回应一个响应报文,如果再随机时间内收到一个新的查询报文,则会根据两者时间的大小,选取小的一方刷新回应时间。
- 最大响应时间有如下计算方式:
- 当
MaxRespCode < 128,MaxRespTime = MaxRespCode; - 当
MaxRespCode >= 128,MaxRespTime = (amnt | 0x10) << (exp + 3);
|0|123|4567|
|1|exp|mant|
注:exp最大响应时间的高5~7位;mant为最大响应时间的低4位。
- 当
其中接收到的 MaxRespCode 最大值为255,以上出现所有字段均为无符号数。
现在我们认为 HOST 接收到查询报文时,选取的随机时间必定为最大值。
现给出 HOST 收到查询报文个数
本文详细解析了华为在线开发者面试中的一道编程题,涉及IGMP协议中的最大响应时间计算。题目要求根据主机收到的查询报文时间及最大响应时间字段,计算出发送响应报文的最早时间。解题思路包括如何计算最大响应时间,并在多个查询报文中找到最早的响应时间。提供了多种编程语言的参考解题代码。
订阅专栏 解锁全文
1万+

被折叠的 条评论
为什么被折叠?



