2021秋招复习(1)

1.TCP为什么是三次握手,而不是两次或四次。

答:两次握手,只能保证数据在一个方向上传输正常。而TCP是全双工的通信协议,要求两个方向都能正常通信,所以需要四次通信。而第二次通信和第三次通信之间没有一定要分开的理由,所以合并到一起就是三次。

2.TCP为什么是四次挥手,为什么不是两次或三次。

答:理由同上,需要四次通信。当A主机要求断开连接时,B主机可能还未发送完毕,所以第二次和第三次要分开,一共四次。

3.一个url输入浏览器到看见网页的全过程。

答:url输入浏览器后,先使用 DNS 协议将域名转化为IP地址。获得IP地址后,与目标主机的端口建立连接,如果没有指定则HTTP是80,HTTPS是443。和目标主机建立的是TCP连接,(HTTP 3使用的UDP,但是还没有大范围使用)会经历三次握手。建立连接后使用HTTP/HTTPS传输数据。服务器收到数据后进行处理,然后通过TCP回传,传输结束后经历四次挥手。浏览器拿到数据,进行渲染,就看到了页面。

4.线程和进程的区别。

答:进程是计算机分配资源的基本单位,线程是CPU调度的基本单位。一个进程可以有多个线程,但至少有一个线程。进程挂掉不会影响其他的进程,而线程挂掉会导致进程挂掉,从而导致所有线程。进程之间切换的开销较大,线程之间切换的开销较小。创建销毁进程的开销大,创建销毁线程的开销小。

5.数据库三大范式。

答:个人理解。第一范式就是所有键都是原子的,不可再分。第二范式就是所有键都依赖于主键。第三范式就是所有键直接依赖于主键,而不是间接依赖于。

6.数据库事务的四大特性。

答:ACID。A,原子性,所有操作要么完成,要么不完成。C,一致性,比如A和B一共5000元,不管如何转账他们加起来一共5000是一致的。I,隔离性,事务和事务之间是隔离的。D,持续性,事务对数据库数据的改变是持久的,持续的。

7.数据库的四个隔离级别。

答:读未提交,事务可以读取到其他事务未提交时的数据,即可以读取到中间数据。读取已提交,事务可以读取到其他事务提交后的数据,即两个同样的select语句的结果是可能不一样的。可重复读,事务重复读同样的数据结果是一样的。串行化,所有事务串行化执行,不存在不同事务干扰的问题。

8.数据库事务并行可能出现的问题。

答:脏读,就是读取的数据是脏的,即读取到了中间数据、无意义的数据,读未提交会出现这个问题。不可重复读,就是同样的select语句读取结果不一致,读未提交、读已提交会出现这个问题。幻读,就是读取了不存在的数据,数据已经被其他数据整没了,读未提交、读已提交、可重复读都会出现这个问题。串行化是唯一一个不会出现任何问题的隔离级别。

9.五种IO模型。

答:同步阻塞IO,同步非阻塞IO,IO多路复用,信号驱动IO,异步IO。

10.IO多路复用的三种方法。

答:select,poll,epoll。select是用数组存储,然后轮询,每次都会拷贝数组进内核态。poll也是轮询,不过是链表。epoll用红黑树和双向链表。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注