Ralfy
驱动牛犊
驱动牛犊
  • 注册日期2003-01-22
  • 最后登录2013-06-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1452回复:9

请教关于网关主机与客户机的通讯?

楼主#
更多 发布于:2003-02-14 14:47
请教各位大侠:
    在局域网中,设A机为主机192.168.0.1,B机为192.168.1.11,B机设网关为192.168.0.1,B机借A机上internat.根据网关的一些介绍,B机向internet发送GET请求,自己是不感觉在使用代理的,B机的应用程序就是直接同远程主机connect的,但实际却是将数据包发给了A机. 现在,我要在A机上加一驱动,使用ndis层拦截B机的请求数据包,(像较著名的winRoute就是用ndis拦截的),并且能经A机应用程序加工后发还给B机,请问能否实现? 如果可以,请介绍一下实现原理,非常感谢!!

最新喜欢:

baoyibao99baoyib...
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-02-14 14:56
可以实现。虚拟网卡或者中间层都可以吧
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
Ralfy
驱动牛犊
驱动牛犊
  • 注册日期2003-01-22
  • 最后登录2013-06-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-02-14 15:12
能介绍一下吗?
个人感觉难度在于: A机截获数据包是不成问题的,主要是B机向A机发送的是socket数据包,还A机并没有处于listen状态, 那回复数据包时如何让B机感觉socket已连接, 并接收的是socket数据呢?

谢谢!
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-02-14 15:24
socket是应用层的东西,在驱动里面没有这些东西,不关系socket的状态,关心的是mac地址,ip地址,端口这些东西,和socket没有任何关系吖。socket数据包怎么发????还不是IP报文么?
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
Ralfy
驱动牛犊
驱动牛犊
  • 注册日期2003-01-22
  • 最后登录2013-06-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-02-14 15:36
socket是应用层的东西,在驱动里面没有这些东西,不关系socket的状态,关心的是mac地址,ip地址,端口这些东西,和socket没有任何关系吖。socket数据包怎么发????还不是IP报文么?

当然,驱动里是没有socket概念的,要发送当然要相关联的应用程序来完成.这只是概念,可以忽略的.
我不是要发送socket,而是想如何回应B机的数据包请求?
这个问题太难了,如何能解决的话,可以做一个sygate了.所以只能讨论一下.
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-02-14 15:56
sygate就是做了一个NAT,不是代理,这两种方式很不同的。
坛子里有一些人也做过nat,不过不如sygate的nat做的好,至于b机向A机发包是通过路由完成的,会来的包经过nat以后目的IP是在你的网关后面,直接发出去就行了
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
Ralfy
驱动牛犊
驱动牛犊
  • 注册日期2003-01-22
  • 最后登录2013-06-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-02-14 16:22
sygate就是做了一个NAT,不是代理,这两种方式很不同的。
坛子里有一些人也做过nat,不过不如sygate的nat做的好,至于b机向A机发包是通过路由完成的,会来的包经过nat以后目的IP是在你的网关后面,直接发出去就行了

看了回复,感觉明白一些。
那能再介绍一下用ddk开发nat吗?最好有一些简单的例子。我主要是想了解nat过程间的数据包接收和发送的握手过程。
我自己也再找找看。
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-02-14 16:35
nat是网络地址翻译,不要什么连接握手吖,这个有RFC文档可以参考,具体是那篇我不记得了。
网关里面的机器不要和网关连接,网关也就是一个转发,当然要处理一下IP地址的问题,将私有IP映射成一个共有IP
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
Ralfy
驱动牛犊
驱动牛犊
  • 注册日期2003-01-22
  • 最后登录2013-06-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-02-14 16:51
nat我是知道的。但翻了一下驱坛,感觉这方面的贴子基本没有,还是无从下手。
感谢回复。
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-02-14 17:22
看RFC和linux下的nat的代码吖
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
游客

返回顶部