我们在解决一个问题的时候,通常会把问题进行拆分,通过拆分以后的子集分析出前因后果,最后找出解决方案,把解决方案进行建模,形成新模型;当下次遇到相同或相似问题的时候我们就会利用之前得到的模型进行复用。
一、计算机网络分层/五层模型
计算机网络为什么要分层呢?因为本质上他就是在解决问题,解决计算机之间的通信问题,这里面就涉及到数据包在两个计算机之间传递的过程。
在第三期就是本篇内容,我们讨论的东西开始逐渐深入。
我们在这里讨论计算机五层模型,讨论数据包在五层模型之间传送过程中发生了什么:
再重申一下:
- 计算机网络 = 计算机网络的各层及其协议的集合。【协议=规则】
如上图,主机通信,各层级的作用功能。
下图展示了我在应用层发一个消息,这个消息通过每一层时,数据包封装的一个过程:
数据包在到达另一方以后,数据包的拆解过程如上逆过来即可,拆到应用层的时候就只剩Message了。
二、数据包传输过程
上一章我们说过,网络和网段区别如下:
2.1同一网段之间的通信:
在同一网段通信,发送数据包时,电脑1在封装数据包的时候,我们需要知道它是如何获取电脑2的MAC地址的。
首先MAC地址就是:物理地址(网卡地址)。
电脑1想要获取电脑2的MAC地址只需要通过 ARP表 查看即可。
ARP表: IP----->MAC的映射:
数据包到达交换机以后,交换机通过 MAC表,读取目标MAC,将数据包转发给物理端口的设备。如下图,具体的MAC 表:
2.2不同网段之间的通信:
如上图,pc3访问pc7就属于不同网段通信,数据包从PC3到达路由器AR1需要经过双层交换机和网关,那么数据包到达这个路由器之后怎么知道接下来走哪个路由器呢?我们第二期讨论过路由表,其实路由器里放了一张 路由表。
路由表如下:
总结: