其实,这一章我写不好,因为这其中会涉及到一些计算和一些广播等概念,本人不善于此项。在此略述,可以参考。
每台设备的不同连接在获得有效的IP地址后,会根据IP地址的规则和掩码的规则,在操作系统和交换机(也有集线器)(一般叫二层交换设备)层面将此设备定义到各自的“本地网络”区域中。
比如,当你有一个IP 地址是 192.168.1.1/24时,网络系统会设置成所有在 192.168.1.1-192.168.1.255这个范围的地址都当成是本地网络的设备,此时,如果你访问的目标地址是 T10(10.10.10.10)时,通过IP地址的计算规则,得知此目标地址并不在你的本地网络当中,于是就会把数据包打包后丢到你设备的网关设备中。如果你设置有多个不同的网关设备时,会根据你的路由表来查找最小的匹配的目标路由项(我不知道这样的描述是否正确,我就是这么理解的),然后将数据包丢到该项目中的网关中。
比如你的路由表有三项:
目标:0.0.0.0/0,网关:192.168.1.250
目标:10.10.0.0/16,网关:192.168.1.254
目标:10.10.10.0/24,网关:192.168.1.253
如果访问目标是 10.10.10.10时,数据包就会丢到 192.168.1.253中;
如果访问目标是10.10.11.10时,数据包就会丢到 192.168.1.254中;
如果访问目标是 10.0.0.10时,数据包就会丢到 192.168.1.250中;
关于这其中涉及到的一些关于IP地址段(范围)的计算,请自行百度参考。至于什么叫做A类、B类、C类地址之类的,我的概念是只需要简单了解即可,有经验了过后,一般也都不会因此而造成困扰。
如果同时存在多个目标相同,但网关不同的列表项目,不同的系统会有不同的处理方式,如网络设备中会有“自动均衡”这样的概念、或者是“优先级”、“度量”、“距离”等概念来处理,在此不述。
一般的可以简单的可以理解成:如果目标是在本机的本地网络范围中,那么数据包就会在“二层”的交换设备中收发,如果目标不在本地网络范围中,那么就会经过“三层”设备来携带打包好的数据包进行传递。