网资酷

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 86|回复: 1

家中局域网内的主机通信原理

[复制链接]

2

主题

2

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2022-12-12 14:26:52 | 显示全部楼层 |阅读模式
近些年网络的飞速发展,局域网的规模越来越大,应用的频率也越来越高。小到以家庭为单位,宽带为出口的家庭式局域网络;大到数据中心,跨越公网的超大型局域网。局域网词汇的使用频率越来越高,局域网在我们日常生活中出现的频率也越来越高,下面介绍下局域网主机通信的简单基本原理。
局域网内的主机通信大致可以分为两种,一种是二层网络的主机间通信,一种是三层网络的主机通信。当然实际的网络环境中会附加一些其他的网络技术,比如VPN、认证、一些路由协议、MPLS、软件定义网络要用到的SRV6/EVPN/VXLAN/SDN控制器等,虽然这些技术有一定的复杂程度,但是究其根本来说无非都是为了实现主机之间或者主机服务器之间的二层网络互通和三层网络互通,下面就根据这两类互通原理进行一一介绍。
二层网络主机通信原理

什么是二层网络主机的通信呢?通俗一点来说的话,家庭中的你手机、电脑、PAD、智能家电与家中路由器之间相互通信,就是一个二层意义上的通信,如果是通过有线连接,那就会涉及网线连接和DHCP的相关通信原理;如果是无线连接,那就回涉及到相关无线射频、信道等一系列原理性应用,下面我们就单从网络通信的过程上来说明下载二层网络的上,终端之间是如何实现相互通信的。
首先是终端的IP地址网段,打开你的电脑或者手机,只要连接着网络你都会自动获取或者手动设置一个IP地址、网关、DNS等相关信息


如上图所示,这是一台电脑的无线网卡信息,需要关注的是IPv4的地址、子网掩码;二层网络通信的前提是不需要三层路由的参与,严格意义上来说甚至不需要IP地址的参数(在这里我们不套路),那我们继续来看不需要三层路由参与的通信,前提条件上来说就是需要双方终端在同一个网段中(特殊情况不考虑,如proxy arp等)
以上图为例地址是192.168.199.227,掩码是255.255.255.0,那么跟它同一段的地址是192.168.199.1-254,这些地址都是与192.168.199.227同一个地址段(具体的计算方法大家可以搜一下),所以192.168.199.227与对应网关192.168.199.1通信的时候就是通过二层网络;同样大家可以看看家中其他终端的IP地址,你会发现都会在同一个网段中(特殊组网除外),而且他们的网关在自动获取的情况下,都是指向你的家用路由器。
前提条件了解了,下面我们开始介绍二层网络,也就是我们家中终端与终端之间,终端与家用路由器之间是如何实现通信的,主要是分为两大步骤,一个是MAC地址的使用,一个是ARP协议的使用
MAC地址表象阶段

当终端连接到网络中时,如果是自动获取地址的话,终端会发送DHCP请求信息,给终端分配一个对应的主机地址后发送免费ARP表象进行检测;如果是静态的IP地址,刚接入网络的时候,终端会向广播域中广播一个免费ARP信息。




家用路由器在捕捉到对应DHCP过程中ACK之后的免费ARP或者静态地址的免费ARP后就会迅速的获取该终端的MAC情况,并在自身形成一套完成的MAC地址表象(终端MAC地址与物理接口或者无线VAP接口的对应关系),形成表象后完成对应数据的转发。这是家用路由器,同时你的终端设备也会形成一个对应的MAC表象,和家用路由器形成的过程一致


ARP地址表象阶段

在形成MAC表象的同时,家用路由器会同时形成本地的ARP表象地址;该表象是IP地址和MAC地址对应关系的表象信息,MAC表象形成时,ARP表象只会有本地相关信息


当设备之间发起相互访问的时候,会遵循ARP的完成流程,请求对方的IP地址信息,形成完整的ARP表象
首先封装二层以太帧,目的MAC为全F(广播)源MAC为自身MAC类型为ARP,ARP request包中源MAC为自身MAC 目的MAC为全0 源IP为自身IP地址,目的IP为对应请求的目的IP地址


当对应MAC地址接收到广播包的ARP之后,发现请求的IP地址为自身IP。回复ARP reply包,封装二层以太网帧 目的MAC为请求自身IP的MAC,源MAC为自身MAC(单播)。ARP reply源MAC为自身MAC,目的MAC为目的MAC,源和目的地址为对应的IP地址。两端设备建立相应的ARP表象。


网络中每一台设备都会重复上述操作,直到形成需要完成通信的IP地址的所有ARP表象为止,这样二层通信准备工作就完成了,后续的数据会根据终端与家用路由器的MAC和ARP表象指导进行相应的转发工作。


三层网络主机通信原理

三层网络主机通信,对于家庭来说就是类似访问互联的一个过程,三层即跨网段的访问。二层访问的时候要求网络中的终端要在同一个网段中,那么跨网段的访问该怎么处理呢?三层间的网络访问应允而生了。三层网络主机间的通信,需要一个关键的角色,网关。也就是跨越三层的时候,把所有的数据包统一交付给网关设备进行转发和操作。家庭网络中的网关设备就是家用路由器了,承载着所有跨三层数据的转发,这也就是为什么对家用路由器的转发性能要求比较高了,既要能够满足二层网络设备间的互联互通(目前智能家居广泛使用),同时也要能够高效的转发三层数据(家庭上网的需求)。下面来介绍下三层网络主机间通信是如何实现的
三层网络的实现,前期的准备工作与二层一致,需要完成全部二层转发的所有准备后,通过路由表象进行转发。


如上图,终端中会设置对应的网关,这样终端会形成一条0.0.0.0/0下一跳是192.168.199.1的缺省路由,也就是告诉终端只要是跨三层的数据,全部转发给192.168.199.1,然后交由它进行进一步的转发工作。


家用路由器也会形成一个类似的这样的路由表象,只不过它的下一跳是指向互联网接口,也就是运营商的下一跳设备。家用路由器会同时生成直连路由,下一跳指向对应的广播域中的某一个地址上面,指导数据包在对应广播域遵循二层转发原理进行相应的数据转发


完成上述操作后,家庭中的终端基本的网络通信就完成了,既能实现家庭内部的互联互通,也是实现三层互联的的通信要求,当然实际应用中不单单是这样简单的一个过程,由于应用的不同,所承载的协议也会不同。宽带接入方式的不同,同样也会带来不一样的东西。
回复

使用道具 举报

0

主题

6

帖子

10

积分

新手上路

Rank: 1

积分
10
发表于 2025-6-4 19:28:24 | 显示全部楼层
占位编辑
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|网资酷

GMT+8, 2025-7-8 13:34 , Processed in 0.090363 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表