一、先理清一个核心前提IP地址本身分两类视角公网IP互联网上的全球唯一地址私有IP局域网内部使用的地址如192.168.x.x、10.x.x.x下面说的“联系”都是围绕IP地址如何与其他地址协同工作展开的。二、IP地址的“关系网”1️⃣ IP ↔ MAC地址数据链路层绑定联系IP负责“逻辑寻址”MAC负责“物理寻址”层级地址类型作用范围网络层IP地址跨网络、端到端数据链路层MAC地址同一局域网内缘由IP地址是“逻辑分配”的可以变比如换WiFi后IP就变了MAC地址是网卡出厂烧录的全球唯一、不可变数据包最终要送到具体网卡必须靠MAC地址协作过程ARP协议1. 主机A知道主机B的IP192.168.1.2 2. 但不知道B的MAC地址 3. 发送ARP广播“谁有192.168.1.2请告诉我你的MAC” 4. 主机B回复“我是192.168.1.2MAC是 xx:xx:xx:xx:xx:xx” 5. 后续数据包封装目标MAC直接送达没有MAC地址IP数据包无法在局域网内落地。2️⃣ IP ↔ 端口号传输层绑定联系IP定位“哪台机器”端口定位“机器上的哪个程序”IP地址 端口号 Socket套接字 网络通信的唯一端点缘由一台服务器只有一个IP或一个公网IP但上面可能同时跑着Web服务(80)、数据库(3306)、SSH(22)端口号就是程序的门牌号访问 http://192.168.1.100:8080 └─IP─┘ └端口┘ 找到机器 找到程序IP解决“找到谁”端口解决“交给谁”。3️⃣ IP ↔ 域名DNS解析联系域名是IP的“人类友好别名”www.baidu.com → DNS解析 → 110.242.68.3缘由IP地址难记数字串域名好记但网络传输只认IPDNS就是“IP地址簿”负责域名→IP的转换完整流程1. 浏览器输入 www.example.com 2. 查本地DNS缓存 → 没有 3. 问DNS服务器 → 返回IP93.184.216.34 4. 浏览器用这个IP发起HTTP请求域名本身不能直接通信最终必须解析成IP。4️⃣ 公网IP ↔ 私有IPNAT转换联系NAT网关在两者之间做“翻译”局域网设备私有IP ←→ 路由器NAT ←→ 互联网公网IP缘由IPv4地址不够用只有约43亿个不可能给每台设备分配公网IP解决方案局域网用私有IP出口路由器做NAT转换家里5台设备对外只有一个公网IP 192.168.1.2 ─┐ 192.168.1.3 ─┼─→ 路由器NAT → 公网IP:120.230.x.x 192.168.1.4 ─┘私有IP不能直接上互联网必须经过NAT转换成公网IP。5️⃣ IPv4 ↔ IPv6下一代IP协议联系IPv6是IPv4的替代方案解决地址枯竭对比项IPv4IPv6地址长度32位128位地址数量~43亿约3.4×10³⁸近乎无限表示方式192.168.1.12001:0db8:85a3::8a2e:0370:7334缘由IPv4地址已耗尽IPv6从根本上解决地址不足问题且支持即插即用、内置安全两者目前共存通过双栈/隧道技术过渡。6️⃣ IP ↔ 子网掩码网络划分联系子网掩码决定IP的“网络部分”和“主机部分”IP192.168.1.100 掩码255.255.255.0 → 网络号192.168.1.0 → 主机号100缘由路由器需要判断目标IP在本网络内还是需要转发到外部子网掩码就是判断依据目标IP 子网掩码 网络号 如果网络号相同 → 同一网段直接ARP找MAC 如果网络号不同 → 发给网关由路由器转发没有子网掩码IP地址无法判断“谁和我在同一个局域网”。7️⃣ IP ↔ 网关地址出口路由联系网关是IP数据包离开本网络的“必经之门”缘由当目标IP不在同一网段时本机不知道怎么送网关就是“默认出口”所有跨网段流量都交给它本机IP192.168.1.100 网关192.168.1.1通常是路由器 → 访问 8.8.8.8 时数据包先发给 192.168.1.1网关本身就是另一个IP地址是IP路由体系的核心节点。三、一张总关系图域名人类可读 │ DNS解析 ▼ ┌─────────────────────┐ │ 公网IP地址 │◄──── NAT转换 ────┐ └─────────┬───────────┘ │ │ │ 路由转发 │ │ │ ┌─────────▼───────────┐ ┌────────▼────────┐ │ 网关IP地址 │ │ 私有IP地址 │ └─────────┬───────────┘ └────────┬────────┘ │ │ 子网掩码判断 ARP解析 │ │ ┌─────────▼───────────┐ ┌────────▼────────┐ │ 目标IP 端口 │ │ MAC地址 │ │ 定位机器程序 │ │ 物理网卡定位 │ └─────────────────────┘ └─────────────────┘四、一句话总结每种联系关联地址核心关系一句话缘由MAC地址IP的“物理落地”IP只负责逻辑寻址最终靠MAC找到网卡端口号IP的“程序定位器”一台机器多个服务靠端口区分域名IP的“别名”人类记不住数字DNS做翻译私有IP公网IP的“内部分身”IPv4不够用NAT让多设备共享公网IPIPv6IPv4的“继任者”地址空间枯竭需要更大地址池子网掩码IP的“边界划分线”判断目标是否在同一网段网关IPIP的“出口大门”跨网段通信必须经过网关转发补充——IP协议的补充协议1. ICMP互联网控制报文协议——补“IP 出错没人报信”的洞主要补充协议作用报错 诊断目标不可达、超时、TTL 过期典型应用ping、traceroute联系ICMP 报文“寄生”在 IP 包里是 IP 的“售后客服”IPv4 里 ICMP 是辅助IPv6 里 ICMPv6 是必需还兼做 ARP 功能2.ARP地址解析协议——补“IP 找不到网卡”的洞作用已知 IP 地址查对应的 MAC 地址场景IP 包到了局域网不知道往哪块网卡送ARP 广播问“谁是这个 IP”联系IP 负责“逻辑寻址”ARP 负责“物理落地”IPv6 里 ARP 被NDP/ICMPv6​ 取代3. IGMP / MLD——补“IP 不会组播管理”的洞作用管理“谁加入了哪个组播组”场景直播、视频会议、路由组播转发联系IP 有组播地址224.0.0.0/4但需要 IGMP 告诉路由器“别乱发”4. DHCP动态主机配置协议——补“IP 要手配太麻烦”作用自动发 IP、子网掩码、网关、DNS联系没有 DHCPIP 地址只能静态写死有了它设备插网线就“领装备”DHCP 发的不是“新地址类型”而是把 IP 相关参数打包给你5. DNS域名系统——补“IP 不好记”作用域名 ↔ IP 双向翻译联系IP 是通信真身DNS 是“通讯录”6. NAT网络地址转换——补“公网 IP 不够用”作用私有 IP ↔ 公网 IP 转换联系IP 协议原本假设“每台设备一个公网 IP”NAT 让一个公网 IP 养活一整屋私有 IP一句话总结IP 协议是“寻址转发”的内核补充协议分四类找硬件ARP报故障ICMP管地址DHCP/NAT/DNS选路径路由协议/ 保安全IPsec没有这些“补充协议”IP 地址只是一个孤零零的数字没法真正跑起互联网。