小编use*_*103的帖子

TCP校验和计算与wireshark计算不匹配

我遇到的问题是,示例程序生成的tcp校验和(下面复制)与wireshark计算的校验和不匹配.有人可以指出我哪里出错了.在这里我尝试了两种方法

  1. tcp_checksum
  2. get_ipv6_udptcp_checksum.

使用这两个值,得到两个不同的值,两者都不匹配wireshark值.

我在这里复制IP和TCP标头的详细信息.

IP标头:

0000 60 00 00 00 00 2a 06 80 10 80 a2 b1 00 00 00 00

0010 00 00 00 00 00 1e 00 00 ff 00 00 00 00 00 00 00

0020 00 00 00 00 00 00 00 24

TCP标头:

0000 04 22 00 50 00 01 e0 dd 00 01 42 74 50 14 22 38

0010 eb 10 00 00

我的理解是,添加psuedo头和TCP头值将给出校验和.手动添加值会给出完全不同的值.以编程方式,当我尝试时,它是(38 eb).wireshark显示正确的值应为0xb348

我在哪里做错了?有人可以建议我如何手动完成?

#include <stdio.h>
#include <stdlib.h> …
Run Code Online (Sandbox Code Playgroud)

c unix checksum tcp

2
推荐指数
1
解决办法
6971
查看次数

标签 统计

c ×1

checksum ×1

tcp ×1

unix ×1