跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Shell / Bash

Linux 网络基础:协议、模型与地址管理详解

Linux 网络基础涵盖网络发展阶段、协议分层模型及地址管理机制。文章解析了从独立模式到广域网的演进,对比 OSI 七层与 TCP/IP 五层模型,阐述数据封装与分用原理。重点说明局域网碰撞域概念及跨网段通信流程,最后介绍 IP 与 MAC 地址查看方法,适合初学者构建网络知识体系。

SecGuard发布于 2026/3/23更新于 2026/9/1056 浏览
Linux 网络基础:协议、模型与地址管理详解

Linux 网络基础:协议、模型与地址管理详解

一、网络的发展

网络演进大致经历了以下几个阶段:

1. 独立模式

早期计算机各自独立运行,没有连接。

2. 网络互联

多台计算机连接在一起,实现数据共享。业务协同需要时,可将数据集中存储在服务器中,各终端通过服务器获取所需信息。

3. 局域网 (LAN)

利用局域网和路由器将区域内的计算机相互联系,通信数量显著增加。

交换机:用于完成局域网内数据转发的设备。所谓数据转发,即在局域网内将数据从一台电脑传输到另一台电脑。

路由器:负责连接不同的局域网,主要完成数据的路由转发功能。即根据路由信息,将数据包从一个局域网转发到另一个局域网。

4. 广域网 (WAN)

广域网的作用是将远隔千里的计算机都连接起来。多个局域网通过路由器连接构成广域网。其实广域网就是一个巨大的局域网,"局域网"和"广域网"只是相对概念。

二、协议

1. 协议的概念

协议是一种约定,经过多方沟通协商创建出的解决方案,达成双方共识。要实现通信,必须遵循约定的协议。从语言角度看,协议就是双方都认识的一种结构化类型,双方的操作系统可以通过同一种协议进行通信。

例如:双方约定暗号,0 代表收到,1 代表吃饭等。

规定协议的好处在于统一标准,通信双方可以通过协议识别对方,提高通信的效率和可靠性。计算机之间传递不同信息,需约定好数据格式。

2. 协议分层

整个网络协议栈被划分为层状结构的小模块,具体有 OSI 七层参考模型和 TCP/IP 五层参考模型。

  • 协议栈是分层的,每层通信双方都有对应的协议,同层之间互相可识别。
  • 协议本质是软件,设计为层状结构是为了模块化、解耦合,方便维护和扩展。
  • 分层最大好处在于封装,修改或替换某层协议后,通信双方不受影响。

纯软件的网络协议分为四层,每一层解决因通信距离变长产生的问题:

  • 应用层:解决如何使用送达的数据。
  • 传输层:解决报文在传输过程中出现错误、数据丢失的问题。
  • 网络层:解决转发中的路径选择和目标主机定位。
  • 数据链路层:解决如何将数据交给下一个主机。

3. OSI 七层模型

OSI(Open System Interconnection)七层网络模型是一个逻辑上的定义和规范,把网络从逻辑上分为 7 层。每一层都有相关物理设备对应,如路由器、交换机。

其最大优点是将服务、接口和协议明确区分,概念清楚,理论完整。通过七个层次化结构模型使不同系统、不同网络之间实现可靠通讯。但由于复杂且不实用,我们通常按 TCP/IP 四层模型讲解。

4. TCP/IP 五层模型

TCP/IP 是一组协议的代名词,包含许多协议,组成了 TCP/IP 协议簇。它采用了 5 层的层级结构,每一层都调用下一层提供的网络来完成自己的需求。

  • 物理层:负责光/电信号的传递方式。如双绞线、同轴电缆、光纤、WiFi 电磁波等。集线器 (Hub) 工作在物理层。
  • 数据链路层:负责设备之间的数据帧传送和识别。如网卡驱动、帧同步、冲突检测、差错校验等。交换机 (Switch) 工作在数据链路层。
  • 网络层:负责地址管理和路由选择。如 IP 协议,通过 IP 地址标识主机,规划传输线路。路由器 (Router) 工作在网络层。
  • 传输层:负责两台主机之间的数据传输。如 TCP,确保数据可靠从源主机发送到目标主机。
  • 应用层:负责应用程序间沟通,如 SMTP、FTP、Telnet 等。网络编程主要针对应用层。

