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

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

相关推荐
-VE-41 分钟前
myshell
linux·c++
身在江湖的郭大侠3 小时前
Linux内核
linux·服务器
破-风5 小时前
linux的用法
linux·运维·服务器
涛ing8 小时前
32. C 语言 安全函数( _s 尾缀)
linux·c语言·c++·vscode·算法·安全·vim
__雨夜星辰__8 小时前
Linux 学习笔记__Day2
linux·服务器·笔记·学习·centos 7
大耳朵土土垚8 小时前
【Linux】日志设计模式与实现
linux·运维·设计模式
深度Linux13 小时前
Linux网络编程中的零拷贝:提升性能的秘密武器
linux·linux内核·零拷贝技术
chian-ocean17 小时前
从理论到实践:Linux 进程替换与 exec 系列函数
linux·运维·服务器
拎得清n17 小时前
UDP编程
linux
敖行客 Allthinker17 小时前
从 UTC 日期时间字符串获取 Unix 时间戳:C 和 C++ 中的挑战与解决方案
linux·运维·服务器·c++