的IP协议
OSI第二层中用以太网协议定义了信息传输单元,简称为帧,它长这个样子。
同样的在OSI第三层中,会用 IP 协议去定义信息传输单元,简称为数据包,它长这个样子。
实际上,最终在网络上传输的是第二层的帧,因为发送消息是从上到下穿越,从OSI第七层穿越到第一层,再通过网络发送。每穿越一层,该层的头部就会被封装在单元中,所以第四层的单元包含第七层的头部,第三层的单元包含第四层的头部,第二层的单元包含第三层的头部,层层嵌套,所以实际的以太网帧长这个样子
可以利用软件查看网络中传输的帧,查看每一层数据包的头部信息下面每一行对应一个数据包
路由器
路由器具有多个网络接口,可以连接到多个网络,它的作用是把接收到的数据包分发到不同的网络中。
类似于第二层中的交换机有一个CMA表,这个表将交换机中的每一个 RJ45 接口与一个 MAC 地址相关联,交换机依据这个表里的对应关系和数据帧里面的目标地址,将数据包发送到正确的地址上。
路由器也有一个这样的表叫路由表,表里会列出要连接的目标地址和网关的IP地址,路由器依据这个表来分发数据包。目标地址是一个网络地址而不是某台机器的IP 地址,如果要将互联网上每台机器的IP地址记录在一个路由表中也不太可能。网关就好像两个网络之间的关卡,其实也就是另外一个路由器的IP地址,必须要将数据包发送到这个路由器,才能将数据包转发到指定的目标网络。
在 Windows 中CMD里面使用 route print 可以查看路由表
第一列可以看到要加入的目标地址,第二列是该地址的子网掩码,第三列就是对应网关的IP地址,上面显示在链路上,表示网关的 IP 地址和接口那列的 IP 地址一样。
其中第一行的 0.0.0.0 表示默认路由,如果我要加入的网络不属于路由表中的任何网络,则就会使用默认网关地址加入其它网络。
第六行显示了我本机所在的网络192.168.1.142/24,这个地址以我本机的IP地址 192.168.1.142 作为网关。
编写一个路由表
在上面网络示意图中,路由器1的路由表为
要连接的网络 | 网关的IP地址 |
192.168.0.0/24 | 192.168.0.254 |
192.168.1.0/24 | 192.168.1.254 |
0.0.0.0/0 | 192.168.1.253 |
10.0.0.0/24 | 192.168.0.253 |
路由器2的路由表为
要连接的网络 | 网关的IP地址 |
10.0.0.0/24 | 10.0.0.254 |
192.168.0.0/24 | 192.168.0.253 |
0.0.0.0/0 | 192.168.0.254 |
路由器3的路由表为
要连接的网络 | 网关的IP地址 |
192.168.1.0/24 | 192.168.1.253 |
10.0.1.0/24 | 10.0.1.253 |
0.0.0.0/0 | 10.0.1.254 |
192.168.0.0/24 | 192.168.1.254 |
10.0.0.0/24 | 192.168.1.253 |
其实网络中的机器也都有路由表,有了路由表机器在要加入其它网络的时候,才知道要将数据包发送给哪个网关,比如192.168.0.1这台机器的路由表是
要连接的网络 | 网关的IP地址 |
192.168.0.0/24 | 192.168.0.1 |
10.0.0.0/24 | 192.168.0.253 |
0.0.0.0/0 | 192.168.0.254 |
上一篇:OSI模型第三层网络层中的IP地址和子网掩码
下一篇:OSI模型第三层网络层中的ARP协议