每一个Windows系统中都具有IP路由表,它存储了本地计算机可以到达的网络目的地址范围和如何到达的路由信息。路由表是TCP/IP通信的基础,本地计算机上的任何TCP/IP通信都受到路由表的控制。
理解路由表
你可以运行 route print 或 netstat -r 显示本地计算机上的路由表,如下图所示:
C:\Documents and Settings\administrator>route print
Active Routes:
| Network Destination | Netmask | Gateway | Interface | Metric |
1 | 0.0.0.0 | 0.0.0.0 | 192.168.1.1 | 192.168.1.6 | 30 |
2 | 127.0.0.0 | 255.0.0.0 | 127.0.0.1 | 127.0.0.1 | 1 |
3 | 192.168.1.0 | 255.255.255.0 | 192.168.1.6 | 192.168.1.6 | 30 |
4 | 192.168.1.240 | 255.255.255.240 | 192.168.1.8 | 192.168.1.6 | 20 |
5 | 192.168.1.240 | 255.255.255.240 | 192.168.1.7 | 192.168.1.6 | 15 |
6 | 192.168.1.6 | 255.255.255.255 | 127.0.0.1 | 127.0.0.1 | 30 |
7 | 192.168.1.255 | 255.255.255.255 | 192.168.1.6 | 192.168.1.6 | 30 |
8 | 224.0.0.0 | 240.0.0.0 | 192.168.1.6 | 192.168.1.6 | 30 |
9 | 255.255.255.255 | 255.255.255.255 | 192.168.1.6 | 192.168.1.6 | 1 |
Default Gateway: 192.168.1.1
路由表中的每一个路由项具有五个属性,在此我将它们分为四个部分:
1、网络地址(Network Destination)、网络掩码(Netmask):网络地址和网络掩码相与的结果用于定义本地计算机可以到达的网络目的地址范围。通常情况下,网络目的地址范围包含以下四种:
-
主机地址;某个特定主机的网络地址,网络掩码为255.255.255.255,如上表中的6、7、9;
-
子网地址,某个特定子网的网络地址,如上表中的4、5;
-
网络地址;某个特定网络的网络地址,如上表中的2、3、8;
-
默认路由;所有未在路由表中指定的网络地址,如上表中的1,在后文将详细描述;
在添加路由时,Windows要求输入的网络地址和网络掩码相与后的结果必须等于网络地址,否则路由添加会失败。
2、网关(Gateway,又称为下一跳服务器):在发送IP数据包时,网关定义了针对特定的网络目的地址,数据包发送到的下一跳服务器。如果是本地计算机直接连接到的网络,网关通常是本地计算机对应的网络接口,但是此时接口必须和网关一致;如果是远程网络或默认路由,网关通常是本地计算机所连接到的网络上的某个服务器或路由器。
3、接口(Interface):接口定义了针对特定的网络目的地址,本地计算机用于发送数据包的网络接口。网关必须位于和接口相同的子网(默认网关除外),否则造成在使用此路由项时需调用其他路由项,从而可能会导致路由死锁。
4、跃点数(Metric):跃点数用于指出路由的成本,通常情况下代表到达目标地址所需要经过的跃点数量,一个跃点代表经过一个路由器。跃点数越低,代表路由成本越低;跃点数越高,代表路由成本越高。当具有多条到达相同目的网络的路由项时,TCP/IP会选择具有更低跃点数的路由项。
0.0.0.0 0.0.0.0 192.168.123.254 192.168.123.88 1
缺省路由:意思就是说,当一个数据包的目的网段不在你的路由记录中,那么,你的路由器该把那个数据包发送到哪里!缺省路由的网关是由你的连接上的default gateway决定的
该路由记录的意思是:当我接收到一个数据包的目的网段不在我的路由记录中,我会将该数据包通过192.168.123.88这个接口发送到192.168.123.254这个地址,这个地址是下一个路由器的一个接口,这样这个数据包就可以交付给下一个路由器处理,与我无关。该路由记录的线路质量 1
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
本地环路:127.0.0.0这个网段内所有地址都指向自己机器,如果收到这样一个数据,应该发向哪里 该路由记录的线路质量 1
192.168.123.0 255.255.255.0 192.168.123.68 192.168.123.68 1
直联网段的路由记录:当路由器收到发往直联网段的数据包时该如何处理,这种情况,路由记录的interface和gateway是同一个。
当我接收到一个数据包的目的网段是192.168.123.0时,我会将该数据包通过192.168.123.68这个接口直接发送出去,因为这个端口直接连接着192.168.123.0这个网段,该路由记录的线路质量 1
192.168.123.68 255.255.255.255 127.0.0.1 127.0.0.1 1
本地主机路由:当路由器收到发送给自己的数据包时将如何处理
当我接收到一个数据包的目的网段是192.168.123.68时,我会将该数据包收下,因为这个数据包时发送给我自己的,该路由记录的线路质量 1
192.168.123.255 255.255.255.255 192.168.123.68 192.168.123.68 1
本地广播路由:当路由器收到发送给直联网段的本地广播时如何处理
当我接收到广播数据包的目的网段是192.168.123.255时,我会将该数据从192.168.123.68接口以广播的形势发送出去,该路由记录的线路质量 1
224.0.0.0 224.0.0.0 192.168.123.68 192.168.123.68 1
组播路由:当路由器收到一个组播数据包时该如何处理
当我接收到组播数据包时,我会将该数据从192.168.123.68接口以组播的形势发送出去,该路由记录的线路质量 1
255.255.255.255 255.255.255.255 192.168.123.68 192.168.123.68 1
广播路由:当路由器收到一个绝对广播时该如何处理
当我接收到绝对广播数据包时,将该数据包丢弃掉