← 返回文章列表
网络基础知识
14 分钟阅读
字号
网络基础知识
本文涵盖互联网基础、OSI七层协议、子网掩码、DNS解析、网络通信流程等核心知识点。
一、互联网是什么
定义
互联网过去又称为"信息高速公路",是用来高速传输数据的网络。
为什么要互联网?
打破地域限制,进行高速的数据传输
互联网的构成
| 现实场景 | 网络类比 |
|---|---|
| 电话 | 电话网络 + 规范(英语) |
| 寄快递 | 快递网络 + 规范(填写标准) |
| 互联网 | 信息高速公路(一系列连在一起的网络设备)+ 规范(网络协议) |
规范/协议存在的意义: 所有网络的设备都需要学会网络通信协议,只有这样,包裹在发送过程中才能被沿途设备理解,从而确保成功发给下一站。网络通信协议就相当于计算机界的"英语",要求所有设备都学会。
二、OSI 七层协议
OSI(Open Systems Interconnection)模型是网络通信的标准框架,从下到上分为七层:
┌─────────────────────────────────────────┐
│ 第七层:应用层 (HTTP, DNS, FTP) │ ← 应用程序
├─────────────────────────────────────────┤
│ 第六层:表示层 (SSL, TLS, JPEG) │ ← 数据格式
├─────────────────────────────────────────┤
│ 第五层:会话层 (NetBIOS, RPC) │ ← 会话管理
├─────────────────────────────────────────┤
│ 第四层:传输层 (TCP, UDP) │ ← 端口通信
├─────────────────────────────────────────┤
│ 第三层:网络层 (IP, ICMP, Router) │ ← 跨网络通信
├─────────────────────────────────────────┤
│ 第二层:数据链路层 (Ethernet, Switch) │ ← 局域网通信
├─────────────────────────────────────────┤
│ 第一层:物理层 (Cable, Fiber, Hub) │ ← 物理传输
└─────────────────────────────────────────┘第一层:物理层
- 传输内容: bit(比特,二进制 0/1)
- 负责: 传输电信号
- 注意: 单纯的电信号没有任何意义,要让其有意义必须对其进行分组
第二层:数据链路层(以太网协议)
以太网协议规定
- 一组电信号称之为数据帧
- 每一帧由两部分构成:
┌─────────────────────────────────────────┐
│ 前导码 7B + 帧开始符 1B │ ← 物理层
├──────────────────┬──────────────────────┤
│ Head (14字节) │ Data (46-1500B) │
│ ┌────────────┐ │ │
│ │ 目标MAC 6B │ │ │
│ ├────────────┤ │ │
│ │ 源MAC 6B │ │ │
│ ├────────────┤ │ │
│ │ 类型/长度 2B│ │ │
│ └────────────┘ │ │
├──────────────────┴──────────────────────┤
│ CRC/FCS (4字节) │
└─────────────────────────────────────────┘什么是 MAC 地址?
- MAC 地址 = 网卡上的地址,每一个 MAC 地址都是全世界独一无二的地址
- 范围: 00:1B:44:11:3A:B7 这样的 6 字节(48位)地址
计算机通信基本靠吼:广播
在局域网内,基于以太网协议的广播方式进行通信。
强调:MAC 地址是在局域网内部用的地址,出不了局域网
第三层:网络层(IPv4 协议)
核心总结
MAC 地址 → 可以定位局域网内独一无二的计算机
IP 地址 → 可以定位独一无二的局域网在哪里
IP 地址 + MAC 地址 = 定位到全世界范围内独一无二的计算机IP 协议规定
- 数据称之为数据包
- 数据由两部分构成:
┌─────────────────────────────────────────┐
│ 数据包 (Packet) │
├──────────────────┬──────────────────────┤
│ Head (头) │ Data (数据) │
│ ┌────────────┐ │ │
│ │ 源 IP 地址 │ │ │
│ ├────────────┤ │ 最多 65515 字节 │
│ │ 目的 IP 地址│ │ │
│ └────────────┘ │ │
└──────────────────┴──────────────────────┘IPv4 地址组成
00000000.00000000.00000000.00000000 → 0.0.0.0
11111111.11111111.11111111.11111111 → 255.255.255.255子网掩码的作用
子网掩码让一个 IP 地址同时表示两层含义:
IP 地址:192.168.71.7/24
二进制:11000000.10101000.01000111.00000111
↑↑↑↑↑↑↑↑
24位网络位,8位主机位
子网掩码:11111111.11111111.11111111.00000000 → 255.255.255.0
网络地址:11000000.10101000.01000111.00000000 → 192.168.71.0子网掩码 = 告诉计算机"哪部分是网络位,哪部分是主机位"的工具
同局域网内通信流程
发送端:192.168.71.7/24
接收端:192.168.71.8/24
1. ARP 协议开始工作
- 计算发送端网络地址:192.168.71.0
- 计算接收端网络地址:192.168.71.0
- 判断:网络地址相同 → 在同一局域网内
2. ARP 广播获取 MAC 地址
发送广播:"谁是 192.168.71.8?请告诉我你的 MAC 地址"
192.168.71.8 回复自己的 MAC 地址
3. 真正通信
[发送者MAC] [接收者MAC] [源IP] [目的IP] [数据]跨局域网通信流程
发送端:192.168.71.7/24
接收端:172.16.202.8/24
1. ARP 协议开始工作
- 计算发送端网络地址:192.168.71.0
- 计算接收端网络地址:172.16.202.0
- 判断:网络地址不同 → 需要跨局域网通信
2. ARP 获取网关 MAC 地址
发送广播:"谁是 192.168.71.1(网关)?请告诉我你的 MAC 地址"
网关回复自己的 MAC 地址
3. 真正通信
[发送者MAC] [网关MAC] [源IP] [目的IP] [数据]
→ 发给网关,网关再转发到目标网络第四层:传输层(TCP/UDP)
基于端口工作
但凡基于 TCP 或 UDP 协议工作的应用程序,都会拥有一个独一无二的端口号。
端口范围:0 - 65535
IP + Port = 全世界范围内独一无二的一个基于网络通信的应用程序TCP vs UDP
| 特性 | TCP | UDP |
|---|---|---|
| 连接性 | 面向连接(三次握手) | 无连接 |
| 可靠性 | 可靠(ACK确认 + 超时重传 + 排序去重 + 流量控制) | 不可靠(无确认机制) |
| 效率 | 相对较低 | 传输效率高 |
| 场景 | 文件传输、网页、邮件 | 视频通话、DNS 查询(主要 UDP,大的区域传输用 TCP) |
第五层:应用层
应用程序自己开发,应用层用什么协议由应用程序自己定义。
常见协议:HTTP, HTTPS, FTP, SMTP, DNS
Socket 抽象层
Socket 位于传输层与应用层之间,是对传输层及其以下的封装,封装完后提供一系列简单的功能给上层应用程序调用。
基于网络通信的应用程序基本上都是基于 Socket 开发的,所以又称之为套接字程序。
三、DNS 详解
DNS 是什么
DNS(Domain Name Server)= 负责把域名解析为 IP 地址
域名结构
www.baidu.com.
├─── ──── ─── ─┘
│ │ │
│ │ └── 顶级域 (.com)
│ └────── 二级域 (baidu)
└─────────── 三级域 (www)层层分级的原因:
- 每一段都有特定的意义,用最少的字符表达最多的含义,方便用户记忆
- 解析记录分层管理,不需要某一个 DNS 存下所有的解析记录
DNS 解析记录类型
| 类型 | 作用 | 示例 |
|---|---|---|
| A 记录 | 域名 → IPv4 | www.sirius.com → 1.1.1.1 |
| AAAA 记录 | 域名 → IPv6 | example.com → 2001:db8::1 |
| CNAME 记录 | 域名 → 域名 | www.sirius.com → www.sirius.com |
| MX 记录 | 域名 → 邮件服务器 | @qq.com → mx.qq.com |
| NS 记录 | 域名 → DNS 服务器 | google.com → ns1.google.com |
DNS 查询流程
两种查询方式:
- 递归查询: "我不知道,但我帮你拿"
- 迭代查询: "我不知道,但我知道有人知道,你自己去拿"
完整查询流程:
用户输入 www.google.com
│
▼
┌─────────────────┐
│ Chrome DNS 缓存 │ ← 先查浏览器缓存
└────────┬────────┘
│
▼
┌─────────────────┐
│ HOSTS 文件 │ ← 手动配置的映射
│ (C:\Windows\ │
│ System32\... │
│ \drivers\etc) │
└────────┬────────┘
│
▼
┌─────────────────┐
│ 系统 DNS 缓存 │
└────────┬────────┘
│
▼
┌─────────────────┐
│ 递归 DNS 服务器 │ ← 114.114.114.114 / 8.8.8.8
└────────┬────────┘
│
▼
根 DNS (.)
→ .com 顶级域 DNS
→ google.com 权威 DNS
│
▼
返回 IP 地址四、网络通信流程
通信必备四种地址
| 场景 | 所需地址 |
|---|---|
| 不跨网段 | IP 地址 + 子网掩码 |
| 跨网段通信 | IP 地址 + 子网掩码 + 网关 IP |
| 用名字访问 | 还需要 DNS 服务器地址 |
地址获取方式
动态获取:DHCP → 个人用户、家庭网络
静态配置:手动写入网卡配置文件 → 服务器、网络设备完整通信流程(以访问网页为例)
1. 浏览器输入 URL
http://sirius.com:80/
2. DNS 解析
sirius.com → 1.1.1.1
http://1.1.1.1:80/
3. 应用层封包 (HTTP)
[HTTP 头 + 数据]
4. 传输层封包 (TCP)
[TCP 头(源端口、目标端口)][HTTP 数据]
5. 网络层封包 (IP)
[IP 头(源 IP、目标 IP)][TCP 数据]
6. 数据链路层封包 (Ethernet)
[Ethernet 头(源 MAC、目标 MAC)][IP 数据]
7. 物理层传输
转换为电信号/光信号在网线/光纤中传输注意: 以太网协议的数据部分默认最大传输单元是 1500 字节(MTU),数据包需要分片发送。
五、子网划分
核心概念
子网划分 = 把一个大网段切成小网段 = 充分利用 IP 地址
公式
子网数 = 2^借位数
主机数 = 2^(8-借位) - 2常见子网划分
| 借位 | 子网掩码 | 子网数 | 每子网主机数 |
|---|---|---|---|
| /24 | 255.255.255.0 | 1 | 254 |
| /25 | 255.255.255.128 | 2 | 126 |
| /26 | 255.255.255.192 | 4 | 62 |
| /27 | 255.255.255.224 | 8 | 30 |
| /28 | 255.255.255.240 | 16 | 14 |
| /30 | 255.255.255.252 | 64 | 2 |
示例:192.168.1.0/24 切成 4 个子网
/26 (借2位) → 4 个子网,每个 62 台
子网0: 192.168.1.0/26 → .0 ~ .63 (可用 .1~.62)
子网1: 192.168.1.64/26 → .64 ~ .127 (可用 .65~.126)
子网2: 192.168.1.128/26 → .128 ~ .191 (可用 .129~.190)
子网3: 192.168.1.192/26 → .192 ~ .255 (可用 .193~.254)六、特殊 IP 地址
私有地址(内网)
A类: 10.0.0.0 ~ 10.255.255.255
B类: 172.16.0.0 ~ 172.31.255.255
C类: 192.168.0.0 ~ 192.168.255.255其他特殊地址
| 地址 | 含义 |
|---|---|
0.0.0.0 | 本机所有 IP(未确定是哪个网卡时使用) |
255.255.255.255 | 全网广播地址 |
127.0.0.1 | 本地回环网卡(Loopback) |
VLAN
- LAN: 局域网
- VLAN: 虚拟局域网,通过虚拟技术把一个交换机分成多个广播域,一个广播域就是一个小的局域网,不同 VLAN 的广播包是隔离的。
七、K8s 中的网络
┌─────────────────────────────────────────┐
│ 网段规划示例 │
│ │
│ 物理网络: 10.20.0.0/16 (VPC) │
│ │
│ 子网1: 10.20.1.0/24 ← Master 节点 │
│ 子网2: 10.20.2.0/24 ← Worker 节点1 │
│ 子网3: 10.20.3.0/24 ← Worker 节点2 │
│ │
│ Pod 网段: 10.244.0.0/16 │
│ Service 网段: 10.96.0.0/12 │
└─────────────────────────────────────────┘记住:
- Pod IP 是真的,靠 CNI 直连
- Service IP 是假的,靠 kube-proxy 转换
总结
┌─────────────────────────────────────────────────────────┐
│ 网络通信核心要点 │
├─────────────────────────────────────────────────────────┤
│ 1. MAC 地址 = 局域网内唯一,定位同一网段的计算机 │
│ 2. IP 地址 = 全球唯一,定位局域网位置 │
│ 3. IP + MAC = 定位全球范围内独一无二的计算机 │
│ 4. ARP 协议 = 将 IP 解析为 MAC 地址 │
│ 5. DNS = 将域名解析为 IP 地址 │
│ 6. 同网段用广播,跨网段靠网关/路由器 │
│ 7. 子网掩码 = 区分网络位和主机位 │
│ 8. TCP 可靠(有确认),UDP 高效(无确认) │
└─────────────────────────────────────────────────────────┘分享