计算机组成与体系结构

CPU的组成(运算器与控制器)

 CPU执行指令的过程中,会自动修改PC的内容,PC是**指令计数器**,用来存放将要执行的下一条指令​        **对于指令寄存器**((IR)存放即将执行的指令,​       **指令译码器(ID)**对指令中的操作码字段进行分析和解释,​       **地址寄存器(AR)**,不是我们常用的CPU内部部件,其作用是用来保存当前CPU所要访问的内存单元或I/O设备的地址。

层次化存储体系

BIOS** (Basic Input Output System)(基本输入输出系统)是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从CMOS中读写系统设置的具体信息。

DRAM:动态随机存取存储器; 计算机系统的主存

SRAM.静态随机存取存储器;

Cache:高速缓存;

EEPROM:电可擦可编程只读存储器。

题目中的存储设备按访问速度排序为:通用寄存器> Cache>内存>硬盘

码制(原码/反码/补码/移码)

在计算机中,n位补码(表示数据位),表示范围是-2致1~+2"~1-1,其中最小值为人为定义,以n=8为例,其中-128的补码是人为定义的10000000。

奇偶校验码

对于奇偶校验,是由若干位有效信息,再加上一个二进制位(校验位)组成校验码,其中奇校验"1"的个数为奇数,而偶校验"1"的个数为偶数,以此校验,如果其中传输过程中有偶数个数发生错误(即1变成0或0变成1),则1"的个数其奇偶就不会发生改变,也就无法发现错误了,只有奇数个数据位发生错误,才能发现错误。同时,奇偶校验只能查错不能纠错。

浮点数的表示

对阶时,小数向大数看齐;对阶是通过较小数的尾数右移实现的。

浮点数能表示的数的范围由阶码的位数决定,精度由尾数的位数决定。

海明校验码

海明不等式:校验码个数为K,2的K次方个校验信息,1个校验信息用来指出"没有错误",满足m+k+1<=2*。所以32位的数据位,需要6位校验码。第二问考查的是海明编码的规则,构造监督关系式,和校验码的位置相关:
数据位Dg受到P4、P3、Pz监督(14=8+4+2),那么D;受到P4、Pz的监督(10=8+2)。
根据本题描述海明码表示为:D9D8D7D6D5D4P4D3D2D1P3D0P2P1
数据位Dg由P4、P:和Pp进行校验(从右至左Dg的位序为14,即等于14=8+4+2=23+2+2',因此用第8位的P4、第4位的P3和第2位的P>校验)
D5的位序为10,即等于10=8+2=23+21,因此用第8位的P4、第2位的P2校验海明码利用奇偶性进行检错和纠错

流水线技术

流水线处理机在执行指令时,把执行过程分为若干个流水级,若各流水级需要的时间不同,则流水线必须选择各级中时间较大者为流水级的处理时间。
理想情况下,当流水线充满时,每一个流水级时间流水线输出一个结果。
流水线的吞吐率是指单位时间流水线处理机输出的结果的数目,因此流水线的吞吐率为一个流水级时间的倒数,即最长流水级时间的倒数。

采用异步控制方式在给流水线提速的同时,会明显增加流水线阻塞的概率,所以不会明显提高整体性能。

Cache

在程序的执行过程中,Cache与主存的地址映射是由硬件自动完成的。

全相联映像块冲突最小,其次为组相联映像,直接映像块冲突最大。

输入输出技术

程序控制(查询)方式:CPU需要不断查询I/O是否完成,因此一直占用CPU.

程序中断方式:与程序控制方式相比,中断方式因为CPU无需等待而提高了传输请求的响应速度。

DMA方式:DMA方式是为了在主存与外设之间实现高速、批量数据交换而设置的。DMA方式比程序控制方式与中断方式都高效。CPU只负责初始化,不参与具体传输过程。

DMA和程序中断方式,是可以让外设与CPU并行的。

指令周期(Instruction Cycle) :取出并执行—条指令的时间。

总线周期(BuS Cycle) :也就是一个访存储器或I/O端口操作所用的时间。

时钟周期(Clock Cycle) :又称震荡周期,是处理操作的最基本单位。

指令周期、总线周期和时钟周期之间的关系:一个指令周期由若干个总线周期组成,而一个总线周期时间又包含有若干个时钟周期。

—个总线周期包含一个(只有取址周期)或多个机器周期。

机器周期:在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作。完成一个基本操作所需要的时间称为机器周期。

DMA响应过程为:DMA控制器对DMA请求判别优先级及屏蔽,向总线裁决逻辑提出总线请求。当CPU执行完当前总线周期即可释放总线控制权。此时总线裁决逻辑输出总线应答,表示DMA已经响应,通过DMA控制器通知O接口开始DMA专输。

可靠性与可用性

MTBF为平均失效间隔时间,则可用性用MTBFI(1+MTBF)表示。(可用性是指在给定的时间点上,一个系统能够正确运作的概率)

MTTF为平均无故障时间,则可靠性可用MTTF/(1+MTTF)表示。(可靠性是指系统在给定的时间间隔内、给定条件下无失效运作的概率)

其他

在程序运行过程中,CPU需要将指令从内存中取出并加以分析和执行。CPU依据(指令周期的不同阶段)来区分在内存中以二进制编码形式存放的指令和数据。

总线系统

在单总线结构中,CPU与主存之间、CPU与I/O设备之间、O设备与主存之间、各种设备之间都通过系统总线交换信息。单总线结构的优点是控制简单方便,扩充方便。但由于所有设备部件均挂在单一总线上,使这种结构只能分时工作,即同一时刻只能在两个设备之间传送数据,这就使系统总体数据传输的效率和速度受到限制,这是单总线结构的主要缺点。

寻址方式

立即寻址是一种特殊的寻址方式,指令中在操作码字段后面的部分不是通常意义上的操作数地址,而是操作数本身,也就是说数据就包含在指令中,只要取出指令,也就取出了可以立即使用的操作数。

在直接寻址中,指令中地址码字段给出的地址A就是操作数的有效地址,即形式地址等于有效地址。

间接寻址意味着指令中给出的地址A不是操作数的地址,而是存放操作数地址的主存单元的地址,简称操作数地址的地址。

寄存器寻址指令的地址码部分给出了某一个通用寄存器的编号Rj,这个指定的寄存器中存放着操作数。

CISC与RISC

CISC是复杂指令系统计算机,RISC是精简指令系统计算机。

计算机指标

指令寄存器IR是用来存放要执行的指令的,所以跟指令的的长度有关。

逻辑运算

计算机运算溢出检测机制,采用双符号位,00表示正号,11表示负号。如果进位将会导致符号位不一致,从而检测出溢出。结果的符号位为01时,称为上溢;为10时,称为下溢。
由此可知,溢出时如果对两个符号位进行异或运算,结果为1,符合题目条件。

信息安全

信息摘要与数字签名

MD5是一种摘要算法,经过一系列处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。
数字签名技术是将摘要信息用发送者的私钥加密,与原文一起传送给接收者。接收者只有用发送者的公钥才能解密被加密的摘要信息,然后用HASH函数对收到的原文产生一个摘要信息,与解密的摘要信息对比。如果相同,则说明收到的信息是完整的,在传输过程中没有被修改,否则说明信息被修改过,因此数字签名能够验证信息的完整性。数字签名是个加密的过程,数字签名验证是个解密的过程。保证信息传输的完整性、发送者的身份认证、防止交易中的抵赖发生。

网络安全协议

SSH为Secure Shell的缩写,由IETF 的网络小组(Network Working Group))所制定;SSH为建立在应用层基础上的安全协议。
SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。
利用SSH协议可以有效防止远程管理过程中的信息泄露问题。

1、HTTPS是基于SSL(Secure Sockets Layer安全套接层)的。

2、http的端口号为80,而HTTPS的默认端口是443,注意区分。

对称加密与非对称加密技术

RSA是非对称加密算法;

SHA-1与MD5属于信息摘要算法;

RC-5属于对称加密算法。

这些算法中SHA-1与MD5是不能用来加密数据的,而RSA由于效率问题,一般不直接用于大量的明文加密,适合明文加密的,也就只有RC-5了。

公开密钥加密(public-key cryptography),也称为非对称加密(asymmetric cryptography),一种密码学算法类型,在这种密码学方法中,需要—对密钥,一个是私人密钥,另一个则是公开密钥。
常见的公钥加密算法有: RSA、ElGamal、背包算法、Rabin(RSA的特例)、迪菲–赫尔曼密钥交换协议中的公钥加密算法、椭圆曲线加密算法((Elliptic curve Cryptography, ECC) ;
DES是典型的私钥加密体制,属于对称加密。
DSA数字签名(又称公钥数字签名),将摘要信息用发送者的私钥加密,接收者只有用发送者的公钥才能解密被加密的摘要信息。

系统安全分级

安全防范体系的层次划分:

(1)物理环境的安全性。包括通信线路、物理设备和机房的安全等。物理层的安全主要体现在通信线路的可靠性(线路备份、网管软件和传输介质)、软硬件设备的安全性(替换设备、拆卸设备、增加设备)、设备的备份、防灾害能力、防干扰能力、设备的运行环境(温度、湿度、烟尘)和不间断电源保障等。

(2)操作系统的安全性。主要表现在三个方面,一是操作系统本身的缺陷带来的不安全因素,主要包括身份认证、访问控制和系统漏洞等;二是对操作系统的安全配置问题;三是病毒对操作系统的威胁。

(3)网络的安全性。网络层的安全问题主要体现在计算机网络方面的安全性,包括网络层身份认证、网络资源的访问控制、数据传输的保密与完整性、远程接入的安全、域名系统的安全、路由系统的安全、入侵检测的手段和网络设施防病毒等。

(4))应用的安全性。由提供服务所采用的应用软件和数据的安全性产生,包括Web服务、电子邮件系统和DNS等。此外,还包括病毒对系统的威胁。

(5)管理的安全性。包括安全技术和设备的管理、安全管理制度、部门与人员的组织规则等。管理的制度化极大程度地影响着整个计算机网络的安全,严格的安全管理制度、明确的部门安全职责划分与合理的人员角色配置,都可以在很大程度上降低其他层次的安全漏洞。

防火墙技术

防火墙工作层次越低,工作效率越高,安全性越低。

防火墙工作层次越高,工作效率越低,安全性越高。

包过滤防火墙工作在网络协议IP层,它只对IP包的源地址、目标地址及相应端口进行处理,因此速度比较快,能够处理的并发连接比较多,缺点是对应用层的攻击无能为力,包过滤成本与它的安全性能没有因果关系,而应用程序和用户对于包过滤的过程并不需要了解,因此该技术对应用和用户是透明的

代理服务器防火墙将收到的IP包还原成高层协议的通讯数据,比如http连接信息,因此能够对基于高层协议的攻击进行拦截。缺点是处理速度比较慢,能够处理的并发数比较少,所以不能提高网络整体性能,而代理对于用户认证可以设置。

网络攻击

DoS是Denial of Service的简称,即拒绝服务,造成DoS的攻击行为被称为DoS攻击,其目的是使计算机或网络无法提供正常的服务。最常见的DoS攻击有计算机网络带宽攻击和连通性攻击。
作个形象的比喻来理解DoS。街头的餐馆是为大众提供餐饮服务,如果一群地痞流氓要DoS餐馆的话,手段会很多,比如霸占着餐桌不结账,堵住餐馆的大门不让路,骚扰餐馆的服务员或厨子不能干活,甚至更恶劣…SYN Flooding攻击便是Dos攻击的典型代表,该攻击以多个随机的源主机地址向目的路由器发送SYN包,而在收到目的路由器的SYN ACK后并不回应,这样,目的路由器就为这些源主机建立了大量的连接队列,而且由于没有收到ACK一直维护着这些队列,造成了资源的大量消耗而不能向正常请求提供服务,甚至导致路由器崩溃。服务器要等待超时(Time Out)才能断开已分配的资源。

法律法规与标准化

保护期限

商标权可以通过续注延长拥有期限,而著作权、专利权和设计权的保护期限都是有限期的。《中华人民共和国著作权法》对著作权的保护期限作了如下规定: (1)著作权中的署名权、修改权、保护作品完整权的保护期不受限制。

多媒体基础

多媒体技术基本概念

改变数字载波频率可以改变乐音的音调。

改变它的幅度就可以改变乐音的音高。

媒体的种类(显示媒体)

感觉媒体:指人们接触信息的感觉形式。如:视觉、听觉、触觉、嗅觉和味觉等。

表示媒体:指信息的表示形式。如:文字、图形、图像、动画、音频和视频等。

显示媒体(表现媒体)︰表现和获取信息的物理设备。如:输入显示媒体键盘、鼠标和麦克风等;输出显示媒体显示器、打印机和音箱等。

存储媒体:存储数据的物理设备,如磁盘、光盘和内存等。

传输媒体:传输数据的物理载体,如电缆、光缆和交换设备等。

软件工程

需求分析相关概念

结构化方法的分析结果由以下几部分组成:一套分层的数据流图、一本数据词典、一组小说明(也称加工逻辑说明)、补充材料。

数据流图与数据字典

数据流图中的基本图形元素包括数据流、加工、数据存储和外部实体。其中,数据流、加工和数据存储用于构建软件系统内部的数据处理模型,而外部实体表示存在于系统之外的对象,用来帮助用户理解系统数据的来源和去向。外部实体包括:人/物、外部系统、组织机构等。数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素作出详细的说明,使用数据字典为简单的建模项目。其条目有数据流、数据项、数据存储、基本加工等。

①结构化语言:形式语言精确,但不易被理解,自然语言易理解,但它不精确,可能产生二义性。结构化语言取长补短,它是在自然语言基础上加了一些限定,使用有限的词汇和有限的语句来描述加工逻辑,结构化语言是介于自然语言(英语或汉语)和形式化语言之间的一种半形式化语言。

②程序流程图:描述模块或程序执行过程的历史最久、流行最广的—种图形表示方法。

③NS图:是支持结构化程序设计方法而产生的—种描述工具。

⑤决策树:一种适合于描述加工中具有多个策略且每个策略和若干条件有关的逻辑功能的图形工具。

开发模型

要求尽快投入使用,并可以在使用过程中不断完善,对于原型模型和演化(迭代)模型,演化模型更合适;
原型模型更适用于需求不明确时用以获取需求。

增量模型又称为渐增模型,也称为有计划的产品改进模型,它从一组给定的需求开始,通过构造一系列可执行中间版本来实施开发活动。第一个版本纳入一部分需求,下一个版本纳入更多的需求,依此类推,直到系统完成。每个中间版本都要执行必需的过程、活动和任务。增量模型是瀑布模型和原型进化模型的综合,它对软件过程的考虑是:在整体上按照瀑布模型的流程实施项目开发,以方便对项目的管理;但在软件的实际创建中,则将软件系统按功能分解为许多增量构件,并以构件为单位逐个地创建与交付,直到全部增量构件创建完毕,并都被集成到系统之中交付用户使用。比较瀑布模型、原型进化模型,增量模型具有非常显著的优越性。但增量模型对软件设计有更高的技术要求,特别是对软件体系结构,要求它具有很好的开放性与稳定性,能够顺利地实现构件的集成。增量模型有以下不足之处:如果没有对用户的变更要求进行规划,那么产生的初始增量可能会造成后来增量的不稳定;如果需要不像早期思考的那样稳定和完整,那么一些增量就可能需要重新开发,重新发布;管理发生的成本、进度和配置的复杂性可能会超出组织的能力。一开始需求不清晰,会影响开发的进度

螺旋模型是一种演化软件开发过程模型,它兼顾了快速原型的迭代的特征以及瀑布模型的系统化与严格监控。

螺旋模型最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。

同时,在每个迭代阶段构建原型是螺旋模型用以减小风险的途径。螺旋模型更适合大型的昂贵的系统级的软件应用。

极限编程是一个轻量级的、灵巧的软件开发方法;同时它也是一个非常严谨和周密的方法。它的基础和价值观是交流、朴素、反馈和勇气;即,任何一个软件项目都可以从四个方面入手进行改善:加强交流;从简单做起;寻求反馈;勇于实事求是。XP是一种近螺旋式的开发方法,它将复杂的开发过程分解为一个个相对比较简单的小周期;通过积极的交流、反馈以及其他一系列的方法,开发人员和客户可以非常清楚开发进度、变化、待解决的问题和潜在的困难等,并根据实际情况及时地调整开发过程。XP就提倡结对编程(Pair Programming),而且代码所有权是归于整个开发队伍。其中的结对编程就是一种对代码的审查过程,XP主要解决代码质量低的问题,编码速度不能改变。

并列争球法使用了迭代的方法,其中,把每段时间(30天)一次的迭代称为一个"“冲刺”,并按需求的优先级别来实现产品,多个自组织和自治的小组并行地递增实现产品。

敏捷开发是一种以人为核心、迭代、循序渐进的开发方法,常见的敏捷开发方法有极限编程法、水晶法、并列争球法和自适应软件开发方法。

极限编程是一种轻量级的开发方法,它提出了四大价值观:沟通、简单、反馈、勇气。五大原则:快速反馈、简单性假设、逐步修改、提倡更改、优质工作

水晶法强调经常交付,认为每一种不同的项目都需要—套不同的策略、约定和方法论。

并列争球法的核心是迭代、增量交付,按照30天进行迭代开发交付可实际运行的软件。

自适应软件开发的核心是三个非线性的,重迭的开发阶段:猜测、合作、学习。

什么是Rational统—过程(Rational Unified Process)?
Rational Unified Process是软件工程的过程。它提供了在开发组织中分派任务和责任的纪律化方法。它的目标是在可预见的日程和预算前提下,确保满足最终用户需求的高质量产品。
统一过程模型是一种"用例驱动,以体系结构为核心,迭代及增量"的软件过程框架,由UML方法和工具支持。RUP把—个项目分为四个不同的阶段:
构思阶段︰包括用户沟通和计划活动两个方面,强调定义和细化用例,并将其作为主要模型。
细化阶段︰包括用户沟通和建模活动,重点是创建分析和设计模型,强调类的定义和体系结构的表示。构建阶段∶将设计转化为实现,并进行集成和测试。
移交阶段∶将产品发布给用户进行测试评价,并收集用户的意见,之后再次进行迭代修改产品使之完善。没有确认阶段,因此B选项错误。
每个迭代有五个核心工作流:(1)捕获系统应该做什么的需求工作流;(2)精化和结构化需求的分析工作流;(3)在系统结构内实现需求的设计工作流;(4)构造软件的实习工作流;(5)验证是否如期那样工作的测试工作流。

软件质量特性

耦合性

非直接耦合:两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的。数据耦合:一个模块访问另一个模块时,彼此之间是通过简单数据参数(不是控制参数、公共数据结构或外部变量)来交换输入、输出信息的。标记耦合∶一组模块通过参数表传递记录信息,就是标记耦合。这个记录是某一数据结构的子结构,而不是简单变量。其实传递的是这个数据结构的地址;控制耦合:如果一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能,就是控制耦合。外部耦合:一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合。公共耦合:若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合。公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。内容耦合:如果发生下列情形,两个模块之间就发生了内容耦合
(1)一个模块直接访问另一个模块的内部数据;
(2)一个模块不通过正常入口转到另—模块内部;
(3)两个模块有一部分程序代码重叠(只可能出现在汇编语言中);(4)一个模块有多个入口。

耦合性也叫块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。

模块之间联系越紧密,其耦合性就越强,模块之间越独立则越差,

模块间耦合的高低取决于模块间接口的复杂性,调用的方式以及传递的信息

内聚类型

软件维护相关概念及工具

辅助软件维护过程中的活动的软件称为"软件维护工具",它辅助维护人员对软件代码及其文档进行各种维护活动。

软件维护工具主要有:

1、版本控制工具;

2、文档分析工具;

3、开发信息库工具;

4、逆向工程工具;

5、再工程工具;

6、配置管理支持工具。

逆向工程产品设计可以认为是一个从产品到设计的过程。

简单地说,逆向工程产品设计就是根据已经存在的产品,反向推出产品设计数据(包括各类设计图或数据模型)的过程。

这个过程一般是在软件交付使用之后进行,所以是在原软件生命周期的软件维护阶段进行

软件测试相关概念

无论哪种调试方法,其目的都是为了对错误进行定位。目前常用的调试方法有试探法、回溯法、对分查找法、演绎法和归纳法。

试探法:调试人员分析错误的症状,猜测问题所在的位置,利用在程序中设置输出语句,分析寄存器、存储器的内容等手段获得错误的线索,一步一步地试探和分析出错误所在。这种方法效率都很低,适合于错误比较简单的程序。

回溯法:调试人员从发现错误症状的位置开始,人工沿着程序的控制流程往回跟踪代码,直到找出错误根源为止。这种方法适合于小型程序,对于大规模程序,由于其需要回溯的路径太多而变得不可操作。

对分查找法:这种方法主要用来缩小错误的范围,如果已经知道程序中的变量在若干位置的正确取值,可以在这些位置给这些变量以正确值,观察程序运行的输出结果,如果没有发现问题,则说明从赋予变量一个正确值开始到输出结果之间的程序没有错误,问题可能在除此以外的程序中。否则错误就在所观察的这部分程序中,对含有错误的程序段再使用这种方法,直到把故障范围缩小到比较容易诊断为止。

归纳法:归纳法就是从测试所暴露的问题出发,收集所有正确或不正确的数据,分析它们之间的关系,提出假想的错误原因,用这些数据来证明或反驳,从而查出错误所在。本题题干描述的是归纳法。

演绎法∶演绎法根据测试结果,列出所有可能的错误原因;分析已有数据,排除不可能和彼此矛盾的原因;对其余原因,选择可能性最大的,利用已有的数据完善该假设,使假设更具体;用假设来解释所有的原始测试结果,如果能解释这一切,则假设得以证实,也就是找出错误,否则,要么是假设不完备或不成立,要么有多个错误同时存在,需要重新分析,提出新的假设,直到发现错误为止。

软件维护相关概念

正式技术评审是—种由软件工程师和其他人进行的软件质量保障活动。

其目标包括:
(1) 发现功能、逻辑或实现的错误;

(2)证实经过评审的软件的确满足需求;

(3)保证软件的表示符合预定义的标准;

(4)得到—种—致的方式开发的软件;

(5)使项目更易管理。

结构化设计任务

体系结构设计:定义软件系统各主要部件之间的关系。

数据设计:基于E-R图确定软件涉及的文件系统的结构及数据库的表结构。

接口设计((人机界面设计)︰软件内部,软件和操作系统间以及软件和人之间如何通信。

过程设计:系统结构部件转换成软件的过程描述。确定软件各个组成部分内的算法及内部数据结构,并选定某种过程的表达形式来描述各种算法。

架构设计

软件体系结构的各种风格中,仓库风格包含一个数据仓库和若干个其他构件。数据仓库位于该体系结构的中心,其他构件访问该数据仓库并对其中的数据进行增、删、改等操作。

仓库风格优点包括:
1、解决问题的多方法性;

2、具有可更改性和可维护性;

3、有可重用的知识源;

4、支持容错性和健壮性。

缺点:
1、测试困难:由于黑板模式的系统有中央数据构件来描述系统的体现系统的状态,所以系统的执行没有确定的顺序,其结果的可再现性比较差,难于测试;
2、不能保证有好的求解方案;
3、效率低;
4、开发成本高;
5、缺少对并行机的支持。
仓库风格包括:数据库系统、黑板系统、超文本系统。编译器可用多种架构风格实现。

概要设计与详细设计

软件设计的任务是基于需求分析的结果建立各种设计模型,给出问题的解决方案。

从工程管理的角度,可以将软件设计分为两个阶段:概要设计阶段和详细设计阶段。

结构化设计方法中,概要设计阶段进行软件体系结构的设计、数据设计和接口设计;详细设计阶段进行数据结构和算法的设计。

面对对象设计方法中,概要设计阶段进行体系结构设计、初步的类设计/数据设计、结构设计;详细设计阶段进行构件设计。

结构化设计和面向对象设计是两种不通过的设计方法,结构化设计根据系统的数据流图进行设计,模块体现为函数、过程及子程序;面向对象设计基于面向对象的基本概念进行,模块体现为类、对象和构件等。

测试阶段任务及其他测试

1、自顶向下集成
优点:较早地验证了主要控制和判断点;按深度优先可以首先实现和验证一个完整的软件功能;功能较早证实,带来信心;只需—个驱动,减少驱动器开发的费用;支持故障隔离。
缺点:柱的开发量大;底层验证被推迟;底层组件测试不充分。
适应于产品控制结构比较清晰和稳定;高层接口变化较小;底层接口未定义或经常可能被修改;产品的主要控制组件具有较大的技术风险,需要尽早被验证;希望尽早能看到产品的系统功能行为。

2、自底向上集成
优点:对底层组件行为较早验证;工作最初可以并行集成,比自顶向下效率高;减少了桩的工作量;支持故障隔离。
缺点:驱动的开发工作量大;对高层的验证被推迟,设计上的错误不能被及时发现。适应于底层接口比较稳定;高层接口变化比较频繁;底层组件较早被完成。

软件容错技术

冗余是指在正常系统运行所需的基础上加上一定数量的资源,包括信息、时间、硬件、和软件。冗余是容错技术的基础,通过冗余资源的加入,可以使系统的可靠性得到较大的提高。
主要的冗余技术有结构冗余(硬件冗余和软件冗余)、信息冗余、时间冗余和冗余附加四种。

1.结构冗余
结构冗余是常用的冗余技术,按其工作方式,可分为静态冗余、动态冗余和混合冗余三种。
(1)静态冗余。静态冗余又称为屏蔽冗余或被动冗余,常用的有三模冗余和多模冗余。静态冗余通过表决和比较来屏蔽系统中出现的错误。例如,三模冗余是对三个功能相同,但由不同的人采用不同的方法开发出的模块的运行结果进行表决,以多数结果作为系统的最终结果。即如果模块中有一个出错,这个错误能够被其他模块的正确结果"屏蔽"。由于无需对错误进行特别的测试,也不必进行模块的切换就能实现容错,故称为静态容错。
(2)动态冗余。动态冗余又称为主动冗余,它是通过故障检测、故障定位及故障恢复等手段达到容错的目的。其主要方式是多重模块待机储备,当系统检测到某工作模块出现错误时,就用一个备用的模块来顶替它并重新运行。各备用模块在其待机时,可与主模块—样工作,也可不工作。前者叫做热备份系统(双重系统),后者叫做冷备份系统(双工系统、双份系统)。在热备份系统中,两套系统同时、同步运行,当联机子系统检测到错误时,退出服务进行检修,而由热备份子系统接替工作,备用模块在待机过程中其失效率为O;处于冷备份的子系统平时停机或者运行与联机系统无关的运算,当联机子系统产生故障时,人工或自动进行切换,使冷备份系统成为联机系统。在运行冷备份时,不能保证从系统断点处精确地连续工作,因为备份机不能取得原来的机器上当前运行的全部数据。(3)混合冗余。混合冗余技术是将静态冗余和动态冗余结合起来,且取二者之长处。它先使用静态冗余中的故障屏蔽技术,使系统免受某些可以被屏蔽的故障的影响。而对那些无法屏蔽的故障则采用主动冗余中的故障检测、故障定位和故障恢复等技术,并且对系统可以作重新配置。因此,混合冗余的效果要大大优于静态冗余和动态冗余。然而,由于混合冗余既要有静态冗余的屏蔽功能,又要有动态冗余的各种检测和定位等功能,它的附加硬件的开销是相当大的,所以混合冗余的成本很高,仅在对可靠性要求极高的场合中采用。
2.信息冗余
信息冗余是在实现正常功能所需要的信息外,再添加一些信息,以保证运行结果正确性的方法。例如,检错码和纠错码就是信息冗余的例子。这种冗余信息的添加方法是按照—组预定的规则进行的。符合添加规则而形成的带有冗余信息的字称为码字,而那些虽带有冗余信息但不符合添加规则的字则称为非码字。当系统出现故障时,可能会将码字变成非码字,于是在译码过程中会将引起非码字的故障检测出来,这就是检错码的基本思想。纠错码则不仅可以将错误检测出来,还能将由故障引起的非码字纠正成正确的码字。
由此可见,信息冗余的主要任务在于研究出—套理想的编码和译码技术来提高信息冗余的效率。编码技术中应用最广泛的是奇偶校验码、海明校验码和循环冗余校验码。
3.时间冗余
时间冗余是以时间(即降低系统运行速度)为代价以减少硬件冗余和信息冗余的开销来达到提高可靠性的目的。在某些实际应用中,硬件冗余和信息冗余的成本、体积、功耗、重量等开销可能过高,而时间并不是太重要的因素时,可以使用时间冗余。时间冗余的基本概念是重复多次进行相同的计算,或称为重复执行(复执),以达到故障检测的目的。
实现时间冗余的方法很多,但是其基本思想不外乎是对相同的计算任务重复执行多次,然后将每次的运行结果存放起来再进行比较。若每次的结果相同,则认为无故障;若存在不同的结果,则说明检测到了故障。不过,这种方法往往只能检测到瞬时性故障而不宜检测永久性的故障。
4.冗余附加
冗余附加技术包括:冗余备份程序的存储及调用,实现错误检测和错误恢复的程序,实现容错软件所需的固化程序。

模块设计原则

一个模块的作用范围(或称影响范围)指受该模块内一个判定影响的所有模块的集合。
一个模块的控制范围指模块本身以及其所有下属模块(直接或间接从属于它的模块)的集合。
一个模块的作用范围应在其控制范围之内,且判定所在的模块应在其影响的模块在层次上尽量靠近。如果再设计过程中,发现模块作用范围不在其控制范围之内,可以用"上移判点"或“下移受判断影响的模块,将它下移到判断所在模块的控制范围内"的方法加以改进。

其他

传入模块:从下属模块取得数据,经处理再将其传送给上级模块。

传出模块:从上级模块取得数据,经处理再将其传送给下属模块。

变换模块:从上级模块取得数据,进行特定的处理,转换成其他形式,再传送给上级模块。

软件过程改进

CMM的分级结构及其过程描述:
(1)初始级:软件过程的特点是无秩序或说无定规的,有时甚至是混乱的。软件过程定义几乎处于无章法、无步骤可循的状态,软件产品所取得的成功往往依赖于极个别人的努力和机遇。

(2)可重复级:已建立了基本的项目管理过程,可用于对成本、进度和功能特性进行跟踪。对类似的应用项目,有章可循并能重复以往所取得的成功。

(3)已定义级:用于管理的和工程的软件过程均已文档化、标准化,并形成了整个软件组织的标准软件过程。全部项目均采用与实际情况相吻合的、适当修改后的标准软件过程来进行操作。

(4)已管理级:软件过程和产品质量有详细的度量标准。软件过程和产品质量得到了定量的认识和控制。

(5)优化级:通过对来自过程、新概念和新技术等方面的各种有用信息的定量分析,能够不断地、持续地对促进过程进行改进。
除第一级外,每一级都设定了一组目标,如果达到了这组目标,则表明达到了这个成熟级别,自然可以向上一更为成熟的高一级别迈进。CMM体系不主张跨级别的进化,因为从第二级开始,每一个低级别的实现均是更高级别实现的基础。

项目管理

软件项目估算

软件成本估算比较常用的模型有Putnam模型,功能点模型,COCOMO模型和后续的COCOMO Ⅱ模型。其中以coCOMOII模型的使用最为广泛,它是COCOMO模型的改进,以成本为主要因素,考虑多成本驱动因素。COCOMO II模型也需要使用规模估算信息,在模型层次结构中有3种不同规模估算选择,即:对象点、功能点和代码行。

配置管理

配置管理包括版本控制、变更管理、配置状态报告、配置审计。

软件配置管理SCM用于整个软件工程过程,其主要目标是标识变更、控制变更、确保变更正确的实现,报告变更。其主要内容包括版本管理配置支持变更支持过程支持团队支持变化报告审计支持等。

风险管理

风险的优先级通常是根据风险暴露(Risk Exposure)设定

风险暴露又称风险曝光度,测量的是资产的整个安全性风险,它将表示实际损失的可能性与表示大量可能损失的资讯结合到单一数字评估中。在形式最简单的定量性风险分析中,风险曝光度可通过将风险可能性及影响相乘算出。风险曝光度(Risk Exposure)=错误出现率(风险出现率)×错误造成损失(风险损失)。

程序设计语言基础

编译器工作过程

词法分析:从左到右逐个扫描源程序中的字符,识别其中如关键字(或称保留字)、标识符、常数、运算符以及分隔符(标点符号和括号)等。语法分析:根据语法规则将单词符号分解成各类语法单位,并分析源程序是否存在语法上的错误。包括:语言结构出错、if..end if不匹配,缺少分号、括号不匹配、表达式缺少操     作数等。语义分析:进行类型分析和检查,主要检测源程序是否存在静态语义错误。包括:运算符和运算类型不符合,如取余时用浮点数。

归约分析是自底向上方法中的典型。先分析词,即词法分析。而分析词的组合,即语法分析。

符号表:符号表是一种用于语言翻译器(例如编译器和解释器)中的数据结构。在符号表中,程序源代码中的每个标识符都和它的声明或使用信息绑定在一起,比如其数据类型、作用域以及内存地址。
哈希表:也叫散列表,是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中—个位置来访问记录,以加快查找的速度。
动态查找表:动态查找表的表结构本身是在查找过程中动态生成的,即对于给定值key,若表中存在其关键字等于key的记录,则查找成功返回,否则插入关键字等于key的记录。
栈和队列:基本的数据结构。栈的基本特点是"后进先出",而队列的基本特点是"先进先出"。

传值与传址

引用调用,会改变实参的值。

多种程序语言特点

LISP是一种通用高级计算机程序语言,长期以来垄断人工智能领域的应用。LISP作为因应人工智能而设计的语言,是第一个声明式系内函数式程序设计语言,有别于命令式系内过程式的C、Fortran和面向对象的Java、C#等结构化程序设计语言。

全局变量、静态局部变量、静态全局变量都存放在静态数据存储区。

编译与解释

编译语言是一种以编译器来实现的编程语言。它不像直译语言一样,由解释器将代码一句一句运行,而是以编译器,先将代码编译为机器码,再加以运行。将某一种程序设计语言写的程序翻译成等价的另一种语言的程序的程序,称之为编译程序。

编译方式生成逻辑上与源程序等价的目标程序,解释方式不生成

中间代码

后缀和三地址码是常用的中间代码。

操作系统

树形目录结构(绝对路径与相对路径)

该文件的全文件名包括其所在路径及其文件名称,为/Swtools/FflashiIw.dll。相对路径就是指由这个文件所在的路径引起的跟其他文件(或文件夹)的路径关系;题中为flash/;绝对路径是指目录下的绝对位置,直接到达目标位置;题中为/swtools/flash/.

文件相关概念

修改linux文件权限命令:chmod。

进程的状态

进程控制块PCB的组织方式有:1)线性表方式,2) 索引表方式,3)链接表方式。

