怎样计算tcp头中的校验和?

yyy6 yyy6 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我收到一个tcp包后, 改变了包中的目的地址( 目的mac不变), 并重新计算校验和.把改包发出.
结果用测试软件看到该包的校验和不对.
怎样计算tcp头中的校验和?

//CheckSum:计算校验和的子函数
USHORT checksum(USHORT *buffer, int size)
{
unsigned long cksum=0;
while(size >1)
{
cksum+=*buffer++;
size -=sizeof(USHORT);
}
if(size )
{
cksum += *(UCHAR*)buffer;
}

cksum = (cksum >> 16) + (cksum & 0xffff);
cksum += (cksum >>16);
return (USHORT)(~cksum);
}

过程:
lpIphdr->m_dIP = inet_addr("192.168.0.31"); //改 ip
lpIphdr->m_cksum = 0;

TCP_HEADER * pTcpHeader;
int ip_header_len = (lpIphdr->m_ver_hlen)&0x0f;
ip_header_len = ip_header_len*4;
pTcpHeader = (TCP_HEADER *)(lpIphdr + ip_header_len);
pTcpHeader->sum = 0;


PSDHEADER psdHeader; //伪tcp首部
psdHeader.saddr=lpIphdr->m_sIP;
psdHeader.daddr=lpIphdr->m_dIP;
psdHeader.mbz=0;
psdHeader.ptcl=6; //tcp
psdHeader.tcpl=htons(sizeof(TCP_HEADER));

memcpy(sendBuf, &psdHeader, sizeof(PSDHEADER));
memcpy(sendBuf+sizeof(PSDHEADER), pTcpHeader, sizeof(TCP_HEADER));
pTcpHeader->sum=checksum((USHORT *)sendBuf,sizeof(PSDHEADER)+sizeof(TCP_HEADER));



...全文

相关推荐

【MDVRP】水滴算法求解多仓库车辆路径规划问题【含Matlab仿真 1310期】.zip

CSDN Matlab武动乾坤上传的资料均有对应的仿真结果图,仿真结果图均是完整代码运行得出,完整代码亲测可用,适合小白; 1、完整的代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主或扫描博客文章底部QQ名片; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作

Matlab武动乾坤

【MDVRP】遗传算法求解多仓库车辆路径规划问题【含Matlab仿真 1481期】.zip

CSDN Matlab武动乾坤上传的资料均有对应的仿真结果图,仿真结果图均是完整代码运行得出,完整代码亲测可用,适合小白; 1、完整的代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主或扫描博客文章底部QQ名片; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作

Matlab武动乾坤

【路径规划】一种基于改进蚁群算法的多配送中心车辆路径优化方法matlab源码.zip

【路径规划】一种基于改进蚁群算法的多配送中心车辆路径优化方法matlab源码.zip

Matlab科研辅导帮

MDVRP.zip_routing_多 车辆_多中心 车辆_多车辆路径_路径规划

借助遗传算法求解多中心车辆路径规划问题,算法程序在matlab上实现

weixin_42653672

【MDVRP】遗传算法求解带距离的多车场VRP问题(含单线路局部优化)【含Matlab源码 1170期】.zip

0积分下载,代码运行效果图见压缩包

Matlab研究室
评论 1
收藏 已收藏
分享
返回顶部
yyy6
网络编程 18,356 成员 64,161 内容