网络层
数据链路层只是将同一网段中的节点连接起来,而网络层将不同的网段连接起来。
假如我们要连接国外的Web服务器,由于网段不同,在数据链路层这个层面是根本无法连接起来的,而网络层群能将数据链路层中能够的一个个小网段拼接成一个大网络。
IP地址并非单独存在,而是与子网掩码相结合 ,共同发挥作用的。
IP地址可分为两个部分,一个是网络部分,另一个是主机部分。
网络部分表示网段本身,也就是说,它既是广播域也是VLAN,同时还是报文段。主机部分则表示与该网段相连的节点。子网掩码就是将这两个部分分隔开的标记,子网掩码中的1代表网段地址,0代表主机地址。和IP地址一样,设置子网掩码时每三位(用二进制来表示的话是没八位数)就要用一个小数点隔开,最后分成四个部分并换算成十进制。
例如,假设针对IP地址172.16.1.1设置的子网掩码时255.255.0.0,那么我们就知道这是网络176.16的主机1.1 。
此部分可参考视频教程:计算机网络第12讲-IPv4地址-划分子网
有些IP地址已近被系统占用了,其中三种常用于网络设计和故障排除,它们分别是网络地址,广播地址,环回地址。
网络地址:是指主机部分的IP地址位都是0的IP地址,代表了网络本身。
例如,针对IP地址192.168.1.1设置的子网掩码时255.255.255.0,那么192.168.1.0就是网络地址。
广播地址:指主机部分的IP地址位都是1的IP地址,代表了同一网段中的所有节点。
例如,如果针对192.168.1.1设置的子网掩码时255.255.255.0,那么192.168.1.255就是广播地址。
环回地址:表示设备本身的IP地址,它的第一8位字节是127。
将网段连接起来
路由器和L3(网络层)交换机是工具L3中的IP地执信息转发数据包的。对数据包的转发目的地进行切换的过程叫做路由选择。
L3交换机和路由器是通过路由表对IP数据包进行路由选择的。
路由表由“目的网段””下一跳“”路由协议“”度量值“等多种信息构成,它告诉我们将数据包转发给哪个IP地址就能抵达目的网段。其中,最重要的信息是”目的网段“和”下一跳“。
使用路由表进行路由选择
假设有如下设置的两个节点,它们是双向通信的。
-
节点A生成IP数据包,封装成帧后传递给线缆,目的是发送给节点B。这里还只是在进行单播发送。
由于节点A无法和不同网段中能够的节点B直接通信,因此数据包将会被发给预先设置好的默认网关R1.
-
收到数据包后,R1去查看其中的目的IP地址并在路由表中查找。收到的数据包的目的IP地址是3.3.3.3,查找后发现路由表中有3.3.3.0/24项,它对应的下一跳是R2,于是数据包被发往R2。如果R1在路由表中找不到该目的网段,那么数据包就会被丢弃。
-
收到数据包后,R2去查看其中的目的IP地址并在路由表中查找。收到的数据包的目的IP地址是3.3.3.3,查找后发现路由表中有3.3.3.0/24项,它是直连的网络,于是ARP去查询接待B的MAC地址,然后将数据包发给节点B.
-
收到数据包后,节点B断定该数据包是发给自己的,于是生成一个回应数据包,封装成帧后传递给线缆,目的是发给节点A。这时候,源IP地址是节点B的IP地址(3.3.3.3),目的IP地址是节点A的IP地址(1.1.1.1)。从节点B的角度来看节点A是不同网段中的节点,因此回应数据包将会被发给预先设置好的默认网关R2。
- 对于回应的数据包,R2同样也会查看目的IP地址并在路由表中查找,然后发给下一跳。在不断重复这些步骤的过程中最终将数据包发至节点A,完成双向通信。
MAC地址和IP地址是彼此协作、共同发挥作用的
MAC地址是物理地址,仅在同一网段中有效,因此,每当要跨越网段——也就是需要跨越路由器时——都必须更换MAC地址才行,ARP能解决这个目的MAC地址的更换问题。