论坛: 菜鸟乐园 标题: 关于IP数据报发送机制与实际判断顺序的一个问题 复制本贴地址    
作者: ragewolf [ragewolf]    论坛用户   登录
很多权威的TCP/IP教程都对IP路由算法(IP发送机制)这样描述:

获得目的IP地址
     |
     |
“逐位与”本地IP、本地子网掩码
“逐位与”目的IP、本地子网掩码
     |
     |  匹配吗?
     |
     |――是――>使用相应的本地接口直接发送IP数据报
  否 |
     |   有一个间接路由表吗?
     |
     |――是――>间接发送到相应路由器的IP地址
  否 |
     |   规定了一个默认网关/路由吗?
     |
     |――是――>间接发送到默认网关的IP地址
  否 |
     |
返回错误信息“network unreachable”

按这样的理解,如果要发送一个数据包到同一子网的主机,是
不需要访问路由表的,通过“逐位与”运算比较之后就直接发送
到本地网络接口了。

可是实际上并不是这样的,以WIN2K为例:
A机:192.168.0.2 mask 255.255.255.0 gateway 192.168.0.1
B机:192.168.0.3 mask 255.255.255.0 gateway 192.168.0.1
C机:192.168.0.4 mask 255.255.255.0 gateway 192.168.0.1

我在A机加入以下静态路由:
route add -p 192.168.0.3 mask 255.255.255.255 192.168.0.4

如果此事我要从A机发一个数据包到B机的话,按照上面的路由算
法,由于A机与B机处于同一子网,所以A机在作“逐位与”运算之
后是不会去访问间接路由表而是直接把包发到B机的。也就是说这
条静态路由是无效的。

可事实却不是这样,实践中会发现A机这个包还是读取了静态路由
而把发往B机的数据报发送到C机上去。如果C机没有打开IP包转发
功能的话,A机与B机就变得无法通讯了。

到底为什么实际应用中会和这个发送机制不同呢?我百思不得其解。
难道说操作系统中的路由表和发送机制里提到的“间接路由表”是不
同的概念?这个路由表在实际的发送里享有最高优先权?

实在想不懂,想请高手们指点一下,谢谢!


[此贴被 ragewolf(ragewolf) 在 05月30日19时59分 编辑过]

地主 发表时间: 05/30 19:03

回复: ragewolf [ragewolf]   论坛用户   登录
没人愿意帮忙了吗?

B1层 发表时间: 05/31 14:12

回复: wlz2893624 [wlz2893624]   论坛用户   登录
哥们,这里根本就没人愿意研究这些纯理论问题
我也有很多类似的问题不懂,不过,来这里是不可能找到答案的了,哎
有机会,大家一起研究吧,好吗?

B2层 发表时间: 05/31 14:53

回复: ragewolf [ragewolf]   论坛用户   登录
难道原理不比技巧更重要吗?唉......

B3层 发表时间: 06/02 00:57

回复: wlz2893624 [wlz2893624]   论坛用户   登录
兄弟你说的 那些没有个前提吗?
你的机器是不是和交换机相连的?
如果是的话,那你发送到本网的数据还用通过路由器吗?????????

B4层 发表时间: 06/02 12:37

论坛: 菜鸟乐园

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号