示例一:目标主机在本地子网上
对于我们例子而言,假设这个特定的服务器(172.16.11.30)要将数据包发往同一子网内的另一台主机(IP地址为172.16.11.80)。那么这个数据包的源地址为172.16.11.30,目标地址为172.16.11.80。下面我们将展示Windows是如何用其路由表来决定选择使用哪条路由的:
1. Windows首先依次从路由表中取出每一个路由,并将数据包的目标地址(172.16.11.80)与选中路由的掩码执行逻辑“与”运算。下面展示结果,这里,路由表中的每一个路由是通过其网络目的地址确定的:
|
Route |
Netmask |
172.16.11.80 AND Netmask |
|
|
|
|
|
127.0.0.0 |
255.0.0.0 |
172.0.0.0 |
|
172.16.11.0 |
255.255.255.0 |
172.16.11.0 |
|
172.16.11.30 |
255.255.255.255 |
172.16.11.80 |
|
172.16.255.255 |
255.255.255.255 |
172.16.11.80 |
|
224.0.0.0 |
224.0.0.0 |
160.0.0.0 |
|
255.255.255.255 |
255.255.255.255 |
172.16.11.80 |
2. 对每一个路由来说,这个“与”运算的结果要与路由的网络目标地址比比较,而二者的一次匹配意思着这条路由可被用于将数据包转发到其目标地址。如果发现不只有一个匹配,Windows就会选用拥有最长匹配的路由(即1的位数最高的路由)。如果这并不有产生唯一的路由,Windows就任意地选用一个作为路由。从上面的列表中,这个“与”运算的结果导致了两个匹配(路由1和3),因此Windows选择了拥有最长匹配的路由,即第三行的那个。其结果是Windows知道了使用哪个路由将数据包传送到目的地。下面是这条路由在服务器的路由表中看起来的样子:
Network Destination Netmask Gateway Interface Metric
172.16.11.0 255.255.255.0 172.16.11.30 172.16.11.30 20
3. Windows现在要使用下面的算法来决定下一步做什么:
a) 如果路由的网关字段与服务器上的一个网络接口的地址相匹配(或者如果网关是空的话),那么Windows就会用在路由中指定的接口将数据包直接发送到目标地址。
b) 如果路由的网关字段并不与服务器上网络接口的任意地址相匹配,Windows将会把数据包转发给路由中的网关字段的地址。
很明显,这里符合条件a,路由的网关字段(172.16.11.30)即为分配给服务器单个网卡的地址。Windows因此会作出决定认为目标地址位于本地子网上,这也就是说Windows不需要将数据包发送到任何路由器,而是直接发送给其目的地址。在此例中,Windows使用服务器的172.16.11.30的网络接口,简单地将数据包发送给172.16.11.80,接收主机得到了数据包。
上一页 [1] [2] [3] [4] [5] [6] [7] [8] 下一页
您现在的位置: 