1)线性表方式:不论进程的状态如何,将所有的PCB连续地存放在内存的系统区。这种方式适用于系统中进程数目不多的情况。

  1. 索引表方式:该方式是线性表方式的改进,系统按照进程的状态分别建立就绪索引表、阻塞索引表等。

3)链接表方式:系统按照进程的状态将进程的PCB组成队列,从而形成就绪队列、阻塞队列、运行队列等。

特殊的操作系统

系统初始化过程可以分为3个主要环节,按照自底向上、从硬件到软件的次序依次为∶片级初始化、板级初始化和系统级初始化。

片级初始化
完成嵌入式微处理器的初始化,包括设置嵌入式微处理器的核心寄存器和控制寄存器、嵌入式微处理器核心工作模式和嵌入式微处理器的局部总线模式等。片级初始化把嵌入式微处理器从上电时的默认状态逐步设置成系统所要求的工作状态。这是—个纯硬件的初始化过程。

板级初始化
完成嵌入式微处理器以外的其他硬件设备的初始化。另外,还需设置某些软件的数据结构和参数,为随后的系统级初始化和应用程序的运行建立硬件和软件环境。这是一个同时包含软硬件两部分在内的初始化过程。

系统初始化
该初始化过程以软件初始化为主,主要进行操作系统的初始化。BSP将对嵌入式微处理器的控制权转交给嵌入式操作系统,由操作系统完成余下的初始化操作,包含加载和初始化与硬件无关的设备驱动程序,建立系统内存区,加载并初始化其他系统软件模块,如网络系统、文件系统等。最后,操作系统创建应用程序环境,并将控制权交给应用程序的入口。

