【计算机网络】IPv4地址 & 子网掩码 & MAC地址 & 网关 & DNS解析


1. 什么是IP地址


1.1 IP地址的作用

IP地址(Internet Protocol Address)是网络通信中用于标识网络中一个节点的重要标识符。它有以下主要作用:

  • 唯一标识网络中的一台设备,确保设备间正常通信。
  • 是一种逻辑地址,用于定义设备在网络中的位置。
  • 支持数据包在网络层的寻址与转发。

IP地址分为两大版本:

  • IPv4:32位二进制表示,总共可提供约 2 32 2^{32} 232(42亿多)个地址。
  • IPv6:128位二进制表示,可提供约 2 128 2^{128} 2128 个地址。

此外,MAC地址(硬件地址)是由48位二进制组成的,用于标识设备的物理接口,配合IP地址完成通信。

IP地址是逻辑地址,与硬件地址(如MAC地址)不同。它可以根据网络的需求动态分配和更改,便于网络管理。例如,设备连接到不同Wi-Fi网络时,其IP地址可能会发生变化。

IP地址是网络层通信的基础,用于实现数据包的寻址与转发。每一个数据包都有源IP和目标IP,通过这些地址,路由器能够确定数据包的传输路径,并确保数据正确地传递到目标设备。

在全球范围内,公共IP地址通过互联网分配机构(IANA和各地区的RIRs)进行分配,确保每一个地址在公网中具有唯一性。对于私有网络,则通过NAT(网络地址转换)技术实现与公网的交互。


1.2 IP地址的表示方式

IPv4 的表示方法通常采用“点分十进制”的方式,这是我们最常见的表示格式。例如,某台机器的 IP 地址可能是 192.168.10.5
实际上,对于 IPv4(IP 版本 4)来说,IP 地址是由一个 32 位的二进制数构成。但这样一串数字序列十分冗长且难以阅读和记忆。为了方便人们记忆和使用,这串数字被分成 4 组,每组 8 位,并用十进制表示,最后用小数点隔开,从而演变为“点分十进制表示格式”。

以下是 IP 地址 192.168.10.5 的具体转化过程:

IP 实际地址 11000000101010000000101000000101
分成 4 组后 11000000 10101000 00001010 00000101
十进制表示 192 168 10 5
点分十进制表示 192.168.10.5

2. IP地址的组成

IP地址是网络层通信的重要标识符,用于标记网络中的节点。它由以下两部分组成:

  1. 网络部分(Network ID):标识设备所在的网络。网络部分的长度由子网掩码确定,不同网络具有不同的网络ID。
  2. 主机部分(Host ID):标识特定网络中的设备。主机部分在同一网络中的每台设备都是唯一的。

2.1 IP地址的分类

根据地址的用途和范围,IPv4地址被划分为五种类型:A类、B类、C类、D类和E类,每类地址具有特定的网络位和主机位比例。以下是分类的详细说明:

1. A类地址
  • 网络位:8位
  • 主机位:24位
  • 网络数量 2 7 = 128 2^7=128 27=128(1到126,第一个比特固定为0)
  • 每个网络的主机数 2 24 − 2 = 16 , 777 , 214 2^{24}-2=16,777,214 2242=16,777,214
  • 地址范围1.0.0.0126.0.0.0
  • 用途:用于大型网络,例如政府部门、大型企业等。

注意127.x.x.x 被保留作为环回地址(用于测试本机网络栈),不属于A类地址的实际可用范围。

2. B类地址
  • 网络位:16位
  • 主机位:16位
  • 网络数量 2 14 = 16 , 384 2^{14}=16,384 214=16,384(前两位固定为10)
  • 每个网络的主机数 2 16 − 2 = 65 , 534 2^{16}-2=65,534 2162=65,534
  • 地址范围128.0.0.0191.255.0.0
  • 用途:用于中型网络,例如高校和中型企业。
3. C类地址
  • 网络位:24位
  • 主机位:8位
  • 网络数量 2 21 = 2 , 097 , 152 2^{21}=2,097,152 221=2,097,152(前三位固定为110)
  • 每个网络的主机数 2 8 − 2 = 254 2^8-2=254 282=254
  • 地址范围192.0.0.0223.255.255.0
  • 用途:用于小型网络,例如家庭或小型办公室。
