具有随机存储特性,查找时间复杂度为O(1)
根据限定条件判断合法性;最小容量;表达式求值*;中缀表达式转化为后缀表达式过程*
应用:数制转换、括号匹配、表达式求值(中缀表达式、后缀表达式)、递归调用等
先序、中序、后序遍历
层次遍历:利用队列实现
线索二叉树:若无左子树,令左孩子指向前驱节点;若无右子树,令右孩子指向后继节点
双亲表示法:表格形式
孩子表示法:表格链表形式
孩子兄弟表示法:二叉链表进行存储
查找
插入(构造
相互转换:根节点当做兄弟节点,再用孩子兄弟表示法
哈夫曼编码:使用不等长编码,减少信息存储量;0转向左孩子,1转向右孩子
( , )无向图,< , >有向图
1.邻接矩阵法:适合稠密图
2.邻接表法
3.邻接多重表、十字链表
最小生成树不唯一,最小生成树代价唯一
按照权值递增顺序依次构造边
迪杰斯特拉算法解决单元最短路径问题
创建定点的距离表,根据不同深度不断更新距离表
Floyd算法解决各顶点之间最短路径问题
不存在回路就能构造
原理:找一个没有前驱的节点输出,并删去该节点
AOV网:数据在顶点(面向对象
e(i)=max{}; l(i)=min{};
AOE网:数据在边上(面向过程
只有关键路径上的活动时间同时减少时,才能缩短工期
关键活动:最迟开始时间 l(i) - 最早开始时间 e(i) = 0
high=mid-1; low=mid+1;仅适用于有序的顺序表
int Binary_Search(SeqList L,ElemType key,int n){
int low=0,high=n-1,mid;
while(low<=high){
mid=(low+high)/2;
if(L.elem[mid]==key)
return mid;
else if(L.elem[mid]>key)
high=mid-1;
else low=mid+1;
}
return -1;
}
BiTNode *BST_Search(BiTNode *t,ElemType key){
if(t==NULL)return NULL;
else{
if(t->key=key)return t;
else if(key < t->key)return BST_Search(t->t->lchild,key);
else return BST_Search(t->rchild,key);
}
}
B+树有两种查找方式,一种从上往下,一种从根节点开始的依次查找
查找
插入
删除
除留余数法 、数字分析法、平方取中法
处理冲突:开放定址法、拉链法⭐️
KMP
next值计算
nextval计算
对大多数内部排序仅适用于顺序存储结构
切割子表,对每个子表进行插入排序;通过对原始数组预处理使得数组大体有序,使得最终的插入排序变得简单
内部排序中平均性能最优
选择最小的放前面、不稳定,可能会导致相同元素的相对位置发生变化
删除节点时,将最后一个元素放在顶部,再逐步下沉
大根堆:从第一个非叶子节点开始构造
MSD: 最高为优先;LSD:最低位优先
胜者树与败者树:败者树可以加快合并序列,减小归并路数k增大的影响
生成初始归并段
组织初始归并段:哈夫曼树的思想,得到好的归并顺序,使得 I/o 次数最少
当初始归并段不足以构成严格k叉树时,需添加长度为0的虚段
设度为0的个数有n0个:
https://www.cnblogs.com/jev-0987/p/13322232.html
开机后操作系统加载到 RAM 中
批处理交互性差
现代OS两个最基本特征:并发与共享,互为存在的条件。(虚拟、异步)
不属于多道程序设计的基本特征:顺序性(为单道程序设计特征,多道竞争)
管态与目态
主程序调用子程序完全是软件处理过程;PSW:程序状态字寄存器
访管中断:需要特权指令引起的中断(自愿中断事件),本身不是特权指令,使得用户程序能够访问管态
计算机通过硬件、中断机制完成用户态到核心态的转换,不是中断处理程序
用户态下常见指令:命令解释程序;访管指令
核心态下常见指令:进程切换;置时钟指令;广义指令(系统调用指令);输入输出;关中断指令
单道处理程序:缺点:缺少交互性
动态性是进程最基本特征
全局变量是对同一进程而言,不同进程是不同变量,无法利用其交换数据
**连续分配管理方式:**单一、固定分区、动态分区分配(首次适应、最佳适应、最坏适应
非连续分配
虚拟页式存储管理:基于局部性原理
抖动:刚换出又要换入内存
逻辑结构:顺序文件、索引文件、索引顺序文件
目录结构
文件共享与文件保护:硬链接(基于索引节点)(直接在索引节点上计数)、软链接(基于符号链)(给个链接地址到索引节点)
磁盘组织与管理:磁盘调度算法:SSTF最短寻道时间优先;SCAN当前移动方向上最近的;C-SCAN单向后返回初始段;
IO控制:DMA在IO设备与内存之间开辟直接的数据通路
IO软件的层次结构
IO调度与缓冲区
设备分配与回收
\1. 硬件发展
\2. 元件更新换代:摩尔定律18个月翻倍
\3. 按指令和数据划分:不存在多指令单数据流系统
\4. 发展趋势:“两极”分化
\1. 寄存器参与运算
\2. 计算机工作过程
\1. 性能
(1)区别机器字长、指令字长PC/MAR、存储字长MDR、操作系统位数(寻址能力相关)
(2)数据通路带宽:外部总线宽度
(3)主存容量:存储单元个数2^n X 存储字长位
(4)运算速度:吞吐量和响应时间、主频和CPU时钟周期、CPI、
CPU执行时间 = 指令条数 X CPI X cpu时钟周期、
MIPS MFLOPS GFLOPS TFLOPS
\2. 专业术语
(1)系列机:具有基本相同的体系结构
(2)兼容
(3)软件可移植性
(4)固件:将程序固定在ROM中组成的部件为固件
(5)基准测试程序一般能够反映机器性能的好坏
\1. 操作系统定义
\2. 操作系统特征:并发、共享、虚拟、异步
\3. 操作系统的目标和功能
(1)作为计算机系统资源的管理者
(2)作为用户与计算机硬件系统接口
(3)作为扩充机器
\1. 运行机制:时钟管理、中断机制(PC、PSW相关)、原语、系统控制的数据结构及处理(PCB、FCB、队列、作业控制块等)
2. 中断和异常*
中断
注意:
(1)浮点数上溢属于中断,浮点数下溢不属于中断
(2)软中断是中断指令
(3)trap指令是发起系统调用,请求操作系统提供服务
一般内核提供的服务越少内核越稳定
大内核:执行效率高;不稳定
微内核:为用户提供服务时,至少进行4次上下文切换;易于维护;比较可靠
\1. 不同进制数之间的转换:二进制、八进制、十六进制、十进制之间的转换,其中十进制转n进制采用初基取余法(整数部分)和乘基取整法(小数部分)
\2. 真值与机器数
\3. BCD码:其中有权码有8421码和2421码;无权码有余3码。BCD码以理解为主,属于非重点。
\4. 字符与编码:ASCII码、汉字编码GBxx
\5. 字符串存放:大端模式、小端模式
**6. 检验码*:**奇偶校验、CRC码、海明码;这些编码可以结合计算机网络中的检验码一起来学习,需要掌握这些检验码的检错和纠错的过程
\1. 原码、反码、补码、移码
\2. 定点数移位运算:算术移位(有符号)、逻辑移位(无符号)、循环移位(大循环、小循环);注意负数补码左移补0,右移补1 – 高位补1低位补0
\3. 符号扩展:正数、负数(根据机器数不同而不同,补码用1填充整数用0填充小数;反码用1填充)
**4. 定点数加减运算*:**主要掌握定点数补码加减运算
(1)[x+y]补 = [x]补 + [y]补;
(2)[x-y]补 = [x]补 + [-y]补;
\5. 定点数乘除法运算:主要掌握补码乘除原理和特点,对于运算过程不必要过分纠结
(1)定点数补码乘法运算:掌握Booth算法,可以按照溢出来理解,当出现01表示正溢出需要+[x]补,出现10表示负溢出需要+[-x]补;
(2)定点数补码除法运算:余数和除数同号,上商"1";余数和除数异号,上商"0";最后一步商恒置"1"
定点数补码除法运算
\6. 定点数强制类型转换
\1. 浮点数
(1)浮点数格式
(2)浮点数规格化
(3)浮点数表示范围:负上溢和正上溢属于中断;负下溢和正下溢不属于中断
浮点数表示范围
\2. 浮点数补码加减运算:掌握1对阶(右移) – 2尾数(0.1或1.0类型) – 3规格化 – 4舍入 – 5溢出判断的过程
3. 浮点数强制类型转换(选,应)
\4. IEEE754标准
\1. 电路符号
\2. 加法器
(1)一位全加器
(2)串行加法器:依次相加进位
(3)并行加法器:串行进位、并行进位(串行进位、同时进位)
\3. 算术逻辑单元的功能和结构
(1)ALU核心是一个并行加法器,还可以执行“与”、“或”、“非”等逻辑运算
(2)74181芯片:4位并行加法器ALU芯片,组内并行(片内),组间串行(片间)
(3)74182芯片:先行进位芯片,可以辅助74181芯片实现组间并行
\1. 分类
\2. 性能(计算):存储容量、单位成本、存储速度(存取时间、存取周期、主存带宽)
\3. 多层存储系统:Cache - 主存层次 和 主存 - 辅存层次
注意:cache效率 = 访问Cache时间 / 平均时间
\1. 74138译码器
\2. SRAM:双稳态触发器
\3. DRAM:电容、地址复用(1/2)、存储电路为三管式和单管式、最多2ms刷新周期
4. DRAM刷新方式*:DRAM刷新行不需要信息输出
(1)集中刷新:有固定死区
(2)分散刷新:无死区
(3)异步刷新:前两种的结合,刷新时间间隔 = 2ms / 行数
\5. RAM的读写周期:以了解为主
(1)读:Tco为片选保持时间,we为高电平有效
(2)写:cs、we为低电平有效,Twc = Taw + Tw + Twr
\6. SRAM与DRAM比较
\7. ROM:位密度高、可靠性高,有PROM、EPROM等。
\8. 闪存:由MOS管组成。
\1. 主存容量扩展
(1)为扩展法:cs片选信号连接所有芯片
(2)字扩展法:译码器
(3)字位同时扩展法
\2. 地址分配与片选
(1)线选法:n --> n
(2)译码片选法:n–>2^n
\3. 存储器与CPU连接:了解处理方式,其中注意地址线选低位,片选信号有效的前提是MREQ访存控制信号
\1. 双端口:不能同时写入数据,不能一边写入一边读出;解决方法就是置BUSY信号为0
2. 多模块存储器*(计算)
\1. 局部性原理:时间局部性、空间局部性
\2. Cache效率 = Cache时间 / 平均时间
3.Cache和主存的映射方式
(1)直接映射
直接映射
(2)全相联映射
(3)组相联映射
4. Cache容量*(计算,非常重要) = 标记项阵列容量 + 存储容量
5. Cache替换算法:RAND、FIFO、LRU、LFU
6. Cache写策略
\1. 内存管理的功能:内存空间分配和回收、地址转换、内存空间扩充、存储保护
\2. 程序装入和连接
\3. 逻辑地址与物理地址转换:地址重定位
\4. 内存保护:上下限寄存器(CPU内) – “比”、重定位寄存器(映射成物理地址) – “加”
\1. 覆盖:将用户空间分为固定区和覆盖区
\2. 交换(中级调度):换入和换出
\3. 覆盖和交换的区别:交换不同进程间;覆盖是同意程序或进程中
\1. 单一连续分配
\2. 固定分区分配
\3. 动态分区分配:使用紧凑和动态重定位寄存器完成。分配策略有 - FF(最好)、BF、WF、NF(循环双向链表)
\1. 基本分页存储管理方式(一维) —— 产生内部碎片
(1)地址结构:将逻辑分页地址 转为 物理地址
(2)访存:注意有TLB(相联存储器)的情况下只需要访存一次就可获取到物理地址下的数据或指令;而慢表情况下需要访存2次才能获取到数据或指令
(3)多级页表
\2. 基本分段存储方式(二维) —— 产生外部碎片
(1)段内连续,段间不要求连续
(2)逻辑地址 – 物理地址
(3)访存:用到了段表寄存器,需要2次访存
\3. 段页式管理方式(二维) —— 产生内部碎片
(1)逻辑地址
(2)系统为每个进程建立一个段表 + 多个页表,用到了段表寄存器
(3)访存:需要3次访存
\1. 特征:多次性、对换性、虚拟性 —— 时间局部性
\2. 虚拟内存的实际容量 = min(内存和外村总容量, 操作系统寻址范围);
\3. 实现3种方式:包含两个过程 – 请求调页 + 页面置换
(1)请求分页
(2)请求分段
(3)请求段页式
**注意:**这3种方式跟普通的分页、分段、段页式大同小异,最重要的区别是在虚拟内存种要考虑缺页中断和页面置换的过程。
4. 请求分页*
(1)页表项:加入了额外的信息标志位来处理调入、置换问题
(2)缺页中断机构:属于内中断 == 异常
(3)地址变换机构(硬件):先检索快表,若快表未检索到就检索页表
\1. OPT算法:无法实现
\2. FIFO算法:会造成Belady异常
\3. LRU算法:跟Cache置换策略中的LRU一样
\4. LFU算法:同Cache
\5. CLOCK算法:又称为最近不用,有一个使用位
\6. 改进CLOCK算法:有一位使用位、一位修改位,最多进行4轮
\1. 驻留集:给一个进程分配的物理页框的集合
\2. 调入页面的时机:预调页策略(进程的首次调入)、请求调页策略(每次只调入一页)
\3. 从何处调入页面:从对换区调入适合连续分配方式(快);从文件区调入适合非连续分配(慢)
1.特点:分配页面不够,导致频繁的页面置换行为 == 换页时间 > 执行时间
\2. 工作集:某时间间隔内进程要访问的页面集合
\2. 防抖策略:保证驻留集 > 工作集;可以通过暂停部分进程来保证驻留集 > 工作集
\1. 步骤
(1)分析虚拟地址、物理地址、页面、TLB映射、Cache映射
(2)划分逻辑地址
(3)定出物理地址
(4)查Cache / 查内存
\2. 查找顺序
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FHQM1RqY-1609143322592)(https://pic4.zhimg.com/80/v2-b53c1ae3709d33e1fbfb6212e2812b9f_720w.jpg)]查找顺序
\1. 进程实体:程序段、相关数据段、PCB
\2. 进程控制:掌握进程的创建、进程终止、进程阻塞Block和唤醒Wakeup、进程切换的过程和特点
\3. 进程通信:共享存储、消息传递(直接通信和间接通信)、管道通信
\4. 线程概念
(1)TCB
(2)线程是独立调度的基本单位,进程是拥有资源的基本单位
(3)并发性
(4)线程间可以直接读/写进程数据段来进行通信
5. 用户级线程和内核级线程*
**6. 多线程模型:**掌握一对一模型、多对一模型、多对多模型的特点
\1. 调度层次:作业调度、中级调度(内存调度) – 调至外存等待、进程调度
2. 调度时机*(选择)
(1)不能进行进程调度与切换的3种情况
(2)能进行进程调度与切换的2种情况
**3. 调度的基本准则:**掌握CPU利用率、系统吞吐量、周转时间 = 作业完成时间 - 作业提交时间、平均带权周转时间、等待时间、响应时间的概念和求解
**4. 调度算法*(选,应):**掌握FCFS、SJF、优先级调度算法、高响应比优先调度算法(响应比Rp = (等待时间 + 服务时间)/服务时间)、时间片轮转、多级反馈队列
\1. 基本概念
(1)临界资源:进入区、临界区、退出区、剩余区
(2)同步:直接制约关系
(3)互斥:间接制约关系(空闲让进、忙则等待、有限等待、让权等待)
2. 实现临界区互斥方法
(1)软件实现*:单标志法(违背空闲让进)、双标志法先检查(违背忙则等待)、双标志法后检查(违背有限等待)、Peterson’s算法(违背让权等待)
(2)硬件实现(不会被中断):中断屏蔽方法(关中断、临界区、开中断);硬件指令方法(TestAndSet指令、Swap指令)
\3. 信号量:整型信号量、记录型信号量、利用信号量实现同步、利用信号量实现互斥、利用信号量实现前驱关系
\4. 管程:封装的思想;一个进程只能通过调用管程内过程才能进入管程访问共享数据;每次仅允许一个进程再管程内执行某个内部过程
5. 经典同步问题*(选,应)
(1)简单生产者 - 消费者
(2)复杂生产者 - 消费者
(3)读者 - 写者(计数器count,读写公平)
(4)哲学家进餐问题(多个互斥资源):掌握3种实现方式
注意:对这4种经典同步问题的PV操作代码要熟悉
\1. 区别死锁和饥饿
\2. 死锁产生的原因
(1)系统资源竞争
(2)进程推进顺序非法
(3)信号量适用不当
(4)死锁必要条件:互斥条件、不剥夺条件、请求并保持条件、循环等待条件
\3. 死锁处理策略
4. 银行家算法*:会求安全序列
5. 死锁检测和解除
(1)会画资源分配图,通过死锁定理(消边)来检测是否死锁
(2)通过资源剥夺法、撤销进程法、进程回退法(资源释放,非剥夺)来解除死锁
\1. 指令:是计算机运行的最小功能单位
指令格式
\2. 指令基本格式
(1)零地址
(2)一地址
一地址
(3)二地址
(4)三地址
(5)四地址
\3. 定长操作码指令:2^n条指令
\4. 扩展操作码指令格式:不允许短码是长码的前缀
\1. 指令寻址:寻找下一条将要执行的指令地址 – 顺序寻址、跳跃寻址
\2. 数据寻址:寻找操作数的地址
3. 常见数据寻址方式*(选,应)
(1)隐含寻址:另一个操作数隐含在ACC中
(2)立即寻址
立即寻址
(3)直接寻址
(4)间接寻址
(5)寄存器寻址
(6)寄存器间接寻址
(7)相对寻址
(8)基址寻址
(9)变址寻址
变址寻址
(10)堆栈寻址:分为硬堆栈(寄存器)和软堆栈(主存),隐含用SP
\4. 常见汇编指令:简单了解,能做到看到汇编指令可以知道大致的作用就可以
\1. CISC: Complex Instruction Set Computer
(1)指令长度不固定
(2)访存指令不受限
(3)大多数指令需要多个时钟周期
(4)采用微程序控制
\2. RISC: Reduced Instruction Set Computer
(1)尽量适用寄存器–寄存器操作指令
(2)指令长度固定
(3)只有Load/Store指令访存,其余指令操作都在寄存器进行
(4)流水线技术,大部分指令在一个时钟周期内完成
(5)硬布线控制为主,少用微程序控制
\3. CISC和RISC对比
\1. CPU功能:指令控制、操作控制、时间控制、数据加工、中断处理
\2. CPU基本结构
(1)运算器:ALU、T、ACC、AX、BX、CX、DX、SP、PSW、SR、计数器
(2)控制器:PC、IR、ID、MDR、MAR、时序系统
\1. 四个周期
\2. 指令周期的数据流
(1)取指
(2)间指
(3)执行:OP(IR) --> CU
(4)中断
\3. 指令执行方案
(1)单指令周期 — 串行执行
(2)多指令周期 — 串行执行
(3)流水线方案 — 并行执行
\1. 数据通路的功能:实现CPU内部的运算器与寄存器及寄存器之间的数据交换
\2. 基本结构
(1)CPU内部单总线方式:使用ALU + T
(2)CPU内部多总线方式
(3)专用数据通路方式:MUX、三态门
\3. 数据传送
(1)寄存器之间
(2)主存与CPU之间
(3)执行算术或逻辑运算
\1. 控制器的功能
(1)从主存中取出一条指令,并指出下一条指令在主存中的位置
(2)对指令进行译码测试,产生相应的操作控制信号
(3)指挥并控制CPU、主存、输入、输出设备之间的数据流动方向
\2. 硬布线控制器(由复杂的组合逻辑门电路和一些触发器构成)
(1)微操作命令分析:要把取指、间指、执行、中断过程弄清楚
(2)CPU控制方式:同步控制(统一时钟)、异步控制(应答方式)、联合控制(大部分同步、小部分异步)
(3)注意:硬布线控制单元设计的题目出出来一定是难题,但是幸运的没出过,所以如果看这个设计步骤比较困难可以直接跳过,之后如果有时间再来慢慢理解(选择性放弃)
\3. 微程序控制器
(1)微程序控制基本概念
(2)微程序控制器组成和工作过程
(3)微程序的编码方式(形成控制信号)
(4)微指令地址形成
(5)微指令格式
(6)设计步骤:了解
(7)动态和豪微程序设计:动态程序设计根据用户要求改变微程序;豪微程序设计第二级控制存储器是豪微存储器,直接控制硬件是豪微微指令
(8)硬布线和豪微控制器的比较
\1. 定义(取指、分析、执行)
(1)顺序执行:T = 3nt
(2)一次重叠执行:T = (1+2n)t
(3)二次重叠执行:T = (2+n)t
\2. 特点
\3. 流水线的分类:了解
\4. 影响因素
5. 性能*(计算)
(1)吞吐率:TP = n / {(k + n - 1)t}
(2)加速比:S = kn / (k + n - 1)
(3)效率:E = kn / (k^2 + kn - k)
\6. 超标量流水线
(1)超标量流水线
(2)超流水线
(3)超长指令字:具有并行性
\1. 文件的结构
文件的结构
\2. 文件属性:所有文件的信息保存在目录结构中,目录结构保存在外存上。
目录条目包括文件名称及其唯一的标识符
文件属性
\3. 文件基本操作
\4. 文件的逻辑
\5. 目录结构
6. 文件共享
\7. 文件保护
\1. 文件系统层次结构
\2. 目录实现
目录实现
\3. 文件分配方式
4. 文件存储空间(计算,应)
\1. 磁盘地址 = 柱面号 * 盘面号 * 扇区号(块号)
\2. 磁盘分类:固定头磁盘、活动头磁盘、固定盘磁盘、可换盘磁盘
3. 时间(计算)
(1)寻道时间Ts = m*n + s
(2)延迟时间Tr = 1/(2r)
(3)传输时间Tt = b/(rN)
(4)平均存取时间Ta = Ts + Tr + Tt
\4. 磁盘调度算法
\5. 编号
\6. 磁盘的管理
\1. 基本概念
\2. 总线分类:片内总线、系统总线(数据总线、地址总线、控制总线)、通信总线(外部总线)
\3. 系统总线结构
4. 总线性能(计算)
\1. 仲裁方式:集中仲裁、分布仲裁
\2. 集中仲裁
\1. 总线4个阶段:申请分配阶段、寻址阶段、传输阶段、结束阶段
\2. 定时
\1. 组成
(1)I/O软件:驱动程序、用户程序、管理程序、升级补丁等
(2)I/O硬件:外部设备、设备控制器和接口、I/O总线等
\2. 实现
(1)I/O软件:采用I/O指令和通道指令实现CPU与I/O设备信息交换
(2)I/O硬件:通过设备控制器来控制I/O设备的具体工作;通过I/O接口与主机相连
\3. I/O指令
\4. I/O控制方式
\1. 输入设备
\2. 输出设备
(1)VRAM带宽 = 分辨率 * 灰度级位数 * 帧频
(2)VRAM容量 = 分辨率 * 灰度级位数(2^n种不同亮度)
\3. 外存储器
\4. 磁盘地址
\5. 磁盘阵列
\6. 光盘存储器:CD-ROM、 CD-R、 CD-RW、 DVD-ROM
\7. 固态硬盘:由E2PEOM发展而来,由Flash Memory + 硬件 + 软件组成
\1. 功能:设备选址、传送命令、传送数据+格式转换、反映I/O设备的工作状态
\2. 组成
(1)I/O端口:数据端口、状态编号、控制端口
(2)控制逻辑电路
\3. 编址方式
\1. 程序查询方式
\2. 程序中断方式
\3. DMA方式
注意:以上3种I/O方式需要重点理解
\4. 通道方式:是DMA方式的发展,是“弱鸡版的CPU”
\5. I/O处理机
\6. 区分通道、DMA和I/O处理机
\1. I/O子系统的层次结构
\2. I/O核心子系统提供服务
(1)单缓冲
(2)双缓冲
(3)缓冲池
\3. 设备分配与回收
(1)流程:LUT——>SDT——>DCT——>COCT<——>CHCT——>通道分配给进程
(2)方法:静态分配 - 无死锁,效率低;动态分配 - 效率高,有死锁
(3)算法:先请求先分配、优先级高者优先(一般采用动态分配)
(4)安全性
\4. SPOOLing技术(虚拟设备):独占式 --> 共享式
逻辑功能上可划分为:资源子网和通信子网;其中通信子网对应物理层、数据链路层、网络层
物理组成上:硬件、软件、协议
广域网、局域网区别:覆盖范围不同;协议和网络技术不同,广~采用点对点技术,局域网采用广播技术
MTU:最大传输单元,物理接口提供给上层最大传输数据大小
MSS:TCP给IP层最大分段的大小
双绞线:胶合目的:减少两根导线的电磁 干扰
IEEE802.3 规定采用同轴电缆作为介质,无中继情况下,介质最大传输长度不能超过500m。
ISO:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层
TCP/IP: 应用层、传输层、网际层、网络接口层
4B/5B Encoding
目标:如何在解决基线漂移和时钟漂移的同时,使编码效率尽量高一些
思想:在比特流中插入额外的比特而打破一连串的 0 或 1 方法:用 5 个比特来编码 4 个比特的数据,然后再传给接收方
5 比特代码由以下方式选定:每个代码最多有一个前导 0,并且末尾最多有 2 个 0 这样在连续传送时,在传输过程中任何一段 5 比特代码,连续的 0 最多有 3 个. 最后使用 NRZI 编码进行传输,就解决了问题
4B/5B 编码的效率为 80%
有关传输速率上限的两个定理(注:带宽——频率范围)
Nyquist 定理: D(比特率) = 2 f(带宽) log2 N(电压种数) 无噪音情况下的最大传输速率
Shannon 定理: C(比特率) = B log2 (1 + S(信号) / N(噪声)) 引入信噪比 = 10 * lg (S/N)
(每块网卡出厂就有全球唯一的MAC地址)
路由器可以隔离广播域(网络层设备)
交换器、网桥(链路层设备),路由器可以隔离冲突域
集线器(Hub)、中继器都不能隔离 (中继器放大数字信号,放大器放大模拟信号)
网卡实现主要功能在物理层、数据链路层
高级数据链路控制协议
循环冗余码:亦或运算
海明码:位数:2^r > k+r+1;
海明距离:检错:d+1; 纠错:2d+1;
滑动窗口协议:停等协议、
GBN:采用累积确认,发送端收到1、3、5确认说明前5帧都已经收到
发送窗口 <= 2^n-1;
SR: 通常发送窗口与接受窗口大小相同,为2^(n-1)
令牌桶
CD:载波侦听、碰撞检测;争议期:信号在最远两个端点往返传输时间
CA改成碰撞避免:
方式:预约信道,发送数据同时通知所需要的时间长度
ACK帧; RTS/CTS帧,解决隐蔽站问题
主机与主机的交互只认识MAC帧编号,不认识IP
同一局域网中,两个设备具有相同的静态 MAC 地址时,在网络上的两个设备都不能正确通信
HDLC: 面向比特位;包含信息帧、监督帧、无编号帧
PPP: 面向字节;仅支持全双工;提供差错检测不提供纠错功能;
采用7E作为边界符进行符号填充
静态路由与动态路由、距离-向量路由算法、链路状态路由算法、层次路由
原因:两级地址不够灵活,每个物理网络分配一个网络号会使得路由表变得太大。划分为{<网络号>,<子网号>,<主机号>}
主机号全为0是网络本身,如202.98.174.0;全为1是网络的广播地址,如202.98.174.255
CIDR:无分类域间路由选择;
ARP地址解析协议
RIP: 基于距离向量算法的路由选择协议;30秒才广播一次路由信息;
OSPF: 基于链路状态路由算法的开放最短路径协议;网络层协议,直接IP传消息,RIP是应用层协议,用UDP传消息
客户服务器模型,采用UDP无连接服务
根域名服务器 > 顶级域名服务器 (.com)> 权限域名服务器(xyz.com) > 本地域名服务器(abc.xyz.com);依次发送DNS查询请求
采用C/S工作方式;使用两个并行的TCP连接来传输文件:持续的控制连接 (端口21)+非持续的数据连接 (端口20)
SMTP采用TCP,端口25,简单邮件传输协议:TCP持续连接,要求7比特的ASCII码进行编码
POP3采用TCP,端口110;明文传输密码,不加密
MIME进行数据格式转换
http采用TCP,但是其本身,是无连接的
http1.0中,每次处理都要建立一次TCP连接,80端口