【计算机网络】IP面试知识(5) IP 协议相关技术①

  • DNS 域名解析
  • ARP 与 RARP 协议
  • DHCP 动态获取 IP 地址

一、DNS

在上⽹的时候,通常使⽤的⽅式是域名,⽽不是 IP 地址,因为域名⽅便⼈类记忆。

那么实现这⼀技术的就是 DNS 域名解析,DNS 可以将域名⽹址⾃动转换为具体的 IP 地址。

1、域名的层级关系

DNS 中的域名都是⽤句点来分隔的,⽐如 www.server.com ,这⾥的句点代表了不同层次之间的界限。 在域名中,越靠右的位置表示其层级越⾼

毕竟域名是外国⼈发明,所以思维和中国⼈相反,⽐如说⼀个城市地点的时候,外国喜欢从⼩到⼤的⽅式顺序说起 (如 XX 街道 XX 区 XX 市 XX 省),⽽中国则喜欢从⼤到⼩的顺序(如 XX 省 XX 市 XX 区 XX 街道)。

根域是在最顶层,它的下⼀层就是 com 顶级域,再下⾯是 server.com。

所以域名的层级关系类似⼀个树状结构:

  • 根 DNS 服务器
  • 顶级域 DNS 服务器(com)
  • 权威 DNS 服务器(server.com)

在这里插入图片描述

根域的 DNS 服务器信息保存在互联⽹中所有的 DNS 服务器中。这样⼀来,任何 DNS 服务器就都可以找到并访问 根域 DNS 服务器了。

因此,客户端只要能够找到任意⼀台 DNS 服务器,就可以通过它找到根域 DNS 服务器,然后再⼀路顺藤摸⽠找到位于下层的某台⽬标 DNS 服务器。

2、域名解析的⼯作流程

浏览器⾸先看⼀下⾃⼰的缓存⾥有没有,如果没有就向操作系统的缓存要,还没有就检查本机域名解析⽂件 hosts ,如果还是没有,就会 DNS 服务器进⾏查询,查询的过程如下:

在这里插入图片描述

  • 客户端⾸先会发出⼀个 DNS 请求,问 www.server.com 的 IP 是啥,并发给本地 DNS 服务器(也就是客户端的 TCP/IP 设置中填写的 DNS 服务器地址)。
  • 本地域名服务器收到客户端的请求后,如果缓存⾥的表格能找到 www.server.com,则它直接返回 IP 地址。
  • 如果没有,本地 DNS 会去问它的根域名服务器:“⽼⼤, 能告诉我 www.server.com 的 IP 地址吗?” 根域名 服务器是最⾼层次的,它不直接⽤于域名解析,但能指明⼀条道路。
  • 根 DNS 收到来⾃本地 DNS 的请求后,发现后置是 .com,说:“www.server.com 这个域名归 .com 区域管 理”,我给你 .com 顶级域名服务器地址给你,你去问问它吧。”
  • 本地 DNS 收到顶级域名服务器的地址后,发起请求问“⽼⼆, 你能告诉我 www.server.com 的 IP 地址吗?”
  • 顶级域名服务器说:“我给你负责 www.server.com 区域的权威 DNS 服务器的地址,你去问它应该能问到”。
  • 本地 DNS 于是转向问权威 DNS 服务器:“⽼三,www.server.com对应的IP是啥呀?” server.com 的权威 DNS 服务器,它是域名解析结果的原出处。为啥叫权威呢?就是我的域名我做主。
  • 权威 DNS 服务器查询后将对应的 IP 地址 X.X.X.X 告诉本地 DNS。
  • 本地 DNS 再将 IP 地址返回客户端,客户端和⽬标建⽴连接。

在这里插入图片描述

DNS 域名解析的过程蛮有意思的,整个过程就和我们⽇常⽣活中找⼈问路的过程类似,只指路不带路

二、ARP

在传输⼀个 IP 数据报的时候,确定了源 IP 地址和⽬标 IP 地址后,就会通过主机「路由表」确定 IP 数据包下⼀跳。然⽽,⽹络层的下⼀层是数据链路层,所以我们还要知道「下⼀跳」的 MAC 地址。

由于主机的路由表中可以找到下⼀跳的 IP 地址,所以可以通过 ARP 协议,求得下⼀跳的 MAC 地址。

1、 ARP 是如何知道对方 MAC 地址的呢?

简单地说,ARP 是借助 ARP 请求与 ARP 响应两种类型的包确定 MAC 地址的。