面向对象技术

设计模式的图

观察者模式是一个被观察者和多个观察者对象;(有时又被称为发布-订阅Subscribe>模式、模型-视图View>模式、源-收听者Listener>模式或从属者模式)︰定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动更新。本题应该选择观察者模式。桥接模式是结构型模式,存在部分与整体的联系;策略模式是对于不同算法的封装和切换,但是调用策略的对象只有一个。访问者模式:一个对象结构包含很多类对象(tem),而系统要求这些对象实施一些依赖于某具体类(Checkout)的操作时,可以使用访问者模式。状态模式:允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。在很多情况下,一个对象的行为取决于一个或多个动态变化的属性,这样的属性叫作状态,这样的对象叫作有状态的(stateful)对象,这样的对象状态是从事先定义好的一系列值中取出的。当一个这样的对象与外部事件产生互动时,其内部状态就会改变,从而使得系统的行为也随之发生变化。装饰模式:是一种对象结构型模式,可动态地给一个对象增加一些额外的职责,就增加对象功能来说,装饰模式比生成子类实现更为灵活。通过装饰模式,可以在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责;当需要动态地给一个对象增加功能,这些功能可以再动态地被撒销时可使用装饰模式;当不能采用生成子类的方法进行扩充时也可使用装饰模式。外观模式:是对象的结构模式,要求外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这—子系统更加容易使用。生成器模式将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。抽象工厂模式(Abstract Factory)︰提供一个接口,可以创建一系列相关或相互依赖的对象,而无需指定它们具体的类。享元模式(Flyweight) :提供支持大量细粒度对象共享的有效方法。命令模式的特点为:将一个请求封装为一个对象,从而可用不同的请求对客户进行参数化,将请求排队或记录请求日志,支持可撤销的操作。本题描述为命令模式。职责链模式(Chain of Responsibility):通过给多个对象处理请求的机会,减少请求的发送者与接收者之间的耦合。将接收对象链接起来,在链中传递请求,直到有一个对象处理这个请求。

