十六、Linux网络基础理论 - OSI模型、TCP/IP协议与IP地址详解
在深入学习 Linux 具体的网络配置命令之前,理解其背后的网络通信原理是至关重要的。这不仅能帮助我们更好地理解为何要进行那些配置,还能在遇到网络故障时,提供清晰的排错思路。本章,我们将探索网络世界的通用语言——OSI七层模型和TCP/IP协议族,并详细解析网络通信的“门牌号”——IP地址及其相关概念。
思维导图
一、网络模型:OSI七层协议
OSI (Open Systems Interconnection) 模型 是一个理论上的概念性框架,由国际标准化组织 (ISO) 提出。它将复杂的网络通信过程 逻辑上 划分为七个独立的层次,每一层都负责特定的功能,并为其上层提供服务。
OSI 七层模型详解
层次 | 名称 | 核心功能 | 典型协议/设备 |
---|---|---|---|
第7层 | 应用层 | 为应用程序提供网络服务接口,处理特定的应用程序细节。 | HTTP, FTP, SMTP, DNS / 应用网关 |
第6层 | 表示层 | 数据的格式化、编码/解码、加密/解密、压缩/解压。 | JPEG, ASCII, SSL/TLS |
第5层 | 会话层 | 建立、管理和终止不同机器上应用程序之间的会话或连接。 | NetBIOS, RPC |
第4层 | 传输层 | 提供端到端的数据传输服务,确保数据的可靠性 (TCP) 或高效性 (UDP)。 | TCP, UDP |
第3层 | 网络层 | 逻辑寻址 (IP地址) 和路由选择,决定数据跨网络的最佳路径。 | IP, ICMP, OSPF / 路由器 |
第2层 | 数据链路层 | 物理寻址 (MAC地址),在相邻节点间传输数据帧,并进行差错检测。 | Ethernet, PPP / 交换机, 网桥 |
第1层 | 物理层 | 通过物理介质 (如网线、光纤) 传输原始的比特流 (0和1)。 | 网线, 集线器, 中继器 |
二、TCP/IP 协议族 - 事实上的网络标准
虽然 OSI 模型理论完备,但在实际的互联网世界中,广泛应用的是 TCP/IP 协议族。它通常被描述为一个五层 (或四层) 模型,是 OSI 模型的一个简化和实践版本。
TCP/IP 五层模型
层次 | 名称 | 对应OSI层 | 核心功能与协议 |
---|---|---|---|
应用层 | Application Layer | 应用层, 表示层, 会话层 | 负责应用程序间的数据交换。如 HTTP (网页), FTP (文件传输), DNS (域名解析)。 |
传输层 | Transport Layer | 传输层 | 提供端到端的数据传输。核心是 TCP (可靠连接) 和 UDP (不可靠但快速)。 |
网络层 | Network Layer | 网络层 | 负责数据包的寻址 (IP) 和路由。核心是 IP (互联网协议)。 |
数据链路层 | Data Link Layer | 数据链路层 | 负责在物理网络上传输数据帧 (Frame)。如 Ethernet , MAC地址 。 |
物理层 | Physical Layer | 物理层 | 负责传输原始比特流。如 网线 , 光纤 。 |
三、进制转换 - 理解网络地址的基础
IP地址和MAC地址的底层表示是二进制,但为了便于人类读写,我们使用十进制和十六进制。
二进制转十进制: 按权相加。
示例:11000000
-> 1*2⁷ + 1*2⁶ = 128 + 64 = 192
。
十进制转二进制: 短除法,除2取余,逆序排列。
十六进制 (Hexadecimal): 由 0-9
和 A-F
(代表10-15) 组成。常用于表示 MAC 地址和 IPv6 地址。
二进制与十六进制转换: 核心技巧是四位二进制对应一位十六进制。
二进制 | 十六进制 | 二进制 | 十六进制 |
---|---|---|---|
0000 | 0 | 1000 | 8 |
0001 | 1 | 1001 | 9 |
0010 | 2 | 1010 | A |
0011 | 3 | 1011 | B |
0100 | 4 | 1100 | C |
0101 | 5 | 1101 | D |
0110 | 6 | 1110 | E |
0111 | 7 | 1111 | F |
示例:转换二进制 1101101011111110
1. 从右向左,四位一组进行划分: 1101 1010 1111 1110
2. 分别转换每一组: 1101
-> D
, 1010
-> A
, 1111
-> F
, 1110
-> E
3. 结果: DAFE
四、IP 地址
IP地址是分配给网络上每台设备的唯一逻辑地址,用于标识设备并进行通信。
1. IPv4 地址
格式: 一个 32
位的二进制数,通常被分为4个 8
位的字节 (Octet),每个字节用十进制表示,并用点 .
分隔。
组成: 由网络ID (标识局域网) 和主机ID (标识局域网中的设备) 组成。
子网掩码 (Subnet Mask): 用于区分IP地址中的网络ID和主机ID。其二进制形式中,连续的 1
对应网络ID部分,连续的 0
对应主机ID部分。
- 私有IP地址: 只能在局域网内部使用的地址段,不能在公共互联网上路由。
类别 | 私有IP地址范围 |
---|---|
A类 | 10.0.0.0 - 10.255.255.255 |
B类 | 172.16.0.0 - 172.31.255.255 |
C类 | 192.168.0.0 - 192.168.255.255 |
2. IPv6 地址
为了解决IPv4地址耗尽的问题,IPv6 应运而生。
格式: 一个 128
位的二进制数,通常被分为8个 16
位的段,每个段用十六进制表示,并用冒号 :
分隔。
示例: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
IPv6 地址压缩规则:
1. 省略前导零: 每个段内的前导零可以省略。0db8
-> db8
, 0370
-> 370
。
2. 压缩连续零段: 地址中 最长的一串 连续的零段可以被一个双冒号 ::
替代。注意: 一个地址中 ::
只能出现一次。
代码案例 (地址压缩):
原始地址:
fe80:0000:0000:0000:0202:b3ff:fe1e:8329
省略前导零:fe80:0:0:0:202:b3ff:fe1e:8329
压缩连续零:fe80::202:b3ff:fe1e:8329
特殊 IPv6 地址:
::1
: 回环地址,等同于IPv4的127.0.0.1
。
fe80::/10
: 链路本地地址,用于同一链路上的节点通信,不会被路由器转发。
3. 网关
网关,通常也称为默认网关 (Default Gateway),是连接一个局域网与另一个网络 (如互联网) 的设备,通常是路由器。
作用: 当一台主机需要与 不同网段 的主机通信时,它会将数据包发送给网关,由网关负责将数据包 转发 出去。
配置: 网关地址必须与本机IP地址在同一个网段内。
练习题
题目一:OSI 模型
在OSI七层模型中,路由器主要工作在哪一层?交换机主要工作在哪一层?
题目二:TCP/IP 模型
在TCP/IP五层模型中,TCP
和 UDP
协议属于哪一层?
题目三:二进制转十进制
将二进制数 11100010
转换为十进制数。
题目四:IP地址组成
一个完整的IPv4地址由多少位二进制数组成?一个完整的IPv6地址呢?
题目五:子网掩码的作用
子网掩码 255.255.0.0
对应的二进制形式是什么?它的主要作用是什么?
题目六:网络ID计算
给定IP地址 172.16.30.40
和子网掩码 255.255.255.0
,它的网络ID是多少?主机ID是多少?
题目七:私有IP判断
以下哪个IP地址不属于私有IP地址段?
A. 10.1.1.1
B. 192.168.10.10
C. 172.32.0.1
D. 172.20.20.20
题目八:网关的作用
你的电脑IP是 192.168.1.10
,你要访问的服务器IP是 192.168.2.10
。你的电脑会将数据包直接发送给服务器,还是发送给网关?为什么?
题目九:OSI 数据单元
在OSI模型中,传输层处理的数据单元通常叫什么?网络层呢?数据链路层呢?
题目十:二进制与十六进制转换
将二进制数 10101100
转换为十六进制数。
题目十一:MAC地址
MAC地址工作在哪一层?它通常用哪种进制表示?
题目十二:IPv6 地址压缩
请将IPv6地址 2001:0db8:0000:0000:00ab:ff00:0042:8329
进行最大限度的压缩。
题目十三:网络通信
两台主机要在同一个局域网内直接通信,它们的IP配置需要满足哪两个基本条件?
题目十四:特殊IP地址
IPv6 中的回环地址是什么?
题目十五:子网掩码的另一种表示法
子网掩码 255.255.255.0
也可以用 /24
这样的CIDR表示法来表示。请问 /16
对应的点分十进制子网掩码是什么?
答案与解析
答案一:
路由器 主要工作在网络层 (第3层)。 交换机 主要工作在数据链路层 (第2层)。 解析: 路由器根据IP地址进行寻址和路由。交换机根据MAC地址转发数据帧。
答案二:
传输层
答案三:
1*128 + 1*64 + 1*32 + 0*16 + 0*8 + 0*4 + 1*2 + 0*1 = 128 + 64 + 32 + 2 = 226
。
答案四:
IPv4: 32 位。 IPv6: 128 位。
答案五:
二进制形式:11111111.11111111.00000000.00000000
主要作用:区分一个IP地址中哪些位属于网络ID,哪些位属于主机ID。
答案六:
网络ID: 172.16.30.0
主机ID: 40
答案七:
C. 172.32.0.1
解析: B类私有地址范围是
172.16.0.0
到172.31.255.255
。172.32.x.x
已超出这个范围。
答案八:
会发送给网关。
答案九:
传输层:段 (Segment) 网络层:包 (Packet) 数据链路层:帧 (Frame)
答案十:
1010 1100
-> 分组 1010
和 1100
1010
-> A
1100
-> C
结果:AC
答案十一:
MAC地址工作在数据链路层 (第2层)。 它通常用十六进制表示 (例如 00:0A:95:9D:68:16
)。
答案十二:
2001:db8::ab:ff00:42:8329
答案十三:
1.它们的网络ID必须相同 (即在同一个子网内)。
2.它们的主机ID必须唯一 (即IP地址不能冲突)。
答案十四:
::1
答案十五:
255.255.0.0
日期:2025年10月7日
专栏:Linux教程