我Faint--ICMP的校验

        原来游戏中客户端为了获取与服务器之前的网络连接状况,添加了一个ping的模块,这个地方没有仔细看过,一直存在一个问题是从监控日志上可以看到某些时候会突然出现一个很大的值,玩家就是网络再烂应该也不会出现的。最近有空写了一下日志才发现问题所在,简单得不可思议,Bug在于收到ICMP回包之后没有对数据包做校验就取时间戳计算耗时了。
        而底层收上来的ICMP包,有可能是路过的ICMP广播,这样就会带来计算错误。
        其实在ICMP的协议中本身就预留了标识位用以区分是否是返回给自己的ping包,没有仔细读一下协议呀,罪过罪过!
    
        备忘一下: ICMP协议的rfc
        http://www.faqs.org/rfcs/rfc792.html 

        RFC真的名符其实Request for Comments,除了问题才想起翻翻。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值