软件设计师基础知识难点
-
I/O设备管理软件一般分为4个层次,如下图所示。
用户进程 与设备无关的系统软件 设备驱动程序 中断处理程序 硬件 -
直接查询控制
分为有无条件传送和程序查询方式,都需要通过CPU执行程序来查询外设的状态,判断外设是否准备好接收数据或准备好了向CPU输入的数据。在这种情况下CPU不做别的事情,只是不停地对外设的状态进行查询。
-
中断
当I/0系统与外设交换数据时,CPU无须等待也不必查询I/0的状态,而可以抽身来处理其他任务。
当I/0系统准备好以后,则发出中断请求信号通知CPU,CPU接到中断请求信号后,保存正在执行的程序的现场,转入I/0中断服务程序的执行,完成于I/0系统的数据交换,然后再返回被打断的程序继续执行。
与程席控制方式相比,中断方式因为CPU无需等待而提高了效率。
-
DMA
直接寄存器存取方式,是指数据在内存与I/0设备间的直接成块传送,即在内存与I/O设备间传送一个数据块的过程中,不需要CPU的任何干涉,只需要CPU正在过程开始启动与过程结束时的处理,实际操作由DMA硬件直接执行完成。
-
测试
-
白盒测试
-
判定覆盖
设计若干个测试用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少运行一次。
-
-
黑盒测试
-
McCabe度量法
-
-
软件过程模型
-
瀑布模型
-
优点:容易理解、成本低、强调开发的阶段性早期计划及需求调查和产品测试。
-
缺点:客户必须要准确地表达他们的需要;在开始的两个或三个阶段中,很难评估真正的进度状态;项目快结束时,出现大量的集成与测试工作;项目结束之前,不能演示系统的能力。
过于理想化,而且缺乏灵活性,无法在开发过程中逐渐明确用户难以确切表达或一时难以想到的需求。
-
瀑布模型具有可强迫开发人员采用规范的方法;严格规定了各阶段必须提交的文档;要求每个阶段结束后,都要进行严格的评审等优点。
-
-
V模型
一种典型的测试模型,该模型强调开发过程中测试贯穿始终。
-
增量模型
- 增量开发是把软件产品作为一系列的增量构件来设计、编码、集成和测试。每个构件由多个相互作用的模块构成,并且能够完成特定的功能。
- 优点:
- 能在较短时间内向用户提交可完成些有用的工作产品;
- 逐步增加产品的功能可以使用户有较充裕的时间学习和适应新产品,项目失败的风险较低;
- 优先级高的服务首先交付,使得最重要的系统服务将接受最多的测试。
- 不足:
- 如果没有对用户变更的要求进行规划,那么产生初始量可能会造成后来增量的不稳定
- 管理发生的成本、进度和配置的复杂性可能会超出组织的能力
-
原型化模型
基于需求不容易明确这一事实,并非所有的需求在系统开发之前都能准确地说明和定义。因此,它不追求也不可能要求对需求的严格定义,而是采用了动态定义需求 的方法。快速原型法适用于需求不够明确的项目。
不适合大规模项目
-
螺旋模型
综合了瀑布模型和演化模型的优点,并在此基础上还增加了风险分析 。采用螺旋模型时,软件开发沿着螺旋线自内向外旋转,每转一圈都要对风险进行识别和分析,并采取相应的对策。
在螺旋模型中过多的迭代次数会增加开发成本
-
喷泉模式
以用户需求为动力、以对象为驱动的模型。
- 特点:迭代性和软件无间隙
-
基于构件的开发模型
利用预先打包的构件来构造应用系统
构件可以是组织内部开发的构件,也可以是商品化成品软件构件
本质上是演化模型
一种基于构件的开发模型包括领域工程和应用系统工程。
(1)领域工程的目的是构建领域模型、领域基准体系结构和可复用构件库。
(2)应用系统工程的目的是使用可复用构件组装应用系统。
-
形式化模型
形式化方法是建立在严格数学基础上的一种软件开发方法,主要活动是生成计算机软件形式化的数学规格说明。
-
演化模型
-
统一过程模型
分为四个阶段:
- 起始阶段:起始阶段专注于项目的初创活动
- 精化阶段:精化阶段在理解了最初的领域范围之后进行需求分析和架构演进
- 构建阶段:构建阶段关注系统的构建 ,产生实现模型
- 移交阶段:移交阶段关注于软件提交方面 的工作,产生软件增量
-
敏捷开发
-
极限编程(XP)
-
水晶法(Crystal)
-
并列争球法(Scrum)
安排多个小组并行开发,提高开发效率。同时设置一个冲刺时间段,确保任务准时完成。
-
自适应软件开发(ASD)
-
类型 特征 瀑布模型 结构化方法。开发阶段性、需求明确、文档齐全、风险控制弱 原型模型 迭代方法。分为原先开发与目标软件开发。需求不明确、不适合大型项目开发 螺旋模型 迭代方法。瀑布与原型化模型结合体。适用于大型、复杂、风险项目 喷泉模型 面向对象方法。复用好、开发过程无间隙、节省时间 V模型 开发和测试结合 变换模型 适用于形式化开发 智能模型 适用于基于规则的专家系统 快速应用开发RAD 基于构件开发,用户参与、开发或复用构件、模块化要求高,不适用新技术 RUP/UP 用例驱动、架构为中心、迭代、增量 可重用构建模型 基于构件的开发方法。开发和复用构件 -
-
软件调试的常用方法
-
试探法
根据错误的特点,猜测问题的所在位置,利用在程序中设置输出语句,分析寄存器、存储器的内容等手段来获得错误的线索,一步步地试探和分析出错误所在。
-
回溯法
从发现错误症状的位置开始,人工沿着程序的控制流积往回跟踪代码,直到找出错误根源为止。
-
对分查找法
在该方法中,如果已经知道程序中的变量在若干位置的正确取值,可以在这些位置上给这些变量以正确值,观察程序运行输出结果,如果没有发现问题,则说明从赋予变量一个正确值到输出结果之间的程序没有错误,问题可能在除此之外的程序中。否则,错误就在所考察的这部分程序中,对含有错误的程序段再使用这种方法,直到把故障范围缩小到比较容易诊断为止。
-
归纳法
从测试所暴露的问题出发,收集所有正确或不正确的数据,分析它们之间的关系,提出假想的错误原因,用这些数据来证明或反驳,从而查出错误所在
-
演绎法
根据测试结果,列出所有可能的错误原因。分析已有的数据,排除不可能和彼此矛盾的原因。对其余的原因,选择可能性最大的,利用已有的数据完善该假设,使假设更具体。用假设来解释所有的原始测试结果,如果能解释这一切,则假设得以证实,也就找出错误;否则,要么是假设不完备或不成立,要么有多个错误同时存在,需要重新分析,提出新的假设,直到发现错误为止。
-
-
网络攻击
-
重放攻击
时间戳是防止重放攻击的主要技术。
-
拒绝服务攻击
-
数据截获攻击
网络抓包
-
数据流分析攻击
被动攻击,对流经网络传输介质的数据流量的长期观察和分析
-
-
设计模式
-
创建型设计模式
-
工厂方法 Factory Method
定义一个用于创建对象的接口,让子类决定实例化哪一个类
-
抽象工厂 Abstract Factory
该模式提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类
- 适用场景
- 一个系统要独立于它的产品的创建、组合和表示时
- 一个系统要由多个产品系列中的一个来配置时
- 当要强调一系列相关的产品对象的设计以便进行联合使用时
- 当提供一个产品类库,只想显示它们的接口而不是实现时
- 适用场景
-
生成器 Builder
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
- 适用场景
- 当构建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时
- 当构造过程必须允许被构造的对象有不同表示时
- 适用场景
-
原型 Prototype
用原型实例指定创建对象的种类,并且通过拷贝这个原型来创建新的对象。
- 适用场景
- 当一个系统应该独立于它的产品创建、构成和表示时;
- 当要实例化的类是在运行时刻指定时例如通过动态装载,为了避免创建一个与产品类层次平行的工厂类层次时;
- 当一个类的实例只能有几个不同状态组合中的一种时,建立相应数目的原型并克隆它们可能比每次用合适的状态手工实例化该类更方便
- 适用场景
-
单例模式 Singleton
保证一个类仅有一个实例,并提供一个访问这个唯一实例的全局访问点
- 适用场景
- 当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时
- 当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能使用一个扩展的实例时。
- 适用场景
-
-
结构型设计模式
-
适配器 Adapter
将一个类的接口适配成用户所期待的
用于将已有的类的接口转换成和目标接口兼容
-
桥接 Bridge
将对象的抽象和其实现分离,从而可以独立地改变它们
- 创建一个Web应用框架并可以为每个Web应用创建不同的主题样式适合采用桥接模式,属于结构型对象模式。
-
组合 Composite
将对象组合成树形结构以表示"整体-部分"的层次结构,使得用户对单个对象和组合对象的使用具有一致性。
-
装饰器 Dectorator
描述了如何动态地为对象添加额外的职责。这一模式采用递归方式组合对象,允许添加任意多的对象职责。从增加功能的角度来看,装饰器模式相比生成子类更加灵活。
在不必改变原类文件和使用继承的情况下,动态的扩展一个对象的功能。
-
外观模式 Facade
模式描述了如何用单个对象表示整个子系统 。模式中的Facade用来表示一组对象,Facade的职责是将消息转发给它所表示的对象。
要求外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面。外观模式定义了一个高层接口,这个接口使得这使子系统更加容易使用。
-
享元 Flyweight
为共享对象定义了一个结构。至少有两个原因要求对象共享:效率和一致性。
Flyweight模式的对象共享机制主要强调对象的空间效率。使用很多对象的应用必须考虑每一个对象的开销。
享元模式是一种用于性能优化的设计模式,它通过共享技术有效支持大量细粒度的对象。其目的是减少内存中对象的数量,而不是动态添加职责。
-
代理 Proxy
通过提供与对象相同的接口来控制对这个对象的访问,以使得在确实需要这个对象时才对它进行创建和初始化。
-
-
行为设计模式
-
行为类模式
-
解释器 Interpreter
给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。
-
模板方法 Template Method
定义一个操作中的算法骨架,而将一些步骤延迟到子类中。Template Method使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
-
-
行为对象模式
-
责任链 Chain of Responsiblity successor
使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系,将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。
适用于有多个的对象可以处理一个请求,哪个对象处理该请求运行时刻自动确定的情况。
-
命令 Command
将一个请求封装为一个对象,从而可用不同的请求对客户进行参数化,对请求排队或记录请求日志,支持可撤销的操作。
-
迭代器 Iterator
提供一种方法顺序访问一个聚合对象中的各个元素,且不需要暴露该对象的内部表示。
-
中介者 Mediator
用一个中介对象来封装一系列的对象交互。它使各对象不需要显式地相互调用,从而达到低耦合,还可以独立地改变对象间的交互。
-
备忘录 Memento
在不破坏封装性的前提下捕获一个对象的内部状态,并在对象之外保存这个状态。这样以后就可以将对象恢复到原先保存的状态。
-
观察者 Observer
定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动更新。
-
状态 State
使得一个对象在其内部状态改变时通过调用另一个类中的方法改变其行为,使这个对象看起来如同修改它的类。
-
策略 Strategy
定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。
-
应用场景:
多个类只区别在表现行为不同,可以使用策略行为,在运行时动态选择具体要执行的行为。
需要在不同情况下使用不同的策略(算法),或者策略还可能在未来用其他方式来实现。
对用户隐藏具体策略(算法)的实现细节,彼此完全独立
-
-
访问者 Visitor
表示一个作用于某对象结构中的各元素的操作。它允许在不改变各元素的类的前提下定义作用于这些元素的新操作。
-
-
-
-
主域名服务器在接收到域名请求后,查询顺序是本地缓存、本地hosts文件、本地数据库、转发域名服务器。
-
使用ping命令进行网络检测,按照由近及远原则,首先执行的是ping 127.0.0.1,其次是ping本地IP,再次是ping默认网关,最后是ping远程主机
-
基本URL包含模式(协议)、服务器名称(IP地址/主机)、路径和文件名。
-
上下文无关文法
-
词法分析 阶段处理的错误:非法字符、单词拼写错误
-
语法分析 阶段处理的错误:标点符号错误、表达式中缺少操作数、括号不匹配等有关语言结构
-
静态语义分析阶段(语义分析 阶段)处理的错误:运算符与运算对象类型不合法
-
目标代码生成(执行阶段)处理的错误:动态语义错误,包括陷入死循环、取0做除数、引用数组元素下标越界等错误。
-
CMMI的连续式模型
- CL0(未完成的):过程域未执行或未得到CL1中定义的所有目标
- CL1(已执行的):其共性目标是过程将可标识的输入工作产品转换成可标识的输出工作产品,以实现支持过程域的特定目标
- CL2(已管理的):已管理的过程制度化
- CL3(已定义级的):已定义的过程制度化
- CL4(定量管理的):可定量管理的过程的制度化。使用测量和质量保证来控制和改进过程域,建立和使用关于质量和过程执行的定量目标作为管理准则。
- CL5(优化的):使用量化手段改变和优化过程域,以对付客户要求的改变和持续改进计划中的过程域的功效。
-
模块独立是指每个模块完成换一个相对独立的特定子功能,并且与其他模块之间的联系简单。
衡量模块独立程度的标准有两个:耦合性和内聚性。耦合是模块之间的相对独立性(互相连接的紧密程度)的度量。
耦合 取决于各个模块之间接口的复杂程度、调用模块的方式以及通过接口的信息类型等。
- 数据耦合:指两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言中的值传递。
- 标记耦合:指两个模块之间传递的是数据结构。
- 控制耦合:指一个模块调用另一个模块时,传递的是控制变量,被调用模块通过该控制变量的值有选择地执行模块内的某一功能。因此,被调用模块内应具有多个功能,哪一个功能起作用受调用模块控制。
- 外部耦合:模块间通过软件之外的环境联结(如IO将模块耦合到特定的设备、格式、通信协议上)时称为外部耦合。
- 内容耦合:一个模块直接访问另一个模块的内部数据 、一个模块不通过正常入口转到另一个模块内部、两个模块有一部分程序代码重叠或者一个模块有多个入口
- 公共耦合:一组模块访问同一公共数据环境
- 非直接耦合:两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的
内聚是一个模块内部各个元素彼此结合的紧密程度的度量。有多种内聚类型:
- 过程内聚 :指一个模块完成多个任务,这些任务必须按指定的过程执行。
- 时间内聚 :把需要同时执行的动作组合在一起形成的模块。
- 顺序内聚 :指一个模块中的各个处理元素都密切相关于同一个功能且必须顺序执行,前一个功能元素的输出就是下一功能元素的输入。
- 逻辑内聚 :指模块内执行若干个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。
- 巧合内聚 :指一个模块内的各处理元素之间没有任何联系。
- 功能内聚 :完成一个单一功能,各个部分协同工作,缺一不可
- 通信内聚:所有处理元素集中在一个数据结构的区域上
-
多态分为参数多态、包含多态、过载多态和强制多态四种不同形式。
- 参数多态 采用参数化模板,通过给出不同的类型参数,使得一个结构有多种类型;
- 包含多态是指同样的操作可用于一个类型及其子类型,即子类型化;
- 过载多态 是指同一个名字在不同上下文中可代表不同的含义,在继承关系的支持下,可以实现把具有通用功能的消息存放在高层次,而实现这一功能的不同行为放在较低层次,在这些低层次上生成的对象能够给通用消息以不同的响应;
- 强制多态是指通过语义操作把一个变量的类型加以变换。
-
重载
- 方法重载是通过静态绑定机制实现多态。在编译时,根据方法调用时传递的参数类型和数量来确定具体调用哪个重载方法。
-
1NF属性列取值为一,2NF每个非主属性完全依赖于码,无部分依赖 。3NF不存在非主属性对码的传递依赖 。BCNF:每一个决定因素都包含码。
- 2NF存在的问题是插入异常、删除异常以及冗余问题
-
关系
- 包含(include) :include为包含关系,当两个或多个用例中共用一组相同的动作 ,这时可以将这组相同的动作抽出来作为一个独立的子用例,供多个基用例所共享。因为子用例被抽出,基用例并非一个完整的用例,所以include关系中的基用例必须和子用例一起使用才够完整,子用例也必然被执行 。include关系在用例图中使用带箭头的虚线表示(在线上标注<>),箭头从基用例指向子用例。
- 扩展(extend) :extend关系是对基用例的扩展,基用例是一个完整的用例,即使没有子用例的参与,也可以完成一个完整的功能。extend的基用例中将存在一个扩展点,只有当扩展点被激活时,子用例才会被执行。 extend关系在用例图中使用带箭头的虚线表示(在线上标注<>),箭头从子用例指向基用例。
- 泛化(generalization) :泛化关系是一种继承关系,子用例将继承基用例的所有行为,关系和通信关系,也就是说在任何使用基用例的地方都可以用子用例来代替。泛化关系在用例图中使用空心的箭头表示,箭头方向从子用例指向基用例。
-
ipconfig是调试计算机网络的常用命令,通常用来显示计算机中网络适配器的IP地址、子网掩码及默认双关等信息。
- ipconfig:显示所有网络适配器的IP地址、子网掩码和缺省网关值;
- ipconfig/all:显示所有网络适配器的完整TCP/IP配置信息,包括DHCP服务是否已启用;
- ipconfig/renew:DHCP客户端手工向服务器刷新请求:
- ipconfig/release:DHCP客户端手工释放IP地址。
- ipconfig/flushdns:清除本地DNS缓存
- ipconfig/displaydns:显示本地DNS内容
- ipconfig/registerdns:DNS客户端手工向服务器进行注册
- ipconfig ( linux: ifconfig):显示TCP/IP网络配置值,如:IP地址,MAC地址,网关地址等
- tracert (linux: traceroute):用于确定 IP数据包访问目标所采取的路径,若网络不通,能定位到具体哪个结点不通。
- netstat:用于显示网络连接、路由表和网络接口信息
- nslookup:查询DNS记录。
-
应用级网关可以工作在OSI七层模型的任一层上,能够检查进出的数据包,通过网关复制传递数据,防止在受信任服务器和客户机与不受信任的主机间直接建立联系。
应用级网关能够理解应用层上的协议,能够做复杂一些的访问控制,起到防火墙的作用,成为应用级网关。
-
震网是一种蠕虫病毒
-
防火墙技术经历了包过滤、应用代理网关和状态检测技术三个发展阶段
-
TCP和UDP协议均提供了端口寻址功能,连接管理差错校验和重传以及流量控制均为TCP的功能。
-
敏捷方法是重要的一类软件开发方法。要求考生掌握极限编程(XP)和Scram的基本概念和特点。XP的十二个最佳实践是XP的重要特点,包括简单设计、测试优先、持续集成、集体所有权和现场客户等。
-
与电子邮件相关的协议:
- SSL及其继任者TLS是为网络通信提供安全及数据完整性的一种安全协议,在传输层对网络连接进行加密。在设置电子邮箱时使用SSL协议,会保障邮箱更安全。
- HTTP协议是由HTTP加上TLS/SSL协议构建的可进行加密传输、身份认证的网络协议,主要通过数字证书、加密算法、非对称密钥等技术完成互联网数据传输加密,实现互联网传输安全保护
- MIME是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。它是一个互联网标准,扩展了电子邮件标准,使其能够支持:非ASCI字符文本;非文本格式附件(二进制、声音图像等);由多部分(multiple parts)组成的消息体;包含非ASCII字符的头信息(Headerinformation)
- PGP是一套用于消息加密、验证的应用程序,采用IDEA的散列算法作为加密与验证之用。PGP加密由一系列散列、数据压缩、对称密钥加密,以及公钥加密的算法组合而成。每个公钥均绑定唯一的用户名和/或者E-mail地址。
-
公开密钥加密算法(非对称加密算法)
ECC(国密SM2)、DSA、RSA(X509)基于大数定律,通常用于对消息摘要进行签名
-
共享密钥加密算法(对称加密算法)
DES
AES,一个迭代的、对称密钥分组的密码,它可以使用128、192和256位密钥,并且使用128位分组加密和解密数据。
RC-5、IDEA 适宜于进行数据传输加密、AES
-
摘要算法
SHA、MD5
-
证书是用来做身份认证的,没了证书,客户端无法确认服务端的真实性
-
SQL注入攻击,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。其首要目的是获取数据库访问权限。
-
数字证书中包含用户的公钥;甲乙用户如需互信,可互换数字证书
-
在TCP/IP网络中,网络层只把分组发送到目的主机但是真正通信的并不是主机而是主机中的进程。传输层提供了进程间的逻辑通信,传输层向高层用户屏敝了下面网络层的核心细节,使应用程序看起来像是在两个传输层实体之间有一条端到端的逻辑通信信道。传输控制协议TCP(Transmission Control Protocol)是面向连接的,可靠的流协议,实行"顺序控制""重发控制",还具备"流量控制""拥塞控制"等提高网络利用率的功能。
-
OSI/RM分为7层,从底层到高层分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。其中,网络层为传输层 的数据传输提供建立、维护和终止网络连接的手段,把上层来的数据组织成数据包(Packet)在节点之间进行交换传送,并且负责路由控制和拥塞控制,会话层 为表示层提供建立、维护和结束会话连接的功能,并提供会话管理服务。
- 应用层:实现具体的应用功能
- 表示层:数据的格式与表达、加密、压缩
- 会话层:建立、管理和终止对话
- 传输层:端到端的连接
- 网络层:分组传输和路由选择,路由器
- 数据链路层:传送以帧为单位的信息,网桥和交换机
- 物理层:二进制传输,集线器
-
进行面向对象设计时,有一系列设计原则,本题中涉及对象设计五大原则中的如下四种
- 共同重用原则。一个包中的所有类应该是共同重用的。如果重用了包中的一个类,那么就要重用包中的所有类。
- 开放-封闭原则。软件实体(类、模块、函数等)应该是可以扩展的,即开放的,但是不可修改的,即封闭的。
- 接口分离原则。不应该强迫客户依赖于它们不用的方法。接口属于客户,不属于它所在的类层次结构。即:依赖于抽象,不要依赖于具体,同时在抽象级别不应该有对于具体细节的依赖。这样做的好处在于可以最大限度地应对可能的变化。
- 共同封闭原则。包中的所有类对于同一类性质的变化应该是共同封闭的。一个变化若对一个包产生影响则将对该包中的所有类产生影响,而对于其他的包不造成任何影响,
-
著作权中的署名权、修改权、保护作品完整权的保护期不受限制。
-
构成我国保护计算机软件著作权的两个基本法律文件是**《中华人民共和国著作权法》和《计算机软件保护条例》
-
在有效期内,继承人只能继承特定权利,不是所有权利。
-
网络协议
-
RIP:RIP(Routing Information Protocol,路由信息协议)是一种内部网关协议(IGP),是一种动态路由选择协议用于自治系统(AS)内的路由信息的传递。
-
OSPF:OSPF(Open Shortest Path first开放式最短路径优先)是一个内部网关协议(lnterior Gateway Protocol,简称IGP),用于在单一自治系统(autonomous svstem,AS)内决策路由。是对链路状态路由协议的一种实现,隶属内部网关协议(IGP),故运作于自治系统内部。
-
BGP:边界网关协议(BGP)是运行于 TCP 上的一种自治系统的路由协议。BGP 是唯一一个用来处理像因特网大小的网络的协议,也是唯一能够妥善处理好不相关路由域间的多路连接的协议。
-
UDP/TCP:传输层协议。
-
IPSec工作于网络层,为IP数据报文进行加密
-
PP2P工作于数据链路层,用于链路加密
-
HTTPS是HTTP和SSL的结合体,为传输层以上层次数据加密
-
TLS安全传输协议用于在两个通信应用程序之间提供保密性和数据完整性
-
SMTP:邮件传输协议,用于发送电子邮件
-
POP3:邮件收取协议,将邮件从服务器上下载到本地客户端
-
IMAP:邮件收取协议,在服务器上管理邮件,用户从不同的客户端可以查看同步的电子邮件
-
IGMP:属于网络的组播协议,不能实现相关应用层的远程登录。
-
SSH:SSH 为建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。
-
Telnet:Telnet协议是TCP/IP协议族中的一员,是Internet远程登录服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。
-
RFB:RFB (Remote frame Buffer 远程帧缓冲)协议是一个用于远程访问图形用户界面的简单协议。由于 RFB 协议工作在帧缓冲层,因此它适用于所有的窗口系统和应用程序。
-
在TCP/IP协议栈中,远程登录采用的协议为TELNET
-
FTP:是一种标准的Internet协议,用于在不同设备之间传输文件。但是,FTP传输的数据是明文形式的,不安全,容易被黑客截获和篡改。
-
SFTP:基于SSH(Secure Shell)协议,提供了加密和认证机制,可以保证传输的数据是安全的。SFTP使用的TCP端口号默认是22。
-
TFTP:FTP协议的简化版本,没有安全机制,仅仅支持读写文件,常用于局域网内部的文件传输。TFTP使用的UDP端口号默认是69。
-
ICMP:一种用于在IP网络中发送控制消息的协议,常用于网络故障排除。ICMP本身不传输数据,不适用于文件传输
-
在HTTPS中,浏览器和服务器之间的通信需要进行加密,以保证数据传输的安全性。HTTPS使用SSL/TLS
协议来实现加密通信
-
SSL/TLS协议使用了公钥加密和对称加密 两种加密方式。在握手阶段,浏览器和服务器会协商出一个会话密钥 ,用于后续的通信加密。这个会话密钥是使用公钥加密传输的,以保证传输过程中的安全性。一旦会话密钥被传输到服务器端,后续的通信就会使用对称加密方式,使用会话密钥进行加密和解密。
-
浏览器和服务器之间用于加密HTTP消息的方式是会话密钥+对称加密。
-
ARP:网络层协议,实现IP地址与MAC地址之间的变换
-
DHCP:自动分配IP地址,DHCP客户端可从DHCP服务器获得本机IP地址、DNS服务器地址、DHCP服务器地址、默认网关的地址等
-
ICMP与IP协议同属于网络层。ICMP报文封装在IP数据报中传送,因而不保证可靠的提交。
-
HTTPS端口443
-
netstat用于显示网络相关信息
-
FTP服务器的控制端口是21,数据端口是20
-
-
无效IP地址:169.254.x.x(windows)、0.0.0.0(linux)
-
Java关键字
extends 继承
implements 实现
interface 接口
- 接口中的方法只能是public
- 接口中的方法public、abstract都可以省略
- 抽象类中的方法使用abstract修饰
-
面向对象设计:识别类及对象、定义属性、定义服务、识别关系、识别包
-
面向对象分析:认定对象、组织对象、描述对象间的相互作用、确定对象的操作
-
系统的可维护性指标:可理解性、可测试性、可修改性
-
PCI:并行内总线; SCSI:并行外总线
-
排序算法
- 若数据基本有序,对插入排序算法而言,则可以在近似线性时间内完成排序。即O(n)
- 对于快速排序,则是其最坏情况,需要O(n^2),空间复杂度O(1),因为不需要做交换处理,所以不需要存储额外数据,每一轮记录一次基准数值。
-
软件维护
- 改正性维护:指在使用过程中发现了隐蔽的错误 后,为了诊断和改正这些隐蔽错误而修改软件的活动。
该类维护一般占总维护工作量的 25%。 - 适应性维护:指为了适应变化了的环境而修改软件的活动。该类维护一般占总维护工作量的20%。
- 完善性维护:指为了扩充或完善原有软件的功能或性能而修改软件的活动。该类维护一般占总维护工作量的 50%。
- 预防性维护:指为了提高软件的可维护性和可靠性、为未来的进一步改进 打下基础而修改软件的活动。
该类维护一般占总维护工作量的 5%。
- 改正性维护:指在使用过程中发现了隐蔽的错误 后,为了诊断和改正这些隐蔽错误而修改软件的活动。
-
python语言
- 元组是一种不可变的数据类型,元素按照顺序排列,可以包含与列表类似的元素,但元组内的元素不能被修改、删除或添加。因此,它是一种有序的序列结构,其中元素可以重复。
- 不支持switch的使用
- 元组中只包含一个元素时,需要在元素后面添加逗号来消除歧义(1,)
-
在浏览器输入想要访问的域名之后,浏览器会进行域名解析 获得IP地址,再建立TCP连接 ,再进行FTP控制连接和数据连接 ,最后响应TCP命令。
-
默认情况下,Linux系统中的Apache服务器使用**/home/httpd**作为默认目录。
-
数据库
- 基本表:概念视图
- 存储文件:内部视图
- 视图:用户视图
- COMMIT:事务提交。该操作表示事务成功的结束,它将通知事务管理器将该事务的所有更新操作现在可以被提交或永久保留
- ROLLBACK:事物回滚。该操作表示事务非成功地结束,它将通知事务管理器出故障了,数据库可能处于不一致状态,该事务的所有更新操作必须回滚或撤销
-
用公钥加密、私钥解密,可实现保密通信;用私钥加密、公钥解密,可实现数字签名。