qq_43412960 2019-11-20 21:26 采纳率: 78.6%
浏览 346
已结题

用python 中socket模块中的raw制造icmp包问题

图片说明

这是icmp包 校验和程序,我想不明白,最后return校验和,为什么要&ffff.
第一个sum &ffff是为了取最后16位
第二个sum &ffff类似第一个,为了保证多出来的也被计算。

  • 写回答

1条回答 默认 最新

  • threenewbee 2019-11-20 23:24
    关注

    这就是王八的屁股,规定
    https://blog.csdn.net/zhj082/article/details/80518322
    按照规范,计算出来的保留最后2个字节。

    你也可以这么想,报文长度可以很长,但是始终算出来都是2个字节,并且要保证原文都被算到(也就是任何原文位置的改动,都要引起校验的改动,否则校验就无法有效检查出任何错误)

    评论

报告相同问题?

悬赏问题

  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 Web.config连不上数据库
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流
  • ¥15 Rstudio 保存代码闪退
  • ¥20 win系统的PYQT程序生成的数据如何放入云服务器阿里云window版?
  • ¥50 invest生境质量模块
  • ¥15 nhanes加权logistic回归,svyglm函数