01.数据结构:
1.数据结构的概念是什么:
数据结构是算法(解决特定问题的一系列明确步骤或指令)和数据组织方式的结合。
(补)数据结构的逻辑结构包括什么:
①集合结构;②线性结构;③树形结构;④图形结构。
2.算法的五大特征是什么:
有穷性,确定性,可行性,输入,输出
3.顺序表和链表的比较:
①从存储结构上看:
顺序表:
存储密度等于1且使用连续存储空间
链表:
密度小于1且使用非连续存储空间。
②从访问方式上看:
顺序表:
支持随机访问,通过索引可直接访问任意元素,时间复杂度为O(1)。
链表:
仅支持顺序访问,必须从头节点开始遍历,时间复杂度为O(n)。
(补充)单链表删除的复杂度和实现:
①复杂度:O(n)
②实现:通过遍历链表找到要删除的节点并修改指针即可。
(补充)循环链表比递推更好吗:
①循环链表:循环链表是一种链表数据结构,其最后一个节点的指针指向头节点,形成一个环。
优点:适合循环操作:如果需要反复遍历数据,循环链表非常高效。
动态内存管理:可以动态添加或删除节点,适合数据规模不确定的场景。
实现环形结构:适合需要环形结构的场景,如约瑟夫问题、轮询调度等。
缺点:内存开销:每个节点需要存储数据和指针,内存开销较大。
访问效率低:如果需要随机访问某个节点,时间复杂度为 O(n),效率较低。
实现复杂:相比数组或递推,循环链表的实现和调试更复杂。
②递推表:递推是一种通过已知条件逐步推导出结果的算法思想,通常基于数学公式或递归关系。
优点:高效计算:递推通常基于数学公式,计算效率高,时间复杂度低。
节省内存:递推通常只需要存储少量中间结果,内存开销小。
实现简单:递推的实现通常比循环链表更简单。
缺点:依赖数学关系:递推需要明确的数学递推关系,不适合复杂逻辑。
灵活性差:递推通常适用于固定模式的问题,不适合动态变化的数据。
4.栈和队列的比较:
栈:表达式求值,括号匹配,递归
队列:打印机排队,广度优先搜索,任务调度,缓存处理
5.矩阵的压缩存储:
对角矩阵,对称矩阵,三角矩阵,稀疏矩阵(三元组;十字链表)。
6.二叉树的遍历:
①前序:Ⅰ.优点:适合需要先处理根节点的场景(如复制树结构);
可以快速获取树的根节点。
Ⅱ.缺点:对于深度较大的树,递归可能导致栈溢出。
②中序:Ⅰ.优点:对于二叉搜索树(BST),中序遍历可以得到升序排列的节点值;
适合需要按顺序处理节点的场景。
Ⅱ.缺点:对于非二叉搜索树,中序遍历的结果可能没有明显意义。
③后序:Ⅰ.优点:适合需要先处理子节点的场景(如删除树结构);
可以用于计算子树的结果(如表达式树求值)。
Ⅱ.缺点:根节点最后访问,不适合需要优先处理根节点的场景。
(补充)层序遍历:
7.二叉树相关性质考察:
①二叉树上第i层的节点最多有多少:2的i-1次方
②深度为k的二叉树最多有多少节点:2的k次方-1
③n0,n1,n2的数量关系:n0=n2+1
④具有n个节点的完全二叉树深度是多少:⌊log 2n⌋+1
**(补充)**红黑树:
①定义:红黑树是一种二叉搜索树,每个节点都有一个额外的颜色属性(红色或黑色)。
②特性:Ⅰ.节点是红色或黑色;
Ⅱ.根节点是黑色;
Ⅲ.所有叶子节点(NIL节点,空节点)是黑色;
Ⅳ.如果一个节点是红色,则它的两个子节点都是黑色。(即不能有两个连续的红色节点);
Ⅴ.从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点。(即黑色高度相同);
8.最小生成树:
①Prim算法: 每次选择一条连接已选节点集合和未选节点集合的最小权重边,并将该边连接的节点加入已选集合,直到所有节点都被包含。
②Kruskal算法:通过按权重从小到大排序所有边。
9.广搜和深搜的思想:
①广度优先(BFS):从某一顶点出发,依次访问与该点的各个未被访问的邻接顶点,一直迭代下去,直到访问完所以的点。
②深度优先(DFS):从某一顶点出发,访问与该点邻接且未被访问的任意一个顶点,重复上述过程,当不能继续向下访问时则依次退回到最近被访问的点,若还有邻接点未被访问,则重复上述步骤,直到访问完所以的点。
10.哈夫曼树:
①WPL:带权路径长度。
②特点:哈夫曼树要求WPL最小。
11.邻接矩阵和邻接表:
①邻接矩阵(稠密图):(用一个二维数组来存储图中边的信息)存储顶点之间邻接关系的二维数组。
②邻接表(稀疏图):由顶点结点和边表结点两种结点构成,其中顶点结点用来存储数据信息且采用顺序存储,边表结点用来记录下一个结点的信息
12.各种排序的简述:
(快排,堆拍,希尔,选择)不稳定
快排:先选择一个基准元素,通过排序使左部分的所有元素小于等于基准元素,而右部分的所有元素大于基准元素。排好后再继续将左右两部分如同上述继续排序,直到数列有序。
13.两个难点:
迪杰斯特拉:从起始节点开始,逐步扩展到其他节点,每次选择当前距离起始节点最近的未访问节点,并更新其邻居节点的最短距离,直到所有节点的最短路径都被确定。
KMP算法:①预处理模式串:
构建部分匹配表(next数组),记录每个位置之前子串的最长公共前缀和后缀长度。
②匹配过程:使用两个指针,一个指向主串,一个指向模式串;
逐个字符比较,若匹配则同时移动指针;若不匹配,则根据 next 数组移动模式串指针,主串指针不回溯;
重复此过程,直到找到匹配或遍历完主串。
14.哈希表:
①开放寻址法:Ⅰ.线性探测法:
Ⅱ.平方探测法:
Ⅲ.双散列法:分为主哈希函数(使用第一个哈希函数计算键的初始桶位置)和次哈希函数(如果初始桶位置已被占用,使用第二个哈希函数计算步长,用于探测下一个可用桶)
②链地址法(拉链法):如果多个键被哈希到同一个桶,将它们存储在同一个链表中。
③再哈希法:先创建一个更大的哈希表(通常是原表大小的两倍),再将所有元素从原表重新哈希到新表中,使用新的哈希函数将元素映射到新表中。
15.关键路径:时间余量为零的事件构成的路径为关键路径。
02. 计算机组成原理:
1.计算机系统结构包括那五层:
微程序机器,传统机器,操作系统机器,汇编语言机器,高级语言机器
2.冯诺依曼机器的特点和五大部件:
①五大部件: 运算器,控制器,存储器,输入输出
②特点: 指令和数据都存在存储器里,都以二进制形式存放,按地址访问,机器是以运算器为中心。
(补充)控制器是什么:
是中央处理器(CPU)的核心部件之一,负责指挥和协调计算机各部件的工作。它的主要功能是从内存中读取指令,解码指令,并生成控制信号以执行指令。
3.编译型,解释语言的区别:
①编译型:通过编译器将源代码一次性转换成机器码(即二进制代码),然后直接执行这些机器码。
②解释语言:通过解释器逐行读取源代码并立即执行,而不需要预先将整个程序编译成机器码。
③常见例子:c语言(编译型),python(解释语言)
4.计算机常见性能指标:
吞吐量: 单位时间内计算机处理请求的个数。
主频: 主时钟的频率,等于时钟周期的倒数。
MFLPOPS:每秒执行多少百万条浮点运算。
(补充)整型和浮点型的存储形式:
①整型(以二进制补码形式存储):
Ⅰ.无符号整型:直接存储二进制值。
Ⅱ.有符号整型:最高位为符号位,0 表示正数,1 表示负数,其余位存储数值的补码。
②浮点型(通常采用IEEE 754标准):
Ⅰ.符号位:1位,0 表示正数,1 表示负数。
Ⅱ.指数位:8位(单精度)或11位(双精度),采用偏移码表示。
Ⅲ.尾数位:23位(单精度)或52位(双精度),存储小数部分,隐含前导1。
5.DRAM和SRAM区别:
6.RISC和CISC区别:
(补充)指令和数据都存在计算机内存中,计算机怎么从时间和空间上区分它们:
①时间上的区分:计算机通过指令周期的不同阶段来区分指令和数据。
Ⅰ.取指阶段(Fetch): 从内存中读取指令,此时内存中读取的内容被视为指令。
Ⅱ.执行阶段(Execute):根据指令的要求,从内存中读取或写入数据,此时内存中读取的内容被视为数据。
②空间上的区分:计算机通过内存地址的分配来区分指令和数据。
7.cache的三种映射方式:
①直接映射:主存中的每一块只能装入Cache中的唯一位置。
②全相联映射:主存中的每一块只能装入Cache中的任何位置。
③组相联映射:每个主存块可以装入固定组中的任意一行。
8.流水线的三种冲突及解决办法:
①结构冒险(资源冲突):Ⅰ.暂停一个时钟周期;Ⅱ.单独设置数据存储器和指令存储器。
②数据冒险:Ⅰ.暂停一至多个时钟周期;Ⅱ.设数据旁路。
③控制冒险(改变了指令的执行顺序):Ⅰ.分支预测(静态和动态预测)
9.同步和异步通信:
异步(应答式通信):通信双方不需要统一的时钟信号,数据传输通过起始位和停止位来标识数据的开始和结束。
②同步:通信双方在数据传输过程中使用统一的时钟信号进行同步,确保发送方和接收方的操作步调一致。
10.局部性原理:
①时间局部性:如果一个内存位置被访问,那么在不久的将来它很可能再次被访问。
②空间局部性:如果一个内存位置被访问,那么其邻近的内存位置很可能在不久的将来被访问。
11.九种寻址方式:
隐含寻址;
立即寻址;直接寻址;间接寻址;
寄存器寻址;寄存器间接寻址;
相对寻址;基址寻址;变址寻址。
(补充)微指令的编码顺序:
微指令的编码顺序涉及微指令的结构、编码方式和执行顺序。
①微指令的结构:操作码;操作数;控制信号;下一地址。
②编码方式:Ⅰ.水平型编码:
Ⅱ.垂直型编码:
Ⅲ.混合型编码:
③执行顺序:
Ⅰ.取微指令:从微程序存储器中取出当前微指令。
Ⅱ.解码微指令:解码微指令的操作码和控制信号。
Ⅲ.执行微操作:根据控制信号执行相应的微操作。
Ⅳ.确定下一地址:根据下一地址字段或条件跳转逻辑确定下一条微指令的地址。
Ⅴ.重复执行:重复上述步骤,直到微程序执行完毕。
12.中断/DMA/通道:
①中断:
Ⅰ.中断隐指令:关中断;保存断点;引出中断服务程序
Ⅱ.中断服务程序:保护现场;中断服务;恢复现场;中断返回
②DMA:通过DMA方式,主存和DMA接口直接传输数据即CPU可与外设并行工作
③通道:在DMA基础上进一步减少CPU的干涉(把对一个数据块的读或写的干涉减少为对一组数据块的读或写)
13.存储器的层次结构:
Cache;内存;外存
14.IO端口的编制方式:
①统一编址:将I/O设备的寄存器地址与内存地址合并到一个连续的地址空间中,CPU通过相同的指令访问内存和I/O设备。
②独立编址:内存和I/O设备有各自独立的地址空间,需专用指令访问I/O设备。
15.中断和异常举例子:
①异常:Ⅰ.故障:缺页;除数为零
Ⅱ.自陷:陷阱指令
Ⅲ.终止:存储器校验错;控制器出错
②中断:键盘输入;定时器中断
16.指令的执行周期:
①取指周期:根据PC的内容从主存中取出指令代码并放在IR中。
②间指周期:取操作数有效地址。
③执行周期:取操作数;并根据IR中的指令字的操作码通过ALU产生执行结果。
④中断周期:处理中断请求。
17.LRU思想:
LRU算法认为,最近被访问的数据在未来再次被访问的概率更高,因此优先淘汰最久未被访问的数据。
03. 操作系统:
1.什么是操作系统?主要功能是什么:
①操作系统:管理计算机硬件与软件资源的系统软件
②功能:进程管理;内存管理;文件管理;设备管理
(补充)操作系统种类:
单道批处理;多道批处理;分时操作系统;实时操作系统
**2.操作系统的四大特征是什么:**共享,并发,异步,虚拟。
3.进程与线程的区别是什么:
①资源:进程是系统中拥有资源的基本单位。
②调度:传统的操作系统中由于没有线程的缘故,独立调度的基本单位是进程,但引入线程后,线程才是独立调度的基本单位。
(补充)进程的特点:
①独立性:每个进程拥有独立的地址空间,互不干扰。
②动态性:进程是程序的执行实例,具有生命周期(创建、运行、终止);
进程的状态会随时间变化(如就绪、运行、阻塞等)。
③并发性:多个进程可以并发执行,操作系统通过调度机制分配CPU时间;
并发性提高了资源利用率和系统吞吐量。
④异步性:
⑤资源分配单位
4.进程的调度算法:
①先来先服务(FCFS):
②短作业优先(SJF):
③优先级:
④高响应比优先:(等待时间+要求服务时间)/要求服务时间
⑤时间片轮转:
⑥多级队列:
⑦多级反馈队列:优先级由高到低;时间片由小到大。
5.进程的通信方式:
①共享储存:
②消息传递:
③管道通信:
④ 套接字
⑤信号
⑥信号量
⑦文件
⑧内存映射文件
(补充)简述进程同步的方式:
①互斥锁:简单高效,适合独占资源访问。
②信号量:灵活,适合复杂同步。
③条件变量:适合条件等待。
④屏障:适合分阶段任务。
⑤读写锁:适合读多写少场景。
⑥自旋锁:适合短时锁持有。
⑦管程:简化同步逻辑。
⑧消息传递:适合分布式系统。
(补充)原语是什么:是操作系统或编程语言中提供的最基本的、不可分割的操作或指令。
6.死锁四个必要条件:
①互斥: 资源一次只能被一个进程或线程占用。
②不剥夺: 进程已获得的资源不能被其他进程强行抢占,必须由进程自行释放。
③请求并保持:进程已经占有了至少一个资源,但又申请新的资源,而该资源被其他进程占用,此时请求被阻塞,但进程不会释放已占有的资源。
④循环等待: 存在一个进程等待的循环链,每个进程都在等待下一个进程所占有的资源。
⑤解决方法: 死锁预防;死锁避免;死锁的检测和解除。
(补充)关于的死锁的理解:
死锁指的是多个进程或线程在执行过程中,因为竞争资源而造成的一种互相等待的现象,导致这些进程或线程都无法继续执行下去。
7.中断的所有步骤流程:
①中断隐指令:关中断;保存断点;引出中断服务程序。
②中断服务程序:保护现场;中断服务;恢复现场;中断返回。
8.同步四准则:
①空闲让进:当资源空闲时,其他请求访问的线程或进程应能立即进入。
②忙则等待:当已有进程进入临界区时,其他试图进入临界区的进程必须等待。
③有限等待:对请求访问的进程,应保证能在有限时间内进入临界区。
④让权等待:当无法访问资源时,线程或进程应释放 CPU 资源,而不是忙等待。
9.管程是什么:
管程由局部变量和对局部变量进行操作的一组过程和对变量进行访问的语句构成。
10.银行家算法:
①设置可用资源向量 Available;
②设置每个进程的最大需求矩阵 Max;
③设置每个进程的已分配资源矩阵 Allocation;
④计算每个进程的仍需资源矩阵 Need(Need = Max - Allocation)。
11.内存的分配方式:
①连续(单一连续分配(内部碎片),固定分区分配(内部碎片),动态分区分配(外部碎片))
②非连续(段,页,段页)
(补充)分段式的特点:
①内存划分:内存被划分为不同长度的段,每个段对应一个逻辑单元。
②地址结构:逻辑地址由段号和段内偏移量组成。
③优点:符合程序的逻辑结构,便于共享和保护;段可以根据需要动态扩展,灵活性高。
④缺点:由于段长度不一,容易产生外部碎片,内存利用率较低;要维护段表,管理复杂度较高。
分页式的特点:
①内存划分:内存被划分为固定大小的页框(Page Frame),通常大小为4KB或更大;程序的逻辑地址空间被划分为相同大小的页。
②地址结构:逻辑地址由页号和页内偏移量组成。
③优点:由于页大小固定,内部碎片较少,内存利用率较高;页表管理相对简单,易于实现。
④缺点:不符合程序的逻辑结构,共享和保护较为复杂;页表可能占用大量内存,尤其是大地址空间时。
12.动态分区分配的算法:
最佳适应,最坏,首次,邻近(循环首次)。
13.页面置换算法:
①先进先出(FIFO):
②最近最久未使用(LRU):
③时钟(CLOCK)置换:
Ⅰ.每个页面维护一个访问位(初始值为0);当页面被访问时,其访问位设置为1。
Ⅱ.如果访问位为0,则选择该页面进行置换;
如果访问位为1,则将该页面的访问位重置为0,并将时钟指针移动到下一个页面。
④最佳(OPT):
14.磁盘调度算法:
①先来先服务:
②最短寻找时间优先:
③扫描(SCAN):
④循环扫描(C-SCAN):
⑤LOOK;C-LOOK
15.虚拟内存:
对换性,虚拟性,多次性。
16.空闲块的组织方式有哪些:
①空闲表法:连续分配方式。
②空闲链表法(空闲盘块;空闲盘区):将所有空闲块拉成一条链。
③位示图法:通过m*n的表用二进制的一位来表示空闲情况,“0”表示空闲;“1”表示非空闲。
④成组连接法:结合了空闲表法和空闲链表法。把顺序的n个空闲盘块号保存在第一个成组链块中,其最后一个空闲盘块则用于保存另一组空闲盘块号,直到所有空闲盘块被连接。
17.文件的物理结构有哪些:
①连续分配:
②链接分配:隐式;显式
③索引分配:链接方案;多层索引;混合索引。
04. 计算机网络:
1.计算机网络概念:
计算机网络是将分散的具有独立功能的计算机系统,通过通信设备和线路连接起来,由功能完善的软件来实现资源共享和信息传递的系统。
(补充)其性能指标:
①带宽:网络在单位时间内能够传输的最大数据量,通常以 bps(比特每秒) 为单位。
②吞吐量:单位时间内实际成功传输的数据量。
2.计算机网络模型:
①ISO:物理层:用来传输原始比特流;通过信号编码将数据转换为适合传输的信号形式。
数据链路层:帧封装;物理地址寻址;错误检测与纠正;流量控制;介质访问控制。
网络层:路由选择;逻辑地址寻址;分组转发;流量控制;拥塞控制;网际互连。
传输层:端到端通信;错误检测与恢复;流量控制;拥塞控制;多路复用与分解。
会话层:实现会话管理和同步,允许不同主机上的各个进程之间进行会话。
表示层:使不同表示方法的数据和信息之间能互相交换。
应用层:直接为用户应用程序提供网络服务。
②TCP/IP:网络接口层;网际层;传输层;应用层。
3.三种交换方式:
①电路交换:优(通信时延小;实时性强;有序;无冲突);缺(灵活性差;效率低)
②报文交换:优(无须建立连接;提高可靠性;提高利用率);缺(存在转发时延)
③分组交换:优(无建立时延;利用率高;加速传输);缺(存在转发时延,增加传输量)
4,计算机网络协议:
IP协议:网络层,路由寻址
TCP协议:可靠的,面向连接的服务,确保数据的完整性和顺序性。
HTTP协议:超文本传输协议。
DNS协议:域名映射为IP地址。
SMTP协议:将电子邮件从发件人传输到收件人的邮件服务器。
POP3协议:从邮件服务器下载电子邮件到本地设备。
FTP协议:在客户端和服务器间上传和下载文件。
UDP协议:不可靠无面向连接。
计算机网络协议三要素:语法,语义,时序。
5.计算机网络的传输介质和设备:
双绞线(价格便宜);同轴电缆(传输距离更远但价格更贵);光纤(损耗小、中继距离长、抗干扰性好)。
(补充)网桥、路由器、协议转换器功能:
①网桥(数据链路层): 根据MAC地址转发数据帧。
②路由器(网络层): 根据IP地址转发数据包。
③协议转换器(应用层):将一种协议的数据转换为另一种协议的数据。
(补充)交换机、路由器和网关的区别:
①网关:Ⅰ.功能:用于连接不同类型的网络(如LAN和WAN、IPv4和IPv6网络),并实现协议转换;网关可以是硬件设备(如路由器)或软件。
Ⅱ.工作层次:传输层及以上(第四层及以上)。
6.信号划分的复用技术有哪些:
①频分复用:将总带宽划分为多个频段,每个信号占用一个频段。
②时分复用:将时间划分为多个时隙,每个信号占用一个时隙。
③波分复用:在光纤通信中,不同波长的光信号在同一光纤中传输。
④码分复用:每个信号使用唯一的编码序列,所有信号在同一频段同时传输。
⑤空分复用:利用空间分离,如多天线技术,在同一频段传输多个信号。
⑥正交频分复用:将高速数据流分成多个低速子流,每个子流在正交子载波上传输。
7.模拟信号如何转化为数字信号的:
①抽样:以一定时间间隔(采样频率)采集模拟信号的瞬时值。
②量化:将采样后的连续幅值转换为离散的量化级别。
③编码:将量化后的离散值转换为二进制代码。
8.常用的组帧方式有哪些:
首尾定界法(字符填充,比特填充),字符计数法,违规编码法。
9.ipv4的各个字段分别是干什么的:
①TTL(生存时间):数据报在网络中可通过路由器的最大值;转发分组前先把TTL减一;当TTL被减为0时分组必须被丢弃。
(补充)ARP地址解析协议的作用和原理:
①作用:IP到MAC的映射。
②原理:Ⅰ.ARP请求:局域网内的所有主机都会收到该请求,但只有IP地址匹配的主机B会响应,向A发送一个ARP响应,包含自己的MAC地址。
Ⅱ.ARP响应:局域网内的所有主机都会收到该请求,但只有IP地址匹配的主机B会响应,向A发送一个ARP响应,包含自己的MAC地址。
Ⅲ.ARP缓存:主机A收到响应后,将B的IP地址和MAC地址存入ARP缓存表,后续通信直接使用该表,无需再次广播。
Ⅳ.缓存更新:ARP缓存表有有效期,超时后条目会被删除,需重新进行ARP请求。
10.物理层接口特性:
①机械特性:接口所用接线器的形状和尺寸、引脚数目和排列。
②电气特性:接口电缆的各条线上出现的电压范围。
③功能特性:某一电平的电压表示的意义。
④过程(规程)特性:对于不同功能的各种可能事件的出现顺序。
11.简单介绍一下几种可靠传输机制:
①停止-等待:源站发送单个帧必须等待确认,在目的站的回答到达源站之前,源站不能发
送其他数据帧。
②后退N帧:依据发送窗口大小可以连续发送帧,但接收方只能按顺序接受帧。丢失的帧之后的所有帧都要重传。
③选择重传:只重传错误或丢失的帧,而不是错误帧后的所有帧。
12.拥塞控制的四种算法:
①慢开始:令拥塞窗口等于1,每收到一个对新报文段的确认后,将拥塞窗口加1。
②拥塞避免:每经过一个往返时延RTT就把发送方的拥塞窗口加1。
③快重传:发送方连续接收到三个重复的ACK报文时,就直接重传未收到的报文段。
④快恢复:跳过了慢开始的过程。
(补充)TCP拥塞控制与流量管理的区别:
①流量控制:由接收方决定,防止发送方发送过快。②拥塞控制:由发送方决定,防止网络拥塞。
13.TCP的三次握手和四次挥手:
①三次握手:
②四次挥手:
注:SYN仅在第一次和第二次握手等于1;FIN仅在第一次和第三次挥手等于1
(补充)UDP与TCP的区别:
①从连接方式上看:
TCP:面向连接。通信前需通过“三次握手”建立连接,确保双方准备好后再传输数据。
UDP:无连接。直接发送数据,无需预先建立连接。
②从可靠性上看:
TCP:提供可靠传输,通过确认、重传、流量控制和拥塞控制等机制确保数据准确、有序到达。
UDP:不保证可靠性,数据可能丢失、重复或乱序,依赖上层协议处理这些问题。
14.常见的路由协议:
①RIP(距离向量算法):仅和相邻路由器交换信息
②OSPF(迪杰斯特拉算法):通过洪泛法向本自治系统中所有的路由器发送信息。
③BGP(路劲向量算法):不同自治系统的路由器之间交换路由信息。
③选择重传:只重传错误或丢失的帧,而不是错误帧后的所有帧。
12.拥塞控制的四种算法:
①慢开始:令拥塞窗口等于1,每收到一个对新报文段的确认后,将拥塞窗口加1。
②拥塞避免:每经过一个往返时延RTT就把发送方的拥塞窗口加1。
③快重传:发送方连续接收到三个重复的ACK报文时,就直接重传未收到的报文段。
④快恢复:跳过了慢开始的过程。
(补充)TCP拥塞控制与流量管理的区别:
[外链图片转存中…(img-xOajyGTx-1746537585840)]
①流量控制:由接收方决定,防止发送方发送过快。
②拥塞控制:由发送方决定,防止网络拥塞。
13.TCP的三次握手和四次挥手**:**
①三次握手:
②四次挥手:
注:SYN仅在第一次和第二次握手等于1;FIN仅在第一次和第三次挥手等于1
(补充)UDP与TCP的区别:
①从连接方式上看:
TCP:面向连接。通信前需通过“三次握手”建立连接,确保双方准备好后再传输数据。
UDP:无连接。直接发送数据,无需预先建立连接。
②从可靠性上看:
TCP:提供可靠传输,通过确认、重传、流量控制和拥塞控制等机制确保数据准确、有序到达。
UDP:不保证可靠性,数据可能丢失、重复或乱序,依赖上层协议处理这些问题。
14.常见的路由协议:
①RIP(距离向量算法):仅和相邻路由器交换信息
②OSPF(迪杰斯特拉算法):通过洪泛法向本自治系统中所有的路由器发送信息。
③BGP(路劲向量算法):不同自治系统的路由器之间交换路由信息。