抽象工厂模式(Albstract Factory):提供一个接口,可以创建一系列相关或相互依赖的对象,而无需指定它们具体的类。

构建器模式(Builder):将一个复杂类的表示与其构造相分离,使得相同的构建过程能够得出不同的表示。

工厂方法模式(Factory Method):定义一个创建对象的接口,但由子类决定需要实例化哪一个类。工厂方法使得子类实例化的过程推迟。

原型模式(Prototype)︰用原型实例指定创建对象的类型,并且通过拷贝这个原型来创建新的对象。

单例模式(Singleton):保证一个类只有一个实例,并提供一个访问它的全局访问点。

适配器模式(Adapter):将一个类的接口转换成用户希望得到的另一种接口。它使原本不相容的接口得以协同工作。

桥接模式(Bridge):将类的抽象部分和它的实现部分分离开来,使它们可以独立地变化。

组合模式(Composite):将对象组合成树型结构以表示"整体-部分”的层次结构,使得用户对单个对象和组合对象的使用具有—致性。

装饰模式(Decorator):动态地给一个对象添加一些额外的职责。它提供了用子类扩展功能的一个灵活的替代,比派生—个子类更加灵活。

外观模式(Facade):定义一个高层接口,为子系统中的一组接口提供一个一致的外观,从而简化了该子系统的使用。

