PC上线之路
每台可接入互联网的设备,都有一个固定且唯一的MAC地址,如何通过这有且仅有的一个MAC地址加入到互联网中,是本文主要讲解的内容。在现有的计算机网络架构中, 使用IP地址来进行路由选择和通信,那么IP地址从哪里来?IP地址总量只有2^32-2个,全球这么多设备,又是如何保证IP地址不冲突?
1、PC上线发送ARP宣告自己的存在
一台主机,网线接通的那一刻,需要宣告自己的存在,怎么宣告?发送ARP。发给谁?不知道,所以PC会发送一个目的MAC是全F,源MAC是自己MAC地址的广播报文,这个广播报文,同一个局域网内的所有设备都能收到。ARP报文,简单理解,ARP报文主要目的是为了告知网络中的其他设备,MAC地址为x:x:x:x:x:x的主机加入网络了。 ARP报文结构:
ARP报文的最主要特征是0x0806,ARP报文有很多种,可以是刚上线只知道源MAC,目的IP和源IP都未知,也可以是为了获取目的IP对应的目的MAC地址,ARP请求是为了获取目的IP的MAC地址,如果目的IP的主机收到了这个请求,就回复ARP reply,告知自己的MAC地址。请求方收到了ARP reply后,就会在本地形成一张arp映射表,对应IP地址的MAC地址。
2、找到一个属于自己的IP
2.1 DHCP
如果PC是采用自动获取IP地址的方式,那么,再发送完ARP请求后后,就会在网络中寻找DHCP服务器请求分配IP地址。
在发起DHCP请求过程中,如何保证分配的IP可用? 首先,DHCP服务器对所有分配出去的IP有记录,在回复DHCP offer报文之前,也会在网络中发起ARP探测,询问这个IP地址是否被网络中设备持有,没有应答才会分配,避免网络中有主机通过设置这个IP地址接入;其次,PC在收到DHCPACK后,会在网络中发起一个免费ARP请求,再次询问这个IP地址是否被占用,没有响应则继续使用。
2.2、静态IP
直接使用静态IP加入网络,省去DHCP获取IP地址的过程,通过免费ARP在网络中进行探测,IP地址不冲突的情况下直接发起带源MAC,源IP的ARP报文获取网关MAC地址,同时告知网关IP地址为a.b.c.d的x.x.x.x.x.x加入网络。