十五、Linux网络基础理论 - OSI模型、TCP/IP协议与IP地址详解

0 阅读9分钟

在深入学习 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 地址。

二进制与十六进制转换: 核心技巧是四位二进制对应一位十六进制。

二进制十六进制二进制十六进制
0000010008
0001110019
001021010A
001131011B
010041100C
010151101D
011061110E
011171111F

示例:转换二进制 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.1fe80::/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