在开发中,尤其是涉及 IoT 设备(如摄像头)时,理解网络基础知识对于正确配置和排查网络问题至关重要。以下是对 IP 地址、网段、子网掩码、网关、DNS 等核心概念的详细解读,并针对 ONVIF 发现摄像头问题提供具体示例和解释。


1. IP 地址

IP 地址是用来标识网络中设备的唯一地址,类似于设备的“门牌号”,用于在网络中定位和通信。

1.1 IPv4 地址

1.1.1 IPv4 地址结构

IPv4 地址是一个 32 位 的二进制数,通常以 点分十进制 表示,例如 192.168.43.1。它由网络号主机号两部分组成,具体结构如下:

IP 地址

二进制表示

作用

192

11000000

网络标识

168

10101000

网络标识

43

00101011

子网标识

1

00000001

主机标识

1.1.2 IP 地址的分类(A、B、C类)

类别

IP 地址范围

默认子网掩码

适用场景

A类

1.0.0.0 - 126.255.255.255

255.0.0.0 (或 /8)

超大规模网络,如互联网骨干网

B类

128.0.0.0 - 191.255.255.255

255.255.0.0 (或 /16)

中等规模网络,如校园网

C类

192.0.0.0 - 223.255.255.255

255.255.255.0 (或 /24)

小型网络,如家庭或企业局域网


1.2 IPv6 地址

1.2.1 什么是 IPv6 地址?

IPv6(Internet Protocol version 6)是下一代 IP 协议,设计用来取代 IPv4。IPv6 地址是 128 位 的二进制数,通常以 冒号分隔的 8 组 16 进制数 表示,例如:

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

  • 每组 16 位(4 个十六进制数)。
  • 允许省略前导零(2001:db8:85a3::8a2e:370:7334),连续的零段可简化为 ::
1.2.2 IPv6 地址的类型

类型

描述

示例

单播地址

标识单个设备的地址

2001:0db8::1

多播地址

标识一组设备的地址

FF02::1(所有节点)

链路本地地址

仅用于同一链路中的通信

FE80::1

全球单播地址

用于全球范围的唯一地址

2001:0db8::/32


1.3 IPv4 与 IPv6 对比

特性

IPv4

IPv6

地址长度

32 位

128 位

地址格式

点分十进制(如 192.168.0.1

冒号分隔的十六进制(如 2001:db8::1

地址空间

约 43 亿个地址

约 3.4×10³⁸ 个地址

地址耗尽

已耗尽

充足

配置方式

需要手动或 DHCP 配置

自动配置(无状态地址自动配置)

网络安全

依赖额外的安全机制(如 IPSec)

内置 IPSec 支持

传输效率

头部较小,处理简单

头部更大,但可扩展


2. 子网与子网掩码

2.1 什么是子网?

子网(Subnet)是将一个大网络划分为多个小网络,每个子网中的设备可以直接通信。子网划分通过 子网掩码 实现。

2.2 子网掩码

2.2.1 子网掩码的作用

子网掩码用于区分 IP 地址中的 网络部分主机部分。通过将 IP 地址与子网掩码按位与(AND)操作,得到网络地址。

常见子网掩码:

子网掩码

二进制表示

网络划分

255.255.255.0

11111111.11111111.11111111.00000000

/24,小型局域网

255.255.0.0

11111111.11111111.00000000.00000000

/16,中型网络


2.3 子网掩码与 ONVIF 设备发现问题

问题场景:
  • 主机 IP192.168.43.1,子网掩码 255.255.255.0
  • 摄像头 IP192.168.43.22
  • 摄像头子网掩码
  • 当设置为 255.255.0.0 时,无法发现设备
  • 当设置为 255.255.255.0 时,可以正常发现设备
解决方法:
  • 将摄像头的子网掩码设置为 255.255.255.0,与主机处于同一子网,确保广播包能被正确接收。

3. DNS(域名系统)

3.1 什么是 DNS?

DNS(Domain Name System)是互联网中的“电话簿”,用于将 域名 转换为 IP 地址
例如,当你访问 www.google.com 时,DNS 服务器会将其解析为 IP 地址 142.250.190.14,你的设备通过该 IP 地址与 Google 服务器通信。


3.2 DNS 解析过程

  1. 客户端请求:用户在浏览器中输入 www.xxx.com
  2. DNS 服务器解析
  • 本地 DNS 缓存检查是否已有解析记录。
  • 若无,则将请求发送至递归 DNS 服务器。
  1. 递归查询:递归 DNS 服务器逐级向上查询,直到找到 xxx.com 的权威 DNS 服务器。
  2. 返回 IP 地址:将 xxx.com 对应的 IP 地址返回给客户端。
  3. 客户端连接:客户端使用返回的 IP 地址连接到目标服务器。

3.3 DNS 服务器类型

类型

描述

示例

递归 DNS 服务器

负责接收 DNS 请求并逐级查询解析,直到找到正确的 IP 地址。

运营商提供的 DNS 服务器

权威 DNS 服务器

保存特定域名的最终 IP 地址记录,是递归查询的终点。

xxx.com 的权威服务器

根 DNS 服务器

顶级 DNS 服务器,负责管理顶级域(如 .com.org)。

全球共有 13 个根服务器


3.4 DNS 常见问题与解决

问题

原因

解决方法

无法解析域名

DNS 服务器不可用,或配置错误。

检查 DNS 配置,使用公共 DNS。

域名解析慢

DNS 查询链路过长。

配置本地 DNS 缓存或更换快速 DNS。

DNS 劫持

ISP 劫持 DNS 解析,将请求重定向。

使用加密 DNS(如 DoH、DoT)。


3.5 常见公共 DNS 服务器

DNS 提供商

首选 DNS

备用 DNS

特点

Google DNS

8.8.8.8

8.8.4.4

全球部署,速度快,稳定性高。

Cloudflare DNS

1.1.1.1

1.0.0.1

高速、安全,支持隐私保护。

OpenDNS

208.67.222.222

208.67.220.220

提供家庭安全过滤功能。

阿里 DNS

223.5.5.5

223.6.6.6

适合国内用户,速度较快。

4. 静态与动态 IP 地址

类型

描述

适用场景

静态 IP

手动分配的固定 IP 地址,设备每次连接使用相同地址。

服务器、摄像头、打印机等设备。

动态 IP

由 DHCP 服务器自动分配的 IP 地址,每次连接可能不同。

普通用户设备,如手机、笔记本等。


5. IP 冲突

什么是 IP 冲突?

IP 冲突是指网络中两个设备使用了相同的 IP 地址,导致通信异常。

解决方法:

  1. 检查并避免静态 IP 地址与 DHCP 地址池的重叠。
  2. 使用 arp -a 命令查看网络中已使用的 IP 地址。
  3. 重启设备或路由器,以分配新的动态 IP。

6. 总结

概念

描述

示例

IPv4 地址

32 位地址,用于标识设备的唯一地址

192.168.43.1

IPv6 地址

128 位地址,支持更多设备的唯一标识

2001:0db8::1

子网掩码

用于划分网络与主机部分,决定设备的网段

255.255.255.0

网关

网络的出口设备,用于跨网段通信

192.168.43.1(路由器)

DNS

将域名解析为 IP 地址

www.google.com → 8.8.8.8

静态 IP

手动配置的固定 IP 地址

192.168.43.22(摄像头)

动态 IP

由 DHCP 自动分配的地址

192.168.43.100(手机)

IP 冲突

网络中两个设备使用相同 IP,导致通信异常

手动检查并解决

ONVIF 发现问题

子网掩码不一致会导致设备无法被发现

主机与摄像头需处于同一子网