网络和子网是一个东西吗?
网络和子网的区别与联系
网络和子网密切相关但有重要区别,可以用“省“和“市“的关系来类比理解:
核心区别
概念
说明
类比
网络(Network)
由同一网络地址标识的一组设备(如一个公司/学校的整个网络)
相当于“省“
子网(Subnet)
在大网络中划分出的更小逻辑单元(如不同部门/楼层的网络)
相当于“市“
详细解释
1. 原始IP设计(无子网)
只有两级结构:网络地址 + 主机地址
例如B类地址:前16位网络,后16位主机
问题:一个网络内可能有6万台主机,广播流量太大
2. 引入子网后
三级结构:网络地址 + 子网地址 + 主机地址
从主机位借位创建子网。例如B类地址:前16位网络,中间8位子网,最后8位主机
→ 可划分256个子网
关键特点
子网是网络的细分:就像城市是省份的细分
对外表现:外部互联网只看到“网络地址“,不知道内部子网划分
对内管理:内部路由器需要知道子网结构才能正确转发数据
实际例子
公司网络(网络地址:1 ...
IPv4报文格式(分为20字节的固定部分,表示每个ip数据包必须包含的部分,和40字节的可变长部分)
Pv4 头部 = 固定部分(20 字节) + 可选部分(Options,0~40
字节)
版本号(4bit):
协议的版本号。不同版本的协议格式或语义可能不同,现在常用的是IPv4,表示为0100(十进制是4),正在逐渐过渡到IPv6。
首部长度(4):
IP头长度,以32位字计数(单位为4字节),最小为5,即20字节,最大为15,即60字节(首部固定部分20字节,单位4字节,所以最小为5)。
服务类型(8):
用于区分不同的可靠性、优先级、延迟和吞吐率的参数。
总长度(16):
包含IP头在内的数据单元的总长度(字节数,头+数据),最长为 65535
字节。
标识符(16):
唯一标识数据报的标识符。该字段用于表示IP数据包的标识符。当IP对上层数据进行分片时,它将给所有的分片数据分配一组编号,然后将这些编号放入标识符字段中,保证分片不会被错误地重组。标识符字段用于标志一个数据包,以便接收节点可以重组被分片的数据包。
标志(3):
包括3个标志,一个 ...
IP协议属于网络层协议,所有的TCP, UDP, ICMP,
IGMP数据都通过IP数据报传输。IP提供了一种不可靠,无连接的数据包交付服务。依赖其他层的协议进行差错控制。
不可靠:
IP数据报不保证能成功的到达目的地,如果出现错误则选择丢弃该数据,然后发送ICMP消息报给信源端
无连接:
IP不提供任何后续数据报的状态信息,每个数据报处理都是独立的。如果一个信源发送了连续的两个数据报,每个数据报选择独立的路由,两个数据可能不同时到达。IP通信双方都不长久地维持对方的任何信息。这样上层协议每次发送数据的时候,都必须明确指定对方的IP地址。
TCP 是通过 IP 数据报传输
TCP 是传输层协议,IP
是网络层(或称网际层)协议。虽然它们处于不同层,但 TCP 的数据是封装在 IP
数据报中进行传输的,这就是为什么说“TCP 是通过 IP 数据报传输”的原因。
协议封装关系
IP数据报如同一个标准化的“信封“,其首部中的“协议类型“字段(8位)用于标识载荷数据的类型:
6 = TCP
17 = UDP
1 = ICMP
2 = IGM ...
TCP报文
TCP三次握手流程
步骤
方向
数据包内容
作用
第一次握手(SYN)
客户端 → 服务器
SYN=1, seq=x(客户端随机生成初始序列号x
客户端请求建立连接,并发送自己的初始序列号。
序号字段seq被设置了一个初始值x作为TCP客户进程所选择的初始序号。
第二次握手(SYN+ACK)
服务器 → 客户端
SYN=1, ACK=1, seq=y,
ack=x+1(服务器随机生成初始序列号y,确认客户端的x)
服务器确认客户端的连接请求,并发送自己的初始序列号及对客户端的确认号。
序号字段seq被设置了一个初始值y,作为TCP服务器进程所选择的初始序号。确认号字段ack的值被设置成了x+1,这是对TCP客户进程所选择的初始序号seq的确认。
第三次握手(ACK)
客户端 → 服务器
ACK=1, seq=x+1, ack=y+1(客户端确认服务器的y)
客户端确认服务器的连接请求,连接正式建立。 序号字段seq
被设置为x+1,这 ...
超网(Supernetting)是什么?
超网(Supernetting)是
子网划分(Subnetting)的逆向操作,它的核心目的是将多个连续的小网络合并成一个更大的网络,从而减少路由表条目,提高网络效率。
1. 为什么需要超网?
子网划分:把一个大的IP网络(如 192.168.0.0/16)划分成多个小网络(如
192.168.1.0/24、192.168.2.0/24)。
超网:把多个连续的小网络(如 192.168.0.0/24 和
192.168.1.0/24)合并成一个更大的网络(如
192.168.0.0/23),减少路由器的负担。
2. 超网的核心原理
(1)CIDR(无类别域间路由) 超网依赖 CIDR(Classless Inter-Domain
Routing),允许打破传统的A/B/C类IP限制,通过 可变长度子网掩码(VLSM)
灵活合并网络。
(2)关键规则 连续的网络:要合并的多个子网必须是连续的(如
192.168.0.0/24 和 192.168.1.0/24)。
掩码左移:超网的子网掩码比原子网更短(即网络位减少,主 ...
计算机网络
未读
传统的IPv4分类(A/B/C类)已经规定了默认的网络位长度(A类8位、B类16位、C类24位),而子网掩码最初就是基于这些分类设计的。但现代网络中,子网掩码的作用已经远远超出了分类的局限,主要通过子网划分
和 无类域间路由(CIDR)
实现了更灵活的地址分配。以下是详细解释:
1. 传统分类的局限性
在早期的IPv4设计中,地址被严格分为A/B/C/D/E类,每类有固定的网络位长度:
A类: 8位 网络位(如
10.0.0.0/8),支持大型网络。
B类: 16位 网络位(如
172.16.0.0/16),支持中型网络。
C类: 24位 网络位(如
192.168.1.0/24),支持小型网络。
问题:
地址浪费:
例如,一个公司需要500个IP,B类(6.5万主机)太大,C类(254主机)太小,只能分配B类,造成浪费。
缺乏灵活性: 无法根据实际需求调整网络位长度。
2. IPv4地址的结构
IPv4地址由32位二进制数组成,通常表示为4个十进制数(如
192.168.1.1)。其结构分为两部分:
网络部分(Network ID) ...
二进制、十进制、十六进制转换
1. 二进制 ↔︎ 十进制
二进制 → 十进制
方法:按权展开相加法
每位二进制数(0或1)乘以2的位次幂(从右到左,最低位为0)。
公式:
D = dₙ₋₁×2ⁿ⁻¹ + ... + d₁×2¹ + d₀×2⁰
示例: 1011₂ → 1×2³ + 0×2² + 1×2¹ + 1×2⁰ = 8 + 0 + 2
+ 1 = 11₁₀
十进制 → 二进制
方法:除2取余法(逆序排列)。
不断将十进制数除以2,记录余数,直到商为0。
示例: 13₁₀ →
13 ÷ 2 = 6 余 1
6 ÷ 2 = 3 余 0
3 ÷ 2 = 1 余 1
1 ÷ 2 = 0 余 1 → 1101₂
补0是往左补:000001101
2. 十六进制 ↔︎ 十进制
十六进制 → 十进制
方法:按权展开相加。
每位十六进制数乘以16的位次幂(从右到左,最低位为0)。
字母A-F对应10-15。
示例: A2F₁₆ → 10×16² + 2×16¹ + 15×16⁰ = 2560 + 32 +
15 = 2607₁₀
十进制 → 十六 ...
Hexo
未读Hexo
数学公式渲染方案:hexo-renderer-pandoc + hexo-filter-mathjax
1.
安装hexo-renderer-pandoc插件和pandoc
卸载默认的hexo渲染器,安装hexo-renderer-pandoc插件
123# 先卸载原渲染器npm uninstall hexo-renderer-marked --save npm install hexo-renderer-pandoc --save
然后,进入pandoc下载页面,点击Download
the latest
installer,然后下载安装即可(pandoc支持Windows、mac、linux系统)。Debian系统执行apt install pandoc安装即可。
配置hexo根目录的配置文件_config.yml:
123456789pandoc: args: - '-f' - 'commonmark_x' - '-t' - 'html' ...
CIDR 的全称是 Classless Inter-Domain Routing,中文翻译为
无类别域间路由。
要计算 123.21.1.12/27 的主机范围,需要按照以下步骤进行:
1. 理解 CIDR 表示法
123.21.1.12/27 表示:
IP 地址:123.21.1.12
子网掩码:/27,即前 27 位是网络部分,剩下的 5 位是主机部分。
2. 计算子网掩码
/27 对应的子网掩码是:
111111111.11111111.11111111.11100000
转换为十进制:
1255.255.255.224
子网掩码也是一个32位二进制数,与IP地址一一对应:
1:表示对应IP位属于网络部分。
0:表示对应IP位属于主机部分。
3. 确定网络地址
网络地址 = IP地址 & 子网掩码(网络地址是 IP
地址与子网掩码按位与运算的结果。)
IP 地址:123.21.1.12 → 二进制:
101111011.00010101.00000001.00001100
...
1. 配置host
配置每台服务器的/etc/hosts
12192.168.30.1 minio-node1192.168.30.2 minio-node2
2.
分别在每台服务器使用以下compose.yml部署minio
执行docker compose up -d部署。
注:/data/docker/minio/data1、/data/docker/minio/data2需无任何历史数据。
1234567891011121314151617services: minio: image: minio/minio # 使用的镜像 container_name: minio # 容器名称 restart: always # 设置容器自动重启 network_mode: host environment: - TZ=Asia/Shanghai - MINIO_ROOT_USER=xxx # 用户名,自定义 - MINIO_ROOT_PASSWORD=ofuojglx # 密码,自定义 ...