4. D类地址
  • 用途:用于组播通信(多播),即将数据同时发送到一组接收方。
  • 地址范围224.0.0.0239.255.255.255
  • 特点:没有子网掩码,因为不区分网络和主机。
5. E类地址
  • 用途:保留地址,主要用于实验和研究。
  • 地址范围240.0.0.0255.255.255.255
  • 特点:不适用于实际通信。

2.2 A、B、C三类IP地址详解

以下是A、B、C三类IP地址的详细对比:

地址类别 网络位数 主机位数 网络数量 每个网络的主机数 地址范围
A类 8 24 2 7 = 128 2^7=128 27=128 2 24 − 2 2^{24}-2 2242 1.0.0.0 ~ 126.0.0.0
B类 16 16 2 14 = 16 , 384 2^{14}=16,384 214=16,384 2 16 − 2 2^{16}-2 2162 128.0.0.0 ~ 191.255.0.0
C类 24 8 2 21 = 2 , 097 , 152 2^{21}=2,097,152 221=2,097,152 2 8 − 2 2^8-2 282 192.0.0.0 ~ 223.255.255.0

重要概念

  • 广播地址:主机部分全为1。例如,192.168.1.255 是网络 192.168.1.0 的广播地址。
  • 网络地址:主机部分全为0。例如,192.168.1.0 是一个网络的网络地址。
  • 回环地址127.x.x.x,用于测试本机网络协议栈。

2.3 私有地址与公网地址

1. 私有地址

为解决IPv4地址资源短缺的问题,IANA(互联网号码分配局)划分了一部分地址作为私有地址,这些地址只能用于局域网中,不能直接连接互联网。私有地址范围如下:

地址类别 私有地址范围 可用主机数
A类 10.0.0.0 ~ 10.255.255.255 2 24 − 2 = 16 , 777 , 214 2^{24}-2=16,777,214 2242=16,777,214
B类 172.16.0.0 ~ 172.31.255.255 2 20 − 2 = 1 , 048 , 574 2^{20}-2=1,048,574 2202=1,048,574
C类 192.168.0.0 ~ 192.168.255.255 2 16 − 2 = 65 , 534 2^{16}-2=65,534 2162=65,534

私有地址通过NAT(网络地址转换)技术映射为公网地址,从而与互联网通信。

2. 公网地址

公网地址是分配给互联网上设备的唯一地址,用于在互联网中标识设备。公网地址由IANA统一分配,确保全球范围内的唯一性。


2.4 特殊保留的IP地址

某些IP地址具有特殊用途或被保留,不用于普通网络通信:

  1. 广播地址

    • 主机部分全为1。
    • 用于向网络中的所有设备广播数据。
    • 示例:192.168.1.255192.168.1.0/24 网络的广播地址。
  2. 网络地址

    • 主机部分全为0。
    • 用于标识网络本身,而非某个设备。
    • 示例:192.168.1.0 表示网络 192.168.1.0/24
  3. 环回地址

    • 127.x.x.x,通常为 127.0.0.1
    • 用于测试本机网络协议栈是否正常工作。
    • 示例:运行命令 ping 127.0.0.1 可检测设备是否正常响应。
  4. 本地链路地址

    • 169.254.x.x 范围。
    • 当设备无法通过DHCP获取IP地址时,会自动分配本地链路地址。
    • 通常表示网络配置有问题。
  5. 多播地址

    • 范围:224.0.0.0 ~ 239.255.255.255
    • 用于组播通信,例如视频会议或流媒体传输。
  6. 实验地址

    • 范围:240.0.0.0 ~ 255.255.255.255
    • 保留供实验和研究使用,不在实际通信中分配。

3. 子网掩码与子网划分

子网掩码是用于区分IP地址的网络部分主机部分的重要工具,它在网络划分和管理中发挥着重要作用。


3.1 子网掩码的作用

1. 子网掩码定义

子网掩码也是一个32位的二进制数,与IP地址一样由点分十进制表示。它用来标识IP地址的网络部分和主机部分:

  • 网络部分:用子网掩码的连续1表示。
  • 主机部分:用子网掩码的连续0表示。
2. 常见默认子网掩码

根据A、B、C类地址的网络和主机位的默认划分,常见的子网掩码如下:

