当前位置:首页 > 技术 > 正文内容

Linux网络架构与进程管控详解

访客 技术 2026年8月24日 1

网络分层模型对比

计算机网络通信依赖两种主流分层架构:OSI七层参考模型与TCP/IP四层模型。前者由国际标准化组织提出,侧重于理论框架设计;后者源于ARPANET实践,成为互联网实际运行的基础。

采用分层设计的核心价值在于模块化治理——将庞杂的通信流程拆解为功能明确的层级,各层独立演进且通过标准接口交互。这种解耦机制大幅降低了网络故障定位与协议开发的复杂度。

OSI模型层级功能映射

层级名称核心职责典型设备/实例
7应用层直接面向用户提供网络服务接口浏览器、邮件客户端、即时通讯软件
6表示层数据格式转换、加密解密、压缩解压SSL/TLS加密、JPEG/MPEG编解码
5会话层建立、维护、终止应用程序间的会话连接RPC远程调用、NetBIOS
4传输层端到端可靠或不可靠数据传输防火墙、负载均衡器
3网络层逻辑寻址与路由选择路由器、三层交换机
2数据链路层物理寻址(MAC)、帧封装、差错检测网卡、二层交换机
1物理层比特流传输、电气特性定义集线器、网线、光纤

实际部署中TCP/IP模型更为普及,原因在于OSI的会话层与表示层功能单薄,而数据链路层和网络层又过于臃肿。TCP/IP将OSI的上三层合并为应用层,下两层合并为网络接口层,形成更精简的四层结构。

核心网络协议速查

  • DNS:域名与IP地址的分布式解析系统
  • DHCP:自动化IP地址分配与管理
  • SNMP:网络设备监控与管理的标准协议
  • HTTP/HTTPS:Web内容传输,后者增加TLS加密层
  • FTP/TFTP:文件传输,后者为轻量级无认证版本
  • SMTP:电子邮件推送协议
  • TELNET/SSH:远程终端访问,SSH提供加密通道
  • ICMP:网络诊断与控制报文,ping命令的实现基础

传输层协议差异

特性TCPUDP
连接模式面向连接,三次握手建立会话无连接,直接发送数据
可靠性确认应答、重传机制、流量控制不保证送达,无重传
传输顺序按序交付,自动重组不保证顺序
资源开销头部20字节,状态维护消耗大头部仅8字节,轻量级
典型场景文件传输、网页浏览、数据库交互实时音视频、DNS查询、物联网上报

常用端口对照

端口服务说明
21ftp文件传输控制通道
22ssh加密远程登录
23telnet明文远程登录(已淘汰)
25smtp邮件发送服务
53dns域名解析(TCP/UDP双栈)
80http超文本传输
443https加密Web通信

系统端口定义存储于/etc/services,可通过检索该文件查询非常规端口对应的服务。

虚拟网络模式解析

桥接模式

虚拟机作为独立网络节点存在,拥有与宿主机同网段的IP地址。特性:可访问外网、与局域网任意主机互通、宿主机与虚拟机双向可达。

NAT模式

虚拟机共享宿主机IP进行地址转换,依赖VMware的vmnet8虚拟网卡。特性:可访问外网、仅与宿主机单向通信、局域网其他主机不可直接访问虚拟机。

仅主机模式

虚拟机与宿主机及同模式虚拟机构成隔离网络。特性:无外网访问能力、宿主机与虚拟机互通、同宿主机下虚拟机间可通信。

网络配置实操

查看网络接口状态

$ ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 ...
    inet 127.0.0.1/8 scope host lo
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> ...
    link/ether 00:0c:29:13:a1:49
    inet 192.168.4.190/24 brd 192.168.4.255 scope global eth0

持久化网卡配置

编辑/etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.21.129
NETMASK=255.255.255.0
GATEWAY=192.168.21.2
DNS1=8.8.8.8
DNS2=8.8.4.4
TYPE=Ethernet

临时添加辅助IP

$ ip address add 192.168.4.191/24 dev eth0

套接字连接状态监控

ss命令替代传统netstat,常用组合:

选项功能
-tTCP协议筛选
-uUDP协议筛选
-n数字格式显示端口
-l仅监听状态
-a全部连接
-p显示关联进程
$ ss -tnlp
State   Recv-Q  Send-Q  Local Address:Port  Peer Address:Port
LISTEN  0       128     0.0.0.0:22          0.0.0.0:*

