00:00

文章目录

加载目录中...

IP协议介绍

简介

IP,指网际互连协议,Internet Protocol的缩写,是TCP/IP体系中的网络层协议。设计IP的目的是提高网络的可扩展性:一是解决互联网问题,实现大规模、异构网络的互联互通;二是分割顶层网络应用和底层网络技术之间的耦合关系,以利于两者的独立发展。根据端到端的设计原则,IP只为主机提供一种无连接、不可靠的、尽力而为的数据包传输服务。

IP分组的转发规则

路由器仅根据网络地址进行转发。当IP数据包经由路由器转发时,如果目标网络与本地路由器直接相连,则直接将数据包交付给目标主机,这称为直接交付;否则,路由器通过路由表查找路由信息,并将数据包转交给指明的下一跳路由器,这称为间接交付。路由器在间接交付中,若路由表中有到达目标网络的路由,则把数据包传送给路由表指明的下一跳路由器;如果没有路由,但路由表中有一个默认路由,则把数据包传送给指明的默认路由器;如果两者都没有,则丢弃数据包并报告错误。

IP分片

一个IP包从源主机传输到目标主机可能需要经过多个不同的物理网络。由于各种网络的数据帧都有一个最大传输单元(MTU)的限制,如以太网帧的MTU是1500;因此,当路由器在转发IP包时,如果数据包的大小超过了出口链路的最大传输单元时,则会将该IP分组分解成很多足够小的片段,以便能够在目标链路上进行传输。这些IP分片重新封装一个IP包独立传输,并在到达目标主机时才会被重组起来。

IP分组结构

一个IP分组由首部和数据两部分组成。首部的前20字节是所有IP分组必须具有的,也称固定首部。在首部固定部分的后面是一些可选字段,其长度是可变的。

IP地址

整个互联网就是一个单一的,抽象的网络。IP地址就是给互联网上的每一台主机(或路由器)的每一个接口分配一个在全世界范围内是唯一的32位的标识符。IP地址现在由ICANN(互联网名字和数字分配机构)进行分配。IP地址就像是我们的家庭住址一样,如果你要写信给一个人,你就要知道他(她)的地址,这样邮递员才能把信送到。计算机发送信息就好比是邮递员,它必须知道唯一的“家庭地址”才能不至于把信送错人家。只不过我们的地址是用文字来表示的,计算机的地址用二进制数字表示。IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节)。IP地址通常用“点分十进制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~255之间的十进制整数。例:点分十进IP地址(100.4.5.6),实际上是32位二进制数(01100100.00000100.00000101.00000110)。

IP地址的编址方法共经历了三个历史阶段。

  1. 分类的IP地址。这是最基本的编址方法,在1981年就通过了相应的标准协议。
  2. 子网的划分。这是对最基本的编址方法的改进,在1985年通过。
  3. 构成超网。这是比较新的无分类编址方法。1993年提出后很具哎得到推广应用。

分类的IP地址

分类的IP地址就是将IP地址划分为若干个固定类,每个类由两个固定长度字段组成。

第一个字段为网络号,它标志主机(或路由器)所连接到的网络,当组织或企业申请IP地址时,所获得的并非IP地址,而是取得一个唯一的、能够识别的网络地址。同一网络上的所有设备,都有相同的网络地址。IP路由的功能是根据IP地址中的网络地址,决定要将IP信息包送至所指明的那个网络。

第二个字段是主机号,它标志该主机。主机地址位于IP地址的后段,可用来识别网络上设备。同一网络上的设备都会有相同的网络地址,而各设备之间则是以主机地址来区别。 由于各个网络的规模大小不一,大型的网络应该使用较短的网络地址,以便能使用较多的主机地址;反之,较小的网络则应该使用较长的网络地址。为了符合不同网络规模的需求,IP在设计时便根据网络地址的长度,设计与划分IP地址。

