Linux--网络层IP

[复制链接]
发表于 2026-10-3 15:52:09 来自手机 | 显示全部楼层 |阅读模式

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

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

×

IP 协议是什么

IP(Internet Protocol,网际协议)是 TCP/IP 协议族中的核心协议之一,负责在互联网络上传输数据。它要解决两件事:给网络上的每台设备分配一个唯一地址来标识它;让数据包在网络节点之间一跳一跳地转发,直到抵达目标。

这一过程往往要穿过多个路由器,每个路由器都根据 IP 地址和网络拓扑来决定下一条往哪走。要注意的是,IP 本身提供的是无连接服务——发包之前不需要在收发双方之间建立连接,每个数据包独立选路。这种设计让它足够灵活,但也意味着可靠性、顺序、重传这些活儿要交给上层协议(TCP 或 UDP)去补。

三个角色:主机、路由器、节点

  • 主机:配有 IP 地址,但不做路由控制的设备,比如你的办公电脑、服务器。
  • 路由器:既配 IP 地址,又能做路由控制,负责在网络之间转发包。
  • 节点:主机和路由器的统称。

IPv4 地址长什么样

一台机器除了网卡上烧死的 MAC 地址(物理地址),还有一个"逻辑地址",就是 IP 地址。它可以由管理员手工指定(静态 IP),也可以由 DHCP(动态主机配置协议)自动派发。在同一个网络里,这个地址必须唯一。

IPv4 地址是一个 32 位的二进制数,按 8 位一组分成 4 段,用点分十进制写出来,比如 192.168.1.10。

网络号与主机号

和身份证号类似,IP 地址内部也分两段。要找到一个主机,得先确定它所在的网络(网络号),再在网络内部找到那台具体机器(主机号)。

举例:主机 A 和主机 B 的网络号都是 202.113.27,说明它们在同一片区域(局域网)。路由器先按网络号把包送到这片区域,再在区域内按主机号定位到具体那台机器。

五类地址

早期把 IP 地址分成五类,目的是方便管理和寻址——分类能直接确定网络号占多少位、主机号占多少位,也就知道了这个网络能装多少台机器。

类别范围默认掩码
A 类0.0.0.0 ~ 127.255.255.255255.0.0.0
B 类128.0.0.0 ~ 191.255.255.255255.255.0.0
C 类192.0.0.0 ~ 223.255.255.255255.255.255.0
D 类224.0.0.0 ~ 239.255.255.255组播地址
E 类240.0.0.0 ~ 255.255.255.255保留实验地址

其中 A/B/C 是单播(给某一台机器),D 类用于组播,E 类保留。注意 E 类上限是 255.255.255.255,不是 247 段。

子网掩码:解决分类的浪费

互联网一爆发,这套分类方案的短板立刻暴露:组织申请地址时基本都奔着 B 类去(能装 6 万台主机,够用),结果 B 类很快分完,而 A 类那种能装 1600 多万台的大家伙却大量闲置。地址利用率极低。

于是有了子网掩码。掩码本身也是 32 位正整数,二进制形式通常是"一段连续的 1 打头、一串 0 收尾",写法同样是点分十进制。它的作用是告诉本机:IP 地址的哪些位属于网络号,哪些位属于主机号——子网内的所有主机必须配置相同子网掩码。

关键一点:网络号和主机号怎么切分,和这个 IP 属于 A/B/C 类已经没有必然关系了,全靠掩码说了算。所谓的"B 类默认掩码 255.255.0.0""C 类默认掩码 255.255.255.0",只是 A/B/C 分类时代的默认约定,代表那个网络当时没再做子网划分。

网络地址怎么算

把 IP 地址和子网掩码做按位与,结果就是网络地址(网络号)。例如:

IP:      192.168.1.10   → 11000000.10101000.00000001.00001010
掩码:    255.255.255.0  → 11111111.11111111.11111111.00000000
按位与:  192.168.1.0    → 11000000.10101000.00000001.00000000

结果 192.168.1.0 就是这个网段的网络地址,后面 .1 到 .254 才是可分配给主机的地址(.0 是网络地址,.255 是广播地址)。

几个特殊 IP

  • 主机号全 0:表示这个网络本身,即网络地址,代表整个局域网。
  • 主机号全 1:广播地址,用来给这条链路上的所有主机同时发包。家里路由器的 192.168.1.1、192.168.0.1 就是典型的主机会被分配之外的保留地址用法。
  • 127.0.0.0/8:本机环回(loopback)测试段,最常用 127.0.0.1,指"我自己"。本地服务自测、排查网络协议栈是否正常都用得着。

