找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 8522|回复: 12

[pppoe] 研究PPPOE+LAN之间的切换

[复制链接]
发表于 2006-11-14 14:42:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
在之前我发过一篇pppoe+lan之间切换的文章http://bbs.routerclub.com/thread-17912-1-1.html
..在cmd里ping .然后在pppoe和lan之间的切换..是不掉包的..最后测试发现..在玩着游戏..然后把pppoe断开..游戏是断开的..了解到.pppoe断开后..在不到一秒中的时间..lan立即连了...意思就是说这不是切换..而是断了pppoe然后立即连上lan使用.....理论上 游戏服务器 是不知道你的内网IP  他只认你的外网IP 既然外网IP没有改变  ,在切换时又掉线..应该问题出在路由上,

请大家研究一下..希望能找出原因?

[ 本帖最后由 zooyo 于 2006-11-14 14:49 编辑 ]
routeros
发表于 2006-11-14 15:28:35 | 显示全部楼层
你再研究一下就会发现,会有一部分游戏会和你说的一样,而另一部分则不是。

通讯比你想像的要复杂一点,例如这里就有可能涉及该通讯属于同步连接还是异步连接。
routeros
回复

使用道具 举报

发表于 2006-11-14 16:14:36 | 显示全部楼层
楼主不要仅仅关心游戏服务器,你自己的电脑也是要接收数据的,断线了,本来该PPPOE SERVER发过来的数据,变成了另外一个服务器发过来的数据了,你要知道,你是经过NAT转发的!
routeros
回复

使用道具 举报

发表于 2006-11-14 16:52:37 | 显示全部楼层
.......专卖的理解应该是错的吧,我们来讨论一下。
首先应该知道,无论nat存在与否(包括其他情况例如ppoe、vpn的存在与否),源地址和目的地地址都是不变的。
其次,在本例中ppoe和lan之间切换的变化,究竟是什么变化?是路由的变化,这个也不存在异议吧?

所以应该不存在专卖说的“本来该PPPOE SERVER发过来的数据,变成了另外一个服务器发过来的数据了”,专卖描述的情况,的确存在,但对于客户机来说是不可知的,源地址和目的地地址并没有改变(我这里假设ppoe的ip和lan的ip一样)。线路的改变,作为客户机可以获知的只有路由的改变,但这并不影响通路(但不是不影响通讯,下面会讨论到)。

我2楼描述的情况,实际和编程有关系,编程的时候,打开一个端口通讯,会有两种情况(可选项有很多,我这里描述的只是其中一种),同步连接和异步连接。所谓同步连接,大多数游戏都是用同步连接,大约的意思就是客户机发出一个请求,那么必然要等到服务器返回结果才进行下一步操作(我只能大约描述,实际情况要比这复杂),否则超时,而这种连接模式也叫静态连接(或者别的什么名字),通讯过程中是不可中断的。而所谓异步连接,你可以想像qq的模式,客户机开放端口之后,无论客户机是否发出请求,都有可能收到服务器的消息,而这种连接,即使中途有短暂断开,只要在超时内,依然有效。
routeros
回复

使用道具 举报

发表于 2006-11-14 18:32:55 | 显示全部楼层
学习中,哈哈
routeros
回复

使用道具 举报

发表于 2006-11-14 23:29:56 | 显示全部楼层
不知道这样理解是否恰当。

你的pppoe获得的ip肯定和lan得ip不同,当你pppoe的ip不存在了。那么数据报要通过 以太网协议的 反向arp 来寻找你的mac地址对应得ip地址, 找到之后 nat肯定会有所变化,所以就会断吧?
routeros
回复

使用道具 举报

 楼主| 发表于 2006-11-15 02:12:41 | 显示全部楼层

-

说到nat...路由的pppoe和lan本来同时存在nat ..客户机lan和pppoe同时存在..大家在拨号前和拨号后用route print看一下  在这里发现metrci里的值的变化
拨号后路由nat给pppoe和lan同时存在..同时工作.lan其实你用不用pppoe,nat都向lan工作.说明.当pppoe断之前.lan都在工作,在客户机切换时为什么断网..有没有可能出现在windows里的协议切换之间..他们基于不同协议的转换..
routeros
回复

使用道具 举报

发表于 2006-11-15 02:21:57 | 显示全部楼层
希望可以查出原因出在那里~~~这思路不错的~~~
routeros
回复

使用道具 举报

发表于 2006-11-15 08:28:21 | 显示全部楼层
ros和客户机之间的连接方式的变化可能会是一个问题,所以在我后面的解释中,特别加了一句(我这里假设ppoe的ip和lan的ip一样).说实话,我并不确认这部分我的认知是否正确。

不过有几个是基本可以肯定的
1.在lan、pppoe同时存在的情况下,虽然lan可以工作,但所有通讯默认会走pppoe(除非目的地地址在lan子集内)。
2.“当pppoe断之前.lan都在工作,在客户机切换时为什么断网”,对于系统来说,这些ppp协议等于为系统添加了一张有很高优先的虚拟网卡,当他们断开连接的时候,等于实时pnp拔出这张虚拟网卡,基于上一条,所有同步连接当然会全部掉。
routeros
回复

使用道具 举报

发表于 2006-11-15 22:47:20 | 显示全部楼层
假设 LAN 设置固定 IP 为  192.168.1.10
PPPoE 从 ROS 那里得到的 IP 为 192.168.1.20
假设开始时使用的是 PPPoE 这条链路,在访问外网时,ROS 做 NAT 时必然要在缓存记录下源 IP 地址 192.168.1.20 ,以便当外网的回应数据回来时可以正确转发给内网中的客户机
如果这时 PPPoE链路断了,LAN 顶上,这个时候客户机的 IP 是 192.168.1.10 ,而 ROS 转发给内网的数据包的目的 IP 是192.168.1.20
a.jpg
routeros
回复

使用道具 举报

 楼主| 发表于 2006-11-21 03:18:59 | 显示全部楼层

-

难处理
routeros
回复

使用道具 举报

发表于 2007-10-29 15:22:18 | 显示全部楼层
肯定会断啊,虽然目的地址,即游戏服务器的IP和端口没变,但是源地址的端口会变啊
比如 PPPOE连接是对应的是 192.168.0.100:1600(内网源IP)-211.89.128.119:1700(源公网IP)  202.101.224.69:6020(目的公网IP)

PPPOE断线后,LAN的连接会是 192.168.0.100:1400(内网源IP)-211.89.128.119:1500(源公网IP)  202.101.224.69:6020(目的公网IP)
经过PPPOE出去的数包,回来,找不到原来的端口,就会断线
除非,你能让你 内网IP和源公网IP的端口保持不变,PPPOE断线后,LAN接着工作,就不会掉线
routeros
回复

使用道具 举报

发表于 2007-11-17 22:34:30 | 显示全部楼层
肯定会断的  走的不是一条路啊 你想想.....  上面的讲的对 端口不一样的
routeros
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|软路由 ( 渝ICP备15001194号-1|渝公网安备 50011602500124号 )

GMT+8, 2024-9-28 08:25 , Processed in 0.071583 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表