chaoz的杂货铺

生命有息、学无止境、折腾不止

0%

2022-计算机网络深入

协议

五层协议

tcp/ip 四层协议

它只有四层,相当于五层协议中数据链路层和物理层合并为网络接口层。

TCP/IP 体系结构不严格遵循 OSI 分层概念,应用层可能会直接使用 IP 层或者网络接口层。

链路层

差错检测

目前数据链路层广泛使用了循环冗余检验(CRC)来检查比特差错。

信道分类

  1. 广播信道

  2. 点对点通信

信道复用技术

  1. 频分复用
  2. 时分复用
  3. 波分复用
  4. 码分复用

CSMA/CD 载波监听多点接入 / 碰撞检测。

PPP 协议

网络层

使用 IP 协议,可以把异构的物理网络连接起来,使得在网络层看起来好像是一个统一的网络。

与 IP 协议配套使用的还有三个协议:
地址解析协议 ARP(Address Resolution Protocol)
网际控制报文协议 ICMP(Internet Control Message Protocol)
网际组管理协议 IGMP(Internet Group Management Protocol)

传输层

TCP 与 UDP 区别

TCP 三次握手

TCP 四次挥手

最后一次挥手为什么要等待2MSL

TCP 可靠传输

TCP 使用超时重传来实现可靠传输:如果一个已经发送的报文段在超时时间内没有收到确认,那么就重传这个报文段。

滑动窗口

TCP 流量控制

流量控制是为了控制发送方发送速率,保证接收方来得及接收。

TCP 拥塞控制

如果网络出现拥塞,分组将会丢失,此时发送方会继续重传,从而导致网络拥塞程度更高。因此当出现拥塞时,应当控制发送方的速率。这一点和流量控制很像,但是出发点不同。流量控制是为了让接收方能来得及接收,而拥塞控制是为了降低整个网络的拥塞程度。

慢开始与拥塞避免

快重传与快恢复

思考题

请详细介绍一下从输入 URL 到页面加载完成的过程?

https://www.zhihu.com/question/30218438

  1. 解析url (网址还是文件路径,有没有参数)
  2. 网络请求
  3. 域名的话进行DNS解析 先浏览器缓存、本机hosts、网关上的DNS缓存(一层一层去查),获取ip
  4. tcp/ip请求 三次握手 四次挥手

长连接和短连接

首先我们看一下tcp/ip的定义:
(1)长连接:一个tcp/ip连接上可以连续发送多个数据包,tcp连接保持期间,如果乜有数据包发送,需要双方发检测包以维持此连接,一般需要自己做在线维持(类似于心跳包)。
(2)短连接:通信双方有数据交互是,简历一个tcp连接,数据发送完成后,则断开此tcp连接。我们再看一下http层面上:

(1)http1.0中,默认是使用的短连接,浏览器每进行一次http操作,就建立一次连接,任务结束就中断连接,比如每一个静态资源请求都是一个单独的连接
(2)http1.1开始,默认是使用长连接,长连接会设置connection: keep-alive,在长连接的情况下,当一个网页打开后,客户端和服务端之间用于传输http的tcp连接不会关闭,如果客户端再次访问服务器这个页面,会继续使用这一条已经建立起来的连接。注意:kee-alive不会永远保持,他有一个持续时间,一般服务中进行配置,另外长连接是需要客户端和服务器端都支持才有效。

比较一下http1.1和http2.0显著不同地方:

(1)http1.1中,每请求一个资源,都是需要开启一个tcp/ip连接的,所以对应的结果是:每一个资源对应一个tcp/ip请求,由于tcp/ip本身有个并发数的限制,资源一旦多了,速度会下降慢下来。
(2)http2.0中,一个tcp/ip请求可以请求多个资源,也就说,只要一次tcp/ip请求,就可以请求多个资源,分隔成更小的帧请求,速度明显提升。所以,如果http2.0全面应用的,很多http1.1中的优化方案无需用到(比如:精灵图,静态组员多域名拆分等)。

现在介绍一下http2.0的一些特性:

(1)多路复用(一个tcp/ip可以请求多个资源);
(2)首部压缩(http头部压缩,减少体积);
(3)二进制分帧(在应用层跟传输层之间增加一个二进制分帧层,改进传输性能,实现低延迟和高吞吐);
(4)服务器端推送(服务端可以对客户端的一个请求发出多个响应可以主动通知客户端);
(5)请求优先级(如果流被赋予了优先级,就会基于这个优先级来处理,有服务器决定需要多少资源来处理该请求)

https

20220221163826
20220221163450

https协议 和 Charles 进行https抓包原理

https://blog.csdn.net/fox64194167/article/details/80387696

缓存问题:http缓存、

1、强缓存与弱缓存
缓存可以简单划分为两种类型:强缓存(200 from cache)与协商缓存(304);

nginx

在浏览器中,如果缓存启用,即 web 服务器返回头的 cache-control 和 expires 设置有效,浏览器就会启用缓存机制。

https://www.cnblogs.com/sreops/p/11073277.html

https://www.nuobel.com/blog/2020/07/http-cache-and-nginx-config/

Grpc

20220221165020

traceroute实现原理

经典

https://blog.csdn.net/weixin_39831567/article/details/111336348

https://app.yinxiang.com/fx/3e3e8a27-fdb2-49b5-939a-d2bdc270ee6d

喜欢这篇文章?打赏一下作者吧!

欢迎关注我的其它发布渠道