自然需要,知道ARP干什么的,就很好理解,使用IP地址通信前,需要通过先知道对端的MAC地址,这个MAC地址相当于门牌号。而不管web服务器还是其他什么终端设备,访问同段IP地址前,都存在这一过程。什么是ARP?自行百度,没必要展开,除非你百度后还看不懂。
默认网关的概念,来自于路由查找,路由是选路。每个设备上都有一个路由表,里面有一些自动生成的路由信息,还有你添加的默认网关路由等信息,对于windows,可以在命令行下用route print看到这张路由表。什么是路由?什么是路由表?这个问题自己百度吧,在这里展开有必要吗?
比如服务器地址是192.168.1.2/24,默认网关是192.168.1.1。那么会有一条路由目的是192.168.1.0/24,通过192.168.1.2走,是根据你的本地IP生成的。这条路由的意思是说,同网段地址是直连的,直接从端口发送出去即可。另外还有一条路由目的地址是0.0.0.0/0,通过192.168.1.1走,这就是默认路由,是根据你的默认网关生成的。这条路由是说,不是同网段的IP访问,都发送给192.168.1.1,让它来转发。
那么ARP的过程在哪里?当本机发送一个IP包时,比如访问百度的包,目的地址肯定不是同网段的,自然发给了默认网关即192.168.1.1。若是二者第一次通信,本机的MAC地址表(在哪看?windows下用arp -a命令)肯定没有192.168.1.1的MAC地址,那么就不知道该把包发给谁。所以先会发送一个ARP请求广播,向同网询问谁是192.168.1.1?192.168.1.1收到广播后,会向1.2应答这个请求,告知1.2自己的MAC地址,自此ARP过程结束,二者通过MAC地址开始发送IP数据。