可以看出 OS 贯穿整个网络协议栈,所有操作系统(Windows, Linux, macOS 等)均支持。数据通信的本质是两个协议栈之间的通信。

总结
  • 应用层:解决传输数据的目的,进行数据分析处理,达到业务目的。
  • 传输层和网络层:处理数据传输遇到的问题,保证可靠性。
  • 数据链路层和物理层:负责数据真正传输过程,完成以太网和局域网通信。

下三层处理通信细节,应用层处理业务细节。一般而言,主机内核实现了传输层到物理层,路由器实现了网络层到物理层,交换机实现了数据链路层到物理层,集线器只实现了物理层。

三、网络传输基本流程

局域网内的主机通过路由器和交换机连接,通信本质是两个协议栈之间的交互。以下是两台主机通过 TCP/IP 协议进行文件传输的过程。

1. 数据的封装和分用

不同协议层对数据包有不同称谓:传输层叫段 (segment),网络层叫数据报 (datagram),链路层叫帧 (frame),应用层叫请求和响应。

应用层数据通过协议栈发送时,每层都要加上一个数据首部 (header),称为封装 (Encapsulation)。报头信息包含首部长度、载荷长度、上层协议类型等。

数据封装成帧发到传输介质,到达目的主机后每层剥掉相应首部,根据"上层协议字段"将数据交给对应上层协议处理。

问题:每一协议层的数据包是什么? 答案:数据包 = 报头 + 有效载荷

问题:数据如何封装? 当应用层想将一段数据交给另一主机时,TCP/IP 软件的四层协议从上至下分别对该数据包进行封装。

  1. 应用层添加应用层协议报头,交给传输层。
  2. 传输层添加传输层协议报头,交给网络层。
  3. 网络层添加网络层协议报头,交给链路层。
  4. 链路层添加链路层协议报头,封装完毕。

问题:协议的共性是什么? 几乎所有协议都要解决两个问题:

  1. 如何将报头和有效载荷分开(解包)。
  2. 确认有效载荷交付给上层哪个协议(分用)。

报头本质也是数据,一般通过位段实现;有效载荷则是除当前新增报头以外的数据。

问题:数据包如何分用? 对端主机收到数据包后,经过 TCP/IP 四层协议进行解包。

  1. 链路层分离链路层报头,剩余数据交给网络层。
  2. 网络层分离网络层报头,剩余数据交给传输层。
  3. 传输层分离传输层报头,剩余数据交给应用层。
  4. 应用层分离应用层报头,解包分用彻底完成。

问题:如何分离报头与有效载荷? 需知道报头和有效载荷的界限。因为报头在最前端,只要知道报头大小即可确定界限。 获取方式有两种:

  1. 定长报头:包头大小固定,收发双方约定,如数据报。
  2. 自描述字段:报头中提供表示长度的字段,如报文长度。

2. 碰撞

问题:什么是碰撞? 局域网中,若多台主机同时发送数据,数据互相干扰,称为数据碰撞。

问题:如何判断是否发生碰撞? 采用广播方式发送,主机也能收到自己发送的数据。对比收到的数据和之前发送的数据,若不一致,说明发生了碰撞。

问题:发生碰撞后如何处理? 等待一段时间后再次发送。从系统角度看,局域网是临界资源,碰撞检测和避免本质是互斥访问。

问题:主机如何判断数据是否是发给自己的? 数据包带有源 MAC 和目的 MAC 地址。主机收到后对比目的 MAC 地址和自己的 MAC 地址,不一致则丢弃。

局域网通信原理总结:局域网中存在多台主机直接通信,可能发生数据碰撞,影响其他主机通信,因此一个局域网可看作一个碰撞域。碰撞后的数据即为垃圾数据量。局域网内所有主机都能收到发出去的数据,包括发送方本身。发送方会将收到的数据与发出数据对比,若不同代表发生碰撞。碰撞后不会立即重写发送,而是等待一段时间再重发,这就是碰撞避免算法。交换机在局域网中的作用是划分碰撞域,降低碰撞几率。

