Skip to content
Linux中级阅读约 1 分钟

网络基础 ​

本篇定位

建立系统的网络知识框架:网络分层模型(OSI/TCP-IP)、IP 地址与子网划分、TCP/UDP、以太网与 MAC、Linux 网卡配置(nmcli/netplan)和网卡高可用。网络排障命令(ping、tcpdump、nmap、nc、traceroute、dig 等)见 网络命令速查。

一、网络基础概念 ​

1.1 什么是计算机网络 ​

把地理位置不同、具有独立功能的多台计算机及外部设备,通过通信线路和网络设备连接起来,在网络协议管理下实现资源共享和信息传递的系统。

1.2 网络范围分类 ​

类型全称范围
LAN 局域网Local Area Network小范围(办公室、机房、园区),通常 10km 内,一个单位
MAN 城域网Metropolitan覆盖一个城市,连接多个局域网
WAN 广域网Wide Area Network跨城市/国家,覆盖全球(Internet 即最大的广域网)

1.3 网络拓扑 ​

拓扑指节点之间的连接方式:

拓扑特点
总线型所有节点共用一条线路,省成本、易布线,但单点故障影响大
星型节点都连到中心设备(交换机),易管理扩展,中心是关键
环型节点首尾成环,数据单向传输
网状型节点间多条链路互联,可靠性高、冗余好(广域网/数据中心)

现代局域网主流是星型(经交换机),核心/骨干追求网状冗余。

1.4 网络组成 ​

  • 终端/主机:计算机、服务器、手机等;
  • 网络设备:网卡、集线器(Hub)、交换机(Switch)、路由器(Router);
  • 通信线路:网线、光纤、无线;
  • 协议与软件:TCP/IP 等通信规则、操作系统、应用。

二、网络分层模型 ​

2.1 为什么要分层 ​

网络通信极其复杂,分层把整体功能拆成多个层次,每层只负责一类功能、通过标准接口与相邻层协作,实现解耦、标准化、独立演进、便于排障。

2.2 OSI 七层模型(理论标准) ​

从下到上:

层名称功能数据单元典型协议/设备
7应用层面向用户的网络服务数据 DataHTTP、DNS、DHCP、FTP、SMTP
6表示层数据编码、加密、压缩—SSL/TLS、JPEG
5会话层建立/管理/断开会话——
4传输层端到端传输、端口、可靠性段 SegmentTCP、UDP
3网络层寻址与路由选择包 PacketIP、ICMP、ARP、路由器
2数据链路层同一链路内帧传输、MAC帧 Frame以太网、MAC、交换机
1物理层比特流传输比特 Bit网线、光纤、集线器

记忆口诀(从下到上):物、数、网、传、会、表、应。

2.3 TCP/IP 模型(实际标准) ​

实际互联网使用 TCP/IP 模型,教学中常用"五层模型"对照:

OSI 七层TCP/IP 四层五层教学模型
应用/表示/会话应用层应用层
传输传输层传输层
网络网际层(IP)网络层
数据链路/物理网络接口层数据链路层 / 物理层

2.4 封装与解封装 ​

发送数据时,数据从上到下逐层加首部(封装):应用数据 → 加 TCP 头成"段" → 加 IP 头成"包" → 加帧头帧尾成"帧" → 转成比特发出。接收时从下到上逐层去掉首部(解封装)。

应用数据
[TCP头][数据]            ← 段 Segment
[IP头][TCP头][数据]       ← 包 Packet
[帧头][IP头][TCP头][数据][帧尾]  ← 帧 Frame

三、网络层:IP 协议 ​

3.1 IPv4 地址 ​

IPv4 是 32 位地址,用点分十进制表示为 4 段(每段 0-255),如 192.168.1.10。

3.2 地址分类(有类编址) ​

类范围默认掩码用途
A1.0.0.0 – 126.x/8大型网络
B128.0 – 191.255/16中型网络
C192.0 – 223.255/24小型网络
D224.0 – 239.255—组播
E240.0 – 255.255—保留实验

私有地址(内网使用,不能在公网路由):

类私有网段范围
A10.0.0.0/810.0.0.0 – 10.255.255.255
B172.16.0.0/12172.16.0.0 – 172.31.255.255
C192.168.0.0/16192.168.0.0 – 192.168.255.255

特殊地址:

地址含义
127.0.0.0/8回环地址(本机测试)
0.0.0.0本机所有地址 / 默认路由
255.255.255.255受限广播
169.254.0.0/16link-local(DHCP 失败时自动配置)

3.3 子网掩码与 CIDR ​

IP 地址 = 网络号 + 主机号,子网掩码用来区分二者。

  • 掩码连续的 1 对应网络位,0 对应主机位;
  • CIDR 用 /位数 表示网络位,如 192.168.1.10/24(前 24 位是网络号);
  • /24 掩码 255.255.255.0,网络号 192.168.1.0。

