ip地址|IP 基础知识“全家桶”,45 张图一套带走( 七 )


跟 IP 协议相关的技术也不少 , 接下来说说与 IP 协议相关的重要且常见的技术 。DNS 域名解析ARP 与 RARP 协议DHCP 动态获取 IP 地址NAT 网络地址转换ICMP 互联网控制报文协议IGMP 因特网组管理协DNS
我们在上网的时候 , 通常使用的方式域名 , 而不是 IP 地址 , 因为域名方便人类记忆 。
那么实现这一技术的就是 DNS 域名解析 , DNS 可以将域名网址自动转换为具体的 IP 地址 。
域名的层级关系
DNS 中的域名都是用 句点来分隔的 , 比如 www.server.com , 这里的句点代表了不同层次之间的 界限 。
在域名中 ,越靠右的位置表示其层级 越高 。
毕竟域名是外国人发明 , 所以思维和中国人相反 , 比如说一个城市地点的时候 , 外国喜欢从小到大的方式顺序说起(如 XX 街道 XX 区 XX 市 XX 省) , 而中国则喜欢从大到小的顺序(如 XX 省 XX 市 XX 区 XX 街道) 。
根域是在最顶层 , 它的下一层就是 com 顶级域 , 再下面是 server.com 。
所以域名的层级关系类似一个树状结构:根 DNS 服务器顶级域 DNS 服务器(com)权威 DNS 服务器(server.com)
ip地址|IP 基础知识“全家桶”,45 张图一套带走
文章图片

文章图片

DNS 树状结构
根域的 DNS 服务器信息保存在互联网中所有的 DNS 服务器中 。这样一来 , 任何 DNS 服务器就都可以找到并访问根域 DNS 服务器了 。
因此 , 客户端只要能够找到任意一台 DNS 服务器 , 就可以通过它找到根域 DNS 服务器 , 然后再一路顺藤摸瓜找到位于下层的某台目标 DNS 服务器 。
域名解析的工作流程
浏览器首先看一下自己的缓存里有没有 , 如果没有就向操作系统的缓存要 , 还没有就检查本机域名解析文件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 的解析过程 。现在总结一下 , 整个过程我画成了一个图 。
ip地址|IP 基础知识“全家桶”,45 张图一套带走
文章图片

文章图片

域名解析的工作流程
DNS 域名解析的过程蛮有意思的 , 整个过程就和我们日常生活中找人问路的过程类似 ,只指路不带路 。
ARP
在传输一个 IP 数据报的时候 , 确定了源 IP 地址和目标 IP 地址后 , 就会通过主机「路由表」确定 IP 数据包下一跳 。然而 , 网络层的下一层是数据链路层 , 所以我们还要知道「下一跳」的 MAC 地址 。


推荐阅读