首页 > 其他分享 >报文校验和计算

报文校验和计算

时间:2023-10-30 09:04:33浏览次数:38  
标签:字节 IP 报文 校验 TCP 计算 ICMP

计算校验和算法

IP、ICMP、UDP和TCP头都有检验和字段,大小都是16bit,算法基本上是一样的。
发送报文时计算校验和
1、把校验和字段设置为0;
2、把需要校验的数据看成以16位为单位的数字组成,依次进行二进制反码求和;
3、把得到的结果存入校验和字段中。

接收数据时计算检验和
1、把首部看成以16位为单位的数字组成,依次进行二进制反码求和,包括校验和字段;
2、检查结果是否为0;
3、如果等于0,校验和正确;否则,校验和错误,丢弃数据包。

作用范围不同
IP校验和只校验20个字节的IP报头。
ICMP校验和覆盖整个报文(ICMP报头+ICMP数据)。
UDP和TCP校验和不仅覆盖整个报文,还有12个字节的IP伪首部,包括源IP地址(4字节)、目的IP地址(4字节)、协议(2字节)、TCP/UDP包长(2字节)。UDP和TCP报文长度可以是奇数字节,所以在计算校验和时需要在最后增加填充字节0(填充字节只是为了计算校验和,可以不被传送)。

参考资料

https://blog.csdn.net/oceanstudy123/article/details/121677774

标签:字节,IP,报文,校验,TCP,计算,ICMP
From: https://www.cnblogs.com/WJQ2017/p/17797000.html

相关文章

  • 计算机网络基础初涉
    网络,简而言之,就是一道道数据流组成的虚拟化的网。计算机网络由硬件上由基本的主机,数据信号转化器,光纤,路由设备,通讯线路,他方主机(服务器)组成,这就形成了基本的2机互通。他的实现基于OSI计算机模型。即物理层,链路层,网络层,传输层,会话层,表示层,应用层。而多机互通可通过一机分发多条线......
  • 2023-2024-1 20231309 《计算机基础与程序设计》第五周学习总结
    2023-2024-120231309《计算机基础与程序设计》第五周学习总结作业信息这个作业属于哪个课程2023-2024-1-计算机基础与程序设计这个作业要求在哪里2023-2024-1计算机基础与程序设计第五周作业这个作业的目标作业正文2023-2024-120231309《计算机基础与程......
  • 计算机图形学中的正交透视——从平行线消失点开始
    平行线消失点在我们日常生活中,会发现这样一类现象:在照片或者图画上,原本是平行的物体(比如铁轨轨道,公路等)会随着他们的延伸逐渐相交于视野尽头,这个尽头就被称作消失点,类似于下面这幅图所显示的内容:为什么原本平行的物体会出现这样的现象呢?我们可以从几何光学的角度直观的分析一下......
  • 2023-2024-1 20231324《计算机基础与程序设计》第五周学习总结
    2023-2024-120231309《计算机基础与程序设计》第五周学习总结这个作业属于哪个课程2023-2024-1《计算机基础与程序设计》这个作业的要求在哪里1.学习《计算机科学概论》第6章并完成云班课测试;2.学习《C语言程序设计》第4章并完成云班课测试。作业正文本博客链接ht......
  • 2023-2024 -1 20231415 《计算机基础与程序设计》第六周学习总结
    这个作业属于哪个课程https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP/这个作业要求在哪里https://www.cnblogs.com/rocedu/p/9577842.html#JXJC这个作业的目标学习计算机科学概论第6章并完成云班课测试,学习《C语言程序设计》第4章并完成云班课测试作业正......
  • 2023-2024-1 20231425 《计算机基础与程序设计》第五周周总结
      作业信息这个作业属于哪个课程2022-2023-1-计算机基础与程序设计这个作业的要求2022-2023-1计算机基础与程序设计第五周作业这个作业的目标学习《计算机科学概论(第7版)》第6章、《C语言程序设计》第4章作业正文 本周学习内容总结......
  • 学年(2023-2024-1)学号(20231311)《计算机基础与程序设计》第5周学习总结
    2023-2024-120231311《计算机基础与程序设计》第5周学习总结作业信息这个作业属于哪个课程2023-2024-1-计算机基础与程序设计这个作业要求在哪里2022-2023-1计算机基础与程序设计第五周作业这个作业的目标下载Pep/9虚拟机,学习机器语言与汇编语言,算法与伪代码等......
  • 用Python计算圆周率pi
    一、要求1.要求能算到小数点后面越多越好(5分)‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬......
  • 2023-2024-1 20231325 《计算机基础与程序设计》第5周学习总结
    目录*作业信息*教材学习内容总结1.《计算机科学概论》第6章2.《c语言程序设计》第4章*基于AI的学习*学习心得*学习进度条作业信息这个作业属于哪个课程2023-2024-1《计算机基础与程序设计》这个作业的要求在哪里1.学习《计算机科学概论》第6章并完成云......
  • 用python计算圆周率PI
    fromrandomimportrandomfrommathimportsqrtimporttimeDARTS=10**7hits=0.0a=1start=time.perf_counter()foriinrange(1,DARTS+1):x,y=random(),random()dist=sqrt(x**2+y**2)ifdist<=1.0:hits=hits+1ifi==DARTS*0.01*a:print......