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 等)均支持。数据通信的本质是两个协议栈之间的通信。


