计算机网络
计算机网络常用基础知识点复习
基础篇
网络模型
应用层,负责给应用程序提供统一的接口;
表示层,负责把数据转换成兼容另一个系统能识别的格式;
会话层,负责建立、管理和终止表示层实体之间的通信会话;
传输层,负责端到端的数据传输;
网络层,负责数据的路由、转发、分片;
数据链路层,负责数据的封帧和差错检测,以及 MAC 寻址;
物理层,负责在物理网络中传输数据帧;
TCP/IP网络模型
应用层:
http
ftp
telnet
ssh
传输层:
tcp
udp
- 流量控制、超时重传、拥塞控制
网络层:
ip
网络接口层:MAC地址
浏览器输入url后,发生了什么
http
封装和解析url,生成http头部信息
dns
查询浏览器dns缓存、操作系统dns缓存
查询本地dns服务器
- 查到则返回ip
本地dns服务器去查询
根域名服务器
本地dns服务器去查询
顶级域名服务器
本地dns服务器去查询
权威域名服务器
返回ip
TCP
三次握手
C发送
sync x
S发送
ack x+1
sync y
C发送
ack y+1
TCP 的连接状态查看,在 Linux 可以通过
netstat -napt
命令查看。
- TCP进行对数据切分、分包
IP
- 生成IP报文
最终数据包结构如下:
断开链接
四次挥手
C to fin_wait_1: FIN
S to close_wait_1: ACK (C to fin_wait_2)
S to last_ack: FIN
C to time_wait 2MSL: ACK
HTTP协议
http基本概念、状态码、字段(host,各种头部)
GET\&POST
GET安全且幂等,POST则不是
浏览器一般不会缓存 POST 请求,也不能把 POST 请求保存为书签。
缓存
强缓存是利用下面这两个 HTTP 响应头部(Response Header)字段实现的,它们都用来表示资源在客户端缓存的有效期:
Cache-Control, 是一个相对时间;
Expires,是一个绝对时间;
http版本区别
http1.1
支持长链接
支持管道,发送多条请求
http2
头部压缩
服务器主动推送
二进制格式
并发传输
https
- 对称加密和非对称加密
TCP
TCP 是面向连接的、可靠的、基于字节流的传输层通信协议。
有一个 IP 的服务端监听了一个端口,它的 TCP 的最大连接数是多少?
约为
2
的48
次方。远不能达到
文件描述符限制
系统级
cat /proc/sys/fs/file-max
用户级
cat /etc/security/limits.conf
进程级
cat /proc/sys/fs/nr_open
内存限制
三次握手
四次挥手
TIME_WAIT
net.ipv4.tcp_tw_reuse
服务端为何会出现TIME_WAIT
非长链接,服务端默认会关闭:当服务端出现大量的 TIME_WAIT 状态连接的时候,可以排查下是否客户端和服务端都开启了
HTTP Keep-Alive
长链接超时
长链接达到上限
TCP 重传、滑动窗口、流量控制、拥塞控制
重传
超时重传
快速重传:3次重复ack
滑动窗口: 分为4个分区
流量控制:双方会同步一个流量窗口,发送时会尽量靠近
拥塞控制
慢启动
拥塞避免