目录
[一、IP 地址分类的演变](#一、IP 地址分类的演变)
[1. 传统分类(A/B/C/D/E 类)的设计逻辑](#1. 传统分类(A/B/C/D/E 类)的设计逻辑)
[1. 子网掩码的本质](#1. 子网掩码的本质)
[2. 划分子网的实操步骤](#2. 划分子网的实操步骤)
[3. 子网划分的 "权衡点"](#3. 子网划分的 “权衡点”)
[1. 地址不够用的终极解法](#1. 地址不够用的终极解法)
[1. "跳(Hop)"的精准定义](#1. “跳(Hop)”的精准定义)
[2. 路由表的"匹配规则"细化](#2. 路由表的“匹配规则”细化)
[1. 案例 1 深化:目的地址 192.168.56.56 编辑](#1. 案例 1 深化:目的地址 192.168.56.56 编辑)
[2. 新增案例:目的地址 192.168.10.5](#2. 新增案例:目的地址 192.168.10.5)
协议头格式

4位版本号(version): 指定IP协议的版本, 对于IPv4来说, 就是4.
4位头部长度(header length): IP头部的长度是多少个32bit, 也就是 length * 4 的字节数. 4bit表示最大的数字是15, 因此IP头部最大长度是60字节.
8位服务类型(Type Of Service): 3位优先权字段(已经弃用), 4位TOS字段, 和1位保留字段(必须置为0). 4位TOS分别表示: 最小延时, 最大吞吐量, 最高可靠性, 最小成本. 这四者相互冲突, 只能选择一个. 对于ssh/telnet这样的应用程序, 最小延时比较重要; 对于ftp这样的程序, 最大吞吐量比较重要.
16位总长度(total length): IP数据报整体占多少个字节.
8位生存时间(Time To Live, TTL): 数据报到达目的地的最大报文跳数. 一般是64. 每次经过一个路由, TTL -= 1, 一直减到0还没到达, 那么就丢弃了. 这个字段主要是用来防止出现路由循环
8位协议: 表示上层协议的类型
16位头部校验和: 使用CRC进行校验, 来鉴别头部是否损坏.
32位源地址和32位目标地址: 表示发送端和接收端.
16位标识(id): 唯一的标识主机发送的报文. 如果IP报文在数据链路层被分片了, 那么每一个片里面的这个id都是相同的.
3位标志字段: 第一位保留(保留的意思是现在不用, 但是还没想好说不定以后要用到). 第二位置为1表示禁止分片, 这时候如果报文长度超过MTU, IP模块就会丢弃报文. 第三位表示"更多分片", 如果分片了的话, 最后一个分片置为0, 其他是1. 类似于一个结束标记.
13位分片偏移(framegament offset): 是分片相对于原始IP报文开始处的偏移. 其实就是在表示当前分片在原报文中处在哪个位置. 实际偏移的字节数是这个值 * 8 得到的. 因此, 除了最后一个报文之外, 其他报文的长度必须是8的整数倍(否则报文就不连续了).
场景
**我们以一个 2500字节的文件(含20字节IP头)通过以太网(MTU=1500字节)传输 为例,简化说明16位标识、3位标志、13位分片偏移的作用:
场景:文件太大,需要分片
源主机要发一个2500字节的包(20字节IP头+2480字节数据),但链路MTU=1500字节(最多传1480字节数据,因为1500-20=1480),所以必须分成2个分片。
分片1(第一个分片)
- 16位标识:设为 0x5678 (所有分片共用这个标识,说明来自同一个原始包)。
- 3位标志: MF=1 (表示"后面还有分片"), DF=0 (允许分片)。
- 13位分片偏移: 0 (从原始数据的第0字节开始)。
- 内容:20字节IP头 + 1480字节数据(总1500字节,刚好符合MTU)。
分片2(最后一个分片)- 16位标识: 0x5678 (和分片1相同,归为一组)。
- 3位标志: MF=0 (表示"这是最后一个分片")。
- 13位分片偏移: 1480÷8=185 (因为分片偏移以8字节为单位,前一个分片占了1480字节,所以这个分片从第1481字节开始,对应偏移185)。
- 内容:20字节IP头 + 1000字节数据(剩下的2480-1480=1000字节,总1020字节,小于MTU)。
目的主机重组
收到两个分片后,通过 相同的16位标识(0x5678) 确认是同一原始包,按 分片偏移(0→185) 排序,看到最后一个分片 MF=0 ,就知道所有分片收齐,拼接后还原出2500字节的原始数据。
核心作用- 16位标识:绑定同一原始包的所有分片。
- 3位标志(MF):告诉接收方"是否还有后续分片"。
- 13位分片偏移:确定每个分片在原始数据中的位置,保证重组顺序正确。**
网络划分
前言(路由器特点)
一.路由器的本质也是一个特定的子网的主机,因此它也需要配置ip地址。
二.路由器呢一定至少要有连接两个子网,路由器呢也就相当于同时在两个子网中,路由器可以配置多个ip,这是必须的,我们可以粗略地理解为路由器有多张网卡。
三.路由器呢一般是一个子网的第1台设备它的ip地址中的网络号一般为1。
四.路由器的功能,除了ip报文的转发以外,还有构成子网及局域网。
一、IP 地址分类的演变
1. 传统分类(A/B/C/D/E 类)的设计逻辑

-
A 类:开头为 0 ,给超大型网络(如早期互联网骨干),1 字节网络号 + 3 字节主机号,理论可容纳 1677 万主机,但实际难用到这么多,造成地址浪费。
-
B 类:开头 10 ,2 字节网络号 + 2 字节主机号,适合中大型企业,可容纳 6.5 万主机,但企业实际需求远小于此,同样浪费。
-
C 类:开头 110 ,3 字节网络号 + 1 字节主机号,给小型网络,仅 254 个主机位,但很多场景不够用(如办公楼多设备)。
-
D 类(组播)、E 类(保留):为特殊场景设计,日常网络规划少用,但组播在视频直播、网络会议中很关键(如直播时给多终端发同一份数据)。
2. 分类的局限性与历史影响
- 最核心问题是 地址浪费:比如企业申请 B 类地址(6.5 万主机位),但实际仅用几百台设备,剩下的 IP 无法被其他网络复用,加速了 IPv4 地址耗尽。 -
还带来 管理复杂:不同类地址规则不同,网络工程师配置时要区分 A/B/C 类,增加学习和运维成本。
二、子网划分的核心逻辑
1. 子网掩码的本质
- 子网掩码是 "筛子",用 1 标记网络位、 0 标记主机位(如 255.255.255.0 是 /24 ,前 24 位筛网络,后 8 位筛主机)。
- 作用是 "切分 IP":不管原 IP 是 A/B/C 类,通过掩码重新定义网络和主机边界,实现灵活划分(这就是 CIDR 的核心价值)。
2. 划分子网的实操步骤

-
已知 IP: 140.252.20.68 (二进制: 10001100 11111100 00010100 01000100 )
-
掩码: 255.255.255.240 (即 /28 ,二进制: 11111111 11111111 11111111 11110000 )
-
按位与运算:IP 和掩码对应位相乘( 1&1=1 , 0&1=0 ),得到网络号 140.252.20.64 (二进制: 10001100 11111100 00010100 01000000 )。
-
主机范围计算:主机位全 1 是网络号( 64 ),全 0 是广播地址( 79 ,因为 64 + 15 = 79 , 15 是 00001111 ),所以可用主机是 65~78 。
3. 子网划分的 "权衡点"
**- 主机数量 vs 子网数量:掩码越长( /28 比 /24 长),子网越多,但每个子网主机越少。**比如 /24 分 1 个子网、254 主机; /28 分 16 个子网、14 主机(需扣网络号和广播地址)。
- 场景适配:家庭网络用 /24 (254 主机够手机、电脑、智能设备);企业办公可能分 /28 (不同部门隔离,如销售部、研发部各一个子网);数据中心服务器多,甚至用 /30 (仅 2 主机位,给两台服务器做直连)。
三、实际网络中的痛点与解决方案
1. 地址不够用的终极解法
**- IPv6:**彻底解决 IPv4 耗尽问题,地址长度 128 位,理论上地球上每粒沙子都能分配 IP。但过渡阶段需 双栈(同时支持 IPv4/IPv6) 或 NAT64(IPv6 转 IPv4) 技术适配老设备。
- NAT(网络地址转换):企业内网用私有 IP(如 192.168.x.x ),通过路由器 NAT 转换成公网 IP 上网,实现 "多设备共享一个公网 IP",缓解 IPv4 短缺。
总结来说,网段划分是网络规划的 "地基",从传统分类的历史局限,到 CIDR 子网划分的灵活,再到 IPv6 等未来方案,核心是 "用更高效的方式分配、管理 IP,让网络又稳又省" 。实际工作中,得结合场景(家庭、企业、数据中心)选掩码,平衡主机数和子网数,还要预防广播风暴、地址冲突这些 "暗坑",才能让网络高效运行~
特殊的IP地址
将IP地址中的主机地址全部设为1, 就成为了网络号, 代表这个局域网;
将IP地址中的主机地址全部设为0, 就成为了广播地址, 用于给同一个链路中相互连接的所有主机发送数据包;
127.*的IP地址用于本机环回(loop back)测试,通常是127.0.0.1
私有ip与公有ip地址
一、基础概念与规则
(一)私有IP地址定义
当组织搭建内部局域网,IP地址仅用于局域网通信、不直接连互联网时,理论上可用任意IP,但RFC 1918明确了专用私有IP范围,目的是规范内网地址使用,避免与公网IP冲突,以下是具体划分:
-
10.0.0.0/8:前8位固定为网络标识,可容纳地址数达16,777,216个 ,适用于超大型内网(如企业总部、高校校园网),能覆盖大范围设备。
-
172.16.0.0/12:前12位为网络号,包含1,048,576个地址 ,常用于中型网络,可灵活划分多个子网,适配不同部门或业务区。
-
192.168.0.0/16:前16位是网络号,共65,536个地址 ,家庭、小型办公网络常用,默认子网(如192.168.1.0/24 )简单易管理。
只要IP属于上述范围,即为私有IP;反之,能直接在互联网上寻址、全球唯一的,就是公网IP(全局IP) 。
(二)公网IP地址补充
公网IP由国际互联网分配机构(IANA)统筹,经区域注册管理机构(如APNIC负责亚太)分配给运营商,再到用户。分静态公网IP(固定不变,适合服务器、企业专线,需向运营商申请付费)和动态公网IP(家用宽带常用,从运营商地址池临时分配,重启路由可能变更 )。
二、网络设备与IP配置逻辑(结合拓扑图)
(一)路由器双IP机制
一个路由器可配两个IP:
**- LAN口IP(子网IP):用于内网通信,同一路由器LAN口下的设备,都属于该子网(如家用路由LAN口多为192.168.1.1 ),子网内主机IP不能重复(避免冲突),但不同路由器子网IP可相同(因跨子网不影响 )。
- WAN口IP:用于连接上级网络(如运营商路由、广域网),家用路由的WAN口IP,其实是运营商路由子网里的一个地址;最外层运营商路由的WAN口,才是真正公网IP 。**
(二)多级网络与NAT原理
1. 网络层级关系:家用路由作为运营商路由的子网节点,运营商路由可能多级嵌套(如小区网关→城市骨干网路由器→省级节点 )。最外层运营商路由的WAN口,直接关联公网。
2. NAT(网络地址转换)流程:内网主机(如192.168.1.201 )要访问外网时,路由器会替换IP包首部的私有IP→WAN口IP,多级路由则逐次替换,最终数据包以公网IP身份出网。这样,大量内网设备可共享少量公网IP,缓解地址不足问题 。
三、实际应用与延伸
(一)内网服务的公网访问
若想让自制服务器程序被公网访问,有两种常见方式:
-
部署到公网服务器:在阿里云、腾讯云等购买带公网IP的云主机,直接部署服务,公网可通过其IP/域名访问。
-
内网穿透方案:不想买云服务器时,可用 frp 、 ngrok 等工具,借助公网中转服务器,把内网服务端口映射到公网,适合测试环境或轻量服务 。
(二)IP地址规划与管理建议
-
企业内网:根据规模选私有IP段(超大型用10.0.0.0/8,中型用172.16.0.0/12 ),再细分部门子网,用NAT集中连公网,既省地址又便于管理。
-
家庭网络:用192.168.0.0/16 网段,路由默认LAN口设为192.168.1.1即可,简单易维护;若有多路由组网,可手动改LAN口IP避免冲突(如192.168.2.1 )。
(三)潜在问题与解决
- 私有IP冲突:不同内网子网IP相同,不影响跨网通信,但如果通过VPN、专线打通内网,需提前规划IP,避免冲突(可改其中一方子网IP )。
- 动态公网IP困扰:家用动态公网IP,重启路由会换地址,若想远程访问内网设备(如监控、NAS ),可配合DDNS(动态域名解析),把变化的公网IP绑定到固定域名,实现稳定访问 。
路由
一、路由核心逻辑深化
1. "跳(Hop)"的精准定义
"一跳是数据链路层的一个区间",补充:
- 跳的本质: 是网络中"直接可达的物理/数据链路段",在以太网里,"一跳"就是从源 MAC 到目标 MAC 的帧传输范围(比如主机→直连路由器、路由器→相邻路由器,都算一跳 )。
- 跳数与网络延迟:跳数越多,理论延迟越高(每跳要经过设备转发、校验 )。比如玩游戏延迟高,排查时会看" traceroute (Linux )/tracert(Windows )"的跳数,判断卡在哪一跳。
2. 路由表的"匹配规则"细化
路由表靠"目的 IP 匹配"决定转发,补充 匹配优先级:
-
路由器查路由表时,按"精准度从高到低"匹配:先找与目的 IP 完全匹配的主机路由(若有),再找子网路由(如 192.168.56.0/24 ),最后找默认路由(default )。
-
案例强化:看原文路由表示例,发送 192.168.56.3 时,为什么选 eth1 口?因为:
-
目的 IP & 第一行子网掩码(255.255.255.0 )=192.168.56.0 ≠ 第一行目的地址(192.168.10.0 )→ 不匹配;
-
目的 IP & 第二行子网掩码(255.255.255.0 )=192.168.56.0 ,与第二行目的地址(192.168.56.0 )完全匹配 → 走 eth1 口。
(补充:这是最长前缀匹配原则,子网掩码位数越长(越精准),优先级越高 )
二、路由表字段深度解析
对路由表字段(Destination、Gateway、Genmask 等),补充 实操含义:
|-------------|------------|------------------------------------------|
| 字段 | 作用 | 补充说明 |
| Destination | 目的网络/主机地址 | 可以是具体 IP(主机路由)、网段(子网路由)、default(默认) |
| Gateway | 下一跳地址 | 若为 * ,表示"直连网络,无需路由转发"(如本地子网 ) |
| Genmask | 子网掩码 | 配合 Destination 做"IP 与运算",判断是否匹配 |
| Flags | 路由属性标记 重点记 | U (路由有效)、 G (需经网关转发)、 H (主机路由) |
| Metric | 路由优先级 | (开销) 数值越小,优先级越高(不同路由协议计算方式不同,如 RIP 按跳数 ) |
| Ref | 路由被引用次数 | 系统维护,用于调试(普通用户关注少) |
| Use | 路由被使用次数 | 反映路由的"热门程度",故障排查时可看是否某路由被频繁调用 |
| Iface | 出接口 | 数据包从哪个网卡发出去,决定物理链路走向 |
三、转发案例扩展与对比
1. 案例 1 深化:目的地址 192.168.56.56

原文只讲了匹配第二行的过程,补充 "无 G 标志"的含义:
因为第二行 Flags 没有 G ( U 表示有效),说明该网段是直连网络(主机 eth1 口直接连 192.168.56.0/24 ),所以数据包会直接从 eth1 发往目标主机,无需经过"网关转发"。
2. 新增案例:目的地址 192.168.10.5
-
匹配第一行 Destination 192.168.10.0 + Genmask 255.255.255.0 :
-
计算: 192.168.10.5 & 255.255.255.0 = 192.168.10.0 ,与第一行目的地址匹配;
-
检查 Flags :无 G 标志(因为是直连网段),所以数据包从 eth0 口直接发往目标主机,无需网关。
四、路由表实操
路由表查看与修改命令
-
Linux 环境:
-
查看路由表:route-n (简洁版)或 ip route show (详细,推荐 );
-
添加静态路由: ip route add 192.168.20.0/24 via 192.168.10.1 dev eth0 (给 192.168.20.0 网段,指定下一跳 192.168.10.1,从 eth0 发 );
-
删除路由: ip route del 192.168.20.0/24 。
-
Windows 环境:
-
查看: route print ;
-
添加: route add 192.168.20.0 mask 255.255.255.0 192.168.10.1 ;
-
删除: route delete 192.168.20.0 。
五、整体逻辑串联(类比强化)
把路由过程类比成**"快递送货"**:
-
路由表 = 快递员的"地址-网点映射表"(北京朝阳区→发朝阳网点,上海徐汇区→发徐汇网点 );
-
跳(Hop) = 快递的"中转次数"(北京→上海→杭州,每经一个分拨中心算一跳 );
-
NAT(结合之前内容) = 快递的"代收点代发"(小区里的快递站收包裹,贴自己地址发出去,对方回包时再转你家 );
-
直连路由(无 G 标志) = 快递"小区内配送"(快递站直接送你家,不用经其他网点 )。
这样补充后,路由的"原理→实操→排障"就串成了完整知识链,不管是理解理论,还是实际运维调网络,都更清晰啦~