IPheader.length是总长度(占16比特包括 IP头 和 后续的数据)

UDPHeader.Length:长度字段:占16比特。标明UDP头部和UDP数据的总长度字节。

IPv4层

1.fcs实际上是32位的crc校验

2.udp校验和首先要求和:

求和是16位高低位取反求和:比如\x1000要转化成\x0001,同时报文的长度不是16位的整数倍时,那么在末位添2字节的0,故而当报文为b'\x10\x00\x11',实际求和报文为b'\x10\x00\x11\x00',高低位取反后是b'\x00\x10\x00\x11'结果为16+17=33.

依次对"IPHeader.DestAddress""IPHeader.SourceAddress" "IPHeader.Protocol""UDPHeader.Length" “udp头部+playload"高低位取反求和,其中"IPHeader.Protocol"是8位的,要在高位补8位0,然后再高低位取反去和,将5个求和结果相加求和得到32位结果s

再投入以下公式:

s = (s >> 16) + (s &0xffff)

s += s >> 16

s = ~s

s= s & 0xffff

最后的s取低16位,再高低位取反,就是udp的校验和。

3.IP的checksun是只对“IP头”反码求和,结果也要进行如下计算:

s = (s >> 16) + (s &0xffff)

s += s >> 16

s = ~s

s= s & 0xffff

最后的s取低16位,高低位取反,就是IP的校验和。

3.tcp校验和首先要求和,与udp一样,只是tcp头部包含的字段更多

IPv6层

1、udp校验和首先要求和:

求和是16位高低位取反求和:比如\x1000要转化成\x0001,同时报文的长度不是16位的整数倍时,那么在末位添2字节的0,故而当报文为b'\x10\x00\x11',实际求和报文为b'\x10\x00\x11\x00',高低位取反后是b'\x00\x10\x00\x11'结果为16+17=33.

依次对" IPv6Header.DestAddress " "IPv6Header.SourceAddress " " IPv6Header.NextHead " "UDPHeader.Length" “udp头部+playload"高低位取反求和,其中" IPv6Header.NextHead "是8位的,要在高位补8位0,然后再高低位取反去和,将5个求和结果相加求和得到32位结果s

再投入以下公式:

s = (s >> 16) + (s &0xffff)

s += s >> 16

s = ~s

s= s & 0xffff

最后的s取低16位,再高低位取反,就是udp的校验和。

3.IP的checksun是只对“IP头”反码求和,结果也要进行如下计算:

s = (s >> 16) + (s &0xffff)

s += s >> 16

s = ~s

s= s & 0xffff

最后的s取低16位,高低位取反,就是IP的校验和。

2、tcp校验和首先要求和,与udp一样,只是tcp头部包含的字段更多

ipv4和ipv6的 udp/tcp CRC校验和算法相关推荐

  1. udp tcp ip 校验和对比

    首先TCP,UDP,IP三个协议中校验和都占16位,也就是两个字节. UDP的校验和结算相对简单.首先UDP报文长度不是确定的,所以计算校验和前要先将报文的末尾用'0'补齐.使报文为偶数个字节. 发送 ...

  2. TCP/IP 校验和算法简介

    1. 前言 校验和计算是NAT功能和内容修改功能的基本功,这些操作进行后都需要修改数据头中的校验和. 2. 16位校验和计算 2.1 基本原理 IP/ICMP/IGMP/TCP/UDP等协议的校验和算 ...

  3. TCP/IP卷一:26---Internet协议之(IPv4、IPv6数据报,Internet校验和)

    一.IP简介以及一些特性 IP是TCP/IP协议族中的核心协议.所有TCP. UDP. ICMP和IGMP数据都通过IP数 据报传输 IP的可靠性 IP提供了一种尽力而为.无连接的数据报交付服务.&q ...

  4. 以太网帧、IP 帧、UDP/TCP帧、http 报文结构解析

    我们从 OSI/RM 参考模型入手,来看 OSI/RM 七层模型中的每一层数据帧结构. 一 OSI/RM 结构 OSI 是不同制造商的设备和应用软件在网络中进行通信的标准,此模型已经成为计算机间和网络 ...

  5. IPv4和IPv6报文格式介绍和对比

    IPv4和IPv6报文介绍和对比 IPv4数据报 IPv4报文详解 IPv6数据报 IPv6报文详解 扩展头部详解 IPv4和IPv6报文详细对比 IPv4数据报 IPv4报文详解 版本Version ...

  6. tcp硬件校验和rxtx开启是啥意思_一文读懂 TCP/IP 网络模型

    前言 互联网是怎么构成的,又是怎么运作的?什么面试官老喜欢问 TCP/IP 网络?为什么远隔万里的计算机可以互相通信?计算机网络作为 IT 行业的基石,是工程师永远绕不开的话题. 网络的分层体系结构 ...

  7. IPv6技术精要--第3章 对比IPv4和IPv6

    文章目录 3.1 IPv4报文头VSIPv6报文头 -----IPv4报文头------- IHL ( 4比特) ToS (8比特) 数据包总长(Total Length, 16比特) 标识符(Ide ...

  8. IPv4和IPv6的数据报结构头部详解

    IP数据报 1. IP数据报究竟是个什么鬼 IP是TCP'/IP协议族中的核心协议.所有UDP.TCP.ICMP和IGMP数据都是通过IP数据报传输.IP提供了一种尽力而为.无连接的数据报交付服务. ...

  9. UDP之数据报校验和

    文章目录 数据结构 sk_buff校验和字段 net_device校验和字段 接收报文的校验和计算 udp4_csum_init() udp_lib_checksum_complete() 小结 发送 ...

最新文章

  1. CSS3---6.文字阴影
  2. javaee 架构师之路
  3. flask html 得到文本框 input的内容_【笔记7】HTML及其常见标签
  4. java模块是什么6_Java 9 揭秘(6. 封装模块)
  5. 我写的几篇技术文章之一:Windows消息拦截技术的应用
  6. vue调用手机相机相册_移动端vue调用照相机及相册
  7. [Flex]实现Application未初始化前加载自定义配置内容
  8. 【SQL基础】SQL查询语句实例
  9. VMware卸载Ubuntu系统(详细教程)
  10. 畅购商城项目v1-环境搭建
  11. 第九届蓝桥杯国赛 调手表
  12. php无法运行,php不执行是什么原因造成的
  13. 微信数据运营面试心得(社招)
  14. 2021年“全球乳业20强”榜单发布;全新版希尔顿花园酒店计划2025前在中国开业超200家 | 美通社头条...
  15. HoloView 在 jyputer lab/notebook 不显示总结
  16. IDEA 使用Spring Boot框架实现hello world
  17. Leetcode 初级算法 - 数学
  18. Python3读txt,UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xd0 in position 0: invalid continu
  19. idc机房运维的相关介绍以及发展方向
  20. mapreduce php,php mapreduce

热门文章

  1. DOM和BOM总结及事件内容
  2. 数据库自增id,根据当前时间更新插入数据时间
  3. Latex编辑器无法生成参考文献的可能原因
  4. [C++] NRV优化
  5. CSS项下-角标效果实现
  6. 创业公司为什么不自建MySQL而使用阿里云的 RDS
  7. Coordinate坐标
  8. 树莓派zero玩JAVA游戏,用树莓派编写“太空入侵者”游戏教程,这个元旦简单太爽了……...
  9. 联发科cpu能装linux,是否可以使用qemu模拟MediaTek ARM处理器?
  10. 扁平化网站设计风格七大技巧