数据的表示
进制转换
按权展开法
R进制转十进制使用按权展开法,其具体操作方式为:将R进制数的每一位数值用R的k次方表示,即幂的底数是R,指数为k,k与该位和小数点之间的距离有关。当该位位于小数点左边,k值是该位和小数点之间数码的个数,而当该位位于小数点右边,k值是负值,其绝对值是该位和小数点之间数码的个数加1。
短除法
十进制转R进制使用短除法(除基取余法)。
例如将94转换为二进制,不断的除R取余,直到为0,最后从下往上记录得到对应的R进制
减法
十进制转二进制通过减法
二进制转八进制和十六进制
二进制转八进制,对二进制分组,每3位二进制作为一组,不够的在前面补0
二进制转十六进制,对二进制分组,每4位二进制作为一组,不够的在前面补0
例如:
10 001 110 转八进制可以是:2 1 6,相当于0010、0001、0110
码制
数值范围和数值个数
浮点数的表示
N = 尾数 * 基数的指数次幂
尾数是一个定点小数,基数通常是2,指数也叫做阶码(阶码一般出现的时候是定点整数)
移码通常用在浮点数的阶码表示,补码通常用在浮点数的尾数表示
阶码可以影响数值表示的范围,阶码的位数越多,表示的范围就越大
尾数可以表示数值的有效精度,长度越大,精度越高
浮点数运算
运算过程:对阶>尾数计算>结果格式化
需要先进行阶码的对阶,让阶码保持一致
一般对接时,是小数向大数看齐
特点:
1、一般尾数用补码,阶码用移码
2、阶码的位数决定数的表示范围,位数越多范围越大
3、尾数的位数决定数的有效精度,位数越多精度越高
4、对阶时,小数向大数看齐
5、对阶是通过较小数的尾数右移实现的
例如:1.25×10的6次幂,对阶10次幂的话,就需要让尾数右移4位,变为0.000125×10的10次幂
阶符:阶码的符号位,当阶符为正号时,阶码是整数;当阶符为负数时,阶码是小数。
数符:尾数部分的符号位
逻辑运算
逻辑变量之间的运算称为逻辑运算。二进制1和0在逻辑上可以代表“真”与假。
优先次序:
!(非) > &&(与) > ||(或)
逻辑运算符中的&&和||低于关系运算符,!高于算术运算符
因此运算符的优先顺序为:! > 算术运算符 > 关系运算符 > && > || > 赋值运算符
关系运算符
关系运算符及其优先次序
优先级相同(高):<(小于)、<=(小于或等于)、>(大于)、>=(大于或等于)
优先级相同(低):==(等于)、!=(不等于)
说明:
短路原则
在逻辑表达式的求解中,并不是所有的逻辑运算符都要被执行。
校验码
奇偶校验码
码距:任何一种编码都由许多码字构成,任意两个码字之间最少变化的二进制位数就称为数据校验码的码距。
例如,用4位二进制表示16种状态,则有16个不同的码字,此时码距为1,。如0000与0001。
奇偶校验,可检查1位(奇数位)的错误,不可纠错。
CRC循环冗余校验码
CRC校验,可检错,不可纠错。
海明校验码
海明校验码的原理是:在有效信息位中加入几个校验位形成海明码,使码距比较均匀的拉大,并把海明码的每个二进制位分配到几个奇偶校验组中。当某一位出错后,就会引起有关的几个校验位的值发生变化,这不但可以发现错误,还能指出错误的位置,为自动纠错提供了依据。
海明校验码即可检错,也可纠错。
海明校验位的求取公式:2的r次方 >= m + r +1 或者 2的r次方 - 1 >= m + r
r是最小值,m是信息位的个数
偶校验:最终1的个数是偶数个;
CPU的组成(运算器与控制器)
计算机结构
CPU结构
运算器
1. 算术逻辑单元ALU:数据的算术运算和逻辑运算
2. 累加寄存器AC:通用寄存器,为ALU提供一个工作区,用在暂存数据
3. 数据缓冲寄存器DR:写内存时,暂存指令或数据
4. 状态条件寄存器PSW:存状态标志和控制标志(有争议,也有将其归为控制器的)
控制器
1. 程序计数器PC:存储下一条要执行指令的地址
2. 指令寄存器IR:存储即将执行的指令
3. 指令译码器ID:对指令中的操作码字段进行分析解释
4. 时序部件:提供时序控制信号
寻址方式
指令的基本概念
一个指令就是机器语言的一个语句,它是一组有意义的二进制代码,指令的基本格式如下:
地址码是可以不存在的,所以也就有以下分类
立即寻址方式
特点:操作数直接在指令中(放置的是操作数本身),速度快,灵活性差
直接寻址方式
特点:指令中存放的是操作数的地址
间接寻址方式
特点:指令中存放了一个地址,这个地址对应的内容是操作数的地址。
寄存器寻址方式
特点:寄存器存放操作数
寄存器间接寻址方式
特点:寄存器内存放的是操作数的地址
CISC与RISC
CISC与RISC比较,分哪些维度?
指令数量、指令使用频率、寻址方式、寄存器、流水线支持、高级语言支持
流水线技术
流水线计算
实践公式:(k+n-1)*△t 其中 k 为一条指令所包含部分的数量,n 为指令的条数,Δt 为流水线周期
例题:若指令流水线一条指令分为取指、分析、执行三个阶段,并且这三个阶段的时间分别为取指1ns,分析2ns,执行1ns,则流水线的周期为多少?100条指令全部执行完毕需要执行的时间是多少?
分析:上面已经说过,流水线的周期为花费时间最长的阶段所花费的时间,所以流水线的周期就是2ns。
根据理论公式,T=(1+2+1)+(100-1)2=4+992=202ns
根据实践公式,T=(3+100-1)*2=204ns
流水线吞吐率计算
存储系统
层次化存储结构
局部性原理是层次化存储结构的支撑
分类
存储器位置:内存&外存
存取方式:
按内容存取
按地址存取
工作方式
1. 随机存取存储器RAM(如内存DRAM)
2. 只读存储器ROM(如BIOS)
Cache
概念
在计算机的存储系统体系中,Cache是访问速度最快的层次(若有寄存器,则寄存器最快)。
使用Cache改善系统性能的依据是程序的局部性原理。
如果以h代表对Cache的访问命中率,t1表示Cache的周期时间,t2表示主存储器周期时间,以读操作为例,使用"Cache + 主存储器"的系统的平均周期为t3,则:
t3 = h × t1 + (1-h) × t2
其中,(1-h)又称失效率(未命中率)。
直接相联映像:硬件电路较简单,但冲突率很高。
全相联映像:电路难于设计和实现,只适用于小容量的cache,冲突率较低。
组相联映像:直接相联与全相联折中。
注:主存与Cache之间的地址映射由硬件直接完成。
映像
地址映像是将主存与Cache的存储空间划分为若干大小相同的页(或称为块)
例如,某机的主存容量为1GB,划分为2048页,每页512KB;Cache容量为8MB,划分为16页,每页512KB。
直接相联映像
全相联映像
组相联映像
主存编址计算
存储单元
编址内容
总容量 = 存储单元个数 * 编址内容
根据存储器所要求的容量和选定的存储芯片的容量,就可以计算出所需芯片的总数,即:
输入输出技术
数据传输控制方式
(DMAC向总线裁决逻辑提出总线请求;CPU执行完当前总线周期即可释放总线控制权。此时DMA响应,通过DMAC通知I/O接口开始DMA传输。)
通道方式
I/O处理机
中断处理过程:
总线系统
一条总线同一时刻仅允许一个设备发送,但允许多个设备接收
总线的分类
可靠性
可靠性指标
串联系统和并联系统
下图中,第一个示例为串联系统,第二个为并联系统
下图中有对应的计算公式
N模混合系统
性能指标
操作系统概念
操作系统的作用
特殊的操作系统
多道批:一次多个作业入内存,特点:多道、宏观上并行微观上串行
特点:多路性、独立性、交互性和及时性
交互能力要求不高,可靠性要求高(规定时间内响应并处理)
主要的网络操作系统有:Unix、Linux和Windows Server系统
是网络操作系统的更高级形式,具有透明性、可靠性、高性能等特性
Linux:免费使用和自由传播的类Unix操作系统,多用户、多任务、多线程、多CPU的操作系统
特点:微型化、可定制(针对硬件变化配置)、实时性、可靠性、易移植性(HAL和BSP支持)
进程
线程的概念
进程的概念
PCB:PCB是进程存在的唯一标志。内容包含进程标识符、状态、位置信息、控制信息、队列指针(链接同一状态的进程)、优先级、现场保护区等。
进程和程序
进程和线程
进程的2个基本属性:可拥有资源的独立单位;可独立调度和分配资源的基本单位。
进程可以包含多个线程
线程之间可共享的内容有
不可共享的内容有:
进程的状态
五态模型
挂起原因:
1. 进程过多,主存资源不足,此时必须将某些进程挂起,放到磁盘对换区,暂时不参与调度,以平衡系统负载;
2. 系统出现故障,或者是用户调试程序,也可能需要将进程挂起检查问题。
进程调度
PV的概念
进程的同步与互斥
临界资源:诸进程间需要互斥方式对其进行共享的资源。(进程中访问临界资源的那段代码称为临界区)
互斥:如千军万马过独木桥,是一种间接制约关系,相当于独木桥制约了所有人。
互斥的简单释义其实就是:一个服务器的情况下,只能存在一个使用者,只有当 当前 使用者使用完成后,其他使用者才能进入服务器使用,这就是互斥,排斥其他人
同步:速度有差异,在一定情况停下等待,是一种直接制约关系,相当于速度直接制约了不同的进程。
同步简单来说,其实就是多个进程同时出发,但有的进程速度快,有的进程速度慢,快的就需要等待慢的来同步进行
PV操作
信号量与PV操作
互斥模型
多个进程共享一台打印机问题(互斥模型):
当使用打印机时,就将打印机上锁,即P(S)操作;
当打印机使用完成后,进行V(S)操作,将打印机解锁
这里的S代表互斥信号量,互斥信号量S的初值为1。
同步模型
生产者:
消费者:
同步模型所需要确定的就是,当数据被生产后,消费者需要将其消费,所以V操作的先后并不重要,重要的是P操作的检查情况,保证同步的进行
前趋图与PV操作
PV操作应用
前趋图节点表示进程,箭头表示进程间的先后关系,前趋节点完成之后,才能执行后继节点。
复杂一点的前趋图,会有进程间的并行关系,会体现进程之间的直接制约关系
在执行D操作的时候,必须先去验证前趋节点是否已经准备就绪,也就是说,需要P(Sa)、P(Sb)、P(Sc)操作去验证ABC三个前趋节点是否已经完成;而PV操作是成对出现的,因此有了P操作,还需要三个V操作与之对应。
A完成之后,会有V(Sa);
B完成之后,会有V(Sb);
C完成之后,会有V(Sc);
也就是说,在前趋图中,所有的箭线中的箭头流出会对应一个V操作,箭头流入对应一个P操作,这也就是PV操作,只是A完成后释放当前资源的操作叫做V操作,在D操作执行前需要保证A操作执行了的操作的叫做P操作
如下图所示,对应操作执行完成后,都会释放为V操作,并对下一流节点进行P操作,通过后则如此反复
死锁资源计算
死锁问题
所谓死锁,是指两个以上的进程互相都要对方已经占有的资源,导致无法继续运行下去的现象。
死锁的四大条件:
死锁处理:
进程管理是操作系统的核心,但如果设计不当,就会出现死锁的问题。如果进程在等待一件不可能发生的事,则进程就死锁了。而如果多个进程产生死锁,就会造成系统死锁。
系统不可能发生死锁的最小资源数 (w-1)* m <= n
m:代表进程数量
w:代表每个进程需要的资源数量
n:代表总资源可用数量
进程资源图
如下图所示
第三图具体图意:先分析资源分配情况,列出剩余可用资源:此时已分配1个R1给进程P,剩余1个R1可用。
再判断申请后进程是否能够执行:P进程申请1个R1,系统有1个R1可用,P进程可成功执行,执行后释放占用的2个R1
段页式存储
页式存储
页式存储组织
页式存储:将程序与内存均划分为同样大小的块,以页为单位将程序调入内存。
将用户程序划分为固定大小的页面,内存也划分为相同大小的页面
此时用户程序被称为逻辑页,内存被称为物理页
物理块号又称页帧号
逻辑地址 = 页号 + 页内地址
物理地址 = 页帧号 + 页内地址
优点:利用率高,碎片小,分配及管理简单
缺点:增加了系统开销,可能产生抖动现象
页面淘汰依据
页面置换算法
说明一下这里的先进先出算法,具体流程是这样的:
432143543215,3个页面
432,先进入对应的页面,此时轮到1,遵从先进先出原则,将4踢出页面并放入1,接着踢出3放入4,踢出2放入3,以此推类即可。
局部性原理:
段式存储
段式存储组织
段式存储:按用户作业中的自然段来划分逻辑空间,然后调入内存,段的长度可以不一样。
示例图
起始位置记录后被称为基址,依次记录相应所需的长度,称为段长
段号不超过段长时,逻辑地址可以转换为对应的物理地址。
优点:多道程序共享内存,各段程序修改互不影响
缺点:内存利用率低,内存碎片浪费大
段页式存储
段页式存储:段式和页式的综合体。先分段,再分页。1个程序有若干个段,每个段中可以有若干页,每个页的大小相同,但每个段的大小不同。
示例图
优点:空间浪费小、存储共享容易、存储保护容易、能动态连接
缺点:由于管理软件的增加,复杂性和开销也随之增加,需要的硬件以及占用的内容也有所增加,使得执行速度大大下降
磁盘管理
存取时间=寻道时间+等待时间,寻道时间是指磁头移动到磁道所需的时间;等待时间为等待读写的扇区转到磁头下方所用的时间。
读取磁盘数据的时间应包括以下三个部分:
1. 找磁道的时间。
2. 找块(扇区)的时间,即旋转延迟时间。
3. 传输时间。
FCFS
SSTF
解题步骤
最短移臂调度算法
这题应该如何操作,首先我们要确定15号柱面,最短移臂调度算法,是找离15号最近的柱面号,那么,我们先将柱面号和请求序列对应的找出,从小到大排列
找一下柱面号中距离15号柱面最近的->12,所以15或者51开头都行,接着找->19,所以24或42往后都行,然后以此类推即可。
IO管理软件
文件管理
文件相关概念
文件目录:
基本信息项:文件名、文件的物理地址、文件长度和文件块数等
存储控制信息类:文件的存储权限:读写、执行权限等
(文件属性:只执行、隐含、只读、读/写、共享、系统)
使用信息类:文件建立日期、最后一次修改/访问日期、当前使用的信息打开文件的进程数以及在文件上的等待队列等
树形目录结构
多级目录结构允许不同用户的文件可以具有相同的文件名
位示图
空闲存储空间的管理
太难了,听懵了,写不出来
索引文件
索引文件结构
一般的索引文件有13个节点,从0开始,0-12,13个节点存地址,地址去存物理盘块,盘块再去存内容。
索引可以分为:
如果一个存储结构不使用索引,那么他的存量就是 物理块数 \* 单位大小。
如果每个物理块的单位大小为 4K,则总空间为 4*13 = 52K
如果引入了一级间接索引,索引指向了具体的物理块号
我们假设第10个节点是一级间接索引,如果一个地址占用4个字节,一个物理盘块有4KB容量(因为4KB=1024``4B),那么在第10个物理块中就可以存放1024份地址,那么10号物理块中就可以存储1024份容量,就是10244KB = 4 MB的容量。
如果引入了二级间接索引,索引指向了中间索引,中间索引在指向具体的物理块号。
如果一个地址占用 4 个字节,一个物理盘块有 4KB 容量,那么在第 11 个物理块中就可以存放 1024 份地址,每份子地址可以再存储 1024 份二级地址,那么 11 号物理块就可以存储 1024 \* 1024 份容量,就是 1024 X 1024 X 4KB = 4GB 的容量。
间接索引的容量是通过物理盘块的大小去除以地址占用的字节后,在对应的间接索引中说明,可存放的地址容量,如果每个地址容量,还存在二级间接索引,那么就在对应的基础上,再存入对应的容量,如二级间接索引的意思
作业管理
作业的状态
作业调度算法
响应比 = (作业等待时间 + 作业执行时间) / 作业执行时间
数据库的基本概念
数据库体系结构
集中式数据库系统
C/S结构 or B/S结构
分布式数据库
并行数据库
分布式数据库特点
分布式数据库透明性
三级模式结构
三级模式和两级映像
(视图级)外模式
逻辑独立性:数据的逻辑结构发生变化后,用户程序也可以不修改。但是为了保证应用程序能够正确执行,需要修改外模式和概念模式之间的映像。
(表级)概念模式
物理独立性:当数据的物理结构发生变化后,应用程序不用改变,但是为了能够保证应用程序能够正确执行,需要修改概念模式和内模式之间的映像。
数据仓库
数据仓库特点
上图所展示的4个步骤
1. 数据预处理
2. 数据仓库存储
3. 数据分析
4. 数据展现
数据库设计过程
下面说明对应过程所得出的内容
需求分析:数据流图、数据字典、需求说明书
概念结构设计:ER模型
逻辑结构设计:关系模式(考虑规范化问题)
物理设计:聚簇索引
概念设计模式
概念设计过程
集成的方法:
集成产生的冲突及解决办法:(针对同一对象)
E-R图
E-R模型
属性
简单属性和复合属性
单值属性和多值属性
NULL属性:表示无意义或不知道
派生属性:可以从其他属性得来
联系类型判断
两个以上不同实体集之间的联系(三元联系)
多重度的确定(可根据语义直接转换)
以三元关系中的一个实体作为中心,假设另两个实体都只有一个实例:
若中心实体只有一个实例能与另两个实体的一个实例进行关联,则中心实体的连通数为`一`
若中心实体有多于一个实例能与另两个实体实例进行关联,则中心实体的连通数为`多`
同一实体集内的二元联系
拓展的E-R模型
上述是理论,下面简单描述一下
弱实体其实就是说依赖性很强的实体,不能单独存在,不能脱离主体,像附件不能单独存在一样
特殊化可以说明一个实体是有着与其他实体相同的特性,但拥有一些拓展的能力
聚集,类似第三方,中间的媒介来联系另一端
逻辑结构设计
关系模式相关概念
数据模型
注:数据模型三要素:数据结构、数据操作、数据的约束条件
相关概念
这里的候选码说明的唯一标识元组是什么意思呢,for example:一个学生可以有学号、姓名、身份证号...等信息,当然学号可以表明这个学生是一个唯一的存在,身份证号也可以,此时,候选码可以是学号,也可以是身份证号,都可以单一的作为唯一标识来使用。for example:一个学生的成绩表,需要由学号、课程号、成绩组成,而通过单一的学号or单一的课程号是无法成功组成一个成绩的,因为一个学号只能代表该学生的成绩,但无法表明是哪一科,同理,课程号也是如此,当学号代表了某个学生,课程号代表了指定的课程,那么这个成绩就会被唯一的表示出来,此时,候选码中的属性集合就是两个(学号、课程号)
我们可以从候选键中选出一个作为主键
关系的三种类型
完整性约束
E-R图转关系模式
1. 一对一的转换有两种方式
2. 一对多联系的转换有两种方式
3. 多对多联系的转换只有一种方式
关系代数
了解关于表之间的交集、并集、差集、笛卡尔积、投影(垂直方向获取data)、选择(水平方向条件筛选data)
自然连接
自然连接的列数是由:两者的列数之和-重复列数
规范化理论
函数依赖
函数依赖,可以理解为通过x可以计算出y,而y是依赖于x所得出的结果
另类的说法,从数据库层面来说,假设有一个学号一个姓名,我们可以通过学号去查出姓名,但没办法通过姓名查出学号(因为姓名有可能重复)
这里存在其他两种函数依赖,一种是部分函数依赖,另一种是传递函数依赖
部分函数依赖呢,可以这么说嘛,通过二者的组合键来推出一个值,这是通过组合键中的一部分,可以确定某个属性,这个部分,就体现在了组合键中
传递函数依赖,其实就是通过A可以推出B,B可以推出C,那么A就可以推出C,因为B传递了C,当然,这是有条件的,B是不可以推出A的,因为当B推出A时,二者等价,等价就不存在传递函数依赖的关系了
价值与用途
非规范化的关系模式,可能存在的问题包括:数据冗余、更新异常、插入异常、删除异常
候选关键字
超键是用来唯一标识元组的,候选键也是用来唯一标识元组的,当超键消除多余属性后,就变为了候选键,候选键从中任选一个,就是主键
怎么说超键与候选键的区别呢,这里给出一个例子,(学号、姓名、性别),由学号、姓名可以组成超键,它可以唯一标识元组,性别这个值,当然它不能作为候选键,因为候选键不能有多余属性,而学号和姓名,其中一个就是多余属性,因为我们可以通过学号就能确定性别,此时姓名就冗余了,多余了
主键就好比从多个候选键中选出一个候选人作为主键来使用
求候选键
1. 将关系模式的函数依赖关系用“有向图”的方式表示
2. 找入度为0的属性(没有任何一个箭头指向它),并以该属性集合为起点,尝试遍历有向图,若能正常遍历图中所有结点,则该属性集即为关系模式的候选键
3. 若入度为0的属性集不能遍历图中所有结点,则需要尝试性的将一些中间结点(既有入度,也有出度的节点)并入 入度为0的属性集中,直至该集合能遍历所有结点,集合为候选键
好的,已知上述信息后,我们可以看一下下面这道题,给定了R(关系节点),F(每一条指向的线段)
我们找出入度为0的点,这里看出是A1,以A1作为起点,来遍历,发现A1到了A2,可以往A4、A3方向遍历,可以完全遍历,那么A1就是R的候选键
第二题,先找出入度为0的点,A、B、D、C,ABC组合后,可以遍历上面的结点,C可以遍历IJ,那么ABCD组合后,才能遍历所有的结点
范式
数据库范式,想要达到第二范式,必须先达到第一范式,想要达到第三范式,必须先达到第二范式
主属性:主属性属于候选键的一部分
非主属性:非主属性就是不属于候选键的一部分
数据库第一范式:属性值都是不可分的原子值
数据库第二范式:消除非主属性对候选键的部分依赖
数据库第三范式:消除非主属性对候选键的传递依赖
数据库BC范式:消除主属性对候选键的传递依赖
第一范式
第一范式(1NF):在关系模式R中,当且仅当所有域只包含原子值,即每个分量都是不可再分的数据项,则称R是第一范式。
简单说明第一范式,其实就是将,列项,分为不可再分的值,细分列项
第二范式
第二范式(2NF):当且仅当R是1NF,且每一个非主属性完全依赖主键(不存在部分依赖)时,则称R是第二范式。
不需要为表移除后所导致的其他问题而苦恼,通过第二范式,你可以让表的独立性大大的提高
第三范式
第三范式(3NF):当且仅当R是1NF,且E中没有非主属性传递依赖于码时,则称R是第三范式。
第三范式让冗余的字段结合起来,作为一个新的字段集合
BC范式
BC范式(BCNF):设R是一个关系模式,F是它的依赖集,R属于BCNF当且仅当其F中每个依赖的决定因素必定包含R的某个候选码。
模式分解
听了一大堆,一句没听懂
数据库并发控制
原子性:要么一次通过,要么一次全失败
一致性:在事务执行之前,数据是一致的状态,在事务执行后,数据也是一致的状态
隔离性:事务之间是独立进行、互不影响
持续性:事务执行之后,结果是持续的
并发问题示例
封锁协议
S锁:读锁
X锁:写锁
读锁加入后,还可以加读锁,但不能加写锁
写锁加入后,不能加入任何锁
数据库完整性约束
数据库安全
数据备份与恢复
1. 静态海量转储:在系统中无运行事务时进行,每次转储全部数据库。
2. 静态增量转储:在系统中无运行事务时进行,每次只转储上一次转储后更新过的数据。
3. 动态海量转储:转储期间允许对数据库进行存取或修改,每次转储全部数据库。
4. 动态增量转储:转储期间允许对数据库进行存取或修改,每次只转储上一次转储后更新过的数据。
日志文件:事务日志是针对数据库改变所做的记录,它可以记录针对数据库的任何操作,并将记录结果保存在独立的文件中
数据库故障与恢复
数据仓库与数据挖掘
OLAP服务器:联机分析处理服务器
数据挖掘方法分类
反规范化技术
由于规范化会使表不断的拆分,从而导致数据表过多。这样虽然减少了数据冗余,提高了增、删、改的速度,但会增加查询的工作量。提高了增、删、改的速度,但会增加查询的工作量。系统需要进行多次连接,才能进行查询操作,使得系统效率大大下降
解决方法
计算机网络
OSI/RM七层模型
ARP、RARP、IP、ICMP、IGMP
PPTP、L2TP、SLIP、PPP
网络技术标准与协议
TCP三次握手
DHCP协议
1. 客户机/服务器模型
2. 租约默认为8天
3. 当租约过半时,客户机需要向DHCP服务器申请续租;
4. 当租约超过87.5%时,如果仍然没有和当初提供IP的DHCP服务器联系上,则开始联系其他的DHCP服务器
5. 固定分配、动态分配和自动分配
6. 169.254.X.X和0.0.0.0
DNS协议
主机向本地域名服务器的查询采用递归查询。
本地域名服务器向根域名服务器的查询通常采用迭代查询。
递归查询:服务器必须回答目标IP与域名的映射关系。
迭代查询:服务器收到一次迭代查询回复一次结果,这个结果不一定是目标IP与域名的映射关系,也可以是其他DNS服务器的地址。
当一个客户端(例如你的电脑或手机)向 DNS 服务器(通常是你的本地 DNS 服务器或 ISP 的 DNS 服务器)发送请求时,如果该服务器没有所需的信息,那么它有责任自己去其他 DNS 服务器中查找这些信息。
服务器会代表客户端执行所有必要的进一步查询,直到它获得答案。然后,它将答案返回给客户端。这种查询方式称为递归查询,因为服务器必须递归地完成客户端的查询。
这种查询方式简化了客户端的工作,但为服务器增加了更多的工作。
当一个 DNS 服务器(例如本地 DNS 服务器)向其他 DNS 服务器(例如根域服务器或 TLD 服务器)发送查询时,它可能执行一个迭代查询。
在迭代查询中,被查询的服务器提供关于如何获得答案的最佳信息,但并不实际为查询者提供最终答案。例如,当本地 DNS 服务器查询根服务器以获取 example.com 的 IP 地址时,根服务器可能只告诉它去查询一个特定的 .com TLD 服务器。
之后,本地 DNS 服务器再继续查询 .com TLD 服务器,然后可能被告知去查询 example.com 的权威 DNS 服务器。这个过程一直持续,直到本地 DNS 服务器得到最终的答案。
这种查询方式意味着每一步都需要请求者(在这种情况下是本地 DNS 服务器)进行下一步的查询,而不是被查询的服务器自己去做。
相当于说,递归查询是服务器自己去帮你找这个网络地址,而迭代查询是你本地客户端去找这个网络地址,服务器告诉你去哪找或者直接提供给你
拓扑结构
按分布范围分
按拓扑结构分
网络规划与设计
系统测试
逻辑网络设计
利用需求分析和现有网络体系分析的结果来设计逻辑网络结构,最后得到一份逻辑网络设计文档
输出内容包括以下几点:
物理网络设计
物理网络设计是对逻辑网络设计的物理实现,通过对设备的具体物理分布、运行环境等确定,确保网络的物理连接符合逻辑连接的要求。输出如下内容:
分层设计
IP地址与子网划分
IP地址
1. 子网掩码
2. 将一个网络划分为多个子网(取部分主机号当子网号)
3. 将多个网络合并成一个大的网络(取部分网络号当主机号)
例1,将B类IP地址168.195.0.0划分成27个子网,子网掩码为多少?
首先需要将ip地址转换成二进制
1010 1000 1100 0011 0000 0000 0000 0000
如何划分对应的位数呢,我们从后续的0中借位,假设需要借的位数为k,需要划分的子网为N
那么一位0就相当于2的1 = 2,2位0是2的2 = 4,依次继续
那么我们需要满足27位,也就是N=27,借5位就是2的5次 = 32
那么,原来的网络号则是1,子网号也是1,而主机号是0
则结果是:1111 1111 1111 1111 1111 1000 0000 0000
这就是子网掩码,如果我们想将其划成60个子网,则再借一个主机号,让主机号为1即可,也就是2的6次64即可
最后将结果转为十进制即可
`1111 1111 1111 1111 1111 1000 0000 0000` = 255.255.248.0
例2,将B类IP地址168.195.0.0划分成若干子网,每个子网内有主机700台,则子网掩码为多少?
这个题应该反推,700台主机需要多少个主机号那么2的k次方 - 2 需要 >= 700
那么至少需要10个主机号才能满足700台主机,其他的就可以作为网络号了
接着将其转为10进制即是子网掩码
无分类编址(无类域间路由)
特殊含义IP地址
无线网
优势:
接入方式
网络接入技术
IPv6
(1)IPv6地址长度为128位,地址空间增大了(2的96次方)倍
(2)灵活的IP报文头部格式。使用一系列固定格式的扩展头部取代了IPV4中可变长度的选项字段。IPv6中选项部分的出现方式也有所变化,使路由器可以简单路过选项而不做任何处理,加快了报文处理速度;
(3)IPv6简化了报文头部格式,字段只有8个,加快报文转发,提高了吞吐量;
(4)提高安全性。身份认证和隐私权是IPv6的关键特性;
(5)支持更多的服务类型;
(6)允许协议继续演变,增加新的功能,使之适应未来技术的发展;
系统安全分析与设计
信息系统安全属性
对称加密
常见对称密钥加密算法:加密时使用的密钥和解密时是完全一致的
非对称加密
非对称加密技术:加密的密钥和解密的密钥是使用的不同密钥
缺陷:
常见的非对称密钥加密算法:
信息摘要
单向散列函数(单向Hash函数)、固定长度的散列值
常用的消息摘要算法有MD5、SHA,市场上广泛使用的MD5,SHA算法的散列值分别为128和160位,由于SHA通常采用的密钥长度较长,因此安全性高于MD5
信息摘要其实就是从原内容通过消息摘要算法破坏性的解析特征值得出一个对应位数的值,作为信息摘要和内容一起发给其他用户,信息摘要起到了一个验证内容完整性的作用
数字签名
一般信息传输时,是这样一个流程
将信息发送给B,明文发送,并将文章产生信息摘要,用A的私钥加密后生成了数字签名,传输给B,B通过A的公钥解密(只有通过公钥和私钥一起,才能解密),因为私钥只有A有,所以B解析出了信息摘要(B通过A的公钥解析出了A的信息摘要,说明这个信息是A的,这就是数字签名),将接收到的文章产生信息摘要进行比对,无误后说明就没问题了
数字签名是表示身份的,没有保密性,通过谁的公钥打开了这个包,那么这个包就是谁发生的
数字信封与PGP
各个网络层次的安全保障
网络威胁与攻击
例如对通信线路中传输的信号进行搭线监听,或者利用通信设备在工作过程中产生的电磁泄露截取有用信息等。
防火墙
数据结构与算法基础
数组
a`[i][j]`的存储地址(按列存储)为:a+(j``m+i)``len
稀疏矩阵
线性表
顺序表和链表
线性表分为顺序表和链表
下图为概念图示
链表的基本操作
顺序存储和链式存储对比
队列与栈
理解示意图
后续这里的数据结构与算法讲的不是很好,后面单独有效的去学习数据结构与算法
软件开发模型
瀑布模型:送代模型/送代开发方法
演化模型:快速应用开发
增量模型:构件组装模型/基于构件的开发方法
螺旋模型:统一过程/统一开发方法
快速原型模型:敏捷开发方法
喷泉模型:模型驱动的开发方法
V模型:基于架构的开发方法
瀑布模型(SDLC)
其他经典模型
增量模型与螺旋模型
增量模型是逐步开发,开发一部分就放出去一部分
V模型、喷泉模型与RAD
构建组装模型(CBSD)
统一过程
听了没啥用,全是理论,刷题完事了
面向对象
面向对象基本概念
设计原则
单一职责原则:设计目的单一的类
开放-封闭原则:对扩展开放,对修改封闭
李氏(Liskov)替换原则:子类可以替换父类
依赖倒置原则:要依赖于抽象,而不是具体实现;针对接口编程,不要针对实现编程
接口隔离原则:使用多个专门的接口比使用单一的总接口要好
组合重用原则:要尽量使用组合,而不是继承关系达到重用目的
迪米特(Demeter)原则(最少知识法则):一个对象应当对其他对象有尽可能少的了解
UML
设计模式
设计模式的概念
设计模式的分类
创建型模型
抽象工厂模式
构建器模式
同的表示
工厂方法模式
原型模式
单例模式
结构型模式
适配器模式
桥接模式
组合模式
装饰模式
外观模式
享元模式
代理模式
行为型模式
职责链模式
命令模式
解释器模式
选代器模式
中介者模式
备忘录模式
观察者模式
状态模式
策略模式
模板方法模式
访问者模式
数据流图(DFD)
数据流图的基本概念
数据字典
数据流图平衡原则
数据库设计
数据库设计过程
ER模型
转换的基本原则是:实体和联系分别转换成关系,属性则转换成相应关系的属性。