类别 最大网络数 IP地址范围 单个网段最大主机数 私有IP地址范围
A类 126(2^7-2) 1.0.0.1-127.255.255.254 16777214 10.0.0.0-10.255.255.255
B类 16384(2^14) 128.0.0.1-191.255.255.254 65534 172.16.0.0-172.31.255.255
C类 2097152(2^21) 192.0.0.1-223.255.255.254 254 192.168.0.0-192.168.255.255

子网的划分

什么是子网

子网(Subnetwork,简称 Subnet),是指从一个完整的 IP 网络(如一个 A 类、B 类或 C 类网络)中,通过技术手段划分出来的更小、更独立的网络单元。

可以用一个类比理解:把整个 “互联网” 看作 “一个国家”,IP 地址就是 “公民身份证”。早期国家直接给每个城市分配一大段 “身份证号段”(比如给 “北京市” 分配 10.0.0.0~10.255.255.255,这是一个 A 类网络)。但北京内部有朝阳、海淀、西城等区,直接管理所有 “公民” 效率极低 —— 于是把 “北京的号段” 再拆分成 “朝阳区子网”“海淀区子网”,每个区自己管理内部设备,这就是子网的核心逻辑。

从技术本质上,子网是通过*子网掩码(Subnet Mask) 对 IP 地址的 “网络位” 和 “主机位” 进行 “重新划分” 实现的:

  • 原始 IP 地址(IPv4)分为两部分:网络位(标识 “哪个大网络”)和主机位(标识 “网络内的哪个设备”),比如 C 类地址默认前 24 位是网络位,后 8 位是主机位(可容纳 254 台设备)。
  • **引入子网后,会从 “主机位” 中 “借走几位” 作为 “子网位”,此时 IP 地址变成三部分:**网络位 + 子网位 + 剩余主机位—— 借位越多,能划分的子网数量越多,但每个子网能容纳的设备越少(反之亦然)。

为什么要引入子网

在子网出现前,IP 地址按 “主类网络”(A/B/C 类)直接分配,比如给一个公司分配一个 C 类网络(可容纳 254 台设备),但如果公司实际只需要 50 台设备,剩下的 200 多个地址就会被 “浪费”;反之,如果公司需要 300 台设备,一个 C 类网络不够,只能分配一个 B 类网络(可容纳 65534 台设备),浪费更严重。这种模式在互联网规模扩大后完全不可持续,子网的引入正是为了解决这些痛点:

1. 核心目的 1:解决 IP 地址 “浪费严重” 的问题

这是引入子网最直接的原因。

  • 原始问题:主类网络的 “容量固定且跨度大”,无法匹配实际需求。比如:
    • 一个小型办公室需要 10 台设备,分配一个 C 类网络(254 个地址),浪费 244 个;
    • 一个中型企业需要 500 台设备,分配一个 B 类网络(65534 个地址),浪费 65034 个。
  • 子网的解决方式:按需划分 “合适容量” 的子网。比如:
    • 给 10 台设备的办公室,从 C 类网络中划分一个 “子网掩码 255.255.255.240” 的子网 —— 仅容纳 14 台设备(满足需求且几乎无浪费);

    • 给 500 台设备的企业,从 B 类网络中划分一个 “子网掩码 255.255.254.0” 的子网 —— 容纳 510 台设备(精准匹配需求)。

      通过这种 “精细化切割”,IP 地址的利用率大幅提升,延缓了 IPv4 地址耗尽的速度(直到 IPv6 普及)。

2. 核心目的 2:简化网络管理,提升安全性

网络规模越大,管理难度呈指数级增长;而子网能将 “大网络” 拆分成 “小单元”,实现 “分而治之”:

  • 管理更高效:每个子网可以对应一个部门(如 “技术部子网”“财务部子网”),管理员只需针对子网配置策略(如 IP 分配、带宽限制),无需操作整个大网络。比如:技术部需要固定 IP,只需在技术部子网内设置;财务部需要限制访问外网,只需在财务部子网的网关中配置规则。
  • 安全性更高:子网之间默认是 “隔离” 的(需通过路由器 / 防火墙互通),可以避免 “一个子网的故障 / 攻击影响整个大网络”。比如:如果销售部子网中出现一台感染病毒的电脑,病毒默认无法扩散到财务部子网,减少了安全风险。

