1、计算机网络的分析方法可以分为两种,自底向上和自顶向下。我个人是比较喜欢自底向上的分析方法,因为这样可以很清楚地了解什么组成了什么,整个逻辑是怎么执行的。
2、计算机的网络分层有三种,分别是OSI的七层协议、TCP/IP的四层协议和综合前两种有缺点的五层协议。
而课程里采用的网络分层是五层结构的协议。协议的存在则依赖于连接。网络协议基本结构可以分为标头和载荷。
3、接下来的重点就是HTTP和TCP协议。这里主要是讲了HTTP从1.1到3.0的过程,中间穿插了每个阶段的缺点来说明为什么要升级到下一个阶段。
HTTP1.1存在以下问题:
(1)并发连接有限。例如谷歌浏览器最大并发数是6个,而且每次连接都要经过TCP握手等,耗时又耗能。
(2)队头堵塞。同一个连接只能在完成一个HTTP事务后,才能处理下一个事务。
(3)HTTP头部巨大且重复。因为HTTP协议是无状态的,所以每一个请求都要携带HTTP头部,特别是有携带cookie的头部,更是如此。
(4)延迟难以下降。
HTTP2:将HTTP1的文本格式改成二进制格式传输数据,极大提高HTTP传输效率,而且二进制数据能使用位运算高效解析。将请求拆分到帧里,与之前网络层次的不一样,传输之后再重组。而且HTTP2通过Stream设计,即多个Stream复用一条TCP连接,达到并发的效果。从而解决了队头堵塞的问题,提高传输的吞吐量。
HTTP3的出现,是因为因为HTTP2还不够快。HTTP3同HTTP2⼀样采⽤⼆进制帧的结构,不同的地⽅在于HTTP2的⼆进制帧⾥需要定义Stream,⽽HTTP3⾃⾝不需要再定义Stream,直接使⽤QUIC⾥的Stream,于是HTTP3的帧的结构也变简单了。
4、TCP与UDP的区别
1)连接:TCP是⾯向连接的,在传输前需要三次握⼿建⽴连接。UDP不需要连接,即刻传输数据。
2)服务形式:TCP只能⼀对⼀,点对点服务。UDP⽀持⼀对⼀、⼀对多、多对多通信。
3)可靠性:TCP保证数据可靠交付,拥有确认应答和重传机制,⽆重复、不丢失、按序到达。UDP尽可能交付,不保证可靠性。
4)连接控制机制:TCP拥有流量控制、拥塞控制,保证传输安全性等。UDP在⽹络拥堵情况下不会降低发送速率。
5)⾸部⼤⼩:TCP⾸部长度不适⽤选项字段是20字节,使⽤选项字段长度增加(可变)。UDP⾸部固定8字节。
6)传输⽅式:TCP基于字节流,没有边界,但是保证传输顺序和可靠性。UDP继承了IP层特性,基于数据包,有边界可能出现乱序和丢包。
7)分⽚⽅式:TCP数据⼤于MSS时会在TCP层将数据进⾏分⽚传输,到达⽬的地后同样在传输层进⾏合并,如果有某个⽚丢失则只需要重传丢失的分⽚即可。UDP数据⼤于MTU时会在IP层分⽚,同样也在⽬的IP层合并,如果某个IP分⽚丢失,则需要将所有分⽚都进⾏重传,开销⼤。