hello2002
驱动牛犊
驱动牛犊
  • 注册日期2002-06-02
  • 最后登录2004-08-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1980回复:8

请教:passthru 中,我进行加密时PING可以通,但为什么TCP协议FTP不通?

楼主#
更多 发布于:2002-07-09 14:53
我更改了WIN XP 中程序进行加密,但我只能相互PING 通,但FTP 就是不通,查看了一下,在程序中没有限定TCP协议的语句。不知为何,请高手赐教!
asdfasdf asdfa fasdf
swift
驱动中牛
驱动中牛
  • 注册日期2001-07-26
  • 最后登录2007-05-09
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望7点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-07-09 15:06
\"在程序中没有限定TCP协议的语句\"什么意思?

截一下包,看看是否算了tcp的checksum?
hello2002
驱动牛犊
驱动牛犊
  • 注册日期2002-06-02
  • 最后登录2004-08-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-07-09 15:21
swift 大侠:
           其实我的所谓加密就是SEND 时在IP 头后增加30个字节,RECV时去掉这30个字节,并还原原先的IP包。这样的话还在发送时重新校验TCP的CHKSUM吗?如果是校验和的错,那我PING 时是通的。请指教。
asdfasdf asdfa fasdf
swift
驱动中牛
驱动中牛
  • 注册日期2001-07-26
  • 最后登录2007-05-09
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望7点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-07-09 15:31
我也遇到过这个问题,ping是可能通,但tcp不通!
后来我查找原因,发现我在send里发的数据包的tcp校验和没有算,如果不加密,在其他机器上听到的数据包的tcp的checksum是已经算好的,所以我想这个tcp checksum可能是由网卡来算的,我又做了验证,发现有的网卡自己做tcp的checksum(如3com),有的网卡是由系统的ip层来做checksum(如ne)。

所以当你在ip头后面加入数据后,如果是我所说的原因,网卡定位不到tcp header,所以可能没有算checksum,你可以查一查,自己做个 checksum函数来试试!
magicx
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2014-08-18
  • 粉丝1
  • 关注0
  • 积分-14分
  • 威望13点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-07-09 18:01
我也遇到过这个问题,ping是可能通,但tcp不通!
后来我查找原因,发现我在send里发的数据包的tcp校验和没有算,如果不加密,在其他机器上听到的数据包的tcp的checksum是已经算好的,所以我想这个tcp checksum可能是由网卡来算的,我又做了验证,发现有的网卡自己做tcp的checksum(如3com),有的网卡是由系统的ip层来做checksum(如ne)。

所以当你在ip头后面加入数据后,如果是我所说的原因,网卡定位不到tcp header,所以可能没有算checksum,你可以查一查,自己做个 checksum函数来试试!
 


hello2002兄:

你如果没有注意到checksum问题。。。。。。。。。

那,这肯定是问体的一个重要的方面。。。。。。。。。


[color=red]大头鬼! :P[/color]
saga_gxy
驱动牛犊
驱动牛犊
  • 注册日期2002-07-14
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-07-18 00:17
swift兄:假设网卡定位不到TCP头,我想只要它不乱改就行了,肯定也能通.不过它会不会乱改呢?请教.


hello2002,
把MTU改小,通了别忘了谢我。。。。。
哈哈
wind_gxy
swift
驱动中牛
驱动中牛
  • 注册日期2001-07-26
  • 最后登录2007-05-09
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望7点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-07-18 10:00
呵呵,这我倒没试过,有可能会,如果ip头的protocol里指定了tcp!

所以最好在前面再加一个头,比如udp头,然后把你加入的头和后面所有的数据当成udp的数据,这样就可以了!

如果不这样,可能会有nat问题!

ipsec的nat问题就是这样解决的!



不改mtu也可以,passthru下可以分片发包!

fenger_li
驱动老牛
驱动老牛
  • 注册日期2002-03-26
  • 最后登录2005-04-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-07-20 09:07

所以最好在前面再加一个头,比如udp头,然后把你加入的头和后面所有的数据当成udp的数据,这样就可以了!

如果不这样,可能会有nat问题!

ipsec的nat问题就是这样解决的!


 

哎,也不是个办法,始终是个难题,这样好像是解决了nat,但已无法实现完整的ipsec.
怎样保护ip地址呢?

嗬嗬!
有点意思。。。 呵呵!
swift
驱动中牛
驱动中牛
  • 注册日期2001-07-26
  • 最后登录2007-05-09
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望7点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-07-21 13:01
呵呵,是呀,在通道建立前,要有一种ip地址获取技术,可能没有那么安全,但也可能是解决nat的一个唯一办法了!

但对ip地址的保护并不完整!
游客

返回顶部