3.4 子网划分 ​

通过借主机位把一个大网络切成多个小子网:

  • 借 n 位 → 分出 2^n 个子网;
  • 主机位剩 h 位 → 每个子网 2^h 个地址,可用主机 2^h - 2(减去网络地址和广播地址)。

示例:把 192.168.1.0/24 切成 /26(借 2 位):

子网网络地址可用主机范围广播地址
1192.168.1.0/26.1 – .62.63
2192.168.1.64/26.65 – .126.127
3192.168.1.128/26.129 – .190.191
4192.168.1.192/26.193 – .254.255

每个 /26 有 64 个地址、62 个可用主机。

3.5 IPv6 简介 ​

IPv4 地址已枯竭,IPv6 用 128 位,写成 8 组十六进制(冒号分隔),如 2001:0db8::1,地址空间极大、内置安全和自动配置,正在逐步普及。

3.6 ICMP 与 ARP ​

  • ICMP(网际控制报文协议):用于网络诊断和差错报告,ping(探测主机可达)和 traceroute(追踪路径)基于 ICMP;
  • ARP(地址解析协议):在局域网内根据 IP 地址解析出对应的 MAC 地址(arp -n、ip neigh)。

四、传输层:TCP 与 UDP ​

4.1 端口 ​

传输层用端口号区分同一主机上的不同应用(0-65535),IP 定位主机、端口定位进程。

端口服务
22SSH
80 / 443HTTP / HTTPS
53DNS
21 / 20FTP
25 / 110 / 143SMTP / POP3 / IMAP
123NTP
3306 / 6379MySQL / Redis
67、68DHCP
  • 0-1023 为知名端口(需特权);1024-49151 注册端口;以上为动态端口。

4.2 TCP:面向连接、可靠 ​

TCP 特点: 面向连接、可靠传输(确认重传)、有序、流量控制和拥塞控制,开销较大。

三次握手(建立连接):

客户端                          服务端
  │ ── SYN (seq=x) ───────────→ │      客户端 SYN_SENT
  │ ←── SYN+ACK (ack=x+1) ───── │      服务端 SYN_RCVD
  │ ── ACK (ack=y+1) ─────────→ │      双方 ESTABLISHED

四次挥手(断开连接):

主动方                          被动方
  │ ── FIN ───────────────────→ │
  │ ←── ACK ─────────────────── │      被动方 CLOSE_WAIT
  │ ←── FIN ─────────────────── │
  │ ── ACK ───────────────────→ │      主动方 TIME_WAIT → CLOSED
为什么握手 3 次、挥手 4 次
  • 握手时服务端的 SYN 和 ACK 可以合并成一条,故 3 次;
  • 挥手时被动方收到 FIN 后先回 ACK,但可能还有数据要发,等数据发完再发 FIN,ACK 和 FIN 分开发,故 4 次;
  • TIME_WAIT 等待约 2MSL,确保最后的 ACK 到达、旧连接报文消散。

4.3 UDP:无连接、快 ​

UDP 特点: 无连接、不保证可靠和顺序、无拥塞控制,首部小、延迟低、开销小,适合实时场景(DNS 查询、视频/语音、游戏)。

4.4 TCP vs UDP ​

对比TCPUDP
连接面向连接(三次握手)无连接
可靠性可靠(确认重传排序)不保证
传输方式字节流数据报
开销/速度较大、较慢小、快
头部20 字节起8 字节
场景网页、文件、邮件、数据库DNS、直播、语音、游戏

五、数据链路层与以太网 ​

5.1 MAC 地址 ​

  • MAC 地址是网卡的物理地址,48 位、十六进制,如 00:0c:29:8a:3b:1f,全球唯一,烧录在网卡上;
  • 局域网内数据帧靠 MAC 地址投递,ARP 负责 IP→MAC 解析。

5.2 以太网 ​

以太网是主流的局域网技术(IEEE 802.3),通过交换机按 MAC 转发帧,采用 CSMA/CD 机制(早期共享介质)。

5.3 VLAN ​

VLAN(虚拟局域网,IEEE 802.1Q) 在交换机上把一个物理网络逻辑上划分为多个广播域,隔离不同部门/业务的二层流量,提升安全和管理灵活性,通过在帧中打 VLAN 标签实现。

5.4 通信方式 ​

  • 单播(Unicast):一对一;
  • 广播(Broadcast):一对所有(目标 MAC 全 F);
  • 组播(Multicast):一对一组(D 类 IP)。

六、网卡与网络配置 ​

6.1 网卡命名 ​

  • 旧规则:eth0、eth1;
  • systemd 可预测命名:eno1(板载 onboard)、ens33(插槽 slot)、enp0s3(PCI 位置);wl 开头为无线网卡。
    • en = 以太网,o = 板载,s = 热插拔槽,p = PCI 总线位置。