地址类别 子网掩码(十进制) 子网掩码(二进制) 位数表示
A类 255.0.0.0 11111111.00000000.00000000.00000000 /8
B类 255.255.0.0 11111111.11111111.00000000.00000000 /16
C类 255.255.255.0 11111111.11111111.11111111.00000000 /24

在这里插入图片描述

上图表示的子网掩码是一个C类IP地址的子网掩码

3. 子网掩码的功能
  1. 确定网络地址
    网络地址可以通过将IP地址和子网掩码进行逐位“与”运算(AND)获得。例如:

    • IP地址:192.168.1.1011000000.10101000.00000001.00001010
    • 子网掩码:255.255.255.011111111.11111111.11111111.00000000
    • 网络地址:192.168.1.011000000.10101000.00000001.00000000
      结果:网络地址为 192.168.1.0
  2. 确定广播地址
    广播地址是同一子网中用于广播通信的特殊地址,通过将主机部分全置为1计算得出。例如:

    • 网络地址:192.168.1.011000000.10101000.00000001.00000000
    • 广播地址:192.168.1.25511000000.10101000.00000001.11111111
  3. 划分子网
    通过借用主机位的若干位作为子网位,划分出多个子网。


3.2 子网划分的原因和原理

1. 为什么划分子网?
  1. 优化地址利用 : 将一个较大的网络划分为多个小网络,避免地址浪费。例如,A类地址提供约1600万主机,但实际应用中一个部门可能只需要几百个主机。
  1. 提高网络效率 : 子网划分能减少广播流量范围,降低网络拥堵。
  1. 增强网络安全性 : 通过划分子网,可以将不同的部门或功能隔离,限制广播和非法访问。
2. 子网划分的原理
  1. 借用主机位作为子网位
    在子网掩码的基础上,增加若干位用于区分子网。例如,原默认掩码为 /24,借用3位后变为 /27,此时子网位长度为3。
  2. 计算子网数量
    子网数量为 2 n 2^n 2n,其中 n n n 是子网位数。
  3. 计算每个子网的主机数
    每个子网的可用主机数为 2 m − 2 2^m - 2 2m2,其中 m m m 是剩余的主机位数,减去2是因为全0为网络地址,全1为广播地址。

3.3 子网划分实例解析

示例1:将 192.168.1.0/24 划分为4个子网

分析

  • 默认子网掩码为 /24,即 255.255.255.0
  • 需要划分为4个子网,因此子网位数需满足 2 n ≥ 4 2^n \geq 4 2n4,取 n = 2 n = 2 n=2
  • 划分后子网掩码为 /26,即 255.255.255.192
  • 每个子网可用主机数为 2 8 − 2 − 2 = 62 2^{8-2}-2 = 62 2822=62

划分结果
每个子网的网络地址、可用IP地址范围和广播地址如下:

子网编号 网络地址 可用IP地址范围 广播地址
子网1 192.168.1.0 192.168.1.1 ~ 192.168.1.62 192.168.1.63
子网2 192.168.1.64 192.168.1.65 ~ 192.168.1.126 192.168.1.127
子网3 192.168.1.128 192.168.1.129 ~ 192.168.1.190 192.168.1.191
子网4 192.168.1.192 192.168.1.193 ~ 192.168.1.254 192.168.1.255

示例2:计算 167.77.88.99/26 的子网号和广播地址

分析

  • IP地址:167.77.88.9910100111.01001101.01011000.01100011
  • 子网掩码:/26255.255.255.19211111111.11111111.11111111.11000000
  • 子网位数为2,主机位数为6。

/26 表示子网掩码占用 前26位是网络部分,剩下 6位是主机部分

计算

  1. 计算子网号
    子网号通过IP地址与子网掩码逐位“与”运算获得:

    • IP地址:10100111.01001101.01011000.01100011
    • 子网掩码:11111111.11111111.11111111.11000000
    • 子网号:10100111.01001101.01011000.01000000167.77.88.64
  2. 计算广播地址
    广播地址是主机部分全为1:

    • 广播地址:10100111.01001101.01011000.01111111167.77.88.127
  3. 可用IP地址范围
    从子网号加1开始,到广播地址减1结束:

    • 可用IP范围:167.77.88.65 ~ 167.77.88.126

