用Golang编写的网际校验和算法
来源:互联网 发布:ts文件合并软件 编辑:程序博客网 时间:2024/06/08 05:51
网际校验和算法适用于IP、TCP、UDP、ICMP等协议的校验。
func CheckSum(data []byte) uint16 {var (sum uint32length int = len(data)index int)//以每16位为单位进行求和,直到所有的字节全部求完或者只剩下一个8位字节(如果剩余一个8位字节说明字节数为奇数个)for length > 1 {sum += uint32(data[index])<<8 + uint32(data[index+1])index += 2length -= 2}//如果字节数为奇数个,要加上最后剩下的那个8位字节if length > 0 {sum += uint32(data[index])}//加上高16位进位的部分sum += (sum >> 16)//别忘了返回的时候先求反return uint16(^sum)}
0 0
- 用Golang编写的网际校验和算法
- 网际校验算法的理解
- 网际校验和(Internet Checksum)算法的特征
- 网际校验和算法(Internet CheckSum)
- 网际校验和(Internet Checksum)算法实现
- C++ Exercises(十七)---网际校验和算法
- TCP/IP详解 卷I:协议 のIP网际层 IP校验和的计算
- 校验和的计算/校验算法
- 通过编写校验和计算程序,对指定的文件计算校验和,以加深对计算校验和算法的掌握。
- java验证码的编写和校验
- 用golang编写简单的Echo Server
- 校验和的相关算法和原理
- 三、Linux网络编程-TCP/IP基础(三)IP数据报格式、网际校验和、路由
- IP数据包的校验和算法
- IP数据包的校验和算法
- IP数据包的校验和算法
- IP数据包的校验和算法
- IP数据包的校验和算法
- erlang实现快速排序
- 火狐异常 NS_ERROR_MALFORMED_URI: The URI is malformed
- 鱼塘钓鱼
- Solr学习之十:highlighting高亮显示查询
- 如何学好数学
- 用Golang编写的网际校验和算法
- 将视频文件转化为图片——批量读写图像
- arm+linux学习之路
- android的几个小技巧
- background-clip及backgound-origin效果比较
- 染色和印花知识概述
- leetcode: Valid Sudoku
- 浙大PAT 3-04. 一元多项式的乘法与加法运算 (解题思路)
- 第二周