https://www.iamshuaidi.com/1998.html
- 网络的七层和五层
- 从浏览器输入URL到页面解析的全过程
- TCP与UDP的区别
- 计算机通信的四元组
- TCP的连接方式(三次挥手、四次握手)
- 为什么是三次握手?不是两次、四次?
- 为什么连接的时候是三次握手,关闭的时候却是四次握手?
- 为什么TIME_WAIT状态需要经过2MSL(最大报文段生存时间)才能返回到CLOSE状态?
- 如果已经建立了连接,但是客户端突然出现故障了怎么办?
- DNS寻址过程
- HTTP与HTTPS的区别
- HTTPS的加密方式
- HTTP请求/响应的步骤
HTTP
- 输入URL到浏览器发生了什么?都用到了哪些协议?
- DNS基于TCP还是UDP,为什么?
DNS在区域传输层使用TCP,域名解析的时候用UDP
- 域名解析的流程
- 描述HTTP状态码你知道哪些,401,301,302,201代表什么
- 描述session和cookie,cookie是怎么传输的
- 如何告诉客户端,响应的是什么数据类型?
- HTTP2.0的优点说一下。了解QUIC吗?怎么实现的?
- HTTP2.0和1.x的区别,1.x 要保证高并发如何处理
- HTTPS的握手过程说一下。证书是如何验证的?为什么不用非对称加密通信?
- HTTP哪些接口是幂等的?
- Client是如何实现长连接的? HTTP Keep-Alive是什么?如何工作?
- 介绍一下计算机网络七层模型
- HTTP GET和HEAD区别、GET和POST区别
- 客户端在建立连接的时候发现很多connect reset by peer的异常,你觉得问题出在哪?
- 网络的性能指标有哪些?
- HTTP能不能一次连接多次请求,不等后端返回
-
TCP
TCP三次握手,四次挥手说一下。为什么需要三次握手,最后一次如果没有行不行,会有什么问题?
- TCP 三次握手能否携带数据?
第一次第二次不行,第三次可以。假如第一次握手可以携带数据的话,那对于服务器是不是太危险了,有人如果恶意攻击服务器,每次都在第一次握手中的SYN报文中放入大量数据。而且频繁重复发SYN报文,服务器会花费很多的时间和内存空间去接收这些报文。
第三次握手,此时客户端已经处于ESTABLISHED状态。对于客户端来说,他已经建立起连接了,并且已经知道服务器的接收和发送能力是正常的。所以也就可以携带数据了。
- TIME_WAIT的作用是什么?2MSL是多长?线上大量的close_wait和time_wait该如何解决?
- 一台服务器最多可以建立多少个TCP链接,为什么?
- TCP连接的客户端机:每一个ip可建立的TCP连接理论受限于ip_local_port_range参数,也受限于65535。但可以通过配置多ip的方式来加大自己的建立连接的能力。
- TCP连接的服务器机:每一个监听的端口虽然理论值很大,但这个数字没有实际意义。最大并发数取决你的内存大小,每一条静止状态的TCP连接大约需要吃3
.3K的内存。
- TCP 和UDP 区别,UDP优点,适用场景
- 可靠与不可靠
- 有连接与无连接
- UDP优点不需要连接过程,高效,适合音视频通话等不需要可靠传输的场景
- HTTP和TCP的关系
- TCP怎么找到哪个套接字
- TFO的原理是什么
- TCP中的拆包和粘包是怎么回事
- GRPC的优缺点、GRPC内部原理是什么
- 你知道 TCP 报文头部的字段有哪些嘛
目标端口,源端口,seq序列号,ack确认号,窗口大小,标志位:ACK确认标志、SYN同步序号、FIN发送完成标志
- 说说半连接队列和 SYN Flood 攻击的关系
- TCP是如何保证可靠性传输的
滑动窗口、序列号与确认应答机制、超时重传、拥塞控制
- 能不能说一下 TCP 的流量控制、拥塞控制和滑动窗口?Nagle 算法和延迟确认?
https://zhuanlan.zhihu.com/p/37379780
- 三次握手

- 滑动窗口

- 四次挥手

- TCP 的超时重传你了解嘛?时间是如何计算的?
- 每次发送数据时都开启一个计时器,超过一定时间没有收到确认报文就认为失败。
- epoll 用到了哪些数据结构?
- 双向链表、红黑树
- 事件节点挂在红黑树上,事件发生时将事件对应的事件节点放到双向链表中
- epoll 中,什么是水平触发,什么是边缘触发?
- 水平:只要事件没有处理完毕,每一次epoll_wait都触发事件
- 边缘:无论事件是否处理完毕,仅触发一次
- 什么是同步/异步、阻塞/非阻塞?
- IO 多路复用你怎么理解的?select、poll和epoll有什么区别
