12-网络篇-通信过程中的网络表

1.ARP表

主机1和主机2在同一个局域网内,通过之前的章节,我们知道在通信过程中,除了要知道对方的IP地址以外,我们还要知道对方的硬件地址,也就是Mac地址。而ARP协议就是为了解决此种问题。

ARP协议的用途是为了从网络层使用IP地址,解析出在链路层使用的硬件地址。

每一个主机中都有一个ARP高速缓存,里面有各个主机IP(包括路由器)到硬件地址的映射表,表内的内容ARP协议会进行动态更新。

若主机1(IP:192.168.0.2)向主机2(IP:192.168.0.3)发送一个ping包,主机1会先在本机ARP中查主机2的Mac地址,若没有查到,则主机1会在本局域网中广播一个请求:

我的地址是192.168.0.2,我的Mac地址是:xx-xx-xx-xx-xx-xx,我想要知道192.168.0.3机器的Mac地址。

此局域网内所有的主机均会收到包,但是只有主机2会回复:

我的地址是192.168.0.3,我的Mac是:xx-xx-xx-xx-xx-xx。

至此主机1和主机2可以完成通信。

2.MAC表

交换机是根据Mac地址转发数据帧,这里来提一下交换机工作原理

当主机1发送ARP包时,交换机会将包转发给除了主机1以外的所有主机,并记录主机1的Mac地址和交换机端口至Mac表。

若主机1向主机2发数据,数据从1口进入交换机,交换机得到数据后,会先在本机Mac表中查目的设备的Mac地址。若没有查到对应的端口,主机会向所有除了1口以外的所有口广播这个帧,主机2收到这个帧后,会回复这个帧,Mac表就缓存了主机1和主机2的Mac和交换机端口的对应关系了。后面交换机可自由完成主机1至主机2的通信。

3.路由表

路由表和路由器相关,(此处的路由器与家用路由器略有不同,家用路由器集成了路由器和交换机的功能为了更方便用户使用)路由器是一种具有多个输入端口和多个输出端口的专用设备也可称为计算机。其任务是转发分组。路由器结构由两部分组成:路由选择部分和分组转发部分。

路由器的主机作用是实现跨网段传输。

1.一个路由

一网段的主机要与其他网段的主机通信,则数据会先发送给指定的网关,也就是路由器,由路由器选择网段继续通信,所以发送的数据包起始中网络层的ip地址不变,源ip地址就是当前主机的ip地址,目的ip地址就是不同网段的主机的ip地址,但是链路层由于数据要先发给路由器,那么目的mac就是路由器的mac地址,然后路由器选择其他网段,则源mac变成路由器另一个网口的mac地址,目的mac就是目标主机的mac地址,所以整个过程IP的一直不变,但是Mac地址一直再变

2.两个路由

由于现在是两台路由器和两个网段的主机,所以需要构成三个局域网,当源主机跨网段与目标主机通信时,由于网段不同,数据会先发送给路由器,然后路由器再选择对应的目的网段,但是此时路由器另一端所在的网段与之目标主机的网段不同,所以无法继续向下发送,此时需要设置下一跳,下一跳的地址构成了路由表,路由表也就是下一次应该将信息流入那个路由器的配置表。

相关推荐
AI小小怪44 分钟前
Linux下编译并打包MNN项目迁移至其他设备
linux·opencv·mnn·mtcnn
JhonKI1 小时前
【Linux网络】TCP服务中IOService应用与实现
linux·网络·tcp/ip
qq_447429411 小时前
Linux0.11内存管理:相关代码
linux·c语言
山师第一深情1 小时前
Linux Core Designing
linux
Linux运维老纪2 小时前
交换机之配置系统基本信息(Basic Information of the Configuration System for Switches)
linux·网络·mysql·华为·云计算·运维开发
努力学习的小廉3 小时前
深度理解linux系统—— 了解操作系统
linux·运维·服务器
大米☋3 小时前
Docker-高级使用
linux·运维·docker·容器·centos
敲上瘾3 小时前
基于Tcp协议的应用层协议定制
linux·运维·服务器·网络·c++·网络协议·tcp/ip
斗转星移39 小时前
Ubuntu20.04 中使用vscode中编辑查看PlantUML
linux·vscode·uml·plantuml
sukida10010 小时前
BIOS主板(非UEFI)安装fedora42的方法
linux·windows·fedora