结果

  • 子网号167.77.88.64
  • 广播地址167.77.88.127
  • 可用IP地址范围167.77.88.65 ~ 167.77.88.126
  1. 为什么全0和全1不可用?

    • 全0的主机部分表示子网地址,标识整个子网范围。
    • 全1的主机部分表示广播地址,用于向该子网中的所有设备发送数据。
  2. 子网的划分依据是什么? 子网大小和主机数取决于主机位的长度。这里主机部分是6位,所以每个子网可以容纳 2 6 = 64 2^6 = 64 26=64 个地址,其中:

    • 1个地址用于子网号。
    • 1个地址用于广播。
    • 可用主机数 = 2 6 − 2 = 62 2^6 - 2 = 62 262=62

可通过子网掩码计算网络号,来判断不同的IP是否在同一网络中


4. MAC地址与网关

4.1 MAC地址

MAC地址(Media Access Control
Address,介质访问控制地址)是一个硬件地址,用于唯一标识网络设备的物理接口。每个网络适配器(网卡)在出厂时都会分配一个全球唯一的MAC地址。

MAC地址的特点

  1. 全球唯一性:每块网卡的MAC地址都是唯一的,由网络硬件制造商分配。
  2. 固定性:MAC地址嵌入硬件(如网卡)中,一般无法修改,除非手动伪装。
  3. 链路层通信:MAC地址工作在OSI模型的第2层(数据链路层),负责本地网络通信。

MAC地址的格式

MAC地址由6组16进制数表示,每组由两个字符组成,通常用冒号或短横连接。例如:

  • 标准格式:00:1A:2B:3C:4D:5E
  • 16进制数范围:00FF

MAC地址的组成

  • 前24位(前三组16进制):厂商识别码(OUI,Organizationally Unique Identifier),由IEEE分配给制造商。
  • 后24位(后三组16进制):设备序列号,由厂商自行分配,确保同一厂商的每块网卡唯一。

MAC地址的作用

  1. 本地通信:在同一局域网内,设备通过MAC地址标识通信双方。
  2. 数据帧转发:交换机根据MAC地址表,将数据帧转发到目标设备所在的端口。
  3. 网络安全与管理:MAC地址可用于网络设备识别、权限管理和追踪设备。

4.2 网关

网关(Gateway)是用于连接两个不同网络的桥梁设备或软件。它充当通信的“出入口”,使设备能够与外部网络通信。

在家庭或企业网络中,网关通常是路由器的IP地址。设备将目的地址不属于本地网络的数据包发送到网关,由网关转发到目标网络。

网关的特点

  1. 跨网络通信:网关负责将本地网络的数据包发送到其他子网或互联网。
  2. 默认网关:在设备网络配置中,默认网关的IP地址通常指向路由器,用于数据包的转发。
  3. 协议转换:某些高级网关还可以执行协议转换(如IPv4与IPv6之间)。

网关的作用

  1. 数据转发:当设备访问非本地网络(如互联网)时,数据包会先发送到网关,网关根据目标地址选择路径并转发。
  2. 网络隔离:网关可以隔离不同的网络,提高安全性。
  3. 地址翻译:在NAT(网络地址转换)环境中,网关将本地私有IP地址转换为公网IP地址。

4.3 MAC地址与网关的协作

在局域网通信中

  1. 当设备向同一网络内的另一台设备发送数据时:
    • 源设备通过ARP协议解析目标设备的MAC地址。
    • 数据帧通过交换机直接转发到目标设备的网卡。
  2. MAC地址是局域网内设备通信的关键。

在跨网络通信中

  1. 当设备需要访问非本地网络(如互联网):
    • 数据包会被发送到默认网关(通常是路由器)。
    • 路由器负责查找目标网络的最佳路径,将数据转发出去。
    • 路由器的MAC地址在本地网络内用于标识默认网关。

4.4 MAC地址解析

假设你连接到一个局域网,运行以下命令可以查看MAC地址:

  • 在Windows中:

    ipconfig /all
    

    输出中会显示“物理地址”,即网卡的MAC地址,如:00-1A-2B-3C-4D-5E

  • 在Linux/Unix中:

    ifconfig
    

    ip addr
    

    输出中会列出“ether”字段下的MAC地址。

