【盘算机网络】详解IP协议&网段划分&路由转发&子网掩码&网络号

[复制链接]
发表于 2026-10-5 18:56:45 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
IP 地址、子网掩码、网段划分、路由转发、NAT——这几个词学网络的人天天见,但很多人只能背定义,串不出一条因果线。本文从 IP 协议本身出发,把它们按"它要干什么 → 报头长什么样 → 地址怎么分网段 → 私有地址怎么出公网 → 路由器怎么转发"这条顺序串起来讲,每一节都对应一个具体机制。

一、IP 协议要干什么

一句话:IP 负责主机定位和路由选择,提供把数据从 A 点跨网络送到 B 点的能力。 它不关心内容是什么,只负责"往哪送"。

数据转发是分层的:先根据目的 IP 在局域网之间转发,再在局域网内部送到目标主机。 这两个阶段用的是同一套 IP 逻辑,只是跳数不同。

二、IP 报头的关键字段

理解报头,就理解了一半 IP。抓个包逐项对一下(IPv4):

  • 4 位版本:IPv4 就是 4。
  • 4 位头部长度:以 4 字节为单位计 IP 头部占多少个 32 位字。4 位最大能表示 15,所以IP 头部最长 60 字节。
  • 8 位服务类型(TOS):3 位优先级(已弃用)+ 4 位 TOS + 1 位保留(必须为 0)。4 位 TOS 是"最小延时、最大吞吐量、最高可靠性、最小成本",四者互斥只能选一个:SSH/Telnet 这类交互式应用看重最小延时,FTP 这类看重最大吞吐量。
  • 16 位总长度:整个 IP 数据报占多少字节。
  • 16 位标识:唯一标识本次发送的报文。数据报在数据链路层被分片时,同一个片里的标识相同,接收端靠它把分片对上。
  • 3 位标志:第一位保留;第二位置 1 表示禁止分片,此时报文超过 MTU 就直接丢弃;第三位是"更多分片"标记,除最后一个分片外都是 1,相当于结束标记。
  • 13 位分片偏移:当前分片在原始报文中的相对位置,实际字节数要除以 8,因此除最后一个分片外,其余分片长度必须是 8 的整数倍。
  • 8 位生存时间(TTL):最大跳数,通常 64。每过一个路由器减 1,减到 0 还没到就丢——这个字段存在的意义就是防止路由环把网络拖死。
  • 8 位协议:标明上层是什么协议(TCP/UDP/ICMP 等)。
  • 16 位头部校验和:CRC 校验,只校头部,不校数据。
  • 32 位源地址 + 32 位目的地址:收发两端。

三、网段划分与子网掩码

IP 地址分成两部分:网络号和主机号。

  • 网络号:保证相互连接的不同网段有不同的标识;
  • 主机号:同一网段内的主机网络号相同,但主机号必须互不相同。

所谓"划分子网",本质就是把网络号相同的主机放到一起。往一个子网里加一台主机,这台主机的网络号要和子网一致,主机号不能和已有的重复。每个子网有唯一的网络号,报文转发时靠它一路淘汰路径、最终找到目的网络。

传统的两类地址(A/B/C 类)划分僵化,后来引入 CIDR(无类别域间路由),用子网掩码来区分网络号和主机号。子网掩码也是 32 位正整数,尾部是一串 0。把 IP 和子网掩码按位与,结果就是网络号。

简写写法:140.252.20.68/24 表示 IP 是 140.252.20.68,子网掩码高 24 位是 1,也就是 255.255.255.0。这种斜杠记法现在最常用。

四、私有 IP 与公网 IP

一个组织内部组建局域网,地址只在内网用、不直连 Internet,理论上随便用哪个都行。但 RFC 1918 规定了三组专门给局域网用的私有地址:

  • 10.*:前 8 位是网络号,共 16,777,216 个地址;
  • 172.16.* ~ 172.31.*:前 12 位是网络号,共 1,048,576 个地址;
  • 192.168.*:前 16 位是网络号,共 65,536 个地址。

落在这些范围里的叫私有 IP,其余的叫全局 IP / 公网 IP。

