需要截获IP包,修改ip地址和tcp/udp的port。然后传递给上层。应使用TDI filter还是NDIS Intermediate driver?因为对TDI filter了解不多,NDIS IM driver肯定是可以的。同时需要支持PPP adapter,而passth...
全文
回复(23) 2002-11-18 21:21 来自版块 - NDIS网络接口开发
表情
soliseaman想再清楚一点,TDI filter是不是工作在TCP/IP协议栈之上的? 一个接收到的包,被TDI filter修改了ip地址和port后,应用程序 看到的是修改后的地址还是原来的? 这会不会影响到Tcp的tcb内容? 请问一下您怎样解析得到接收包的ip...(2002-11-27 20:49)
fuq_dddd多谢bingjie的指点,豁然开朗,现在对checksum已经基本明白了。 其实我的设计是做在tcp和ip之间,可是这两者都在一个driver里实现,中间没有缝隙。要不在高层的tdi filter,要不就是ndis imd,看来只好在ndis imd了。 我觉...(2002-11-22 11:44)
utahyj你是要做一个 NAT 吧? 某些功能,如修改ip和port,和nat有相似之处,不过还想添加自定义的tcp option等,这样的话tdi filter帮不上忙了吧,因为tcp/ip stack在filter前就会扔掉带有不认识的option的包。 其实我的设计是做在t...(2002-11-21 17:16)
edust你是要做一个 NAT 吧?(2002-11-21 16:48)
bingjie在Miniport层没有校验,MAC层带4字节的CRC,但一般由网卡MAC控制器完成,IP层的IP包头带有ChkSum校验,若修改了IP地址必须修改该校验,否则该包会被丢掉。UDP层对整个UDP包都有ChkSum校验,修改UDP包头中的端口必然也要改该校验。但该校验可以设为0,即...(2002-11-21 14:05)
fuq_dddd重新贴一遍, fracker 不过,我认为checksum只是为了对数据进行校验,确保通信的安全稳定, 我个人感觉,协议层以上就没有意义了,但不是很确定? 我的理解,好像每个驱动层都有自己的checksum, Miniport层应该是包含mac的check...(2002-11-20 17:09)
fracker rfc-3022 ftp://ftp.rfc-editor.org/in-notes/rfc3022.txt 源码可以参考linux netfilter nat部分的代码。算法蛮简单的。 我是驱动新手,所以也不清楚应该在哪层上改,不过直觉来说,既然改动包内容了,就一...(2002-11-19 17:37)
fuq_dddd我也是新手,大家同进。 不过,我认为checksum只是为了对数据进行校验,确保通信的安全稳定, 我个人感觉,协议层以上就没有意义了,但不是很确定? 我的理解,好像每个驱动层都有自己的checksum, Miniport层应该是包含mac的checksum,依次类...(2002-11-19 17:31)
utahyj [quote] 1。我想他是指ip头的checksum和tcp/udp的checksum,这些都要修改的,不过可以参考rfc-nat的算法。 那么,在Miniport、IMD、Protocal、tdi中的哪一层驱动上做改动时, 需要重新计算checksum? 另外...(2002-11-19 16:45)
fuq_dddd 1。我想他是指ip头的checksum和tcp/udp的checksum,这些都要修改的,不过可以参考rfc-nat的算法。 那么,在Miniport、IMD、Protocal、tdi中的哪一层驱动上做改动时, 需要重新计算checksum? 另外,rfc-na...(2002-11-19 16:25)

返回顶部