章11:管理网络
管理网络
- TCP/IP 网络模型
- 应用层
- 传输层
- 网络层
- 网络接口层
- 数据封装流程
- 网络接口
- ss
- 最常用 5 条命令
- 对比 netstat 优势
- nmcli命令
TCP/IP 网络模型
应用层
直接为用户提供网络服务(如手机电脑的应用软件、网页浏览、文件传输)。
不关心数据如何传输。
传输数据单位:报文(message)
关键协议:
- HTTP/HTTPS:网页访问(80/443端口)。
- FTP:文件传输(21端口)。
- DNS:域名解析(53端口)。
- SMTP/POP3:电子邮件收发。
- SSH:安全远程登录(22端口)。
传输层
应用层的数据包会传给传输层,传输层(Transport Layer)是为应用层提供网络支持的。
数据单位:段(Segment,TCP)或数据报(Datagram,UDP)
在传输层会有两个传输协议,分别是 TCP 和 UDP。
网络层
传输层只需要服务号应用,让其作为应用间数据传输的媒介,帮助实现应用间的通信,实际的传输功能交给网络层。
通过逻辑地址(IP)实现主机到主机的路由与寻址。
数据单位:包(Packet)。
关键协议:
IP协议:
-
- 功能
- 逻辑寻址:为每台设备分配唯一的IP地址(如
192.168.1.1
或IPv6的2001:0db8::1
),用于标识网络中的主机。 - 路由选择:通过路由器将数据包从源IP转发到目标IP(基于路由表)。
- 分片与重组:根据底层链路的MTU(最大传输单元)拆分或重组数据包。
- 无连接服务:不预先建立连接(与TCP不同),每个数据包独立传输。
-
- IP数据包(Packet)格式
- IP数据包(Packet)格式
-
3.IPv4
由 32 位二进制数字组成,通常表示为 4 个十进制数(每个十进制数代表 8 位,即 1 字节),以点分隔。这 32 位被分为两部分:-
网络部分:用于标识网络,可以通过子网掩码来划分。
-
主机部分:用于标识网络中的具体设备(如计算机、路由器等)。
子网掩码决定了 IP 地址的哪一部分是网络部分,哪一部分是主机部分。
寻址过程中,先匹配网络号再匹配主机号
-
-
4.路由
确定数据包从源主机到目标主机的传输路径
路由器使用目标 IP 地址和路由表中的信息来确定数据包的下一跳,并根据子网掩码划分网络。
直接路由:数据包目标地址与本地网络相匹配,数据包直接送达目标。
间接路由:目标地址不在本地网络,数据包通过默认网关或其他路由器转发。
路由表包含多个条目,每个条目描述了一个网络地址和对应的下一跳信息。路由表决定了数据包从源到目的地的路径
网络接口层
网络接口层是 TCP/IP 模型的最底层(对应 OSI 模型的 数据链路层 + 物理层),负责在 物理网络介质(如以太网、Wi-Fi、光纤) 上传输数据帧(Frame),并管理 设备间的直接通信。
子层细分(若按5层模型):
LLC(逻辑链路控制):为上层(网络层)提供统一接口,屏蔽不同物理介质的差异;实现流量控制和错误检测(通过FCS)。
MAC(介质访问控制):定义 如何访问物理介质(如以太网的CSMA/CD、Wi-Fi的CSMA/CA);管理 MAC地址(48位或64位硬件地址)。
数据单位:帧(Frame)。
关键协议:
ARP(地址解析协议):作用:将IP地址解析为MAC地址
MTU(最大传输单元):定义:单次传输的最大数据帧大小(以太网默认1500字节)。
数据封装流程
1.应用层生成HTTP请求 → 2. 传输层加TCP头(端口号) → 3. 网络层加IP头(源/目的IP) → 4. 链路层加帧头(MAC地址) → 通过物理介质传输。
网络接口
网络接口是计算机或网络设备与物理传输介质(如网线、光纤、无线信号)之间的硬件和软件连接点,负责数据的发送和接收。它是网络通信的基础,直接影响网络连接的稳定性、速度和安全性。
网络接口基于固件和拓扑的命名规则:
命名格式为:
<类型前缀><位置标识>
(1)类型前缀
前缀 | 设备类型 | 示例 |
---|---|---|
en | 以太网(Ethernet) | eno1 , ens3 |
wl | 无线局域网(WLAN) | wlp4s0 |
ww | 无线广域网(WWAN) | wwp0s0 |
(2)位置标识
标识符 | 含义 | 示例 |
---|---|---|
oN | 板载设备(Onboard),N 为固件提供的索引号 | eno1 (板载网卡1) |
sN | PCI热插拔插槽(Slot N )中的设备 | ens3 (插槽3) |
pMsN | 位于PCI总线M 、插槽N 的设备(p =PCI, s =Slot) | enp0s1 (总线0插槽1) |
fN | 多功能设备的功能编号(如多端口网卡的子接口) | enp0s1f0 (功能0) |
ss
最常用 5 条命令
ss
(Socket Statistics)是 Linux 上用来查看“套接字(socket)”状态的工具,定位是 取代老旧的 netstat
,速度更快、输出更细、过滤更灵活。日常排查端口监听、连接泄漏、TCP 队列、Unix 域套接字等场景都能用。
场景 | 命令 |
---|---|
查看所有监听中的 TCP 端口 | ss -lnt |
查看所有已建立的 TCP 连接 | ss -tn state established |
查看某端口被谁占用 | ss -lntp sport = :80 |
统计连接最多的远端 IP | ss -tn awk '{print \$5}' cut -d: -f1 |
只看 Unix 域套接字 | ss -lx |
对比 netstat 优势
维度 | ss | netstat |
---|---|---|
速度 | 直接读 /proc/net/tcp 等,O(1) | 遍历 /proc 再解析,O(n) |
输出列 | 支持扩展列(cgroup、skmem、tcpinfo) | 固定 |
维护状态 | iproute2 套件持续更新 | net-tools 已多年未更新 |
过滤能力 | 支持布尔表达式 | 仅 grep 二次过滤 |
nmcli命令
nmcli是 NetworkManager 的命令行管理工具,用于在 Linux 系统中配置和管理网络连接(有线、无线、VPN等)。它提供比传统工具(如 ifconfig、ip)更高级的功能,支持动态网络配置和自动化管理。
功能 | 说明 |
---|---|
连接管理 | 创建、修改、启用/禁用网络连接(如Wi-Fi、以太网)。 |
设备控制 | 查看和管理物理/虚拟网络设备(如网卡、Wi-Fi适配器)。 |
状态监控 | 实时显示网络连接状态、IP地址、信号强度等。 |
高级配置 | 支持静态IP、DHCP、DNS、路由、绑定(Bonding)、桥接(Bridging)等。 |
自动化脚本 | 适合通过脚本或自动化工具(如Ansible)批量管理网络。 |