计算机网络八股速记
基础
OSI 7层模型
应用层、表示层、会话层、传输层、网络层、链路层和物理层
为什么有7层模型
独立性、可维护性、可分解性
常见网络协议
应用层:HTTP、SMTP、POP3/IMAP、FTP、Telnet、SSH、RTP、DNS、DCHP
RTP、DNS、DCHP基于UDP
传输层:TCP、UDP
网络层:IP、ARP、ICMP、NAT、OSPF(带宽、延迟)、RIP(固定跳数)、BGP
从输入URL到页面展示发生了什么
DNS、TCP、IP、OSPF、ARP、HTTP
ARP协议
ARP表->ARP 查询分组->局域网内广播(向目标主机or路由器网络接口广播)-> ARP 响应分组->ARP表
NAT
SMTP
SMTP->我的服务器->对方服务器->通知对方取出
URL的组成
DNS
DNS记录(Type、name、value、TTL)
端口53
本地-根-顶级-权威。
HTTP
HTTP状态码
HTTP Header常见字段
Accept、Accept-* 、Content-Length、Cookie、If-Modified-Since
HTTP vs Https
80 vs 443;URL前缀、安全性和资源消耗、SEO(搜索引擎优化)
TLS/SSL
二者关系
工作原理:非对称加密 vs 对称加密
数字签名->证书摘要->比较(CA、防止证书被伪造)
HTTP1.0 vs 1.1
连接方式 、状态响应码、缓存机制、带宽、Host 头(Host Header)处理
HTTP1.1 vs 2.0
多路复用(Multiplexing)、二进制帧(Binary Frames)、服务器推送、头部压缩
HTTP 2.0 vs 3.0
传输协议 连接建立 队头阻塞
HTTP 无状态
Session、Cookie、URL拼接
Cookie vs Session
客户端vs服务端
WebSocket vs HTTP
双向实时通信协议vs单向xx、前缀、数据是否轻量
工作过程:Upgrade: websocket、Connection: Upgrade、数据切割为帧
Get和Post区别
语义、幂等、格式(请求参数)、缓存、安全性
TCP
TCP vs UDP
是否面向连接、是否是可靠传输、是否有状态、传输形式、是否提供广播或多播服务
为什么是3次连接
1次:
2次:不能避免历史连接、不能同步双方序列号、造成资源浪费
TCP需要MSS的原因
如果只有IP分片,那么当如果一个 IP 分片丢失,整个 IP 报文的所有分片都得重传
为什么需要TIME_WAIT
防止历史连接中的数据,被后面相同四元组的连接错误的接收
保证「被动关闭连接」的一方,能被正确的关闭
TCP重传机制
超时重传、快速重传、SACK
什么时候发送RST
服务器端口不可用或未监听、收到了不在预期范围内的ACK号、关闭连接后
什么时候丢弃SYN
tcp_tw_recycle 和timestamps ->PAWS 机制开启,对端 IP 做 PAWS 检查->在NAT下不安全(对于RST报文不会丢弃)
半连接队列满了且未开启syn_cookies;全连接队列满了
已经建立连接的TCP收到syn
发送challenge ack
IP
作用
定义数据包的格式、对数据包进行路由和寻址
v4 vs v6
位数、标头结构、无状态地址自动配置(DHCP no)、NAT no
mac地址
LAN 地址、物理地址、以太网地址