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.两个路由

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

相关推荐
wdxylb1 小时前
云原生俱乐部-shell知识点归纳(1)
linux·云原生
飞雪20072 小时前
Alibaba Cloud Linux 3 在 Apple M 芯片 Mac 的 VMware Fusion 上部署的完整密码重置教程(二)
linux·macos·阿里云·vmware·虚拟机·aliyun·alibaba cloud
路溪非溪3 小时前
关于Linux内核中头文件问题相关总结
linux
Lovyk5 小时前
Linux 正则表达式
linux·运维
Fireworkitte6 小时前
Ubuntu、CentOS、AlmaLinux 9.5的 rc.local实现 开机启动
linux·ubuntu·centos
sword devil9007 小时前
ubuntu常见问题汇总
linux·ubuntu
ac.char7 小时前
在CentOS系统中查询已删除但仍占用磁盘空间的文件
linux·运维·centos
淮北也生橘128 小时前
Linux的ALSA音频框架学习笔记
linux·笔记·学习
华强笔记11 小时前
Linux内存管理系统性总结
linux·运维·网络
十五年专注C++开发12 小时前
CMake进阶: CMake Modules---简化CMake配置的利器
linux·c++·windows·cmake·自动化构建