应用层
netconf
https://blog.csdn.net/anzheangel/article/details/78885880
https://blog.csdn.net/qq_38265137/article/details/103756053
SNMP
https://blog.csdn.net/savelife5/article/details/79139981
- https://blog.csdn.net/shmily_cml0603/article/details/12968157
- https://blog.csdn.net/shmily_cml0603/article/details/13287899
- https://blog.csdn.net/shmily_cml0603/article/details/13511897
http&https
http1.0&http1.1&http2.0&http3.0
https://juejin.cn/post/6844903489596833800
https://juejin.cn/post/6844903988953874445#heading-12
https://network.51cto.com/art/202009/625999.htm
http2.0:
- 二进制分帧
- 多路复用
- 头部压缩
- 服务端推送
todo: http3.0了解的不够透彻,但是优先级相对较低
http3.0 QUIC,基于UDP在用户空间实现了拥塞控制。quic协议还包含了多路复用、安全加密。
- 队头阻塞问题, http2.0解决了http1.1连接队头阻塞问题;http3.0 解决了tcp队头阻塞问题,连接重传(tcp是乱序的,必须等待重组完成才能上应用层)、满启动。
- 0RTT 建链
- 流量控制
- 连接迁移,tcp是通过4元组,quic是通过64位随机数
https传输流程
https://segmentfault.com/a/1190000021559557
传输层
tcp
tcp如何保证传输的可靠性:https://blog.csdn.net/liuchenxia8/article/details/80428157
- 校验和
- 序列号
- 确认应答
- 超时重传
- 连接管理
- 流量控制
- 拥塞控制
tcp和udp的区别
tcp三次握手
https://www.cnblogs.com/linliquan/p/10555999.html
tcp四次挥手
TIME-WAIT 2MSL存在的意义:
- 防止最后发出的ack,服务端没有接收到,服务端多次重传fin包,导致服务器资源浪费。
- 保证此次连接的所有报文在网络中全部消失,避免对后续连接产生干扰。
MSL:
是Maximum Segment Lifetime英文的缩写,中文可以译为“报文最大生存时间”。
RFC 793中规定MSL为2分钟,实际应用中常用的是30秒,1分钟和2分钟等。
超时重传
定时器的种类:
- 建立连接定时器(connection-establishment timer)
- 重传定时器(retransmission timer)
- 延迟应答定时器(delayed ACK timer)
- 坚持定时器(persist timer)
- 保活定时器(keepalive timer)
- FIN_WAIT_2定时器(FIN_WAIT_2 timer)
- TIME_WAIT定时器 (TIME_WAIT timer, 也叫2MSL timer)
原文链接:https://blog.csdn.net/hyman_yx/article/details/52086389
流量控制(滑动窗口)
https://www.cnblogs.com/xiaolincoding/p/12732052.html
https://cloud.tencent.com/developer/article/1032309
拥塞控制
慢启动,快重传
拥塞控制和流量控制的区别
拥塞控制:拥塞控制是作用于网络的,它是防止过多的数据注入到网络中,避免出现网络负载过大的情况;常用的方法就是:( 1 )慢开始、拥塞避免( 2 )快重传、快恢复。
流量控制:流量控制是作用于接收者的,它是控制发送者的发送速度从而使接收者来得及接收,防止分组丢失的。
应用层常见协议
ftp
ftp是tcp的20(数据传输)、21(命令控制)端口。
tftp是udp69端口。
模式
主动模式:认证连接后,主动打开20端口作为数据传输。客户端发送port指令。
被动模式:认证连接后,客户端发送pasv指令,服务端随机打开一个高端口号(大于1024)发送给客户端,客户端再去连接。
实际场景一般采用主动模式,因为被动模式,服务端开启的高端口号,防火墙不一定放通。
dns
既用到了tcp、也用到了udp。
辅域名服务器从主域名服务器同步数据时,用的是tcp协议。
正常的dns请求用的是udp协议。
网络层
动态路由协议——BGP
https://zhuanlan.zhihu.com/p/126754314
https://blog.csdn.net/santtde/article/details/88925487