3. 核心目的 3:优化网络性能,减少广播风暴

网络中存在 “广播”(如设备获取 IP 的 DHCP 请求、ARP 地址解析)—— 所有设备都会接收广播包。如果网络规模过大(比如一个 B 类网络有 6 万台设备),大量广播包会占用带宽,甚至引发 “广播风暴”(广播包无限循环,导致网络瘫痪)。

子网能 “隔离广播域”:每个子网是一个独立的广播域,广播包仅在子网内传播,不会扩散到其他子网。比如:一个 C 类主网络拆分成 16 个子网后,每个子网的广播域仅包含 14 台设备,广播包数量大幅减少,网络性能自然提升,也彻底避免了大规模广播风暴的风险。

子网掩码

假定有一个数据报已经到达了其网络号指定的网段,那么路由器如何把它转发给这个网络段中划分的子网呢

为了使路由器能够很方便地从数据报中的目的IP地址中提取出所要找的子网的网络地址,路由器就要使用三级IP地址的子网掩码。子网掩码也是32位,由连续的1和连续的0组成。子网掩码中的1对应IP地址中原来二级地址中的网络号加上新增加的8位子网号,0对应现在的8位主机号。路由器将目的IP地址与子网掩码进行与(AND)操作,得到的就是目的IP地址的子网网络地址。1与1为1,1与0为0。

无分类编址CIDR

CIDR(Classless Inter-Domain Routing,无类别域间路由)是一种 IP 地址分配和路由聚合的技术,它打破了传统 IP 地址的 A、B、C 类分类方式,通过更灵活的地址划分方法提高 IP 地址利用率并简化路由管理。

  1. CIDR把32位的IP地址划分为两个部分,前面是网络前缀(network-prefix),用来指明网络,后面部分则用来指明主机。。因此CIDR使IP地址从三级编址又回到了两级编址,但这已经是无分类的两级编址,其记法是:IP地址 ::= {<网络前缀>,<主机号>} ,CIDR还使用斜线记法,即在IP地址后加上/,然后写上网络前缀所占的位数。
  2. CIDR把网络前缀相同的连续IP地址组成一个CIDR地址块,我们只要知道地址块中的任意一个地址,就可以知道这个地址块的起始地址和最大地址,以及地址块中的地址数。例如,已知IP协议地址128.14.35.7/20是某CIDR地址块中的一个地址,二进制表示就是:
    128.14.35.7/20 = 10000000 00001110 00100011 00000111
    其中前二十位是网络前缀,后12位是主机号,那么这个地址块中的最小地址和最大地址为:
    最小地址:128.14.32.0 =10000000 00001110 00100000 00000000
    最大地址:128.14.47.255 = 10000000 00001110 00101111 11111111
    为了更方便的进行路由选择,CIDR使用32位的地址掩码,地址掩码由一串1和1串0组成,1的个数就是网络前缀的长度
    由于CIDR地址块中有很多地址,所以在路由表中就利用CIDR地址块来查找目的网络。这种地址的聚合常称为路由聚合,它使得路由表中的一个项目可以表示原来传统分类地址的很多个路由,路由聚合也称为构成超网

CIDR核心作用

  1. 解决 IP 地址浪费问题 传统分类地址对网络规模的适配性差(例如一个需要 500 台设备的网络,只能分配一个 B 类地址,浪费 6 万多个地址)。CIDR 可按需定义网络位长度,例如用192.168.0.0/22(网络位 22 位)刚好容纳 1022 台设备,避免浪费。
  2. 路由聚合(超网)CIDR 允许将多个小网络合并为一个大网络(超网),减少路由表条目。例如:
    • 4 个 C 类网络 192.168.0.0/24192.168.1.0/24192.168.2.0/24192.168.3.0/24
    • 可聚合为 192.168.0.0/22,路由表中只需一条记录,大幅简化路由管理。
返回文章列表

评论区 0