1.2.1 基础认知:IP 与域名的核心关系|《网络是怎样连接的》精读版
本节在全链路中的位置网络请求的链路是环环相扣的标准化流程DNS 解析IP 地址是核心是承接 URL 解析、支撑后续请求发送的关键环节具体链路流转如下用户输入URL ↓ 解析 URL → 生成 HTTP 请求 ↓ DNS 域名转 IP 地址 【本节核心】 ↓ 委托操作系统协议栈 ↓ 数据包准备离开发送本章聚焦 IP 地址与域名解析的底层逻辑是解决 “知道要访问谁但不知道去哪找它” 的核心环节 —— 只有把域名转化为网络设备能识别的 IP 地址请求才能真正踏上 “找服务器” 的路。一、IP 地址的基本知识1. 学习 IP 地址的核心背景浏览器完成 HTTP 请求消息生成后就像写好了 “给服务器的信”但它自己没法把信送出去必须委托操作系统这个 “快递员” 执行发送操作。而操作系统这个 “快递员” 有个硬性要求不认 “网站名字域名”只认 “网络门牌号IP 地址”。因此“根据域名查 IP 地址” 成了发送请求前的必经步骤而要理解这个查询过程首先得吃透 IP 地址的本质与规则。2. TCP/IP 网络的核心结构逻辑互联网和局域网的搭建都遵循 TCP/IP 的核心思路其结构可以拆解为 “子网 路由器” 的组合用生活化的场景类比会更易理解子网最小的网络单元相当于 “一栋居民楼”—— 办公室里几台电脑通过集线器连接就像一栋楼里的住户共享一个楼道出入口路由器连接各个子网的 “中转站”相当于 “小区门口的快递站”—— 负责把不同楼栋子网的包裹消息转发到正确的方向消息传递路径发送者发出的消息先经过自身子网的集线器楼道口转发到最近的路由器小区快递站路由器根据目标地址判断下一跳方向把消息转发到下一个路由器区域快递中心此过程反复进行直到消息抵达目标子网目标楼栋最终送达目标设备目标住户。3. IP 地址的本质与类比理解IP 地址是网络中每一台设备的唯一标识相当于现实生活中 “某条路上的 ×× 号 ×× 室”——“路名 门牌号” 能精准定位住户IP 地址则能精准定位网络设备。为了让路由器能快速判断 “消息该发往哪里”IP 地址被设计为“网络号 主机号”的双层结构对应现实地址的 “小区 住户”网络号子网标识对应 “小区地址”标识设备所在的子网哪栋楼主机号设备标识对应 “住户房间号”标识子网内的具体某台设备哪一户。4. IP 地址的具体形式与结构划分1基础表示形式IP 地址本质是32 位的二进制数字比如00001010.00001011.00001100.00001101但二进制像一串 “01 密码”人类难以阅读和记忆。因此实际使用时会按每 8 位1 字节为一组转换为十进制数组与组之间用圆点隔开这就是我们常见的 IP 地址格式如10.11.12.13—— 相当于把 “密码” 翻译成了更易读的数字组合。2网络号与主机号的划分难题32 位 IP 地址中“哪几位是网络号、哪几位是主机号”没有固定规则—— 就像小区划分 “楼栋号 房间号”有的小区把前 2 位当楼栋号、后 2 位当房间号有的小区前 3 位当楼栋号、后 1 位当房间号。组建网络时用户可自行决定两者的比特数分配这就导致仅凭 IP 地址本身无法判断其网络号和主机号的边界必须依靠附加信息子网掩码来界定这是 IP 地址的核心特性之一。3子网掩码划分网络号与主机号的 “标尺”子网掩码是与 IP 地址长度相同的 32 位数字相当于划分 “楼栋号和房间号” 的 “标尺”其规则和表示方法十分清晰核心规则掩码中为 1 的部分对应 IP 地址的网络号楼栋号为 0 的部分对应 IP 地址的主机号房间号。两种常用表示方法点分十进制法与 IP 地址格式一致如255.255.255.0二进制是11111111.11111111.11111111.00000000对应前 24 位为网络号后 8 位为主机号CIDR 前缀法用/加上 “网络号的比特数” 表示如10.11.12.13/24含义与255.255.255.0完全相同 —— 这是目前更简洁、更常用的表示方式。5. IP 地址的特殊形式主机号的极端情况根据主机号的比特取值有两种特殊的 IP 地址分别对应特定场景类比小区地址更易理解主机号全为 0不表示某台具体设备而是代表整个子网。例如10.11.12.0/24相当于 “XX 小区 12 栋”指的是10.11.12.x这个完整子网整栋楼主机号全为 1表示向子网内所有设备广播消息。例如10.11.12.255/24相当于 “XX 小区 12 栋所有住户”指将消息发送给10.11.12.x子网内的每一台计算机。6. 零门槛实操亲手查看本机 IP 与子网掩码想直观理解 IP 地址和子网掩码无需复杂工具几步就能看到本机的真实配置Windows 系统按下WinR输入cmd回车打开命令提示符输入命令ipconfig /all回车执行找到 “以太网适配器” 或 “WLAN” 栏目查看IPv4 地址本机的 IP 地址如192.168.1.100子网掩码本机的子网掩码如255.255.255.0默认网关当前子网的路由器地址相当于 “小区快递站” 地址。Mac/Linux 系统打开终端输入命令ifconfigMac/ip addrLinux回车执行找到 “en0”有线或 “wlan0”无线栏目查看inetIP 地址和netmask子网掩码。二、域名和 IP 地址并用的理由1. 核心矛盾用户易用性 vs 网络高效性TCP/IP 网络的核心通信依据是 IP 地址路由器完全依赖 IP 地址完成数据转发但 “只用 IP 地址” 和 “只用域名” 都存在无法解决的问题就像 “身份证号” 和 “姓名” 的关系 —— 两者必须并用才能兼顾效率和易用性。2. 为什么不能只用 IP 地址域名的必要性IP 地址是一串无规律的数字如192.168.1.10如同一串随机的电话号码人类难以记忆和识别。而域名是有意义的字符串如www.example.com结合了网站用途、品牌等信息就像 “张三的手机号” 比 “138XXXX1234” 更容易记住。用户可以轻松记住、快速输入域名极大提升了互联网的使用体验。试想如果只用 IP 地址你每次访问淘宝都要输入140.205.94.119访问百度要输入110.242.68.3互联网的易用性会大幅降低普通人根本无法高效使用。3. 为什么不能只用域名IP 地址的必要性从网络设备的运行效率来看域名完全无法替代 IP 地址核心原因有两点长度差异导致处理效率极低IP 地址固定为4 字节32 位路由器处理时只需解析少量二进制数据就像快递员看 “小区 门牌号” 的短地址一眼就能判断方向速度极快域名长度不固定最短几十字节最长可达255 字节路由器解析和处理域名需要消耗更多资源就像快递员看一篇 “详细地址小作文”效率会大幅降低。路由器的工作逻辑依赖 IP互联网中遍布无数路由器它们的核心功能是 “根据目标地址转发数据”其硬件和软件都是为处理 32 位 IP 地址设计的 —— 就像快递站的分拣系统只认 “门牌号格式”不认 “姓名格式”。若改用域名所有路由器都需要升级改造这在现实中完全不具备可行性。4. 场景案例域名与 IP 并用的真实场景案例 1访问百度的实际过程你输入www.baidu.com域名→ 浏览器触发 DNS 查询把域名转化为110.242.68.3IP 地址→ 操作系统拿着 IP 地址把 HTTP 请求发送到对应服务器→ 服务器返回响应浏览器展示百度页面。案例 2为什么偶尔会出现 “域名能 ping 通但网站打不开”ping 通域名说明 DNS 解析正常能拿到 IP 地址知道了服务器的 “门牌号”网站打不开可能是服务器的 80/443 端口Web 服务端口被防火墙拦截或 Web 服务本身故障“住户在家但大门锁了”—— 这也印证了 “IP 地址负责定位协议 / 端口负责通信” 的逻辑。5. 常见问题排查无法解析域名提示 “找不到服务器”原因DNS 服务器配置错误、本地 DNS 缓存失效、域名本身未备案 / 解析解决刷新 DNS 缓存Windowsipconfig /flushdnsMacsudo dscacheutil -flushcache更换公共 DNS如 8.8.8.8、114.114.114.114。同一子网内设备无法互通原因子网掩码配置错误导致 “认为不在同一个小区”、防火墙拦截解决核对两台设备的 IP 和子网掩码确保网络号部分完全一致如均为192.168.1.x/24关闭本地防火墙。能访问 IP 但不能访问域名原因DNS 解析失败、域名绑定的 IP 与实际服务器 IP 不一致解决用nslookup 域名如nslookup www.baidu.com查看解析的 IP对比服务器真实 IP 是否匹配。6. 进阶拓展IPv4 与 IPv6 的小知识目前我们使用的是 IPv432 位地址但随着互联网设备激增IPv4 地址资源已耗尽因此推出了 IPv6128 位地址IPv6 格式如2001:0db8:85a3:0000:0000:8a2e:0370:7334用冒号分隔十六进制数核心优势地址数量近乎无限无需子网掩码内置地址结构划分未来会逐步替代 IPv4。7. 最终结论并用是唯一最优解对用户使用域名兼顾记忆性和易用性记 “名字” 而非 “数字”对网络设备使用 IP 地址保证转发效率和通信稳定性用 “短地址” 快速分拣两者各司其职、相互配合才构成了 “用户轻松使用、网络高效运转” 的互联网基础通信模式。三、本节核心总结IP 地址是网络设备的唯一标识采用 “网络号 主机号” 双层结构需通过子网掩码界定边界域名与 IP 地址并用是兼顾 “用户易用性” 和 “网络高效性” 的最优解DNS 解析是连接两者的桥梁理解 IP 地址的核心是掌握 “子网 - 路由器” 的转发逻辑这是后续学习 DNS 解析和数据包发送的基础。 下一章预告下一篇我们正式进入1.2.2 实操入口Socket 库与解析器的查询流程带你从实操层面拆解 DNS 解析的底层实现 —— 如何通过 Socket 库调用操作系统接口以及解析器从本地缓存到远程 DNS 服务器的完整查询链路手把手教你看懂 “域名查 IP” 的真实代码逻辑和执行流程。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2432244.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!