享元模式(Flyweight):提供支持大量细粒度对象共享的有效方法。

代理模式(Proxy) :为其他对象提供—种代理以控制这个对象的访问。

职责链模式(Chain of Responsibility):通过给多个对象处理请求的机会,减少请求的发送者与接收者之间的耦合。将接收对象链接起来,在链中传递请求,直到有一个对象处理这个请求。

命令模式(Command):将一个请求封装为一个对象,从而可用不同的请求对客户进行参数化,将请求排队或记录请求日志,支持可撤销的操作。

解释器模式(Interpreter):给定一种语言,定义它的文法表示,并定义一个解释器,该解释器用来根据文法表示来解释语言中的句子。

迭代器模式(lterator):提供一种方法来顺序访问一个聚合对象中的各个元素,而不需要暴露该对象的内部表示。

中介者模式(Mediator):用一个中介对象来封装—系列的对象交互。它使各对象不需要显式地相互调用,从而达到低耦合,还可以独立地改变对象间的交互。

备忘录模式(Memento):在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,从而可以在以后将该对象恢复到原先保存的状态。

观察者模式(Observer)∶定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动更新。

状态模式(State) :允许一个对象在其内部状态改变时改变它的行为。

策略模式(Strategy):定义一系列算法,把它们一个个封装起来,并且使它们之间可互相替换,从而让算法可以独立于使用它的用户而变化。

