zjr0411 发表于 2018-11-13 14:10:46

请网络高手帮忙指出一种网络报文的校验位和校验方式

本人没有搞过网络方面的,所以对这报文具体是啥报文也不清楚,对于ip,tcp,ppp也不怎么了解,这是使用GPRS外部协议栈的报文。

但是现在要做个产品和别人产品对接,需要把接收到的别人报文处理一下,因只需要一点点小改动所以不想移植整个lwip啥的,示例报文如下:
7E 21 45 00 00 48 28 25 40 00 40 06 44 A5 0A AD E8 0D 84 E8 56 43 8B BE 1B 58 AF E8 8A 54 7D 31 B1 B9 BF 80 18 1C 84 3F 92 00 00 01 01 08 0A 7D DF 7D DF A3 1A 08 A4 42 54
68 32 00 32 00 68 C9 09 21 71 42 00 02 70 00 00 01 00 19 16 1D F2 7E
去7D后:
7E 21 45 00 00 48 28 25 40 00 40 06 44 A5 0A AD E8 0D 84 E8 56 43 8B BE 1B 58 AF E8 8A 5411   B1 B9 BF 80 18 1C 84 3F 92 00 00 01 01 08 0A   FF    FFA3 1A 08 A4 42 54
68 32 00 32 00 68 C9 09 21 71 42 00 02 70 00 00 01 00 19 16         //此为实际发送的内容
1D F2 7E

大部分报文都是7E 21 45 开头的,也有部分是21 45 开头的,现在就是要处理这一类报文。

要求是将上面报文的中间行68 32 00 32 00 68 C9 09 21 71 42 00 02 70 00 00 01 00 19 16 的长度和内容都改变后,比如改成11 22 33,整条数据任然是正常的数据,能被解析使用。

我通过看资料和别人的代码知道了整条数据的长度是00 48,整体校验是1D F2,请确认对不对,因为大部分代码是。

另外发现还有ip包头的校验和tcp包头的校验,这两种校验方式、从哪到哪校验还没有搞明白,请帮忙解惑。

除了上面提到的内容,还有没有别的影响数据传输的字段,请一并指出,谢谢。

莫元充值充不了,只有83了,问题解决后红包感谢。

leafstamen 发表于 2018-11-13 17:01:22

校验两个字节基本上是crc,拆包前试试,拆包后试试,基本上应该就能得到怎么校验的了。

albert_w 发表于 2018-11-13 17:51:21

IP包或者MAC包?
不妨用wireshark抓来分析分析也许更快. 因为你要改payload, 几处crc都要涉及到.

zjr0411 发表于 2018-11-15 16:24:32

albert_w 发表于 2018-11-13 17:51
IP包或者MAC包?
不妨用wireshark抓来分析分析也许更快. 因为你要改payload, 几处crc都要涉及到. ...

wireshark好像分析的都是抓包吧,关键是我这不是抓包啊,我这是设备出来的,我用单片机串口接收了转发到电脑的

这种情况也能用wireshark吗,好像没有看到怎么用的。

a33403916 发表于 2018-11-15 18:44:56

网络报文一定要加密,加长,无规律。

zjr0411 发表于 2018-11-15 18:47:00

a33403916 发表于 2018-11-15 18:44
网络报文一定要加密,加长,无规律。

郁闷,加密也不能加密ip包,tcp包的包头的啊,我现在就是要理解包头

huangqi412 发表于 2018-11-16 12:55:08

zjr0411 发表于 2018-11-15 16:24
wireshark好像分析的都是抓包吧,关键是我这不是抓包啊,我这是设备出来的,我用单片机串口接收了转发到 ...

标题写的网络这又变串口 。。。

zjr0411 发表于 2018-11-16 13:37:56

huangqi412 发表于 2018-11-16 12:55
标题写的网络这又变串口 。。。

确实是网络,不过报文是加入单片机后串口转发到电脑的

zhenke 发表于 2018-11-16 13:40:09

看着像电力行业。

7E是唤醒,21 45是帧始?

qtechzdh 发表于 2018-11-16 13:47:58

zjr0411 发表于 2018-11-16 13:37
确实是网络,不过报文是加入单片机后串口转发到电脑的

把设备接到单片机的网口接到电脑上,然后用抓包工具看数据结构,然后在和mcu的对比

zjr0411 发表于 2018-11-16 15:53:33

qtechzdh 发表于 2018-11-16 13:47
把设备接到单片机的网口接到电脑上,然后用抓包工具看数据结构,然后在和mcu的对比 ...

没有网口。。。

zjr0411 发表于 2018-11-16 15:54:01

zhenke 发表于 2018-11-16 13:40
看着像电力行业。

7E是唤醒,21 45是帧始?

那是ip包头,不过确实是电力行业

zhenke 发表于 2018-11-13 14:10:47

zjr0411 发表于 2018-11-16 15:54
那是ip包头,不过确实是电力行业

这是简化PPP帧。IP包头在里面。
简化PPP帧把地址字段和控制字段省略,协议字段使用一个字节。

7E----------------首部标志字段。
21----------------协议字段----21是IP协议,这个帧传的是IP包。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
以下为IP数据报:
45----------------版本号4,IP报头长度5*32/8=20字节。
00----------------服务类型。
00 48-------------IP数据报总长度:从45到16共72字节。
28 25-------------标识。
40 00-------------分片设置为不分片。
40----------------生存时间TTL=64.
06----------------上层协议标识:06使用TCP协议。
44 A5-------------IP头部校验----参考具体算法。
0A AD E8 0D-------源IP地址。
84 E8 56 43-------目的IP地址。
----------------------------------------------------------------------------------------
TCP报文:
8B BE-------------源端口。
1B 58-------------目的端口。
AF E8 8A 54-------序号。
11 B1 B9 BF-------确认序号。
80 18-------------TCP首部长度8*32/8=32字节和控制位。
1C 84-------------窗口大小。
3F 92-------------TCP校验----参考具体算法。
00 00-------------紧急指针。
(TCP选项)
01----------------kind=1,空操作选项。
01 08 0A FF FF A3 1A 08 A4 42 54----这一段本来是填充无意,但有可能被自定义了。
以下是数据:
68 32 00 32 00 68 C9 09 21 71 42 00 02 70 00 00 01 00 19 16----看着像376.1
----------------------------------------------------------------------------------------
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1D F2------------PPP帧校验。
7E--------------尾部标志字段。



zjr0411 发表于 2018-11-17 16:53:35

zhenke 发表于 2018-11-13 14:10
这是简化PPP帧。IP包头在里面。
简化PPP帧把地址字段和控制字段省略,协议字段使用一个字节。



非常感谢。

zhenke 发表于 2018-11-17 19:53:38

zjr0411 发表于 2018-11-17 16:53
非常感谢。

不客气。校验方式你自己查查相关资料吧。一般都有代码。

zjr0411 发表于 2018-11-21 15:58:15

zhenke 发表于 2018-11-17 19:53
不客气。校验方式你自己查查相关资料吧。一般都有代码。

你好,程序已经编好,非常感谢。

另外想问一下,如果想对tcp,ip,ppp大致有个了解需要看啥资料,类似一个芯片硬件手册一样的大致介绍的东西就行了,
这样的资料应该看啥文件,请介绍一下,要汉语版的,英语太差看不懂,谢谢。

另外GPRS的外部协议栈怎么使用,比如怎么拨号,怎么登录怎么收发数据应该看什么文件呢,这个你了解吗,了解的话介绍点资料,谢谢。
页: [1]
查看完整版本: 请网络高手帮忙指出一种网络报文的校验位和校验方式