计算机网络通信基础

605 阅读3分钟

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加入网络。

获取到IP地址后,主叫就可以通过发送TCP/IP报文和外界网络进行通信,所有的报文发送到网关,通过网关进行转发。但是,网络中有无数地址池、网关和路由,PC是如何找到它所接入的网络的网关呢?

局域网是一个网络所有的主机使用私有IP地址,所有的主机发送报文必须通过网关来进行转发,如果需要通公网,就在网关处进行NAT转换,把私有地址映射到一个共有地址(公有地址的端口)上,从而进行互联网报文的收发。