模板方法模式(Template Method):定义一个操作中的算法骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重新定义算法的某些特定步骤。

访问者模式(Visitor):表示一个作用于某对象结构中的各元素的操作,使得在不改变各元素的类的前提下定义作用于这些元素的新操作。

UML图的图示

面向对象的基本概念

动态绑定是实现多态的基础

程序设计语言基础

文法

上下文无关文法:形式语言理论中一种重要的变换文法,用来描述上下文无关语言,在乔姆斯基分层中称为2型文法。由于程序设计语言的语法基本上都是上下文无关文法,因此应用十分广泛。

数据库系统

分布式数据库

分片透明:是指用户不必关系数据是如何分片的,它们对数据的操作在全局关系上进行,即关系如何分片对用户是透明的,因此,当分片改变时应用程序可以不变。分片透明性是最高层次的透明性,如果用户能在全局关系一级操作,则数据如何分布,如何存储等细节自不必关系,其应用程序的编写与集中式数据库相同。复制透明:用户不用关心数据库在网络中各个节点的复制情况,被复制的数据的更新都由系统自动完成。在分布式数据库系统中,可以把一个场地的数据复制到其他场地存放,应用程序可以使用复制到本地的数据在本地完成分布式操作,避免通过网络传输数据,提高了系统的运行和查询效率。但是对于复制数据的更新操作,就要涉及到对所有复制数据的更新。位置透明:是指用户不必知道所操作的数据放在何处,即数据分配到哪个或哪些站点存储对用户是透明的。局部映像透明性(逻辑透明)是最低层次的透明性,该透明性提供数据到局部数据库的映像,即用户不必关系局部DBMS支持哪种数据模型、使用哪种数据操纵语言,数据模型和操纵语言的转换是由系统完成的。因此,局部映像透明性对异构型和同构异质的分布式数据库系统是非常重要的。

