十六、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-9A-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五层模型中,TCPUDP 协议属于哪一层?

题目三:二进制转十进制

将二进制数 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.0172.31.255.255172.32.x.x 已超出这个范围。

答案八:

会发送给网关

答案九:

传输层:段 (Segment) 网络层:包 (Packet) 数据链路层:帧 (Frame)

答案十:
1010 1100 -> 分组 10101100
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教程

相关推荐
shylyly_2 小时前
Linux-> TCP 编程2
linux·服务器·网络·tcp/ip·松耦合·command程序
迎風吹頭髮3 小时前
UNIX下C语言编程与实践33-UNIX 僵死进程预防:wait 法、托管法、信号忽略与捕获
c语言·网络·unix
upgrador3 小时前
操作系统命令:Linux与Shell(Operating System & Command Line, OS/CLI)目录导航、文件操作与日志查看命令实践
linux·ubuntu·centos
夜月yeyue3 小时前
多级流水线与指令预测
linux·网络·stm32·单片机·嵌入式硬件
xxtzaaa3 小时前
抖音私密账号显示IP属地吗?能更改IP么?
网络·网络协议·tcp/ip
IvanCodes4 小时前
十五、深入理解 SELinux
linux·运维·服务器
云博客-资源宝4 小时前
【防火墙源码】WordPress防火墙插件1.0测试版
linux·服务器·数据库
qq_479875434 小时前
systemd-resolved.service实验实战2
linux·服务器·网络
CS Beginner6 小时前
【Linux】安装配置mysql中出现的问题2
linux·mysql·adb