1.依赖倒置原则:指低层次的实现依赖于高层次的抽象
理论上感觉高层次是依赖于低层次的接口的,但是这里反过来可以最大程度减少代码的修改。
2.开闭原则:对需求改变开放对代码修改关闭
看上去这个违背常识,是通过抽象来实现的,比如go里的接口。
3.交换的知识
进程交换是指把内存中的进程放入外存或者把外存的进程调入内存。一种需要内存交换的场景就是页面抖动,频繁发生页面缺失,刚刚换入的进程立马又要换出去。
页面抖动的原因是因为进程分配的物理块数比需要使用的页面少。
4.https和http的加密
http是对称加密,双方通过相同的密钥通信,优点是运算速度快,缺点是安全性不能确保,密钥的传输是个问题。
https是http加上ssl,是非对称加密,首先双方沟通公开密钥,使用私有密钥解密;优点是安全性有保证,缺点是运算速度慢。解决方法是通过非对称密钥传输对称密钥,然后进行传输。
5.TCP拥塞控制的算法
慢启动:从1开始,每轮翻倍。
拥塞控制:到达一个值后,拥塞窗口每轮加1
快恢复:在遇到超时或者三个同样的确认帧时拥塞窗口和阈值变成窗口的一半,然后拥塞控制,这样就不用每次慢启动从1开始。
6.会话层和表示层的功能
会话层是建立会话,维系和终止会话,传递session id这些。
表示层是数据的加密和解密。
7.cpp的程序的内存使用
栈、堆、全局变量区域、文字常量区、代码段
8.磁盘调度算法
电梯扫描算法,从一个方向去移动直到没有请求再返回;最短磁盘优先;先来先服务算法,问题是最短磁道会饥饿,先来先服务可能反复走。
磁盘调度的时间主要是寻道、旋转到位置、传输
9.MSL
报文最大生存时间,在客户端收到服务器的FIN报文要等待2MSL的原因是因为防止客户端最后的确认报文丢失,当服务器在超时时间之后重传FIN报文但是客户端已经不存在。
10.https的优点
能确保报文完整;加密通信;能认证对方的资格。
11.ip层和应用层的协议有哪些
ip:ip、icmp、igmp、rip
应用层:DNS、FTP、POP、SMTP、Talnet
12.DNS的迭代查询和递归查询的区别
递归查询是逐层的去查,迭代查询相当于去查需要去哪里查,自己去查