局域网与私有地址

局域网(LAN)是覆盖有限地理范围的网络,比如一个办公室、一栋楼、一个工厂。设备距离近,通常带宽高、延迟低,内部设备之间换数据很快;同一局域网的设备一般同属一个机构,便于统一管控。

如果地址只在局域网内部通信、不上公网,理论上随便用什么都行。但 RFC 1918 划定了三段专供局域网使用的私有地址:

  • 10.0.0.0/8:前 8 位是网络号,约 1677 万个地址(A 类私有段)。
  • 172.16.0.0/12:即 172.16.x.x 到 172.31.x.x,前 12 位是网络号,约 104 万个地址(B 类私有段)。
  • 192.168.0.0/16:前 16 位是网络号,约 6.5 万个地址(C 类私有段),家里路由器最常见的就是它。

这三段地址在公网上是不可路由的——数据包一出网关就被丢弃,所以公司、家里的内部网络可以放心复用,不同公司内部的 192.168.1.x 互不干扰。

NAT:让私有地址出公网

既然私有地址不能上公网,就得有个东西把它翻译成合法公网地址,这就是 NAT(Network Address Translation,网络地址转换)。它部署在出口设备(路由器、防火墙)上:从内到外的流量,把源地址换成公网地址;从外到内的流量,把目的地址换回内网地址。效果是内网多台机器共用一个公网 IP 上网,同时外网无法直接摸到内网主机的私有地址,顺带提高了安全性。

三种实现方式:

  • 静态 NAT:内网地址与公网地址一对一固定绑定。适合内部只有少量设备需要对外提供服务的场景(比如一台对外服务器)。
  • 动态 NAT:内网私有 IP 随机换成一批合法公网 IP 中的一个,谁先占用谁用。适合有大量主机要上网、但公网 IP 数量有限的场景。
  • 端口多路复用(PAT / NAPT):所有内网主机共享一个公网 IP,同时转换 IP 和传输层端口,用"不同源端口"来区分不同内网主机。这是目前家庭和企业出口最普遍的做法,把地址节省到了极致,也把整个内网主机对外隐身了。

NAT 的几个实际好处

  • 省公网 IP:多台设备共用一个出口地址,是当下缓解 IPv4 枯竭最现实的办法。
  • 处理地址重叠:两家合并的公司内网 IP 段撞车时,靠 NAT 隔离转换,不用重编址。
  • 提高灵活性:可选择静态、动态、PAT 等不同策略。
  • 提升安全性:内网拓扑对外不可见,外部无法直接寻址内部主机。

代价也要知道:NAT 破坏了端到端可达性,容器内服务、P2P、VoIP、部分游戏联机会因此出问题,这也是内网穿透工具(frp 之类)大行其道的原因。

IPv6 为什么必须上

IPv4 一共 232 个地址,大约 43 亿,全球联网设备一涨就明显不够分。于是有了 IPv6:地址空间 2128,这是个天文数字。

书写格式上,IPv6 由 8 组、每组 16 位组成,每组用 4 个十六进制数表示,组与组之间用冒号隔开,例如:

2001:0db8:85a3:0000:0000:8a2e:0370:7334

实际写作时可以省略前导零,连续的全 0 组还能用 :: 压缩(一个地址里只能压缩一次),上面的地址常写成 2001:db8:85a3::8a2e:370:7334。

不过 IPv6 推广难度不小:它与 IPv4 不兼容,需要双栈或隧道过渡;真实部署里也出现过地址囤积、分配不合理导致的浪费。所以目前多数网络的现实状态是 IPv6 + NAT 同时存在。

小结

IP 协议是 TCP/IP 的骨干:IPv4 用 32 位点分十进制标识主机,地址内部拆成网络号 + 主机号;早期五类地址划分方便但浪费严重,子网掩码用按位与来确定网段;主机号全 0 是网络地址、全 1 是广播地址、127 段是环回;RFC 1918 划出 10/8、172.16/12、192.168/16 三段私有地址供局域网使用,靠 NAT 转换出海,其中 PAT 是目前最通用的方案;IPv4 地址耗尽推动 IPv6(128 位、8 组冒号分隔)落地,但因不兼容过渡成本仍高。

(本文由 qidao123.com企服评测-应用市场 编辑提示整理:内容基于 TCP/IP 协议的通用定义,示例网段与掩码计算适用于 Ubuntu / CentOS 等 Linux 环境下的常规排查。)

回复

使用道具 举报

登录后关闭弹窗

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