进程管理机制

程序是静态的二进制文件,进程则是程序的运行实例,具有完整的生命周期:创建、就绪、运行、阻塞、终止。

进程创建机制

Linux通过fork()系统调用实现进程派生。父进程复制自身地址空间生成子进程,子进程继承父进程环境变量、打开的文件描述符等属性,但获得独立的进程标识符(PID)。

系统首个进程PID为1:CentOS 6及之前为init,CentOS 7起替换为systemd

僵尸进程成因

子进程终止后,内核保留其退出状态供父进程查询。若父进程未调用wait()waitpid()回收,子进程残留的描述符将持续占用系统资源,形成僵尸状态(Z)。

进程状态码解读

状态含义
R运行或就绪,占用/等待CPU
S可中断睡眠,等待事件完成
D不可中断睡眠,通常为IO操作
T被信号暂停或调试跟踪
Z僵尸进程,等待父进程收尸

附加修饰符:<高优先级、N低优先级、s会话首领、l多线程、+前台进程组。

进程查看命令

ps aux 输出字段说明:

  • USER:进程启动用户
  • PID:进程唯一标识
  • %CPU/%MEM:资源占用百分比
  • VSZ:虚拟内存大小(KB)
  • RSS:常驻物理内存(KB)
  • TTY:关联终端
  • STAT:状态码组合
  • START:启动时间
  • TIME:累计CPU时间
  • COMMAND:执行命令
$ ps aux | head -5
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.3 125328  3832 ?        Ss   09:20   0:01 /usr/lib/systemd/systemd
root         2  0.0  0.0      0     0 ?        S    09:20   0:00 [kthreadd]

方括号包裹的为内核线程。

系统负载评估

$ uptime
 14:30:00 up 5 days, 2 users, load average: 0.52, 0.58, 0.55

load average表示1/5/15分钟内可运行与不可中断状态的平均进程数。评估标准:单核负载≤3为健康,≥5则性能吃紧。双核系统负载6即满载。

动态进程监控

top交互式视图解析:

top - 14:35:00 up 5 days,  3 users,  load average: 0.50, 0.55, 0.52
Tasks: 120 total,   1 running, 119 sleeping,   0 stopped,   0 zombie
%Cpu(s):  2.0 us,  1.0 sy,  0.0 ni, 96.5 id,  0.5 wa,  0.0 hi,  0.0 si
MiB Mem :   2048.0 total,    512.0 free,    768.0 used,    768.0 buff/cache
MiB Swap:   2048.0 total,   2048.0 free,      0.0 used

关键指标:us(用户空间)、sy(内核空间)、id(空闲)、wa(IO等待)。内存行显示总量、空闲、已用、缓存占用。

文件与端口关联分析

lsof列举进程打开的文件句柄、网络连接:

$ lsof -i :22
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd    1523 root    3u  IPv4  28521      0t0  TCP *:ssh (LISTEN)
sshd    1523 root    4u  IPv6  28530      0t0  TCP *:ssh (LISTEN)

常用场景:定位端口占用进程、查看进程打开的文件、追踪删除但仍被引用的文件。

标签: TCP/IPOSI模型

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Mac 安装 Node.js 指南

方法一:通过官网安装包(最简单,适合初学者)如果你只是想快速安装并开始使用,这是最直接的方法。访问 Node.js 官网。页面会显示两个版本:LTS (Recommended For Most Users):长期支持版,最稳定。建议选这个。Current:最新特性版,包含最新功能但可能不够稳定。下载 .pkg 安装包并运行。按照安装向导点击“下一步”即可完成。方法二:使用 Homebrew 安装(...

Dom\HTML_NO_DEFAULT_NS 的副作用:自动加闭合标签

在使用Dom\HTMLDocument时,Dom\HTML_NO_DEFAULT_NS 将禁止在解析过程中设置元素的命名空间, 此设置是为了与DOMDocument向后兼容而存在的。当使用它时,已知的一个副作用就是:自动加闭合标签例如 </img> 为什么会这样?当你使用:Dom\HTML_NO_DEFAULT_NS文档会变成 无命名空间模式,此时内部更接近 XML...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。