6.2 查看网络信息 ​

bash
ip addr            # 或 ip a:查看网卡和 IP(替代 ifconfig)
ip route           # 查看路由表/默认网关(替代 route -n)
ss -tunlp          # 查看监听端口(替代 netstat)
ip neigh           # ARP 表

6.3 RHEL/Rocky:nmcli 配置 ​

RHEL 系用 NetworkManager 管理网络,命令行工具 nmcli、文本界面 nmtui。

bash
nmcli connection show                  # 查看连接(con)
nmcli device status                    # 查看设备(d)

# 修改连接(静态 IP)
nmcli con mod ens33 \
  ipv4.method manual \
  ipv4.addresses 10.0.0.13/24 \
  ipv4.gateway 10.0.0.2 \
  ipv4.dns "223.5.5.5,114.114.114.114"
nmcli con up ens33                     # 激活生效

# 自动获取(DHCP)
nmcli con mod ens33 ipv4.method auto && nmcli con up ens33
  • 新系统连接配置文件在 /etc/NetworkManager/system-connections/(keyfile 格式);
  • 旧版在 /etc/sysconfig/network-scripts/ifcfg-ens33。

6.4 Ubuntu:netplan 配置 ​

Ubuntu 18.04+ 用 netplan 管理,配置文件在 /etc/netplan/*.yaml(YAML 严格缩进):

yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      addresses:
        - 10.0.0.13/24
      routes:
        - to: default
          via: 10.0.0.2
      nameservers:
        addresses: [223.5.5.5, 114.114.114.114]
bash
sudo netplan generate
sudo netplan apply          # 应用生效
# 桌面版用 NetworkManager 时 renderer: NetworkManager

DHCP 写法:eth0: {dhcp4: true}。

6.5 主机名 ​

bash
hostname                              # 查看
sudo hostnamectl set-hostname hg-blog # 永久修改(写入 /etc/hostname)

6.6 路由配置 ​

bash
ip route                              # 查看默认路由
sudo ip route add default via 10.0.0.2            # 添加默认网关
sudo ip route add 192.168.2.0/24 via 10.0.0.254   # 添加静态路由
sudo ip route del 192.168.2.0/24                  # 删除

6.7 连通性诊断思路 ​

排障遵循由近及远、分层排查:

  1. 看网卡/IP:ip a;
  2. ping 本机、ping 网关(二层/本地);
  3. ping 外网 IP(如 ping 223.5.5.5,测路由);
  4. ping 域名(不通则 DNS 问题);
  5. 看端口/服务:ss -tunlp、curl;
  6. 抓包:tcpdump。

完整命令参数见 网络命令速查。


七、网卡高可用(了解) ​

7.1 网卡绑定 Bond ​

把多块物理网卡绑定成一个逻辑接口,实现冗余(高可用)和/或带宽叠加。

mode名称说明
0balance-rr轮询,负载均衡+容错(需交换机配合)
1active-backup主备,只有一块工作,故障切换(最常用、无需特殊交换机)
2balance-xor基于 MAC 哈希
3broadcast广播,所有网卡发相同数据
4802.3adLACP 动态链路聚合(需交换机支持)
5balance-tlb发送负载均衡
6balance-alb收发负载均衡

7.2 team vs bond ​

  • bond:传统内核绑定,成熟稳定;
  • team:新一代链路聚合,用户态守护进程、模块化设计、支持更多负载策略和更好的性能监控;
  • 新项目可评估 team,但 bond 资料更全、兼容性好,生产仍常用。

7.3 bridge 桥接 ​

Linux 网桥(bridge) 工作在二层,像虚拟交换机把多个接口(含虚拟机/容器网卡)桥接在一起,虚拟化/容器场景常用(brctl、bridge link)。


面试自测 ​

  1. LAN、MAN、WAN 的区别?常见网络拓扑有哪些?
  2. 说一下 OSI 七层及每层的典型协议和设备。
  3. TCP/IP 模型和 OSI 模型如何对应?
  4. 什么是数据封装和解封装?段、包、帧分别是哪一层的 PDU?
  5. IPv4 私有地址有哪些网段?
  6. 子网掩码/CIDR 的作用?借位划分子网如何计算可用主机数?
  7. 把 /24 划成 /26 得到几个子网、每个多少可用主机?
  8. ICMP、ARP 分别做什么?
  9. TCP 三次握手、四次挥手的过程?为什么握手三次、挥手四次?
  10. TIME_WAIT 状态的作用?
  11. TCP 和 UDP 的区别和各自适用场景?
  12. MAC 地址和 IP 地址的区别?VLAN 解决什么问题?
  13. RHEL 的 nmcli 和 Ubuntu 的 netplan 如何配置静态 IP?
  14. 网络不通的分层排查思路?
  15. bond mode 0、1、4 的区别?bond 和 team 有何不同?

相关速查 ​