04-网络 协议
2022-03-22 13:59:13 4 举报
AI智能生成
以思维导图的形式,汇总 【网络 协议】相关的面试点
作者其他创作
大纲/内容
IP
基本概念
IP vs MAC
网络号 和 主机号
CIDR
分支主题
子网掩码
为什么要分离网络号和主机号?
IP地址与路由控制
流程
IP 分片与重组
IPv6 基本认识
相关协议
DNS 域名解析
ARP
IP转MAC地址
RARP 协议
应用
URL
HTTP 解析URL
查询服务器域名对应的 IP 地址 DNS
ping
Cookie和Session?
30.什么是Cookie和Session?
32.Cookie和Session的区别?
33.如何考虑分布式Session问题?
31.Cookie和Session是如何配合的呢?
安全
DD0S攻击?
XSS攻击?
HTTP
基本概念
是什么?
超文本传输协议
那「HTTP 是用于从互联网服务器传输超文本到本地浏览器的协议 ,这种说法正确吗?
状态码
2##
3##
4##
5##
请求报文和响应报文的格式?
请求字段
通用字段
响应字段
前端发送post请求给后端,需要哪一些必须的header? 比如Content-type
后端返回的?
请求方式
常用请求方式
GET VS POST
特性
缓存机制
HTTP优劣势
劣势
1、无状态
2、明文传输
3、不安全
1、长连接
长连接里,怎么判断http响应数据的结束
HTTP1.1
性能上
1、长连接
长连接里,怎么判断http响应数据的结束
2、管道网络传输
HTTP1.1 存在的性能问题
对头阻塞
HTTP2.0
和HTTP1.1区别?
1、头部压缩
2、二进制
3、多路复用
4、服务器推送
5、数据流
缺陷?HTTP/3
HTTPS
概念
HTTP 与 HTTPS 的区别?
HTTPS 的优缺点?
HTTPS解决了哪些问题?
怎么解决这些问题的?
原理
整体流程
是怎么生成对称会话密钥的?
采用混合加密的原因?
数字证书里有什么
数字证书签发和验证流程
TLS 四次握手流程
为什么要握手?
握手详细过程?
一些问题
加解密过程
实战
错误码
服务端对手机端的推送,能用http来做吗?
TCP
基本认知
为什么需要 TCP 协议? TCP 工作在哪一层?
什么是 TCP ?
TCP和UDP的区别?
分支主题
UDP 和 TCP 对应的应用场景是什么?
有一个 IP 的服务器监听了一个端口,它的 TCP 的最大连接数是多少?
MTU MSS ?
什么是MTU 和 MSS
分支主题
既然 IP 层会分片,为什么 TCP 层还需要 MSS 呢?
原理
连接挥手
三次握手
为什么要建立连接
如何唯一确定一个 TCP 连接呢?
详细介绍一下TCP的三次握手机制?
为什么需要三次握手,而不是两次?
为什么要三次握手,而不是四次?
异常
三次握手时,第一个ACK丢失会怎么样?
三次握手连接阶段,最后一次ACK包丢失,会发生什么?
第二个SYN+ACK丢失会怎么样?
初始序列号
为什么客户端和服务端的初始序列号 ISN 是不相同的?
初始序列号 ISN 是如何随机产生的?
四次挥手
详细介绍一下TCP的四次挥手过程?
为什么需要4次?
异常情况
第一次
第二次
第三次
第四次
TIME-WAIT
为什么要有TIME-WAIT状态
如果服务端处于LASK_ACK状态,会怎么样?
假设 TIME-WAIT 没有等待时间或时间过短,被延迟的数据包抵达后会发生什么呢?
为什么客户端的TIME-WAIT状态必须等待2MSL?
MSL TTL
2MSL有多久?
TIME-WAIT状态过多会产生什么后果?
处理方案
如何优化TIME-WAIT
连接阶段
保活机制 Keep-Alive
TCP保活机制时间
开启了 TCP 保活,需要考虑以下几种情况
为什么需要多次探活才能决定一个 TCP 连接是否已经死亡呢?
有人说额外的探活报文占用了有限的带宽,对此你是怎么想的呢?
针对 TCP 的探活,那么你觉得这样的方法是否同样适用于 UDP 呢?
应用层探活机制
为什么需要?
异常
服务器端口关闭了,客户端这时候发送报文,会发生什么
如果已经建立了连接,但是客户端出现故障了怎么办?
路由器突然断开了,需要重新连接嘛
校验和
重传
汇总
超时重传
是什么?
什么情况会发生?
超时时间应该设置多少呢?
RTT 、RTO
在重传的情况下,超时时间 RTO 「较⻓或较短」时,会怎么样?
存在的问题?
快速重传
工作流程?
解决什么问题?
存在什么问题?
SACK
解决什么问题?
工作流程?
D-SACK
解决什么问题?
滑动窗口
解决什么问题?
窗口实现?
累计确认或者累计应答?
窗口大小
窗口大小由哪一方决定?
发送方的滑动窗口
接收窗口和发送窗口的大小是相等的吗?
程序中是如何表示发放方的四个部分?
分支主题
接收方的滑动窗口
分支主题
流量控制
解决什么问题?
操作系统缓冲区与滑动窗口
窗口关闭现象
数据丢失现象?
窗口关闭
什么时候会发生?
有什么危害?
怎么解决的?
糊涂窗口综合症
是什么?什么时候发生?
怎么解决?
怎么让接收方不通告小窗口呢?
怎么让发送方避免发送小数据呢?
Nagle 算法
TCP 调优
握手调优
客户端优化
SYN_SENT 状态的优化
分支主题
什么是SYN洪泛攻击?如何防范?
SYN队列 和 ACK队列
服务端优化
如何查看由于 SYN 半连接队列已满,而被丢弃连接的情况?
如何调整 SYN 半连接队列大小?
如果 SYN 半连接队列已满,只能丢弃连接吗?
SYN_RCV 状态的优化
accept 队列已满,只能丢弃连接吗?
如何查看由于 accept 连接队列已满,而被丢弃的连接?
如何调整 accept 队列的⻓度呢?
如何查看服务端进程 accept 队列的⻓度?
如何绕过三次握手
挥手优化
主动方的优化
关闭连接的方式
安全关闭连接
调用 close 函数和 shutdown 函数有什么区别?
FIN_WAIT1 状态的优化
FIN_WAIT2 状态的优化
如果连接双方同时关闭连接,会怎么样?
传输阶段
如何确定最大传输速度?
分支主题
怎样调整缓冲区大小?
实战
如何快速建立连接
用什么命令看tcp 的状态信息?
0 条评论
下一页