怎么确定目标主机,整个网络过程
简单来说,
就是归结于计算机间怎么进行通信,
(原始方法)
简单点直接加网线,但
-
一个设备的网口肯定是有限的
-
当相连的设备多了,整个网线将变得十分复杂,不利于管理维护
(集线器)
于是出现集线器,由集线器来接受数据包,再广播到所有连接它的端口,目标设备接受,其他设备丢弃,但
-
不知道是否发给自己
于是用Mac地址标识各个设备。但
-
集线器是一个 半双工 设备,意味着同一时间只有一个设备可以接发数据,多个设备同时工作会导致数据冲突
-
集线器每次都会将接受的数据发送到全部网络设备(泛洪),这大大的浪费了网络资源
(交换机)
于是出现交换机,可以学习和识别连接在它设备上面的 Mac 地址,具有自动寻址(Mac表)的能力,支持全双工通信即,允许设备同时发送接受数据。
自动寻址主要在于将交换机端口和相连的主机Mac地址建立映射,除了第一次需要初始化,后续就可以直接根据地址转发。但
-
一个交换机端口有限
就需要多个交换机进行桥接,这样需要通信另一个交换机相连的设备时,记录当前交换机与另一交换机的端口,和目标Mac地址(也就是说这个端口,有多个目标Mac地址映射)但
-
单台交换机MAC表有限
(路由器)
就开始将大网络切分成小网络,通过路由器实现跨网络转发,并用IP地址标识设备位于的局域网,使用子网掩码,区分网络地址(不同网络)和主机地址(不同设备)。值得注意的是:
-
IP是逻辑地址,可能重复
-
Mac是物理地址,唯一
但
-
怎么通过目标IP地址,获取Mac地址
使用ARP协议(通过IP查询MAC地址的协议),广播子网中设备,当设备检查请求中IP地址于自己相匹配时,就会将自己的Mac地址
打包成一个 arp响应
发送回请求设备,路由器收到数据包后,记录路由器所连接的不同网络之间路径和关系,称路由表。
举个栗子
现在 A
需要传输数据到 F
并且 F
的 Mac
地址未知,只知道F的IP地址:
-
A
通过ARP
协议查询当前子网是否存在目标Mac地址
,F不在同一个子网,结果肯定是没有的 -
当前子网下没有只能出去找了,
A
会查找自己网络配置文件中默认网关的IP地址,并使用ARP协议
获取默认网关(路由器1)的Mac地址
-
之后发送数据,交换机会将你的数据传输给路由器 1
-
路由器 1 接受数据后,根据目标
IP 地址
和子网掩码
获取数据包的目标网络地址 -
路由器 1 发现该网络地址不在自己所管的网络中,则会根据路由表信息获取最优的传输路径
-
路由器 1 会将
源 Mac地址 和目标 Mac地址
修改为自己的Mac地址和路由器 2 的 Mac地址
,转发给路由器 2 -
重复
4 5 6
步骤,最终数据到达与F同一个网络的路由器( 也就是4 )手中 -
路由器 4 使用
ARP
协议查询目标的Mac地址
,根据Mac地址
转发到F
设备
-
源IP和目标IP不变,源MAC和目标MAC一直变
通过 IP 地址确定目标网络
-
IP 地址与子网掩码:在网络中,每台主机都有一个唯一的 IP 地址。IP 地址由网络地址和主机地址两部分组成,子网掩码用于区分这两部分。例如,对于 IP 地址 192.168.1.100,子网掩码为 255.255.255.0 时,网络地址是 192.168.1.0,主机地址是 100 。通过将目标主机的 IP 地址与子网掩码进行逻辑与运算,可以确定目标主机所在的网络1 。
-
CIDR 表示法:CIDR(无类别域间路由)是一种表示 IP 地址范围的简洁方法。如 192.168.1.0/24,表示前 24 位是网络地址,后 8 位是主机地址,可用于确定一个网络段内的所有主机地址范围 。
在本地网络中查找目标主机
-
ARP 协议:当主机知道目标主机的 IP 地址,但不知道其 MAC 地址时,会在本地网络中发送 ARP(地址解析协议)请求广播。目标主机收到请求后,会回复自己的 MAC 地址,从而建立起 IP 地址与 MAC 地址的映射关系,以便进行数据链路层的通信1.
-
交换机转发:交换机在收到数据帧后,会检查其目的 MAC 地址,并对照自己学习到的 MAC 地址表进行转发。如果目的 MAC 地址在表中存在对应的端口,则直接将数据帧从该端口转发出去;如果不存在,则会进行广播,除了源端口外的其他端口都会收到该数据帧,直到目标主机响应,交换机从而学习到目标主机的 MAC 地址与端口的映射关系,并记录在 MAC 地址表中,以便后续通信1.
跨网络查找目标主机
-
路由器转发:当目标主机不在本地网络时,数据需要通过路由器进行转发。路由器依据路由表来决定数据的转发路径。路由表中记录了不同网络地址的下一跳地址等信息,路由器通过查找路由表,将数据转发到下一个路由器或目标网络,直至到达目标主机所在的网络1.
-
网关的作用:网关是本地网络与其他网络通信的出入口。主机发送数据到其他网络时,首先将数据发送到网关,由网关进行转发。网关通常是连接本地网络和外部网络的路由器接口的 IP 地址。
使用域名确定目标主机
-
DNS 解析:当使用域名来访问目标主机时,需要通过 DNS(域名系统)将域名解析为对应的 IP 地址。客户端会向本地 DNS 服务器发送域名解析请求,本地 DNS 服务器如果缓存了该域名的 IP 地址,则直接返回;否则,会向其他 DNS 服务器查询,直至获取到目标主机的 IP 地址,然后再通过上述网络通信过程找到目标主机 。
参考:
计算机网络-如何寻找目标计算机?_哔哩哔哩_bilibili