|
作者: 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号