3. 跨网络通信

跨网络通信指分别处于不同局域网的两台主机之间通信。两个局域网之间通过路由器通信,中间可能经过多台路由器。

问题:路由器如何知道数据应该转发到哪一个局域网? 路由器通过 IP 地址确定转发方向。互联网中每台主机有唯一 IP 地址。数据封装时,网络层报头包含源 IP 和目的 IP。 数据每经过一个路由器,路由器分析上一站来源,根据目的 IP 选择下一站。最终能走到目的地,这个一直变化的地址是 MAC 地址。 数据包在路由器中不断调整 MAC 帧协议报头,源 MAC 和目的 MAC 不断变化,但源 IP 和目的 IP 不变。IP 层往上的数据报头信息不变,变的是 IP 层往下的协议报头信息。 IP 地址的意义在于路径选择,只要有源 IP 和目的 IP,路由器就能指定越来越靠近目的地的下一站,无需关心底层通信协议差异。

四、网络中的地址管理

1. IP 地址

IP 协议有两个版本:IPv4 和 IPv6。默认指 IPv4。

IP 地址用来标识网络中唯一的一台主机。IPv4 是 4 字节(32 位)整数,IPv6 是 16 字节(128 位)整数。通常使用"点分十进制"字符串标识,如 192.168.0.1,每个数字范围 0-255。IP 地址可手动静态分配,也可由路由器动态分配。

Linux 中查看 IP 地址 输入 ifconfig 指令查看当前主机配置信息,其中 inet 对应的就是当前主机的 IP 地址。

Windows 中查看 IP 地址 在命令行中输入 ipconfig 指令。

Linux 中查看 MAC 地址 输入 ifconfig 指令,其中 ether 对应的就是当前主机的 MAC 地址。

目录

  1. Linux 网络基础:协议、模型与地址管理详解
  2. 一、网络的发展
  3. 1. 独立模式
  4. 2. 网络互联
  5. 3. 局域网 (LAN)
  6. 4. 广域网 (WAN)
  7. 二、协议
  8. 1. 协议的概念
  9. 2. 协议分层
  10. 3. OSI 七层模型
  11. 4. TCP/IP 五层模型
  12. 总结
  13. 三、网络传输基本流程
  14. 1. 数据的封装和分用
  15. 2. 碰撞
  16. 3. 跨网络通信
  17. 四、网络中的地址管理
  18. 1. IP 地址

更多推荐文章

查看全部
  • AIGC 工作流解构:AI 短剧生产管线从手动调用到 Agent 自动化演进
  • 我用 AI 啃完 XP.1024 更新日志,比以往省心太多
  • MacOS 基于 Docker 安装 OpenClaw 并配置飞书机器人
  • C++ STL 常用容器核心用法解析
  • Python 中的多线程是什么?如何实现?
  • OpenAI gpt-oss 开源模型本地部署教程
  • 小白如何入门网络安全?学习路线与方向指南
  • 6 款免费学术论文降低 AI 检测率工具实测
  • 本地项目首次推送至 Git 远程仓库指南
  • GitHub Copilot 上下文工程实战指南与 7 个核心技巧
  • Stable Diffusion WebUI 本地安装与配置教程
  • 滑动窗口算法实战:最大连续 1 与最小操作数
  • 字符串模拟题精选:思维与实现解析
  • MySQL 事务核心概念与隔离级别实战
  • 使用 CopilotKit 快速集成前端 AI 助手实战指南
  • 从一句话到一张图:看懂 Stable Diffusion 的“潜空间扩散”生成流程(配图详解)
  • Rust 与 WebAssembly 深度实战:浏览器与 Node.js 高性能应用
  • 2026 年 3 月全球 AI 前沿动态:模型、智能体与产业融合
  • OpenClaw 配置飞书机器人完整指南
  • 自然语言处理技术与应用实践

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online