我用自己的tcp/ip stack(基于ucip)和研华的一个带TCPIP的PLC通讯。发现PLC发出的IP包的checksum计算不正确,如果我把IP层的checksum检查关闭(TCP层仍然有checksum检查),就可以通讯了。但是IP层和TCP层用同样的计算方法,也就是说...
全文
回复(11) 2003-10-13 11:19 来自版块 - NDIS网络接口开发
表情
qiyidiChecksum是什么来呢?(2005-05-05 14:25)
cao_john_cntcp的checksum包括12个伪头!!!(2005-03-05 19:05)
right_wind去下一个sniffer pro,现成的抓包软件,很好用。(2003-10-15 20:00)
leo_cyl怎样才能设成混杂模式?(2003-10-14 22:35)
right_wind把网卡设成混杂模式就可以了,建议用sniffer,很好用。(2003-10-14 22:28)
leo_cyl2个都连在hub上, 然后用一个pc连在hub上不就可以兼听了么? 应该不行吧!PC的网卡不会接收MAC ADDRESS不匹配的数据包(系统广播除外)。 [编辑 - 10/14/03 by leo_cyl](2003-10-14 12:07)
pkucoffee2个都连在hub上, 然后用一个pc连在hub上不就可以兼听了么?(2003-10-14 12:02)
leo_cyl感谢各位的回复。我觉得我的checksum算法没有问题。(完全基于《TCPIP协议详解 2》中延迟进位技术的例子) 用我的算法可以和PC正常的通讯。并且我用IRIS捕获的数据包都显示checksum正确!另外研华的PLC和PC单独通讯也没问题。 但我的板子和PLC单独通讯IP...(2003-10-14 08:59)
pkucoffee计算checksum是用一个函数的, 只是在计算的范围不同而已。 具体的函数可以在网上搜到的,下面给你贴一个 static unsigned short int in_cksum ( unsigned short int *addr, int len ) { ...(2003-10-14 00:03)
right_windIP头的checksum计算和TCP头的checksum计算方法是不同的,但各自的checksum在算法上应该是统一的。 [编辑 - 10/13/03 by right_wind](2003-10-13 21:42)

返回顶部