规范化理论基本概念

从已知的一些函数依赖,可以推导出另外—些函数依赖,这就需要—系列推理规则。函数依赖的推理规则最早出现在1974年w.w.Armstrong的论文里,这些规则常被称作"Armstrong 公理”
设U是关系模式R的属性集,F是R上成立的只涉及U中属性的函数依赖集。函数依赖的推理规则有以下三条:自反律:若属性集Y包含于属性集X,属性集X包含于U,则X→Y在R上成立。(此处X→Y是平凡函数依赖)增广律:若X一Y在R上成立,且属性集Z包含于属性集U,则XZ→YZ在R上成立。
传递律:若X→Y和Y一Z在R上成立,则X一Z在R上成立。

根据上面三条推理规则,又可推出下面三条推理规则:
④合并规则:若X→Y,X一Z,则X一YZ为F所蕴含;

⑤伪传递规则:若X→Y, WY→Z,则XW一Z为F所蕴含;

⑥分解规则:若X→Y,Z Y,则X一Z为F所蕴含。

数据仓库

联机分析处理OLAP是一种软件技术,它使分析人员能够迅速、一致、交互地从各个方面观察信息,以达到深入理解数据的目的。

数据库设计过程

需求分析:分析用户的需求,包括数据、功能和性能需求;得到数据流图、数据字典和需求说明书。

概念设计:用数据模型明确地表示用户的数据需求。其反映了用户的现实工作环境,与数据库的具体实现技术无关。(E-R模型)。

逻辑设计:根据概念数据模型及软件的数据模型特性,按照一定的转换规则和规范化理论,把概念模型转换为逻辑数据模型,如层次模型、网状模型、关系模型等。关系规范化是在逻辑设计阶段进行。

物理设计:为一个确定的逻辑数据模型选择一个最适合应用要求的物理结构的过程。

其他

数据文件包含数据和对象,例如表、索引、存储过程和视图。日志文件包含恢复数据库中的所有事务所需的信息。

为了保证数据库中数据的安全可靠和正确有效,系统在进行事务处理时,对数据的插入、删除或修改的全部有关内容先写入(日志文件);当系统正常运行时,按一定的时间间隔,把数据库缓冲区内容写入(数据文件);当发生故障时,根据现场数据内容及相关文件来恢复系统的状态。

数据结构与算法

树与二叉树的特性

二叉树的顺序存储,就是用一组连续的存储单元存放二叉树中的结点;把二叉树的所有结点安排成为一个恰当的序列,反映出节点中的逻辑关系;用编号的方法从树根起,自上层至下层,每层自左至右地给所有结点编号。
对于这些结点如果没有对应的左右孩子结点,则在对应数组位置存储为空。

信息安全

计算机网络

网络接入技术

ADSL Modem上网拨号方式有3种,即专线方式(静态IP) 、PPPoA和PPPoE。
PPPoE(英语: Point-to-Point Protocol Over Ethernet),以太网上的点对点协议,是将点对点协议(PPP)封装在以太网(Ethernet)框架中的一种网络隧道协议。PPTP (Point-to-Point Tunneling Protoco),即点对点隧道协议。该协议是在PPP协议的基础上开发的一种新的增强型安全协议,支持多协议虚拟专用网(VPN),可以通过密码验证协议(PAP)、可扩展认证协议(EAP)等方法增强安全性。可以使远程用户通过拨入ISP、通过直接连接Internet或其他网络安全地访问企业网。SLIP(Serial Line Internet Protocol,串行线路网际协议),该协议是Windows远程访问的一种旧工业标准,主要在Unix远程访问服务器中使用,现今仍然用于连接某些ISP。PPP(点到点协议)是为在同等单元之间传输数据包这样的简单链路设计的链路层协议。这种链路提供全双工操作,并按照顺序传递数据包。设计目的主要是用来通过拨号或专线方式建立点对点连接发送数据,使其成为各种主机、网桥和路由器之间简单连接的一种共通的解决方案。

W-CDMA:英文名称是Wideband Code Division Multiple Access,中文译名为宽带码分多址,它可支持384Kkbps到2Mbps不等的数据传输速率,支持者主要以GSM系统为主的欧洲厂商。
CDMA2000∶亦称CDMA Multi-Carrier,由美国高通北美公司为主导提出,摩托罗拉、Lucent和后来加入的韩国三星都有参与,韩国现在成为该标准的主导者。
TD-SCDMA:该标准是由中国独自制定的3G标准,由于中国的庞大的市场,该标准受到各大主要电信设备厂商的重视,全球—半以上的设备厂商都宣布可以支持TD-SCDMA标准。

网络故障诊断及常用命令

netstat是控制台命令,是一个监控TCPIP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。

nslookup是一个监测网络中DNS服务器是否能正确实现域名解析的命令行工具。

PING命令常用于测试连通性,在此过程中可看出是直接ping的目标地址。检查错误时,使用由近及远的原则意味着先要确认本机协议栈有没有问题,所以可以用ping127.0.0.1来检查本机TCP/IP协议栈,俞钧PING通,说明本机协议栈无问题。

nslookup、ping、tracert都可以加上一个主机域名作为其命令参数来诊断DNS故障,nslookup还可以看到本地DNS服务器地址。Arp命令是与arp记录有关,与DNS无关联。

协议应用提升

域名解析流程:

1.客户机提出域名解析请求,并将该请求发送给本地的域名服务器。

2.当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果返回。