五、运营商与路由转发

网络基础设施是运营商搭的,我们的报文都必须经过运营商,绕不过去。

路由器可以同时配两个 IP:WAN 口 IP(上级给的)和 LAN 口 IP(自己子网的地址)。LAN 口连着的主机都归属于这个子网。不同路由器的子网 IP 往往是相同的(家用基本都是 192.168.1.1),但同一子网内主机的 IP 不能重复,不同子网之间的 IP 则可以重复——因为它们是各自独立寻址的。

每台家用路由器,又作为运营商某级路由器子网中的一个节点。运营商路由器可能有很多级,最外层那个的 WAN 口 IP 就是公网 IP。

内网主机要和外网通信时,路由器会把 IP 首部里的源地址替换成 WAN 口 IP,逐级替换,最终数据包里的源地址变成一个公网 IP。这套技术叫 NAT(网络地址转换)。

反向回来时,NAT 路由器再把目的 IP 从公网地址换回内网地址(比如从 202.244.174.37 换回 10.0.0.10)。它内部有一张自动生成的地址转换表,第一次内网主机访问某个外网地址时就会生成映射。这里有个衍生问题:局域网多台主机访问同一个外网服务器时,服务器返回的都是同一个目的 IP,NAT 怎么知道该转发给谁?答案是 NAPT——用 IP + 端口建立关联关系,表项由 NAT 路由器自动维护,TCP 建连时生成、断开后删除。

六、路由表与转发判断

路由器要有路由发现算法。IP 数据包的传输过程和问路一样:到达路由器后先看目的 IP,判断能直接送到目标主机还是要发给下一个路由器,如此反复直到到达目的地址。

判断依据是每个节点维护的路由表,可以用 route 命令查看。命中路由表就按表转发;路由表最后一行是缺省路由,由"下一跳地址"和"发送接口"两部分组成,所有都不匹配时按它发出去。

举例:某主机有两个网卡,分别连 192.168.10.0/24 和 192.168.56.0/24。路由表各列含义:Destination 目的网络、Genmask 子网掩码、Gateway 下一跳、Iface 发送接口、Flags 中 U 表示条目有效、G 表示下一跳是某台路由器的地址,没有 G 表示目的网络与本机接口直连、不需要过路由器。

转发例 1:目的地址 192.168.56.3,和第一行掩码与运算得 192.168.56.0,与第一行目的网络不符;和第二行掩码与运算也得 192.168.56.0,正好命中第二行,所以从 eth1 发出。又因为 192.168.56.0/24 是与 eth1 直连的网络,可以直接送到目的主机,不用过路由器。

转发例 2:目的地址 202.10.1.2,和前几项逐一对比都不匹配,就按缺省路由条目从 eth0 发出,发往 192.168.10.1 路由器,再由它根据自己表里决定下一跳。

七、网段划分的一种组织方式

把这套机制放大到国家层面更容易理解:假设按 IPv4 分,美国拿到 1.0.0.0/8,中国 2.0.0.0/8,俄罗斯 3.0.0.0/8——拿前 8 个比特位区分国家,我国第一台国家级路由器的 IP 就是 2.0.0.1/8。再拿 5 个比特位区分省市,陕西省的第一台省际路由器就是 2.8.0.1/13;市与市之间用同样方法再拿几个比特位划分。由于地址总数有限,到市这一级就已经可以构成一个局域网,市里的路由器再和运营商出入口路由器组出更小的子网。

这就是 CIDR 前缀长度的实际意义:前缀越长,网络号占得越多,这个网段能容纳的主机就越少、覆盖范围越小。

八、一条主线收尾

把全文串成一条链:IP 报头定义"怎么封装" → 子网掩码把地址切成网络号和主机号 → 私有地址在局域网内复用、由路由器逐级 NAT 换出去 → 路由器查路由表决定下一跳 → 不匹配就走缺省路由。 理解这条链,再看 ip route、route -n 的输出,每个字段都对应上面某一节的机制。

qidao123.com企服评测-应用市场 编辑提示

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表