一、先理清一个核心前提
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的IP:192.168.1.2 2. 但不知道B的MAC地址 3. 发送ARP广播:“谁有192.168.1.2?请告诉我你的MAC” 4. 主机B回复:“我是192.168.1.2,MAC是 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地址难记(数字串)
- 域名好记,但网络传输只认IP
- DNS就是“IP地址簿”,负责域名→IP的转换
完整流程:
1. 浏览器输入 www.example.com 2. 查本地DNS缓存 → 没有 3. 问DNS服务器 → 返回IP:93.184.216.34 4. 浏览器用这个IP发起HTTP请求💡域名本身不能直接通信,最终必须解析成IP。
4️⃣ 公网IP ↔ 私有IP(NAT转换)
联系: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的替代方案,解决地址枯竭
对比项 | IPv4 | IPv6 |
|---|---|---|
地址长度 | 32位 | 128位 |
地址数量 | ~43亿 | 约3.4×10³⁸(近乎无限) |
表示方式 | 192.168.1.1 | 2001:0db8:85a3::8a2e:0370:7334 |
缘由:
- IPv4地址已耗尽
- IPv6从根本上解决地址不足问题,且支持即插即用、内置安全
💡两者目前共存,通过双栈/隧道技术过渡。
6️⃣ IP ↔ 子网掩码(网络划分)
联系:子网掩码决定IP的“网络部分”和“主机部分”
IP:192.168.1.100 掩码:255.255.255.0 → 网络号:192.168.1.0 → 主机号:100缘由:
- 路由器需要判断:目标IP在本网络内还是需要转发到外部
- 子网掩码就是判断依据
目标IP & 子网掩码 = 网络号 如果网络号相同 → 同一网段,直接ARP找MAC 如果网络号不同 → 发给网关,由路由器转发💡没有子网掩码,IP地址无法判断“谁和我在同一个局域网”。
7️⃣ IP ↔ 网关地址(出口路由)
联系:网关是IP数据包离开本网络的“必经之门”
缘由:
- 当目标IP不在同一网段时,本机不知道怎么送
- 网关就是“默认出口”,所有跨网段流量都交给它
本机IP:192.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让多设备共享公网IP |
IPv6 | IPv4的“继任者” | 地址空间枯竭,需要更大地址池 |
子网掩码 | IP的“边界划分线” | 判断目标是否在同一网段 |
网关IP | IP的“出口大门” | 跨网段通信必须经过网关转发 |
补充——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
- 联系:没有 DHCP,IP 地址只能静态写死;有了它,设备插网线就“领装备”
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 地址只是一个孤零零的数字,没法真正跑起互联网。