3.如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器—个所查询域(根的子域)的 主域名服务器的地址。

4.本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该纪录,则返回相关的下级的域名服务器的地址。

5.重复第四步,直到找到正确的纪录。

6.本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还将结果返回给客户机。

常见TCP/IP协议基础

25端口为SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)服务器所开放,主要用于发送邮件。

110端口为POP3(Post Office Protocol - Version 3,邮件协议版本3)负责邮件收取。

SNMP:简单网络管理协议,使用UDP协议进行封装。

ARP和ICMP是网络层协议

X.25是标准的接口协议

FTP协议占用两个标准的端口号:20和21,其中20为数据口21为控制口

IP地址分类与特殊的IP地址

127.0.0.1是回送地址,指本地机,一般用来测试使用。回送地址(127.X.X.x)是本机回送地址(LoopbackAddress) ,

即主机IP堆栈内部的IP地址,主要用于网络软件测试以及本地机进程间通信,无论什么程序,一旦使用回送地址发送数据,

协议软件立即返回,不进行任何网络传输。

路由配置

对于多种不同的路由协议到一个目的地的路由信息,路由器首先根据管理距离决定相信哪—个协议。

开放系统互连参考模型

IPv6

IPv4和IPv6的过渡期间,主要采用三种基本技术。
(1)双协议栈:主机同时运行IPv4和IPv6两套协议栈,同时支持两套协议。

(2)隧道技术:这种机制用来在IPv4网络之上连接IPv6的站点,站点可以是一台主机,也可以是多个主机。隧道技术将IPv6的分组封装到IPv4的分组中,封装后的IPv4分组将通过IPv4的路由体系传输,分组报头的"协议"域设置为41,指示这个分组的负载是一个IPv6的分组,以便在适当的地方恢复出被封装的IPv6分组并传送给目的站点。

(3)NAT-PT∶利用转换网关来在IPv4和IPv6网络之间转换IP报头的地址,同时根据协议不同对分组做相应的语义翻译,从而使纯IPv4和纯IPv6站点之间能够透明通信。

软考中级软件设计师知识点总结相关推荐

  1. 历年软考中级软件设计师知识点分布和分值比重总结

    软考软件设计师 备考 前言 Nothing is impossible. 没有什么是不可能的. 加油,写给备考软件设计师的你 历年上午题知识点分布规律 知识点 分数 说明 比例 软件工程基础知识 11 ...

  2. 软考中级-软件设计师知识点与例题-1、计算机组成与结构

    计算机组成与结构 计算机基本工作原理 进制: 后缀为H.0X表示的是16进制,B表示二进制数,Q表示八进制数,D表示十进制数. 16进制:09.AF/af(表示1015): 16位数对应进制的表示方法 ...

  3. 全国软考中级软件设计师 复习大纲概览

    本专栏记录学习复习软考中级软件设计师的内容,官方网站上有中级设计师的考试大纲和指导用书,官网链接:https://www.ruankao.org.cn 考试的难度总体来讲不是很大,但是设计的知识面非常 ...

  4. 2022下半年软考-中级-软件设计师-过关经验

    目录 1.重要内容 2.考情分析 3.视频笔记 1.重要内容 软考官网:中国计算机技术职业资格网 刷题:软考通app.软考真题app.软考刷题王(微信小程序).希赛网app. zst_2001软考中级 ...

  5. 软考中级(软件设计师)——面向对象程序设计(C++Java二选一的题15分-目标3分)

    软考中级(软件设计师)--面向对象程序设计(C++&Java二选一的题15分-目标3分) 目录 软考中级(软件设计师)--面向对象程序设计(C++&Java二选一的题15分-目标3分) ...

  6. 软考中级软件设计师 2009-2022年真题

    ** 整理了2009年到2022年 软考中级软件设计师的题目与参考答案 百度网盘分享 链接:https://pan.baidu.com/s/1f4Hfuw7lzgM4IZa-g1Wepg?pwd=50 ...

  7. 软考中级软件设计师难不难_为什么这么难处理设计师

    软考中级软件设计师难不难 重点 (Top highlight) I have a confession to make. As a young Design 'pioneer' in many tec ...

  8. 软考中级--软件设计师

    软考中级–软件设计师 数据库系统复习总结

  9. 软考中级(软件设计师)——计算机网络(5分)与信息安全(3分)

    软考中级(软件设计师)--计算机网络(5分)与信息安全(3分) 目录 软考中级(软件设计师)--计算机网络(5分)与信息安全(3分) 计算机网络(5分) 开放系统互连参考模型(★★) TCP/IP协议 ...

  10. 软考中级(软件设计师)——数据库系统(上下午各占6-8分)

    软考中级(软件设计师)--数据库系统(上下午各占6-8分) 目录 软考中级(软件设计师)--数据库系统(上下午各占6-8分) 数据库模式(★★) 三级模式 数据库设计过程 ER模型(★★★★★) 关系 ...

最新文章

  1. 潘建伟团队再次展示量子计算优越性!“祖冲之号”1.2小时就能完成超算8年计算量...
  2. MapReduce Java API实例-统计出现过的单词
  3. java导出excel并压缩
  4. Android环境搭建遭遇Unsupported major.minor version 52.0
  5. Linux下解决发布Qt程序报错:it could not find or load the Qt platform plugin “xcb” in “”
  6. java 字符串实例_Java字符串实例
  7. 我的Android进阶之旅------gt;Android Studio 快捷键整理分享
  8. 蓝宝石rx470d原版bios_蓝宝石显卡等级划分,如何区分双胞胎矿卡,旗舰值得入手吗?...
  9. c语言酒店管理系统,基于C#的酒店管理系统(V3.1)最新版
  10. 芯片(架构)顶会截稿时间和开会时间记录(ISSCC、VLSI、ISCA、HPCA、MICRO、DAC等)
  11. Qt配置opencv
  12. 通过组策略实现windows远程协助msra.exe
  13. linux bmc管理(工作笔记,随时更新)
  14. 暑期2020“大咖说开源”之吴雪 | 开源的商业创新
  15. 基于AnimeGAN模型生成宫崎骏风格动漫照片
  16. docker 中搭建 PHP8 + Apache 环境
  17. PG 认证是什么认证?有用吗?
  18. 978. Longest Turbulent Subarray [Medium]
  19. 联想笔记本win10突然没有显示网络?找不到Wlan,适配器驱动程序的问题
  20. fastjson中List和JSONArray的相互转换

热门文章

  1. c语言课程设计题目 吃豆子,C语言吃豆子游戏
  2. python群控模拟安卓系统_安卓群控系统模拟器
  3. DTC标准故障码格式解析
  4. axure8.0注册码
  5. logistic回归分析优点_逻辑回归算法的优缺点
  6. 华为[ENSP]OSPF的配置实例(单区域+多区域)
  7. 企业常用OSPF组网配置示例
  8. android 支付宝手势密码锁,Android仿支付宝手势密码解锁
  9. 一卡通管理系统需求分析
  10. 单元格下拉全选快捷键_wps表格怎么选中单元格,快捷键是什么?