家用的路由器指的是那种有N多根天线的设备,当然有的是无天线(隐藏)的设计。路由则是路由器主要干的事情。通俗的说就是在一个岔路口该往哪里走的问题,在网络的里就是指怎么让数据包走正确的道路或者可以说数据包到底走哪条路的依据,这就是路由。
路由的生成主要有静态和动态。静态就是不会变动的由手工输入的,一般在家庭中主要还是根据路由协议自动生成的动态路由。对家用路由器来说主要生成默认路由也就是0.0.0.0为目的地址的路由条目当然还有直连路由等。在电脑上也是可以看到的。打开“开始”或按键盘上的WIN+R键输入"CMD",在打开的黑窗口中输入“route print”,这样就会列出电脑中的路由表,其中就有目的地址是0.0.0.0的默认路由,表示所有。
从上图可以看到默认路由的网关都是192.168.123.1(实际上这是我的路由器的IP),意思是所有目的地址的数据包要发到192.168.123.1所代表的接口来转发。但是你会感觉这个怎么这么不讲理也很笼统呢?
你的感觉是对的。默认路由其实并不表示所有,而只是表示目的地址没有具体匹配的条目的路由,按照最长匹配原则匹配。比如其中还有一条目的网段是192.168.123.0,子网掩码255.255.255.0网关是“在链中上”的路由条目,就表示如果是发住192.168.123.0网段的(包括192.168.123.0-192.168.123.255具体)数据包,就通过“链路”发送,这里的链路指的就是电脑到最近的一个设备(可以是路由器或交换机)。如果所有的目的地址都无法匹配到列出的具体的路由条目的时候,剩下的就会按照默认路由0.0.0.0来转发。所以如果我PING(一种测试网络通断的命令)一个地址的时候就会依据不同的路由来转发得到不同的结果(虽然一般是正确的)。
比如我PING同样是连接在同一个路由器下的手机,就会根据192.168.123.0这个条目进行转发,因为192.168.123匹配的最长。但我PING baidu(IP是220.181.38.251)时就会根据默认路由0.0.0.0来转发,因为baidu的IP地址无法在我电脑的路由表里匹配到哪所一个数的条目,所以只能按照0.0.0.0的默认路由转发。就会被交给网关(这里是IP地址192.168.123.1所代表的路由器),同样路由器里面也有和电脑里的差不多的路由表。路由器看了一遍并没有匹配到baidu(220.181.28.251)的哪怕一位数的条目,所以同样的按照默认路由0.0.0.0转发(我的路由器显示的是default(默认),网关是PPPoE拨号得到的地址。(另一条default是配置的访问光猫的路由)