mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4
1845 字
8 分钟
Linux 网络编程(1):网络基础模型

网络基本模型#

ISO/OSI 七层模型#

层次核心职责示例
7 应用层为应用程序提供网络通信功能HTTP、HTTPS、FTP、DNS、DHCP、Telnet、SMTP、SSH
6 表示层统一数据表示加密/解密、压缩/解压、图片与视频编解码
5 会话层建立、维护、终止会话Session 会话管理、登录验证、断点续传
4 传输层端到端进程通信TCP、UDP、端口、Socket;线程作为补充知识
3 网络层跨网络寻址与路由IP 地址、路由器、防火墙
2 数据链路层同一链路内的帧传输MAC 地址、交换机、网卡
1 物理层传输原始比特网线、电缆、光纤、电信号、光信号

封装与解封装

发送端:应用数据
↓ 应用/表示/会话处理
↓ 传输层加入协议、端口等信息
↓ 网络层加入 IP 寻址信息
↓ 数据链路层加入 MAC 等链路信息
↓ 物理层转换为电/光信号
接收端:按相反方向逐层解析,最终交给目标应用程序

应用层#

协议端口主要用途
HTTP80超文本传输、访问网页明文传输,安全性较低
HTTPS443安全的网页传输HTTP 加入 SSL/TLS 加密,更安全
FTP21文件传输适合传输文件
DNS53域名解析将易记域名解析为 IP 地址
DHCP68动态网络配置动态分配 IP 等网络参数
Telnet23远程登录
SMTP25邮件发送
SSH22安全远程登录

标准 DHCP 通信通常使用服务器 67、客户端 68

上层协议会使用下层协议

  • HTTP/HTTPS 通常使用 TCP。
  • FTP 使用 TCP。
  • DNS 可使用 UDP,也可在特定场景使用 TCP。
  • 不能把各协议看成完全孤立;协议所属层次决定它向下使用哪些服务。

表示层#

数据加密与解密

  • 发送前加密,接收后解密。
  • 通信双方需要匹配的算法与密钥。
  • 目的:避免开放网络中的数据被直接读取或篡改。

数据压缩与解压

  • 减少数据量,提高传输效率、节省流量。
  • 用户即使没有手动压缩,应用程序也可能在后台自动完成压缩。

图片/视频编解码

  • 对图片、音视频进行编码、压缩、传输和解码。
  • 典型场景:短视频、直播、视频会议、无人机图传、车机视频等。
  • 实时音视频依赖编解码能力和足够的网络带宽、低延迟。

会话层#

Session 会话管理

一次会话可以理解为客户端与服务器建立联系、维持交互,直到连接或登录状态结束。

  • 登录后在同一网站不同页面间跳转,不应每次重新输入账号密码。
  • 浏览器/客户端维护本次会话状态,服务器验证用户身份。
  • 关闭页面、退出登录或断开联系,可视为会话结束或状态变化。

断点续传

文件下载中断后,网络恢复时从已完成位置继续,而不是重新从零下载。

已下载部分 + 记录进度 → 中断 → 恢复网络 → 从断点继续

传输层#

数据从应用程序进入操作系统后,由传输层负责进程之间的端到端通信。

  • TCP、UDP;
  • 端口;
  • Socket;
  • 线程(操作系统并发)

IP 与端口的分工

  • IP 地址:标识网络中的设备/网络接口。
  • 端口:在目标主机中定位具体进程或网络服务。

数据到达目标设备后,操作系统根据目的端口将其交给浏览器、微信、游戏等对应进程。

端口的重要规则

  • 一个进程可以使用多个端口。
  • 简化:同一主机、同一传输协议下,一个端口同一时刻只能由一个进程占用。
  • 端口只要求在本机范围内不冲突,不同设备可以使用相同端口。
  • 因此IP 是跨网络定位设备的标识;端口是设备内部定位进程的标识。

Socket(套接字)与五元组

Socket 是网络通信的基础接口。描述一次通信需要五项关键信息:

协议 + 源 IP + 源端口 + 目的 IP + 目的端口

UDP 与 TCP 对比

对比项UDPTCP
全称/类型用户数据报协议传输控制协议
连接方式无连接面向连接
可靠性较低;协议本身不保证重传较高;通过确认、重传等机制保证最终交付
数据形式数据报字节流
效率与开销效率高、开销小、延迟低开销较大、通常速度相对慢
典型场景直播、语音/视频聊天、在线游戏、广播类业务文件传输、邮件、网页等重视完整性的业务

进程、线程与并发

  • 进程:运行中的程序,是资源分配的重要单位。
  • 线程:进程内的执行单元,用于在同一进程中处理多个任务。
  • 单核 CPU 通过很短的时间片快速切换,使用户感觉多个任务“同时”运行,这是并发。
  • 多核 CPU 可让不同任务在不同核心上真正同时执行,属于并行。
  • 例子:下载多个文件时,可由多个线程分别处理不同文件或不同任务。

网络层#

IP 地址用于在网络中定位设备或网络接口。

查询本机配置

Windows:

Terminal window
ipconfig

网卡与 IP

  • 网卡是连接网络的硬件基础,可分为有线网卡和无线网卡。
  • 网卡存在不代表始终有 IP;连接网络后才会通过 DHCP 或静态配置获得 IP。
  • 虚拟机软件可能创建虚拟网卡。

数据链路层与网络设备#

MAC 地址与网卡

  • MAC 地址与网卡关联,网卡出厂时获得全球唯一标识
  • 数据链路层在局部链路中使用 MAC 地址识别设备。

交换机

  • 工作在数据链路层。
  • 按目的 MAC 地址转发数据帧。
  • 维护 MAC 地址与物理端口的对应表。
  • 设备接入交换机后,交换机学习其 MAC 地址所在端口;收到数据后查询表并从对应端口转发。

路由器

  • 工作在网络层。
  • 按目的 IP 地址和路由信息转发数据包。
  • 主要负责不同网络之间的通信,可跨越多个网络/路由器进行转发。

物理层#

物理层把 0/1 比特转换为可在介质上传输的物理信号:

  • 网线/电缆:使用电信号,高低电平可表示 0 和 1。
  • 光纤:使用光信号,适合高速和远距离传输。
  • 电信号远距离传输会衰减,需要中继或信号增强。
  • 光纤通常带宽更高、损耗更小,因此推动了网络速度提升。

网络硬件能力提升后,直播、视频通话、实时导航、在线游戏等软件功能才更容易获得低延迟和高质量体验。

分享

如果这篇文章对你有帮助,欢迎分享给更多人!

Linux 网络编程(1):网络基础模型
https://joyanblog.com/posts/linux-network-programming-01-network-model/
作者
Joyan
发布于
2026-07-16
许可协议
CC BY-NC-SA 4.0

目录