1.网络层的作用
网络层主要是将IP数据包实现在整个互联网中端到端的传输(不同数据链路也可以实现数据包的转发)。IP数据包主要是通过路由完成不同数据链路之间的转发。工作流程图如下图所示:
- IP数据包通过路由A入端口,再通过路由A出端口转发该IP数据包。
2.IP路由控制表
主机与路由器都保存一张路由控制表,标明了IP地址、目标地址子网掩码、接口、下一个路由器IP地址等,通过目标地址在路由控制表中查询段记录,通过段记录将IP数据包转发到下一个路由,通过如此的循环,最终完成发往至目标地址的任务。
- 路由表匹配多个记录段的应对措施
以最长的IP为准。比如172.20.100.52的网络地址与172.20/16与172.20.100/24都匹配。此时应该选择比较长的172.20.100/24。
长度一样的话,选择跃点数较少的IP地址。(离的比较近)
- 匹配不到路由IP的应对措施
使用默认路由进行转发。默认路由为0.0.0.0/0,默认路由表示所有的网络以及子网的信息。
- 路由表匹配不到任何记录段
路由器会丢弃这个包,并通过ICMP向发送方反馈消息。
3.目标地址、IP地址与子网掩码的关系
IP地址分为网络地址和主机地址。
子网:子网主要是为了对IP地址进行网络地址与主机地址的分类。
子网掩码:主要用来运算得出网络地址。(子网掩码与IP地址作&运算得出网络地址)
备注:这就是为什么路由控制表中为什么有子网掩码的原因。
目标地址:实际上是目标网络地址。
- 为什么目标地址是网络地址而不是具体的IP的地址呢?
实际在IP数据包转发过程中,我们并不是将IP数据包发送到具体的主机,而是发送到相同网络地址的“所有设备”。主要是为了减少路由器中路由表的记录。不然路由器中还有记录所有包含主机号的IP地址,查找效率明显降低。
工作流程类似于快递到小区,如下图所示:
快递是送到我的小区地址,并不是直达我家。
4.路由聚合
路由聚合的目的主要是解决路由表的坑余。比如192.168.2.0/25,192.168.2.128/25(一般子网掩码为255.255.255.0)就可以聚合成192.168.2.?/?,聚合的理论是因为无论聚合前还是聚合后的网络地址是相同的。
实现多路数据链路的数据包转发过程如下图所示: