一、前言
本系列文章旨在复习核算机网络中心常识,进一步夯实根底,为往后 参加物联网、音视频、直播、即时通讯等领域的项目做一定的常识储备。
文章列表:
- 01-核算机网络中心常识|核算机网络通识【核算机网络功能指标、网络协议分层的几种办法、OSI七层模型概念通识】
- 02-核算机网络中心常识|【建立调试环境、新建Java项目、核算机通讯根底、核算机衔接办法、集线器/网桥/交换机/路由器】
- 03-核算机网络中心常识|【MAC地址、IP地址的组成、IP地址的分类、CIDR、子网掩码、超网】
- 04-核算机网络中心常识|【 静态路由、动态路由、数据包的传输、ISP、服务器机房、网络分类、家用无线路由器、公网IP、
- 05-核算机网络中心常识|物理层/数据链路层【模拟信号&&数字信号、数据链路层】
- 06-核算机网络中心常识|网络层【IP数据包Packet、网络协议、Checksum、源IP地址和方针IP地址、ping】
- 07-核算机网络协议中心常识|【传输层-UDP】
- 08-核算机网络协议中心常识|【传输层-TCP之可靠传输】
- 09-核算机网络中心常识|传输层TCP2【流量操控原理、拥塞操控:slow start、congestion avoidance、快速重传、快速康复】
- 10-核算机网络协议中心常识|【传输层-TCP衔接】
- 11-核算机网络协议中心常识|【 运用层】
- 12-核算机网络中心常识|【Cookie、Session(概念、生命周期、有效期、浏览器的要求等)、跨域(概念、 同源策略、跨域处理方
- 13-核算机网络协议中心常识|【 署理/CDN/网络安全】
- 14-核算机网络协议中心常识|【(非)对称加密/数字签名/证书】
- 15-核算机网络协议中心常识|【HTTPS】
- 16-核算机网络中心常识|HTTPS协议【HTTP2、HTTP3】 本文首要重视:MAC/IP/子网掩码在网络中非常重要,只需有网络的地方必定都会涉及这三个概念。
二、MAC
每一个网卡都有一个6字节(48bit)的MAC地址(Media Access Control)。
-
全球仅有,固化在了网卡的ROM中,由IEEE802规范规定
- 前3个字节:OUI(Organizationally Unique Identifier),组织仅有标识符,由IEEE的注册办理机构分配给厂商
- 后三个字节:网络接口标识符,由厂商自行分配
-
OUI查询
- standards-oui.ieee.org/oui.txt
- mac.51240.com/
1. MAC地址的表明格局
- Windows
- 32-06-52-3C-4F-2E
- Linux、Android、Mac、iOS
- 32:06:52:3C:4F:2E
- Packet Tracer
- 3206.523C.4F2E
- 当48位全为1时,代表播送地址(给同一个网段的所有设备)
- FF-FF-FF-FF-FF-FF
2. MAC地址操作
查看MAC地址(终端):
- Windows:
ipconfig
- Linux/Mac:
ifconfig
有时能够经过修正MAC地址到达上网的意图(有些公司的内网路由器设定了MAC地址白名单,我司便是这样,手机都无法衔接无线)。
3. MAC地址的获取
当不知道对方主机的MAC地址时,能够经过发送ARP播送获取对方的MAC地址
- 获取成功后,会缓存IP地址、MAC地址的映射信息,俗称:ARP缓存
- 经过ARP播送获取的MAC地址,归于动态(dynamic)缓存。存储时间比较短(默许2分钟),过期会主动删去。
当找不到对应MAC地址时会再次发送ARP播送,所以不需求担心替换网卡后无法上网的问题。
相关指令:
-
arp -a [主机地址]
:查询ARP缓存 -
arp -d [主机地址]
:删去ARP缓存 -
arp -s [主机地址] [MAC地址]
:添加一条缓存信息(这是静态缓存,存储时间比较久,不同体系的存储时间不同)
三、IP
IP地址(Internet Protocol):互联网上的每一个主机都有一个IP地址
最初是IPv4版别,32bit(4字节),2019年11月25日,全球的IP地址已经用完。后边推出了IPv6版别,128bit(16字节)。
1. IP地址的组成
IP地址由2部分组成:网络标识(网络ID)、主机标识(主机ID) 同一网段的核算机,网络ID相同
经过子网掩码(subnet mask)能够核算出网络ID:IP地址 & 子网掩码
按位与(&)核算技巧:遇1便是本来的,遇0便是0。
案例一:
IP地址:192.168.1.10
子网掩码:255.255.255.0
核算网段:
1100 0000.1010 1000.0000 0001.0000 1010 -> 192.168.1.10(10进制)
&
1111 1111.1111 1111.1111 1111.0000 0000 -> 255.255.255.0(10进制)
--------------------------------------------------------------
= 1100 0000.1010 1000.0000 0001.0000 0000 -> 192.168.1.0(10进制)
192.168.1 代表网络ID,后边一部分代表主机ID。
案例二:
IP地址:192.168.1.10
子网掩码:255.255.0.0
核算网段:
1100 0000.1010 1000.0000 0001.0000 1010 -> 192.168.1.10(10进制)
&
1111 1111.1111 1111.0000 0000.0000 0000 -> 255.255.0.0(10进制)
--------------------------------------------------------------
= 1100 0000.1010 1000.0000 0000.0000 0000 -> 192.168.0.0(10进制)
192.168 代表网络ID,后边两部分位代表主机ID。
注意:主机ID要去除全0和全255,由于0代表网段(例:192.168.0.0),255代表播送地址(例:192.168.255.255)。
核算机和其他核算机通讯前,会先判别方针主机和自己是否在同一网段
- 同一网段:不需求由路由器进行转发
- 不同网段:交由路由器进行转发
2. IP地址的分类
2.1. A类地址:默许子网掩码是255.0.0.0
网络ID:
-
0
不能用,127
作为保存网段。其间127.0.0.1
是本地环回地址(Loopback),代表本机地址。 - 所以,能够分配给主机的,第1部分的取值规模是:
1~126
主机ID:
- 第2、3、4部分的取值规模是:
0~255
- 每个A类网络能包容的最大主机数是:
256 * 256 * 256 - 2 = 2的24次方 - 2 = 16777214
2.2. B类地址:默许子网掩码是255.255.0.0
网络ID:
- 能够分配给主机的
- 第1部分的取值规模是:
128~191
- 第2部分的取值规模是:
0~255
主机ID:
- 第1部分的取值规模是:
- 第3、4部分的取值规模是:
0~255
- 每个B类网络能包容的最大主机数是:
256 * 256 - 2 = 2的16次方 - 2 = 65534
2.3. C类地址:默许子网掩码是255.255.255.0
网络ID:
- 能够分配给主机的
- 第1部分的取值规模是:
192~223
- 第2、3部分的取值规模是:
0~255
- 第1部分的取值规模是:
主机ID:
- 第4部分的取值规模是:
0~255
- 每个C类网络能包容的最大主机数是:
256 - 2 = 2的8次方 - 2 = 254
2.4. D类地址:以1110
最初,多播地址
D类地址没有子网掩码,用于多播(组播)地址。
第1部分取值规模是:224~239
。
2.5. E类地址:以1111
最初,保存为往后运用
E类地址保存为往后运用。
第1部分取值规模是:240~255
。
只要A/B/C类地址才干分配给主机。
- 主机ID为全0,表明主机所在的网段
- 主机ID为全1,表明主机所在网段的悉数主机(播送)
- 能够尝试用ping给某个网段的悉数主机发数据
四、子网掩码
1. CIDR
CIDR(Classless Inter-Domain Routing):无类别域间路由。
子网掩码的CIDR表明办法:
-
192.168.1.100/24
,代表子网掩码有24个1,也便是255.255.255.0
-
123.210.100.200/16
,代表子网掩码有16个1,也便是255.255.0.0
核算东西:www.sojson.com/convert/sub…
2. 子网区分
为什么要进行子网区分?
假如需求让200台主机在同一个网段内,能够分配一个C类网段,比方192.168.1.0/24
。
- 共254个可用IP地址:
192.168.1.1 ~ 192.168.1.254
- 多出54个闲暇的IP地址(这种状况并不算浪费资源)
假如需求让500台主机在同一个网段内,那就分配一个B类网段,比方191.100.0.0/16
。
- 共65534个可用IP地址:
191.100.0.1 ~ 191.100.255.254
- 多出65034个闲暇的IP地址(这种状况归于极大的浪费资源)
怎么尽量防止浪费IP地址资源?合理进行子网区分。
子网区分:借用主机位做子网位,区分出多个子网。
- 可分为:
-
等长子网区分: 将一个网段等分红多个子网,每个子网的可用IP地址数量是一样的。
- 比方
172.16.0.0/16
区分4个子网段,每个段可用IP地址便是6553个。
- 比方
-
变长子网区分: 每个子网的可用IP地址数量能够是不一样的。
- 比方
191.100.0.0/16
区分3个子网段,第1段给512个IP地址,第2段给2048个IP地址,剩余的给最终一个网段。
- 比方
-
等长子网区分: 将一个网段等分红多个子网,每个子网的可用IP地址数量是一样的。
子网区分器:www.ab126.com/web/3552.ht…
子网区分的步骤:
- 确认子网的子网掩码长度
- 确认子网中第1个、最终1个主机可用的IP地址
2.1. 等长子网区分
等分红2个子网:
A子网:
- 网段:
192.168.0.0
- 子网掩码:
255.255.255.128/25
- 播送:
192.168.0.127
- 主机规模:
192.168.0.1 ~ 192.168.0.126
B子网:
- 网段:
192.168.0.128
- 子网掩码:
255.255.255.128/25
- 播送:
192.168.0.255
- 主机规模:
192.168.0.129 ~ 192.168.0.254
等分红4个子网:
A子网:
- 网段:
192.168.0.0
- 子网掩码:
255.255.255.192/26
- 播送:
192.168.0.63
- 主机规模:
192.168.0.1 ~ 192.168.0.62
B子网:
- 网段:
192.168.0.64
- 子网掩码:
255.255.255.192/26
- 播送:
192.168.0.127
- 主机规模:
192.168.0.65 ~ 192.168.0.126
C子网:
- 网段:
192.168.0.128
- 子网掩码:
255.255.255.192/26
- 播送:
192.168.0.191
- 主机规模:
192.168.0.129 ~ 192.168.0.190
D子网:
- 网段:
192.168.0.192
- 子网掩码:
255.255.255.192/26
- 播送:
192.168.0.255
- 主机规模:
192.168.0.193 ~ 192.168.0.254
B类子网区分:
A类子网区分:
规则:要将子网等分为
2^n
个更小的子网,则子网掩码在本来根底上右移n
位。
考虑:下面两台设备是否能够正常通讯?
答案:不能,由于不在同一个网段,核算机0的网段是192.168.0.0
,核算机1的网段是192.168.0.128
。要想让这两台设备进行通讯,需求添加一个路由器即可。
2.2. 变长子网区分
假如一个子网地址块的长度是原网段的(1/2)^n
,那么
- 子网的子网掩码,便是在原网段的子网掩码根底上添加n个1
- 不等长的子网,它们的子网掩码也不同
假定上图是对192.168.0.0/24
进行变长子网区分 C网段:子网掩码是255.255.255.128/25
B网段:子网掩码是255.255.255.192/26
A网段:子网掩码是255.255.255.224/27
D网段:子网掩码是255.255.255.252/30
E网段:子网掩码是255.255.255.252/30
考虑:下面两台设备是否能够正常通讯?
答案:不能,由于不在同一个网段,核算机0的网段是192.168.0.0
,核算机1的网段是192.168.10.0
。要想让这两台设备进行通讯,需求添加一个路由器即可。
剖析:核算机0和核算机1通讯时,只要核算机1的IP地址,没有核算机1的子网掩码,最终是拿着对方的IP地址和自己的子网掩码按位与核算出的网段,所以核算机1的网段是192.168.10.0
,和核算机0不在同一个网段,也就无法进行通讯。假如是核算机1和核算机0进行通讯,两台设备的IP和核算机1的子网掩码按位与核算后网段都是192.168.0.0
,能够向核算机0发送音讯,但由于核算机0核算和核算机1不在同一个网段,核算机0就无法向核算机1回复音讯,所以无法正常通讯。
注意:IP地址的分类是看IP地址的第一部分归于哪一类的规模,子网掩码和IP地址分类没有任何关系。子网区分只能是2的指数。
3. 超网
超网:跟子网反过来,它是将多个接连的网段兼并成一个更大的网段。
3.1. 兼并2个网段
把网络部分区分出来给主机运用。上图区分后主机位后,192.168.0.0
和192.168.1.0
的网段都是192.168.0.0
,并且由于主机位高位添加了1位,所以主机数比之前多了一倍(详细仍是要减2的—去除网段和播送地址)。
需求:本来有200台核算机运用192.168.0.0/24
网段,现在期望添加200台设备到同一个网段。
- 200台在
192.168.0.0/24
网段,200台在192.168.1.0/24
网段 - 兼并
192.168.0.0/24
、192.168.1.0/24
为一个网段:192.168.0.0/23
(子网掩码往左移动1位)
考虑:192.168.0.255/23
这个IP地址能够分配给核算机运用么?
答案:能够。由于主机部分实践是9位,此刻主机位高位是0,并不是悉数为1,因而这个IP地址不是播送地址,最终是能够分配给核算机运用的。假如把主机部分的高位变为1,实践的IP地址便是192.168.1.255/23
(播送地址),这时候就不能分配给核算机运用了。
3.2. 兼并4个网段
子网掩码向左移动2位,能够兼并4个网段。
将192.168.0.0/24
、192.168.1.0/24
、192.168.2.0/24
、192.168.3.0/24
兼并为192.168.0.0/22
网段。
考虑:下面的2个网段,能经过子网掩码向左移动1位进行兼并么?
答案:不能够。由于192.168.2.0
要想和192.168.1.0
兼并为同一个网段,有必要向左移动两位才干够。
3.3. 兼并网段的规则
假定n是2的k次幂(k≥1)
- 子网掩码左移k位将能够兼并n个网段
- 假如第一个网段的网络号能被n整除,那么由它开端接连的n个网段,能经过左移k位子网掩码进行兼并
比方:
- 第一个网段的网络号以二进制0结束,那么由它开端接连的2个网段,能经过左移1位子网掩码进行兼并
- 第一个网段的网络号以二进制00结束,那么由它开端接连的4个网段,能经过左移2位子网掩码进行兼并
0 192.168.0.0/24 192.168.0000 00|0|0.0
1 192.168.1.0/24 192.168.0000 00|0|1.0
2 192.168.2.0/24 192.168.0000 00|1|0.0
3 192.168.3.0/24 192.168.0000 00|1|1.0
// 上面就很容易看出,1和2左移1位是不能兼并到同一个网段的。
// 左移1位,0和1能够兼并,2和3能够兼并。左移2位,0到3能够兼并。
一旦运用超网,其实就没有必要区分地址分类了。当然详细仍是根据需求进行定制。
4. 判别一个网段是子网仍是超网
- 首先
- 看该网段的类型(IP地址分类)
- 默许状况下,A类子网掩码的位数是8(
255.0.0.0
),B类子网掩码的位数是16(255.255.0.0
),C类子网掩码的位数是24(255.255.255.0
)
- 然后
- 假如该网段的子网掩码位数比默许子网掩码多,便是子网
- 假如该网段的子网掩码位数比默许子网掩码少,便是超网
例:
25.100.0.0/16
是一个A类子网;200.100.0.0/16
是一个C类超网。
专题系列文章
1. 前常识
- 01-探求iOS底层原理|总述
- 02-探求iOS底层原理|编译器LLVM项目【Clang、SwiftC、优化器、LLVM】
- 03-探求iOS底层原理|LLDB
- 04-探求iOS底层原理|ARM64汇编
2. 根据OC言语探求iOS底层原理
- 05-探求iOS底层原理|OC的实质
- 06-探求iOS底层原理|OC方针的实质
- 07-探求iOS底层原理|几种OC方针【实例方针、类方针、元类】、方针的isa指针、superclass、方针的办法调用、Class的底层实质
- 08-探求iOS底层原理|Category底层结构、App启动时Class与Category装载进程、load 和 initialize 执行、关联方针
- 09-探求iOS底层原理|KVO
- 10-探求iOS底层原理|KVC
- 11-探求iOS底层原理|探求Block的实质|【Block的数据类型(实质)与内存布局、变量捕获、Block的种类、内存办理、Block的修饰符、循环引证】
- 12-探求iOS底层原理|Runtime1【isa详解、class的结构、办法缓存cache_t】
- 13-探求iOS底层原理|Runtime2【音讯处理(发送、转发)&&动态办法解析、super的实质】
- 14-探求iOS底层原理|Runtime3【Runtime的相关运用】
- 15-探求iOS底层原理|RunLoop【两种RunloopMode、RunLoopMode中的Source0、Source1、Timer、Observer】
- 16-探求iOS底层原理|RunLoop的运用
- 17-探求iOS底层原理|多线程技能的底层原理【GCD源码剖析1:主行列、串行行列&&并行行列、大局并发行列】
- 18-探求iOS底层原理|多线程技能【GCD源码剖析1:dispatch_get_global_queue与dispatch_(a)sync、单例、线程死锁】
- 19-探求iOS底层原理|多线程技能【GCD源码剖析2:栅门函数dispatch_barrier_(a)sync、信号量dispatch_semaphore】
- 20-探求iOS底层原理|多线程技能【GCD源码剖析3:线程调度组dispatch_group、事件源dispatch Source】
- 21-探求iOS底层原理|多线程技能【线程锁:自旋锁、互斥锁、递归锁】
- 22-探求iOS底层原理|多线程技能【原子锁atomic、gcd Timer、NSTimer、CADisplayLink】
- 23-探求iOS底层原理|内存办理【Mach-O文件、Tagged Pointer、方针的内存办理、copy、引证计数、weak指针、autorelease
3. 根据Swift言语探求iOS底层原理
关于函数
、枚举
、可选项
、结构体
、类
、闭包
、特点
、办法
、swift多态原理
、String
、Array
、Dictionary
、引证计数
、MetaData
等Swift根本语法和相关的底层原理文章有如下几篇:
- 01-Swift5常用中心语法|了解Swift【Swift简介、Swift的版别、Swift编译原理】
- 02-Swift5常用中心语法|根底语法【Playground、常量与变量、常见数据类型、字面量、元组、流程操控、函数、枚举、可选项、guard语句、区间】
- 03-Swift5常用中心语法|面向方针【闭包、结构体、类、枚举】
- 04-Swift5常用中心语法|面向方针【特点、inout、类型特点、单例形式、办法、下标、承继、初始化】
- 05-Swift5常用中心语法|高档语法【可选链、协议、错误处理、泛型、String与Array、高档运算符、扩展、访问操控、内存办理、字面量、形式匹配】
- 06-Swift5常用中心语法|编程范式与Swift源码【从OC到Swift、函数式编程、面向协议编程、响应式编程、Swift源码剖析】
4. C++中心语法
- 01-C++中心语法|C++概述【C++简介、C++起源、可移植性和规范、为什么C++会成功、从一个简略的程序开端知道C++】
- 02-C++中心语法|C++对C的扩展【::作用域运算符、姓名操控、struct类型加强、C/C++中的const、引证(reference)、函数】
- 03-C++中心语法|面向方针1【 C++编程规范、类和方针、面向方针程序设计案例、方针的构造和析构、C++面向方针模型初探】
- 04-C++中心语法|面向方针2【友元、内部类与局部类、强化训练(数组类封装)、运算符重载、仿函数、模板、类型转化、 C++规范、错误&&反常、智能指针】
- 05-C++中心语法|面向方针3【 承继和派生、多态、静态成员、const成员、引证类型成员、VS的内存窗口】
5. Vue全家桶
- 01-Vue全家桶中心常识|Vue根底【Vue概述、Vue根本运用、Vue模板语法、根底案例、Vue常用特性、归纳案例】
- 02-Vue全家桶中心常识|Vue常用特性【表单操作、自定义指令、核算特点、侦听器、过滤器、生命周期、归纳案例】
- 03-Vue全家桶中心常识|组件化开发【组件化开发思维、组件注册、Vue调试东西用法、组件间数据交互、组件插槽、根据组件的
- 04-Vue全家桶中心常识|多线程与网络【前后端交互形式、promise用法、fetch、axios、归纳案例】
- 05-Vue全家桶中心常识|Vue Router【根本运用、嵌套路由、动态路由匹配、命名路由、编程式导航、根据vue-router的案例】
- 06-Vue全家桶中心常识|前端工程化【模块化相关规范、webpack、Vue 单文件组件、Vue 脚手架、Element-UI 的根本运用】
- 07-Vue全家桶中心常识|Vuex【Vuex的根本运用、Vuex中的中心特性、vuex案例】
6. 音视频技能中心常识
- 01-音视频技能中心常识|了解音频技能【移动通讯技能的发展、声响的实质、深入了解音频】
- 02-音视频技能中心常识|建立开发环境【FFmpeg与Qt、Windows开发环境建立、Mac开发环境建立、Qt开发根底】
- 03-音视频技能中心常识|Qt开发根底【
.pro
文件的配置、Qt控件根底、信号与槽】 - 04-音视频技能中心常识|音频录制【指令行、C++编程】
- 05-音视频技能中心常识|音频播映【播映PCM、WAV、PCM转WAV、PCM转WAV、播映WAV】
- 06-音视频技能中心常识|音频重采样【音频重采样简介、用指令行进行重采样、经过编程重采样】
- 07-音视频技能中心常识|AAC编码【AAC编码器解码器、编译FFmpeg、AAC编码实战、AAC解码实战】
- 08-音视频技能中心常识|成像技能【重识图片、详解YUV、视频录制、显示BMP图片、显示YUV图片】
- 09-音视频技能中心常识|视频编码解码【了解H.264编码、H.264编码、H.264编码解码】
- 10-音视频技能中心常识|RTMP服务器建立【流媒体、服务器环境】
7. 核算机网络中心常识
- 01-核算机网络中心常识|核算机网络通识【核算机网络功能指标、网络协议分层的几种办法、OSI七层模型概念通识】
- 02-核算机网络中心常识|【建立调试环境、新建Java项目、核算机通讯根底、核算机衔接办法、集线器/网桥/交换机/路由器】
- 03-核算机网络中心常识|【MAC地址、IP地址的组成、IP地址的分类、CIDR、子网掩码、超网】
- 04-核算机网络中心常识|【 静态路由、动态路由、数据包的传输、ISP、服务器机房、网络分类、家用无线路由器、公网IP、
- 05-核算机网络中心常识|物理层/数据链路层【模拟信号&&数字信号、数据链路层】
- 06-核算机网络中心常识|网络层【IP数据包Packet、网络协议、Checksum、源IP地址和方针IP地址、ping】
- 07-核算机网络协议中心常识|【传输层-UDP】
- 08-核算机网络协议中心常识|【传输层-TCP之可靠传输】
- 09-核算机网络中心常识|传输层TCP2【流量操控原理、拥塞操控:slow start、congestion avoidance、快速重传、快速康复】
- 10-核算机网络协议中心常识|【传输层-TCP衔接】
- 11-核算机网络协议中心常识|【 运用层】
- 12-核算机网络中心常识|【Cookie、Session(概念、生命周期、有效期、浏览器的要求等)、跨域(概念、 同源策略、跨域处理方
- 13-核算机网络协议中心常识|【 署理/CDN/网络安全】
- 14-核算机网络协议中心常识|【(非)对称加密/数字签名/证书】
- 15-核算机网络协议中心常识|【HTTPS】
- 16-核算机网络中心常识|HTTPS协议【HTTP2、HTTP3】
其它底层原理专题
1. 底层原理相关专题
- 01-核算机原理|核算机图形烘托原理这篇文章
- 02-核算机原理|移动终端屏幕成像与卡顿
2. iOS相关专题
- 01-iOS底层原理|iOS的各个烘托结构以及iOS图层烘托原理
- 02-iOS底层原理|iOS动画烘托原理
- 03-iOS底层原理|iOS OffScreen Rendering 离屏烘托原理
- 04-iOS底层原理|因CPU、GPU资源消耗导致卡顿的原因和处理计划
3. webApp相关专题
- 01-Web和类RN大前端的烘托原理
4. 跨渠道开发计划相关专题
- 01-Flutter页面烘托原理
5. 阶段性总结:Native、WebApp、跨渠道开发三种计划功能比较
- 01-Native、WebApp、跨渠道开发三种计划功能比较
6. Android、HarmonyOS页面烘托专题
- 01-Android页面烘托原理
- 02-HarmonyOS页面烘托原理 (
待输出
)
7. 小程序页面烘托专题
- 01-小程序结构烘托原理