Linux网络服务(一)——计算机网络参考模型与子网划分
文章目录
- 前言
- 一、分层思想
- 1.1 分层的基本概念
- 1.2 点到点与端到端通信的区别
- 二、OSI参考模型
- 2.1 OSI七层模型的结构
- 2.2 各层功能示例(以QQ为例)
- 2.3 单工,半双工和全双工
- 2.4 OSI七层模型总结
- 三、TCP/IP模型
- 3.1 TCP/IP四层与五层模型
- 3.2 TCP/IP协议族的组成
- 四、数据封装与解封装
- 4.1 封装过程
- 4.2 解封装过程
- 五、计算机的数制
- 5.1 常见数制
- 5.2 数制的计算
- 5.3 数制转换
- 5.3.1 十进制转二进制
- 5.3.1.1 方法一:除2取余法
- 5.3.1.2 方法二:权重法
- 5.3.2 二进制转十六进制
- 5.3.3 二进制转八进制
- 六、IP地址简介
- 6.1 IPv4和IPv6
- 6.2 IPv4地址分类
- 七、子网划分
- 7.1 IP地址组成结构
- 7.2 子网掩码原理
- 7.3 网络地址计算方法
- 7.4 关键计算公式
- 7.5 C类地址子网划分表
- 7.6 实用案例解析
- 7.6.1 案例1:172.16.0.0/12
- 7.6.2 案例2:192.168.100.100/26
- 总结
前言
计算机网络参考模型是理解网络通信的基础框架,它通过分层思想将复杂的网络通信过程简化为多个功能模块。同时,子网划分是网络规划中的重要技术,能够有效管理IP地址资源。
本文档综合了分层模型、OSI与TCP/IP模型的对比、数据封装与解封装过程、计算机数制转换以及子网划分等内容,旨在为读者提供清晰、系统的知识结构。
一、分层思想
1.1 分层的基本概念
分层思想通过将复杂的网络通信过程分解为多个功能相对独立的子层,简化了问题的复杂性。每一层专注于特定的功能,并通过接口与相邻层交互。
1.2 点到点与端到端通信的区别
- 点到点通信:发生在网络层及以下,是主机到主机之间的通信,通过IP地址区分不同主机。
- 端到端通信:发生在传输层,是进程到进程之间的通信,通过IP地址和端口号唯一标识一个会话。
例如:同一台计算机同时可以和很多台计算机通信,使用IP对不同的计算机加以区分。(点到点)
一台计算机上的一个程序(如qq)和很多其他计算机上的程序通信,需要使用IP+端口
才能唯一的表示一个会话。如你用QQ同时和a、b、c三个用户通信,就是用三个用户连接的IP和端口号来区分的.
二、OSI参考模型
2.1 OSI七层模型的结构
OSI模型由七层组成,从上到下依次为:
- 应用层:网络服务与最终用户的一个接口(如QQ聊天窗口)。
- 表示层:
处理数据格式
、加密和压缩(如数据翻译为二进制
)。 - 会话层:建立、管理和终止会话(如QQ建立连接)。管理是否允许不同机器上的用户之间建立会话
连接关系
。 - 传输层:定义传输数据的协议
端口号
,以及流控和差错校验(防火墙端到端
),将上层数据分片并加上端口号
封装成数据段,或通过对报文头中的端口识别,实现网络中不同主机上的用户进程之间
的数据分发。 - 网络层:进行
逻辑地址
(IP地址
)寻址,实现不同网络之间的路径选择(路由器)。 - 数据链路层:建立逻辑连接、进行
硬件(MAC)地址
寻址,提供差错校验(如交换机)。 - 物理层:负责比特流的
传输
(如网线、光纤)。报文头部和上层数据信息都是由二进制数组成的,物理层将这些二进制数字组成的比特流转换成电信号在网络中传输。
2.2 各层功能示例(以QQ为例)
- 用户在QQ界面输入文字(应用层)。
- 数据加密和解密(表示层)。
- 找到对方实体,也就是对方的qq进程,建立与对方的会话(会话层)。
- 找到对方端口,就是qq传输的信息用的是哪个端口(传输层)。
- 通过路由器要找到对方网络地址(网络层)。
- 通过物理地址找到主机(数据链路层)。
- 数据以二进制比特流传输(物理层)。
2.3 单工,半双工和全双工
-
单工数据传输仅支持单向传输,在同一时间只能由一方发送或接收信息,无法实现双向通信。典型应用包括电视和广播系统。
-
半双工数据传输支持双向传输,但在特定时刻仅允许单向传输,本质上是可切换方向的单工通信。虽然同一时间只能单向传输,但支持双向交互。典型代表是对讲机系统。
-
全双工数据通信支持数据同时双向传输,实质上是两个单工通信的结合,要求设备具备独立的收发能力。这种模式可实现实时双向通信,电话系统是典型应用场景。
2.4 OSI七层模型总结
OSI七层模型的分层结构
上层结构(应用相关):
- 应用层:为应用程序提供网络服务接口
- 表示层:负责数据格式转换、加密解密及压缩处理
- 会话层:管理应用程序间的会话建立、维护和终止
核心传输层:
- 传输层:定义TCP/UDP等传输协议
底层结构(硬件相关):
- 网络层:负责IP路由选择和流量控制
- 数据链路层:通过校验、确认等机制确保数据传输可靠性
- 物理层:处理原始比特流在物理介质上的传输
实际应用说明:
- 上层三层功能通常被整合到应用层,由应用服务器(如Tomcat、Nginx)实现
- 传输层是应用开发的主要关注点,定义数据传输协议
- 数据链路层功能由交换机实现
- 网络层功能由路由器实现
三、TCP/IP模型
3.1 TCP/IP四层与五层模型
- TCP/IP四层模型:应用层、传输层、网络层、网络接口层。
- TCP/IP五层模型:应用层、传输层、网络层、数据链路层、物理层。
3.2 TCP/IP协议族的组成
-
应用层:
HTTP
(超文本传输协议):80端口HTTPS
:443端口FTP
(文件传输协议):20端口(数据传输)、21端口(控制连接)DNS
(域名系统):53端口- TFTP(简单文件传输协议):69端口
SMTP
(简单邮件传输协议):25端口- SNMP(简单网络管理协议):161端口(代理进程)、162端口(通知接收)
Telnet
:23端口SSH
:22端口DHCP
:67端口(服务器)、68端口(客户端)
-
传输层:
TCP
(传输控制协议):面向连接,可靠传输UDP
(用户数据报协议):无连接,高效传输
-
网络层:
- ICMP(互联网控制报文协议)
- IGMP(互联网组管理协议)
- IP(互联网协议)
- ARP(地址解析协议)
- RARP(反向地址解析协议)
- IGMP:实现主机与路由器之间的组播管理,使物理网络上的系统能识别当前组播组成员
- ARP:将IP地址解析为MAC地址
- RARP:实现MAC地址到IP地址的反向解析
-
数据链路层与物理层:
- IEEE 802.3(有线以太网标准)
- IEEE 802.11(无线网络标准)
四、数据封装与解封装
4.1 封装过程
数据从上层向下层传递时,每一层会添加头部信息:
- 应用层数据 → 传输层添加TCP头部 → 网络层添加IP头部 → 数据链路层添加MAC头部 → 物理层转换为比特流。
4.2 解封装过程
数据从下层向上层传递时,逐层解析头部信息并移除,最终还原为原始数据。
五、计算机的数制
5.1 常见数制
- 二进制:逢二进一,以
B
或2
结尾(如(1010)2,1010B
)。 - 十进制:逢十进一,以
D、10
结尾或省略(如(1010)10,1010D,1010
)。 - 十六进制:逢十六进一,以
H或16
结尾(如(1010)16,1010H
)。
5.2 数制的计算
在数制中,还有一个规则,就是N进制必须是逢N进一。
-
十进制采用逢十进一的计数规则
(1010)₁₀ = 1×10³ + 0×10² + 1×10¹ + 0×10⁰ -
二进制采用逢二进一的计数规则
(1010)₂ = 1×2³ + 0×2² + 1×2¹ + 0×2⁰ = (10)₁₀ -
十六进制采用逢十六进一的计数规则
(1010)₁₆ = 1×16³ + 0×16² + 1×16¹ + 0×16⁰ = (4112)₁₀
5.3 数制转换
- 十进制转二进制:除2取余法或权重法。
- 二进制转十六进制:每4位一组转换为十六进制数。
- 二进制转八进制:每3位一组转换为八进制数。
5.3.1 十进制转二进制
5.3.1.1 方法一:除2取余法
- 将十进制数除以2,记录商和余数
- 将商继续除以2,重复上述步骤直到商为0
- 将余数按从后到前的顺序排列,得到二进制数
示例:将25转换为二进制
25 ÷ 2 = 12 余 1
12 ÷ 2 = 6 余 0
6 ÷ 2 = 3 余 0
3 ÷ 2 = 1 余 1
1 ÷ 2 = 0 余 1
从后向前读取余数:11001,因此25(10) = 11001(2)
5.3.1.2 方法二:权重法
- 列出2的幂次方:1,2,4,8,16,32,…(从右到左)
- 找出最大的不超过目标数的2的幂次
- 用目标数减去该数,标记该位为1
- 重复上述步骤直到余数为0
- 未使用的位标记为0
示例:将37转换为二进制
32(2^5) < 37 → 1
37-32=5 → 16>5 → 0
8>5 → 0
4<5 → 1
5-4=1 → 2>1 → 0
1=1 → 1
结果为:100101(2)
5.3.2 二进制转十六进制
- 从右向左将二进制数每4位分为一组(不足4位左侧补0)
- 将每组二进制数转换为对应的十六进制数(0-9对应0-9,10-15对应A-F)
- 合并各组结果即为十六进制数
十六进制对应表:
0000 = 0 0100 = 4 1000 = 8 1100 = C
0001 = 1 0101 = 5 1001 = 9 1101 = D
0010 = 2 0110 = 6 1010 = A 1110 = E
0011 = 3 0111 = 7 1011 = B 1111 = F
示例:将1101011011(2)转换为十六进制
- 分组:0011 0101 1011(左侧补两个0)
- 转换:3 5 B
- 结果为:35B(16)
5.3.3 二进制转八进制
- 从右向左将二进制数每3位分为一组(不足3位左侧补0)
- 将每组二进制数转换为对应的八进制数(0-7)
- 合并各组结果即为八进制数
八进制对应表:
000 = 0 011 = 3 110 = 6
001 = 1 100 = 4 111 = 7
010 = 2 101 = 5
示例:将10110110(2)转换为八进制
- 分组:010 110 110(左侧补一个0)
- 转换:2 6 6
- 结果为:266(8)
六、IP地址简介
6.1 IPv4和IPv6
IP地址分为IPv4和IPv6两种格式:
IPv4地址:
- 由32位二进制数构成
- 采用点分十进制表示法
- 实际存储时分4组,每组8位
- 示例:
- 二进制:11000000.10101000.00000000.00000010
- 转换后:192.168.0.2 255.255.255.0
IPv6地址:
- 长度为128位
- 采用冒号分隔的十六进制表示法
IPv4地址由网络部分(NETWORK)和主机部分(HOST)组成。以192.168.1.132为例:
- 网络部分:192.168.1
- 主机部分:132
其中:- 192.168.1.0 为网络地址
- 192.168.1.255 为广播地址
IPv4地址分为私有地址和公有地址,公有地址是全球唯一的互联网IP地址。2019年11月26日是一个具有历史意义的日子,全球近43亿个IPv4地址在这一天正式宣告耗尽。
6.2 IPv4地址分类
IPv4地址主要分为A、B、C、D、E五类:
A类地址
- 地址范围:1.0.0.1~126.255.255.254
- 结构组成:网络部分+主机部分+主机部分+主机部分
- 默认子网掩码:/8(255.0.0.0)
B类地址
- 地址范围:128.0.0.1~191.255.255.254
- 结构组成:网络部分+网络部分+主机部分+主机部分
- 默认子网掩码:/16(255.255.0.0)
C类地址
- 地址范围:192.0.0.1~223.255.255.254
- 结构组成:网络部分+网络部分+网络部分+主机部分
- 默认子网掩码:/24(255.255.255.0)
D类地址
- 地址范围:224.0.0.1~239.255.255.254
- 用途:专用于组播通信(一对多通信)
- 通信类型说明:
- 单播:一对一通信
- 广播:一对多通信
- 组播:一对特定组通信
E类地址
- 地址范围:240.0.0.1~255.255.255.254
- 用途:保留用于科学研究
特殊地址说明:
- 127.x.x.x系列地址表示本机(广播地址127.255.255.255除外),其中127.0.0.1为本机回环地址
- 169.254.0.0~169.254.255.255:当DHCP服务失效时自动分配的地址
(重点)私有网络地址(简称私网地址)是指用于内部网络或主机的专用IP地址。根据IANA(互联网数字分配机构)规定,以下IP地址段被保留为私网地址,不在公网中分配,仅供单位或公司内部使用。RFC1918中定义的私有地址范围如下:
- A类私有地址:10.0.0.0~10.255.255.255(10.0.0.0/8)
- B类私有地址:172.16.0.0~172.31.255.255(172.16.0.0/12)
- C类私有地址:192.168.0.0~192.168.255.255(192.168.0.0/16)
七、子网划分
7.1 IP地址组成结构
- 网络地址:标识网络本身的地址
- 可用IP范围:可分配给主机的IP地址
- 广播地址:用于向该网络所有主机广播的地址
示例:
192.168.1.189/24
网络号: 192.168.1.0
可用IP: 192.168.1.1~192.168.1.254
广播地址: 192.168.1.255
7.2 子网掩码原理
- 32位二进制数
- 对应IP地址的网络部分用1表示
- 对应IP地址的主机部分用0表示
7.3 网络地址计算方法
IP地址和子网掩码进行"与"运算得到网络地址:
- 0和任何数相与等于0
- 1和任何数相与等于该数本身
示例:
IP: 192.168.1.189/26 (11000000.10101000.00000001.10111101)
掩码: 255.255.255.192 (11111111.11111111.11111111.11000000)
网络地址: 192.168.1.128 (11000000.10101000.00000001.10000000)
广播地址: 192.168.1.191 (主机位全置1)
7.4 关键计算公式
-
子网数 = 2ⁿ,其中n=子网掩码位数-原网络类默认位数
- A类:n=掩码-8
- B类:n=掩码-16
- C类:n=掩码-24
-
主机数 = 2ᴺ - 2,其中N=32-子网掩码位数
7.5 C类地址子网划分表
子网掩码 | /24 | /25 | /26 | /27 | /28 | /29 | /30 | /31 | /32 |
---|---|---|---|---|---|---|---|---|---|
掩码值 | 0 | 128 | 192 | 224 | 240 | 248 | 252 | 254 | 255 |
子网数 | 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 |
IP总数 | 256 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
可用IP | 254 | 126 | 62 | 30 | 14 | 6 | 2 | - | 1 |
7.6 实用案例解析
7.6.1 案例1:172.16.0.0/12
IP: 172.16.0.0 (10101100 00010000 00000000 00000000)
掩码: 255.240.0.0 (11111111 11110000 00000000 00000000)
网络地址: 172.16.0.0(10101100 00010000 0000 0000)
广播地址: 172.31.255.255(10101100 00011111 11111111 11111111)
子网数: 2^4=16
主机数: 2^20-2=1,048,574
7.6.2 案例2:192.168.100.100/26
网络地址: 192.168.100.64
广播地址: 192.168.100.127
子网数: 4
主机数: 62
可用范围: 4个子网(0-63,64-127,128-191,192-255)
总结
本文档系统介绍了计算机网络的分层模型、OSI与TCP/IP的对比、数据封装与解封装过程、数制转换以及子网划分技术。通过分层思想,可以更好地理解网络通信的复杂性;而子网划分则为IP地址管理提供了灵活性和效率。掌握这些基础知识,是进一步学习网络技术和解决实际问题的关键。