在这里插入图片描述

  • 主机会通过⼴播发送 ARP 请求,这个包中包含了想要知道的 MAC 地址的主机 IP 地址。

  • 当同个链路中的所有设备收到 ARP 请求时,会去拆开 ARP 请求包⾥的内容,如果 ARP 请求包中的⽬标 IP 地址与⾃⼰的 IP 地址⼀致,那么这个设备就将⾃⼰的 MAC 地址塞⼊ ARP 响应包返回给主机。

操作系统通常会把第⼀次通过 ARP 获取的 MAC 地址缓存起来,以便下次直接从缓存中找到对应 IP 地址的 MAC 地址。

不过,MAC 地址的缓存是有⼀定期限的,超过这个期限,缓存的内容将被清除。

2、RARP 协议

ARP 协议是已知 IP 地址求 MAC 地址,那 RARP 协议正好相反,它是已知 MAC 地址求 IP 地址。例如将打印机服务器等⼩型嵌⼊式设备接⼊到⽹络时就经常会⽤得到。

通常这需要架设⼀台 RARP 服务器,在这个服务器上注册设备的 MAC 地址及其 IP 地址。然后再将这个设备接⼊到⽹络,接着:

  • 该设备会发送⼀条「我的 MAC 地址是XXXX,请告诉我,我的IP地址应该是什么」的请求信息。
  • RARP 服务器接到这个消息后返回「MAC地址为 XXXX 的设备,IP地址为 XXXX」的信息给这个设备。

最后,设备就根据从 RARP 服务器所收到的应答信息设置⾃⼰的 IP 地址。

在这里插入图片描述

三、DHCP

DHCP 在⽣活中我们是很常⻅的了,我们的电脑通常都是通过 DHCP 动态获取 IP 地址,⼤⼤省去了配 IP 信息繁琐的过程。

接下来,我们来看看我们的电脑是如何通过 4 个步骤的过程,获取到 IP 的:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

DHCP 客户端进程监听的是 68 端⼝号,DHCP 服务端进程监听的是 67 端⼝号。

  • 客户端⾸先发起 DHCP **发现报⽂(**DHCP DISCOVER) 的 IP 数据报,由于客户端没有 IP 地址,也不知道 DHCP 服务器的地址,所以使⽤的是 UDP ⼴播通信,其使⽤的⼴播⽬的地址是 255.255.255.255(端⼝ 67) 并且使⽤ 0.0.0.0(端⼝ 68) 作为源 IP 地址。DHCP 客户端将该 IP 数据报传递给链路层,链路层然后 将帧⼴播到所有的⽹络中设备。
  • DHCP 服务器收到 DHCP 发现报⽂时,⽤ DHCP **提供报⽂(**DHCP OFFER) 向客户端做出响应。该报⽂仍 然使⽤ IP ⼴播地址 255.255.255.255,该报⽂信息携带服务器提供可租约的 IP 地址、⼦⽹掩码、默认⽹关、 DNS 服务器以及 IP 地址租⽤期
  • 客户端收到⼀个或多个服务器的 DHCP 提供报⽂后,从中选择⼀个服务器,并向选中的服务器发送 **DHCP 请求报⽂(DHCP REQUEST)**进⾏响应,回显配置的参数。
  • 最后,服务端⽤ DHCP ACK 报⽂对 DHCP 请求报⽂进⾏响应,应答所要求的参数。

⼀旦客户端收到 DHCP ACK 后,交互便完成了,并且客户端能够在租⽤期内使⽤ DHCP 服务器分配的 IP 地址。

如果租约的 DHCP IP 地址到期后,客户端会向服务器发送 DHCP 请求报⽂:

  • 服务器如果同意继续租⽤,则⽤ DHCP ACK 报⽂进⾏应答,客户端就会延⻓租期。
  • 服务器如果不同意继续租⽤,则⽤ DHCP NACK 报⽂,客户端就要停⽌使⽤租约的 IP 地址。

可以发现,DHCP 交互中,全程都是使⽤ UDP ⼴播通信

⽤的是⼴播,那如果 DHCP 服务器和客户端不是在同⼀个局域⽹内,路由器⼜不会转发⼴播包,那不是每个⽹络 都要配⼀个 DHCP 服务?

为了解决这⼀问题,就出现了 DHCP 中继代理。有了 DHCP 中继代理以后,对不同⽹段的 IP 地址分配也 可以由⼀个 DHCP 服务器统⼀进⾏管理。

在这里插入图片描述

  • DHCP 客户端会向 DHCP 中继代理发送 DHCP 请求包,⽽ DHCP 中继代理在收到这个⼴播包以后,再以单播的形式发给 DHCP 服务器。
  • 服务器端收到该包以后再向 DHCP 中继代理返回应答,并由 DHCP 中继代理将此包⼴播给 DHCP 客户端 。

因此,DHCP 服务器即使不在同⼀个链路上也可以实现统⼀分配和管理IP地址。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值