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

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

相关推荐
oioihoii8 小时前
不止于Linux:百花齐放的开源世界与社区的力量
linux·运维·开源
打不了嗝 ᥬ᭄8 小时前
传输层协议TCP
linux·服务器·网络·c++·tcp/ip
moringlightyn9 小时前
基础开发工具--编译器g++/gcc 自动化构建make/Makefile
linux·运维·笔记·自动化·c·编译器·make/makefile
程序员陆通9 小时前
CentOS/AlmaLinux 9 中 SSH 服务启动失败:OpenSSL 版本不匹配解决
linux·centos·ssh
ZYMFZ9 小时前
HAProxy 简介及配置
linux·负载均衡·haproxy
敲上瘾9 小时前
Linux系统C++开发环境搭建工具(三)—— brpc使用指南
linux·c++·分布式·rpc
李少兄9 小时前
解决 CentOS 8 报错:Failed to download metadata for repo ‘BaseOS‘
linux·运维·centos
杜子不疼.9 小时前
Linux】 性能调优实战:内核参数优化技巧
linux·运维·php
墨寒博客栈10 小时前
Linux基础常用命令
java·linux·运维·服务器·前端
重生之我在20年代敲代码10 小时前
【Linux网络编程】初识网络,理解TCP/IP五层模型
linux·运维·服务器·网络