01 计算机组成原理
1、什么是计算机?
计算机俗称电脑,就相当于一种人造人, 电脑二字蕴含着人类的对计算机的终极期望,希望一通电就能够像人脑一样去工作
2、为何要有计算机?
为了造出一种机器来取代人去工作,计算机就相当于人类的奴隶
3、计算机的核心组成
由五大部分组成:
控制器:是计算机的指挥系统,负责控制所有其他硬件的运行 -------》大脑
运算器:数学运算+逻辑运算-------------------------------------》大脑
cpu = 控制器 + 运算器 ------------------------------------》大脑
存储器:是计算机的记忆设备
内存/主存 RAM:基于电信号来存储数据 -------------------------》大脑记忆功能
1 0 1 1 0 0 0
优点:存取速度都快
缺点:没有办法持久存储,断电数据就全部丢失
外存·械磁盘基于磁信号来存储数据---------------》相当于笔记本
优点:可以持久保存数据
缺点:存储速度都慢
输入设备
键盘、鼠标
输出设备
显示器、音响、打印机
4、站在计算机硬件的角度:一个程序在计算机中是怎么运行起来的?(*****)
在运行程序之前:
程序最先一定是先存放于硬盘中的(程序的安装本质也就是把一堆代码文件放到硬盘的各个位置)
程序开始运行分两个阶段
1、加载阶段/启动阶段: 把程序的指令或数据从硬盘读入内存
2、执行阶段:cpu从内存中取出指令来运行
硬盘、内存里存的东西长什么样子? 0101010101110011
如何提升程序的启动速度? 提升硬盘速度(对内存) 提升内存大小(多进程) 内存速度(对cpu)
5、计算机组成详解:
处理器详解:
cpu内部的 指令集(执行模板) 精简指令集: 短 多 复杂指令集: 长 少
x86:指的是cpu的指令集是复杂指令集
64位:cpu一次性能够从内存中取出多少位二进制数,
64位cpu代表,cpu一次性从内存中取出64位二进制数,也就是64位的cpu认为64位二进制数才是一条完整的指令
补充:一个二进制数又称之为一个bit,比特位
了解:
64位的cpu可以 运行64位、32位的程序
32位的cpu只能运行32位的程序
软包:nginx-1:1.20.1-14.el9_2.1.x86_64 (软件的版本与cpu的兼容性)
多线程:CPU内部存在多条流水线 (详解见06 操作系统补充)
2核4线程:真2核(两个CPU),假4核(一个CPU两个线程)
存储器详解:
CPU--寄存器(与cpu材质一样)--高速缓存--内存--硬盘
CMOS:与内存一样断电数据就丢,但特点是耗电量非常低,由主板上的电池负责供电
CMOS常指保存计算机基本启动信息(如日期、时间、启动设置等)的芯片。有时人们会把CMOS和BIOS混称,其实CMOS是主板上的一块可读写的并行或串行FLASH芯片,是用来保存BIOS的硬件配置和用户对某些参数的设定。
1B(字节)= 8bit bit--二进制位
1KB=2(10)B=1024B; 括号中的数字为2的指数(即多少次方)
1MB=2(10)KB=1024KB=2(20)B;
1GB=2(10)MB=1024MB=2(30)B。
1TB=2(10) GB=1024GB=2(40)B
1PB=2(10) TB=1024TB=2(50)B
1EB=2(10) PB=1024PB=2(60)B
1ZB=2(10) EB=1024EB=2(70)B
1YB=2(10) ZB=1024ZB=2(80)B
虽然计算机上存放的都是一个个的bit位,但是计算机存取硬盘的单位都是一个扇区,一个扇区512个字节
机械磁盘找到数据需要花费的时间:(*****)
平均寻道时间: 机械手臂上的磁头找到存储数据的那一圈磁道所花费的时间 ---》5ms
平均延迟时间: 磁盘转半圈的速度 ---》4ms
500 * 1024 * 1024 * 1024 * 8 bit 标准
500 * 1000 * 1000 * 1000 * 8 bit 实际硬盘
虚拟内存:(*****)
在硬盘上分出一个空间作内存,称之为swap分区
swap分区做虚拟内存
1、是一种保命措施,而不是提效措施
2、什么时候用?
程序运行时也会产生新的数据,一旦物理内存不够用了,就会把物理内存中一些数据交换到swap分区上
整个过程计算机的速度被降低,但是保证不崩溃
硬盘 硬件Raid(磁盘阵列) --->P14 raid 0条带 raid 1镜像 raid 5 raid 10
特点:数据条带化,无校验,不提供数据保护; 数据并发写入多个硬盘。
优点:RAID读写性能最高,100%的磁盘空间利用率。
缺点:此方式硬盘数据没有冗余,没有容错,一旦一个物理硬盘损坏,则所有数据均丢失。
适用:RAID0 适合于对数据量大,但安全性要求不高的场景,比如音像、视频文件的存储等。
特点:数据镜像,无校验(检查)。 一半的空间存储冗余数据,但是在所有的RAID中数据安全性 最高。
优点:所有的RAID中安全性能最高,即使一块磁盘发生故障,仍能正常运转。 镜像磁盘没有完全 故障,数据就不会丢失。
缺点:一半的磁盘空间用于存储冗余数据,磁盘空间利用率50%
适用:数据安全性要求比较高的场景,如邮件系统,数据库等。
特点:数据条带化,校验数据均匀分布在每个物理磁盘上。 当某个物理磁盘发生故障,可根据同一条带的其他数据块和对应的校验数据来重建损坏的数据。
优点:允许1个物理磁盘发生故障,而不丢失数据。 读取性能相对较高,磁盘空间利用率大于 RAID1+0。
缺点:写入性能相对低。 重建数据时,性能会受到较大的影响,最少需要三个磁盘才能构建。
适用:RAID5可理解为RAID0和RAID1折中方案,兼顾储存性能,数据安全和存储成本等因素。
特点:RAID1与RAID0的结合,先创建RAID1,再创建RAID0
优点:读取性能仅次于RAID0。 镜像中的磁盘没有全部故障,数据就不会丢失。 一半的物理磁盘 发生故障时,仍可以运转。
缺点:成本高。 磁盘利用率50%,一半的空间用于冗余数据。至少需要四块磁盘。
适用:适用于读写性能要求高,数据安全大于磁盘成本的场景。 如银行、数据库等
二、什么是编程语言
编程语言与英语、法语、汉语一样,都是一种事物与另外一种事物沟通的工具
你 --------英语-----------------英国人
你 --------汉语-----------------中国人
你 --------编程语言-------------计算机
print --工具转换--> 010101010
三、什么是编程?什么是程序
编程就是把你想让计算机做的事情的步骤,用编程语言给翻译下来,写入一系列文件中
这一系列文件就称之为程序,计算机本身并不会运行,计算机的运行都是受程序的控制
银行行长------------------------------------------------------------------------------小员工
要求用户输入账号
要求用户输入密码
判断 用户输入的账号 == "正确的账号" 并且 用户输入的密码 == "正确的密码"
做后续的xxxx
否则:
提示用户重新输入账号密码
银行行长------------------------------------------------------------------------------计算机
用编程语言把上面的步骤给翻译一下
四、程序的分类
细说的话程序可以分为两大类:
1、应用程序:给用户使用/应用的程序
2、操作系统:
操作系统是一个协调管理控制计算机硬件资源与应用软件的一个控制程序
只有操作系统才能控制计算机硬件
应用程序但凡要操作硬件都要给操作系统发请求
计算机体系的三层结构:(***)
1.应用程序
2.操作系统(文件)---eg:将操作系统控制硬盘写入读取的动作定义为文件
3.计算机硬件
02 操作系统
1、操作系统是什么?
操作系统是一个协调、管理、控制计算机硬件资源给应用程序使用的一种控制程序
计算机三层体系
应用程序:图形界面 命令解释器 (无法直接接触操作系统)
操作系统:windows操作系统 linux
计算机硬件(cpu、内存、硬盘)
2、为何要有操作系统?操作系统与应用程序有何区别?
为了方便上层的应用程序开发(操作系统把复杂的硬件控制的代码都给写好了,然后对上层提供简单的功能)
操作系统与应用程序
操作系统:是负责控制硬件的程序,给上层 应用程序来调用
应用程序:是给用户使用的程序
(应用程序不经过命令解释器与操作系统交互反应会更快)
补充: 计算机体系结构详解---》图
3、操作系统的构成(*****)
操作系统由两部分构成:
1、系统调用接口:为上层的应用程序提供的一系列的功能(对上)
2、内核:负责控制硬件的运行的(对下)
操作系统的两种工作状态:
1、用户态:执行的是系统调用接口层的代码,负责跟上层的应用程序打交道
2、内核态:执行的是内核某部分代码,负责跟底层的硬件打交道
操作系统的整个运行过程会频繁发生用户态与内核态的切换
解答问题
操作系统启动之后,应用程序又是如何启动/运行的?
双击快捷方式-------》图形界面-------》windows系统------------》硬件
指令 应用程序
执行某个命令-------》命令解释器bash-------》linux系统------------》硬件
指令 应用程序
1、操作系统接到启动程序的指令
2、操作系统会控制硬件来运行某个应用程序
操作系统控制硬盘把程序的代码文件读入内存
操作系统控制cpu去内存里读取程序的指令来运行
4、操作系统的分类
个人电脑:
台式机:windows
mac:macOS
服务器:
linux(网络)
5、操作系统发展史(**)
第一代计算机
特点:
1、没有操作系统的概念
2、所有的程序设计都是直接操控硬件
多个程序的运行流程:串行 ----》一个程序运行完毕,另外一个程序才能启动
优点:
程序以及它的程序是独享整个计算机资源
缺点:
1、资源浪费(即便程序出问题了,调试程序的过程中你不用计算机,但是别人也用不了)
2、串行
第二代计算机:
特点:
诞生了批处理系统:一下处理一批程序,但这些程序还是串行的
优点:
批处理提升计算机资料的利用率,一个程序出错只输出结果,不影响下一个程序的运行
缺点:
1、程序无法实时调式程序
2、串行
第三代计算机:
硬件的发展:io(input 与 output 输入与输出)+运算的功能集成在一台计算机里
操作系统的核心技术
-多道技术---》控制多个/多道程序看起来是同时运行(******)
1、空间上的复用(共享)
复用的是内存,指的是多个程序能够同时读入内存里----都被启动
空间上的复用必须注意一个点:
加载到内存中的多个程序所占用的内存空间必须是隔离的才行(安全性)
2、时间上的复用
复用的是cpu的时间,指的是cpu在多个内存中的程序之间快速的切换----近似于在同时运行,实质上依然是单个运行
什么情况切换:
1、遇到io操作一定会切换(读取写入操作时先切换别的)
2、没有遇到io操作,也要切换,因为要让cpu能够雨露均沾
一个cpu同一时间只能做一件事:
并发:多个任务看起来是同时运行的,只有单核也能实现并发
并行:多个任务是真正意义上的同时运行的,只能多核才能实现并行
诞生:分时操作系统CTTS
多个联机终端+多道技术
特点:
1、每个程序员/程序都以为自己独占计算机资源
2、多个程序的运行是并发的
诞生:MULTICS(支持更多的联机终端)
简易版的multics即UNIX(ken THOMSON)
1970 unix元年
tcp/ip就是unix上进行开发与测试
GNU活动:
GPL开源协议:
开放源代码,所有人都可以来抄我的源代码,并且可以在此基础上进行修改完善
修改完善之后,你可以收费,但是你也必须开放源代码允许别人抄写
谭宁邦(开发minix)
芬兰大学生-李纳丝linus----》linux(加入GPL)-----发行版(redat系列、debian系列 )
6、 发行版(redat系列、debian系列 )
redat系列
Fedora----------->RHEL------------>CentOS(dnf/yum)
redhat5(license)
redhat6 ------------》centos6 ---centos7.9
Fedora ---------》centos stream-----》RHEL版
debian系列:ubuntu系列
debian---》ubuntu
apt-get
国产系
7、安装的操作系统版本
centos7.9
centos9----》rockylinux9.3
ubunt22.04.4 LTS
补充:什么是驱动程序
驱动程序:是硬件厂商专门为自己的某款硬件设备开发的,用于驱动该硬件运行的专项程序(必须遵循操作系统的标准)
03 操作系统安装
1、操作系统的安装原理介绍
安装的操作的核心原理简介:
操作系统本质就是一种程序。从大的层面看安装程序的本质就是把这个程序的文件存入硬盘
操作的iso包(又称之为操作系统镜像):iso的本质就是一个压缩包,里面放着一堆操作的代码文件
详解:
1、用另外一台机器从网上下载一个iso镜像包,将该iso包存入移动硬盘、光盘、U盘中---》得到一个启动盘
2、把启动盘插入你的计算机中(接下来要做的事情,是把启动盘里的操作系统数据拷贝到你自己的电脑的硬盘里)
3、按下电源键,启动计算机,固定先启动bios程序(basic input output system)
bios启动之后,会根据配置去某些地方加载真正的操作系统代码,bios的配置信息是存放于CMOS中的
找到启动盘后
bios会将启动盘里的操作系统读入内存,然后bios会控制cpu去内存中执行代码,然后真正的操作系统就运行起来
接下来负责掌管硬件运行的就是真正的操作系统了,bios就可以退出舞台
4、把启动盘里的操作系统拷贝到本地硬盘
2、操作系统的启动流程
1、按电源键,通电
2、先执行bios程序,由bios程序临时接管整个硬件的控制
3、bios会读取自己的配置项(CMOS),找到一个启动盘(存放有操作系统的硬盘、光盘、移动u盘)
4、找到启动盘之后,会先读取启动盘的第一个扇区的数据512Byte拉起bootloader程序(前446引导信息,64是分区信息,后2位是结束的标志位)
446字节的引导程序又称之为bootloader(grub程序是我们常用的一种bootloader)
5、bootloader程序启动之后,负责把操作系统后续的代码都加载到内存中,然后运行起来
6、接下来就由真正的操作系统掌握整个计算机的运行,
7、bios操作会去检查各个驱动程序、硬件是否正常,反馈给真正的操作系统,然后就可以退出舞台
3、安装操作系统(*****)
vmware workstation (应用程序):可以创建出一台一台的虚拟机
4、linux的目录结构简单介绍
windows系统多根结构
E:\vmmachine\vm1\vmware-0.log
D:\appium\androidsdk\"SDK Readme.txt"
linux系统是单根结构
/a/b/c/d/e/f.txt
补充:磁盘分区,操作系统定义 “文件夹”概念体系(文件夹无法存储数据,由对应的磁盘区域进行存储),用以关联作为磁盘分区后各区的挂载点(计算机的C D E盘实际上是一个个文件夹) 路径从右往左依次进行分析
5、简单bash命令操作
echo hello
ip a
# ubuntu提权---》临时具有管理员权限,需要加命令前加上sudo
sudo cat /etc/shadow
04 网络基础
1.什么是互联⽹?
互联⽹过去⼜称为“信息⾼速公路”,是⽤来⾼速传输数据的
2.为何要有互联⽹?
为了打破地域限制,进⾏⾼速的数据传输
3.互联⽹的构成
电话 = 电话⽹络 + 规范(英语)
寄快递 = 快递⽹络 + 规范 (快递的填写标准)
互联⽹ = 信息⾼速公路(⼀些列连在⼀起的⽹络设备)+ 规范(⽹络协议)
补充:规范/协议存在的意义是啥?
所有⽹络的设备都需要学会⽹络通信协议,只有这样,包裹在发送过程中才能被沿途设备理解,从⽽确保成功发给下⼀站
⽹络通信协议就相当于计算机界的英语,要求所有设备都学会
互联⽹通信协议:
OSI七层协议:
第⼀层:物理层(位)
数据称之为:bit
负责:传输电信号
单纯的 电信号 没有任何意义,要让其有意义必须对其进⾏分组
第⼆层:数据链路层 (数据帧)---ethernet 以太⽹协议
规定:
1.⼀组电信号称之为数据帧
2.每⼀个数据帧由两部分构成
(1)head:头的⻓度固定 18字节
发送者的地址:6字节
接受者的地址:6字节
数据描述信息:6字节
(2)data:默认最⻓是1500字节
3.以太协议的head⾥⽤的地址就是mac地址
什么是mac地址:
mac地址:⽹卡上的地址,每⼀个mac地址都是全世界独⼀⽆⼆的地址
计算机通信基本靠吼:⼴播(内网)
在局域⽹内⽤的就基于以太⽹(⽤的是mac地址找到对⽅在哪)协议的⼴播⽅式
强调:mac地址是在局域⽹内部⽤的地址,出不了局域⽹
第三层:⽹络层(数据包)---ipv4协议(跨局域⽹通信,需要ip地址来标识局域⽹在哪⾥)
总结:
mac地址可以⼀个局域⽹独⼀⽆⼆的计算机
ip地址可以⽤来标识独⼀⽆⼆的局域⽹在哪⾥
ip地址+mac地址:就定位到全世界范围内独⼀⽆⼆的计算机
ip协议的规定:
1.数据被称之为:数据包
2.数据由两部分构成:
head
源ip地址
⽬的ip地址
data:
数据部分,最⻓65515个字节
ipv4地址组成:
00000000.00000000.00000000.00000000 ------->0.0.0.0
11111111.11111111.11111111.11111111. -------->255.255.255.255
ip地址的职责,或者说⼀个ip地址要反应两种信息:
1.要能标识出全世界范围内独⼀⽆⼆的⼀个局域⽹
2.⼀个ip地址与局域⽹内某台机器的mac地址是⼀⼀对应关系(访问时只用一个,附带另一个)
192.168.71.1 --------- ⼀⼀对应 ---->局域⽹内的某台机器的mac地址
为来能让⼀个ip地址同时表示出上⾯两层含义,在ip地址上⼜增加⼀种地址--->⼦⽹掩码
192.168.71.7
11000000.10101000.01000111.00000111
11000000.10101000.01000111.00000000 ----->192.168.71.0
11000000.10101000.01000111.00000111 ----->192.168.71.7
⼦⽹掩码:
192.168.71.7/24
IP地址:1000000.10101000.01000111.00000111
24位⼦⽹掩码:11111111.11111111.11111111.00000000 ----->255.255.255.0(表示前24位为网络地址(局域网))
⽹络地址: 11000000.10101000.01000111.00000000 ----->192.168.71.0
网络地址:子网掩码与IP地址作 与 运算
通信的前提:
发送端需要事先知道对⽅ip地址
mac地址怎么办:
arp协议:负责将ip地址解析成mac地址
同局域⽹内通信
发送端:192.168.71.7/24
接受端:192.168.71.8/24
在通信之前----> arp协议开始⼯作
1.计算机发送端与接受端的⽹络地址/⼦⽹地址
发送端:192.168.71.0
接收端:192.168.71.0
2.判断发送端的⼦⽹地址 = 接收端的⼦⽹地址
在⼀个局域⽹内,确定接下来就在⼀个局域⽹内:mac+⼴播
问题来了?arp协议怎么帮我们拿到对⽅的mac地址
arp协议发送⼀个⼴播包:
⾃⼰的mac地址 FFFFFFFFFFFF(表示要对方的mac) 192.168.71.7/24 192.168.71.8/24
192.168.71.8这台机器返回给客户端⾃⼰的mac地址
真正的通信:
1号机器的mac 3号机器的mac 192.168.71.7/24 192.168.71.8/24 数据部分
跨局域⽹通信:
1号机器-发送端:192.168.71.7/24
2号机器-接收端:172.16.202.8/24
在通信之前准备⼯作---- arp协议开始⼯作
1.计算发送端与接收端的⽹络地址/⼦⽹地址
发送端:192.168.71.0
接收端:172.16.202.0
2.判断 发送端的⼦⽹地址 != 接收端的⼦⽹地址
不在⼀个局域⽹内,确定接下来是要跨局域⽹通信:mac+⼴播
问题来了,跨局域⽹通信靠谁?---- 靠路由器-----要获得路由器的mac地址
⾃⼰的mac地址 FFFFFFFFFFFF 192.168.71.7 192.168.71.1(路由器网关)
192.168.71.1⽹关返回⾃⼰的mac给1号机器,1号机器⼿⾥有⽹关mac,就可以把信息送给⽹关
真正通信:
1号⾃⼰的mac地址 ⽹关的mac地址 192.168.71.7/24 172.16.202.8/24 数据部分
总结:
通信的前提⼀定要拿到对⽅的地址
ip地址+mac地址:可以表示全世界范围内独⼀⽆⼆的⼀台计算机
有arp协议的加持:拿到ip对使⽤者来说就相当于拿到ip+mac
所以,拿到了对⽅的ip地址就能够表示全世界范围内独⼀⽆⼆的⼀台计算机
私网IP接入公网(获得对应的公网IP)后显露于公网中,便可以被其他私网中的IP访问
第四层传输层(数据段):tcp/udp 基于端口工作的
但凡是基于tcp协议或者udp协议工作的应用程序,都会拥有一个独一无二的端口号(在一个操作系统里端口的范围0-65535)
ip(含mac)+port: 全世界范围内独一无二的一个基于网络通信应用程序
第五层应用层:
应用程序是自己开发,所以应用层用用什么协议应用程序自己定义就好
http协议、ssl协议
socket抽象层:
位于传输层与应用层之间
socket层是对传输层及其以下的封装,封装完之后提供了一系列简单的功能给上次应用程序去调用
基于网络通信的应用程序基本上都是基于socket开发的,所以又称之为套接字程序
四、dns
1、dns是什么
dns(domain name server):负责把域名解析为ip地址
什么是域名:
www.baidu.com 180.101.50.242
egonlin.com
域名结构详解:
www.baidu.com
三级域名.二级域名.一级域名/顶级域名
域名层层分级的原因:
1、每一段都有特定的意义,用最少得字符表达出最多的含义,十分方便用户记忆
2、解析记录分层管理,不需要某一个dns存下所的有的解析记录
2、为何要有dns
为了让你用户记忆(用户记忆域名就可以,dns负责将域名解析为ip地址进行,强调:域名不能用来通信)
3、如何用dns
dns的分类(了解)
权威 DNS(Authoritative DNS)是指在域名系统中,负责提供特定域名准确信息的服务器
dns的查询流程
dns的查询分两种:
1、递归:我不知道,但我帮你拿
2、迭代:我不知道,但是我知道有人知道,你自己去拿
命令验证查询流程(解析过程)
# yum install bind-utils -y
dig +trace egonlin.com
1、dns后续
dns的解析记录类型:
- A 记录(Address Record)
- 定义:将域名指向一个 IPv4 地址。例如,将
example.com
指向192.168.1.1
。 - 用途:最常见的记录类型,用于实现域名到服务器 IP 地址的基本映射,让用户通过域名能够访问到对应的网站或服务器。
- 定义:将域名指向一个 IPv4 地址。例如,将
- AAAA 记录(AAAA Address Record)
- 定义:将域名指向一个 IPv6 地址。如将
example.com
指向2001:0db8:85a3:0000:0000:8a2e:0370:7334
。 - 用途:随着 IPv6 的逐渐普及,用于为支持 IPv6 的网络设备或服务器提供域名解析,确保在 IPv6 网络环境下能够通过域名正确访问目标资源。
- 定义:将域名指向一个 IPv6 地址。如将
- CNAME 记录(Canonical Name Record)
- 定义:将一个域名指向另一个域名,即别名记录。例如,
www.example.com
是example.com
的一个别名,通过 CNAME 记录可以将www.example.com
指向example.com
。 - 用途:常用于为服务器或服务创建易于记忆的别名,方便用户访问,同时也便于在服务器或服务迁移时,只需修改 CNAME 记录指向的目标域名,而无需更改所有相关的域名配置。
- 定义:将一个域名指向另一个域名,即别名记录。例如,
- MX 记录(Mail Exchange Record)
- 定义:指定了接收该域名电子邮件的邮件服务器。例如,对于
example.com
域名,MX 记录会指向邮件服务器mail.example.com
。 - 用途:确保电子邮件能够正确地发送到目标域名的邮件服务器上,实现邮件的正常收发。
- 定义:指定了接收该域名电子邮件的邮件服务器。例如,对于
- TXT 记录(Text Record)
- 定义:可以存储任意文本信息,如域名的说明、验证信息等。例如,用于 SPF(Sender Policy Framework)记录,以防止电子邮件伪造。
- 用途:常用于各种验证和配置目的,如域名所有权验证、邮件服务器的配置说明等。
- NS 记录(Name Server Record)
- 定义:指定了负责该域名解析的权威名称服务器。例如,
example.com
的 NS 记录可能指向ns1.example.com
和ns2.example.com
。 - 用途:用于明确域名的解析责任,告知其他 DNS 服务器应该向哪些名称服务器查询该域名的相关信息。
- 定义:指定了负责该域名解析的权威名称服务器。例如,
- PTR 记录(Pointer Record)
- 定义:是 A 记录的反向记录,它将 IP 地址映射到域名。例如,IP 地址
192.168.1.1
对应的 PTR 记录可能是server.example.com
。 - 用途:常用于反向域名解析,主要用于邮件服务器验证、网络管理和安全等方面,帮助确定某个 IP 地址是否属于特定的域名,以及进行反向查找以获取与 IP 地址相关的域名信息。
- 定义:是 A 记录的反向记录,它将 IP 地址映射到域名。例如,IP 地址
各种解析及其优先级:
1、用户用浏览器访问某个域名
Chrome DNS 缓存 > HOSTS文件 > 系统DNS缓存 > DNS服务器。
hosts文件(需要有管理员权限才能编辑,存放的是A记录)
windows:C:\Windows\System32\drivers\etc\HOSTS
linux:/etc/hosts
2、不用浏览器访问
HOSTS文件 > 系统DNS缓存 > DNS服务器。
eg: 系统缓存随着HOSTS文件的改变而改变
05 网络进阶
2、网络通信(跨网段)必备四种地址
不跨网段有两种地址就可以
ip地址
子网掩码
跨网段通信其实三种地址就够用
ip地址
子网掩码
网关ip地址
如果要用名字访问,还需要再拥有一种地址
dns服务器的地
补充:
东西流量:服务器集群机器之间进行通信
南北流量:与外网进行通信
上述地址的获取方式有两种:
动态获取:dhcp ---》个人用户
静态/永久配置:把ip地址信息写到网卡配置文件
3、网络通信流程(******) 归于socket层(操作系统)管理
网络程序分两大类:
1、C/S架构
client ------------------server
2、B/S架构
browser(浏览器)------------------server
基于B/S架构通信:
1、打开浏览器输入一个url地址
url 统一资源定位符(URL地址),有时也被俗称为 网页地址(网址),如同在网络 上的门牌,是因特网上标准的资源的地址(Address)
http:// egonlin.com:80 /
2、计算机会请求本地dns把域名egonlin.com解析为ip地址
http:// 1.1.1.1:80 /
(ip+端口+路径 = 独一无二的资源)
3、应用层封包:用http协议把数据封装一下
4、传输层:用tcp协议封装一下,打上tcp的头(源端口,目标端口)
5、网络层:用ip协议封装一下,打上ip头(源ip,目标ip)
6、数据链路层:用ethernet协议封装一下,打上ethernet协议的头(源mac、目标mac)
注意:以太网协议的数据部分默认最大传输单元是1500字节 ----》MTU
数据包需要分片发送,以1500个字节为单位
eg: 以太网数据包的数据部分(网络层封装后的数据包),最大长度为 1500 字节,而现在的 IP 数据包长度为 5000 字节。5000 / 1500 = 3.33 因此,IP 数据包必须分割成四个包。每个包都需要重复包含一次的 IP 标头(20 字节),所以额外增加的 3 次乘以 20 得 60,需要冗余多发 60 个字节,加载一起 4 个包 = 5600 字节
4、tcp协议、udp协议
tcp:可靠协议(stream-----流式协议)
不是因为有双向通路才可靠(先通过已知的IP和端口号建立虚拟链接,占用操作系统的部分资源保持对通信对方的记录)
可靠是可靠在: 有确认机制(存于内存中的数据在收到确认信息后才会删除)
udp:不可靠协议
udp协议特点:没有链接
没有确认机制,不可靠
相对tcp协议来说数据传输效率高
eg: 一般情况多为服务端率先断开连接(尽快对下一个请求进行服务),TIME_WAIT增多------访问量大幅增加(高并发)
eg: x x+1 x+2 y y+1 y+2 在一组数据上+1用于验证对方身份
SYN-RCVD状态 ------>进入半连接池等待(队列)--占用内存
syn洪水攻击--拒绝服务(DoS):攻击者发送大量 SYN 包,源 IP 地址是虚假的或不存在的,服务器发出的 SYN-ACK 包无法找到目标地址,也就无法收到最后的 ACK 包,TCP 连接处于半连接状态。服务器会持续等待并可能重复发送 SYN-ACK 包,消耗大量资源占用半连接池,当资源被耗尽时,服务器就无法响应合法用户的请求。
5、了解
子网划分核心:就是控制子网掩码的长短来让ip地址分散到不同的网段/子网里
24位子网掩码---->0-255
25位子网掩码---->0-127 128-255
26位子网掩码---->0-63 64-127 128-191 192-255
192.168.71.7/24
11000000.10101000.01000111.00000111 ---> 192.168.71.7
11000000.10101000.01000111.00000001 ---> 192.168.71.0
11000000.10101000.01000111.00000001 ---> 192.168.71.1
11000000.10101000.01000111.00000010 ---> 192.168.71.2
11000000.10101000.01000111.00000011 ---> 192.168.71.3
11000000.10101000.01000111.00000100 ---> 192.168.71.4
.....
11000000.10101000.01000111.11111111 ---> 192.168.71.255
11111111.11111111.11111111.00000000 ---> 24位子网掩码
11000000.10101000.01000111.00000000 ---> 192.168.71.0
192.168.71.7/25
11000000.10101000.01000111.00000000 ---> 192.168.71.0
11000000.10101000.01000111.00000001 ---> 192.168.71.1
11000000.10101000.01000111.00000011 ---> 192.168.71.2
........
11000000.10101000.01000111.01111111 ---> 192.168.71.127 一直到127为止计算出的网络地址都是192.168.71.0
11000000.10101000.01000111.10000000 ---> 192.168.71.128
11000000.10101000.01000111.10000001 ---> 192.168.71.129
11000000.10101000.01000111.10000010 ---> 192.168.71.130
。。。
11000000.10101000.01000111.11111111 ---> 192.168.71.255 一直到127为止计算出的网络地址都是192.168.71.128
11111111.11111111.11111111.10000000 ---> 25位子网掩码
11000000.10101000.01000111.10000000 ---> 192.168.71.128
只划分IP层面物理层面依然会根据mac地址进行广播,所以需要划分广播域来配合子网划分
vlan:
lan局域网
vlan:虚拟局域网,通过虚拟技术把一个交换机分成多个广播域去用,一个广播域就是一个小的局域网
一个局域网内的广播包与另外一个局域网是隔离
特殊ip地址总结:
1、私网地址
10.0.0.0~10.255.255.255,表示一个A类地址