网关配置
假设你的网络配置如下:

  • IP地址:192.168.1.100
  • 子网掩码:255.255.255.0
  • 默认网关:192.168.1.1

当你访问一个公网地址(如 8.8.8.8):

  1. 数据包先被发送到默认网关(路由器)的MAC地址。
  2. 路由器将你的请求通过NAT映射为公网IP地址,并转发到目标地址。
  3. 路由器接收到目标服务器的响应后,再将数据返回给本地设备。

5. IP寻址与DNS解析

5.1 IP寻址

IP寻址是通过IP地址在网络中定位设备的过程,主要用于确定通信双方是否处于同一网络。如果设备位于同一网络内,数据包可以直接传输;如果位于不同网络,则需要通过网关或路由器转发。

IP寻址的原理

设备通过计算自身IP地址和目标IP地址的网络号,判断两者是否在同一网络内:

  • 如果网络号相同,设备可以直接通信。
  • 如果网络号不同,数据包被发送到默认网关,路由器根据目标地址选择路径,将数据转发到目标网络。

IP寻址示例

  • 场景:设备A(192.168.1.10)尝试访问设备B(192.168.1.20),两者的子网掩码为255.255.255.0

  • 步骤

    1. 提取网络号:
      • 设备A的网络号:192.168.1.0192.168.1.10 AND 255.255.255.0
      • 设备B的网络号:192.168.1.0192.168.1.20 AND 255.255.255.0
    2. 比较网络号:
      • 设备A和设备B的网络号相同。
    3. 结果:
      • 数据包直接传输,设备A将目标MAC地址解析为设备B的MAC地址,通过交换机发送数据。
  • 跨网络场景
    如果设备A访问10.0.0.5,网络号不同,则数据包会发送到默认网关(如192.168.1.1),由路由器转发到目标网络。


5.2 DNS解析

DNS(Domain NameSystem)解析是将人类易记的域名(如www.example.com)转换为IP地址(如192.168.1.1)的过程。它是互联网通信的基础,因为计算机只能通过IP地址定位目标设备,而人类更习惯使用域名。

DNS的作用

  1. 域名到IP地址的转换
    每个网站都有唯一的IP地址,DNS解析将域名解析为对应的IP地址,以便浏览器或应用程序与目标服务器通信。

  2. 反向解析
    DNS还支持将IP地址解析为域名,用于网络调试或溯源。

  3. 分布式管理
    DNS是一个分布式数据库系统,避免了将所有解析请求集中到单一服务器上的问题。

DNS解析过程
当用户在浏览器中输入域名(如www.google.com)时,DNS解析过程如下:

  1. 检查本地缓存

    • 浏览器会首先检查本地缓存,查看是否有对应的域名解析记录。
    • 如果缓存中找到IP地址,则直接使用。
  2. 查询本地DNS服务器

    • 如果本地缓存中没有记录,操作系统会向配置的本地DNS服务器发送解析请求。
  3. 递归查询

    • 如果本地DNS服务器没有解析记录,会向更高级别的DNS服务器发起递归查询:
      • 向根DNS服务器请求(顶级节点)。
      • 根DNS服务器返回目标域名所属的顶级域DNS服务器(如.com)。
      • 顶级域DNS服务器返回权威DNS服务器地址(如google.com的DNS服务器)。
  4. 返回IP地址

    • 权威DNS服务器返回域名对应的IP地址。
    • 本地DNS服务器将结果缓存并返回给客户端。
  5. 完成通信

    • 浏览器通过获取的IP地址与目标服务器建立连接,完成请求。

5.3 补充:DNS记录类型

DNS解析依赖不同类型的记录,常见的包括:

记录类型 作用 示例
A 将域名解析为IPv4地址 example.com → 93.184.216.34
AAAA 将域名解析为IPv6地址 example.com → 2606:2800:220:1:248:1893:25c8:1946
CNAME 将域名解析为另一个域名(别名) www.example.com → example.com
MX 邮件交换记录,用于邮件服务器的地址解析 mail.example.com
PTR 反向解析,将IP地址解析为域名 93.184.216.34 → example.com
NS 指定域名的权威DNS服务器 ns1.example.com

在这里插入图片描述

阿里云DNS云解析控制台的部分记录类型


其他

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