首页 > 其他分享 >字节前端青训营笔记1.计算机网络

字节前端青训营笔记1.计算机网络

时间:2023-04-14 12:12:06浏览次数:43  
标签:协议 HTTP 请求 队头 计算机网络 传输 青训营 优先级 字节

  • 数据交换方式

分为电路交换与分组交换
电路交换是指在通信时建立一条专用的物理连接,该连接将一直保持开放,直到通信结束。在此过程中,通信双方可以实时地交换信息,就好像它们直接连接在一起一样。传统的电话通信就是一个很好的例子。在电路交换中,通信资源一直被占用,因此当通信量很大时,电路交换可能会变得不太有效。

分组交换是指将数据分割成较小的数据包(称为分组),并在网络上通过路由器和交换机等设备进行传输。每个数据包包含发送和接收的地址信息,以确保它们最终到达正确的目的地。分组交换的优点是可以有效地利用通信资源,因为每个数据包只需要在传输时占用网络资源的一小部分。此外,它还可以允许多个用户同时共享网络资源。Internet是使用分组交换技术的典型例子。

  • 协议

协议的存在依赖于连接。当两个或多个实体相互连接,拥有发送数据的需求时,便需要协议来确定交换报文(就是数据)的格式和顺序,以及一些动作。

  • http

1.队头堵塞

要理解队头堵塞,首先要认识到这一特性是由于http的无状态性和串行性导致的。所谓无状态性,指的是http这一协议不负责记录连接的状态,也就是每一个请求的状态都不会被http记录在案,导致请求与回应是相互独立的。所谓串行性,是指请求与响应按照特定顺序进行。正是这些特性导致若是某一个请求遭遇堵塞,后面的请求不论是否准备好与否,都必须等待,直到这个请求通过。

HTTP队头阻塞会导致网络性能下降,因为它会使客户端与服务器之间的通信延迟增加。为了避免HTTP队头阻塞,可以采取以下措施

  1. 使用HTTP/2或HTTP/3协议,它们支持多路复用,可以在一个连接上同时进行多个请求和响应,减少HTTP队头阻塞的影响。
  2. 对于长时间运行的请求或响应,可以使用分块传输编码(chunked encoding)将其分成多个小块进行传输,这样可以让其他请求或响应先行传输。
  3. 减少请求和响应的大小,尽可能缩短请求和响应的传输时间,从而减少HTTP队头阻塞的影响。

tip: http1.1是无法多路复用的。

2.http2的帧

帧实际上是将原先http1.x的文本级别的消息变成现在比特级别的消息,如此有以下一些优点

  • 采用了多路复用的技术,一个连接可以传送多个http请求和响应,而每个请求与响应是通过流来进行的,流有独特的ID,互相独立,一个流可以包含多个帧。

  • 客户端和服务器通过流ID和帧类型来区分不同的帧,因此可以同时发送和接收多个帧,并发传输,提高了网络带宽的利用程度,提高了网络传输效率。

  • 相比文本内容,不容易被篡改,更加安全。

  • 会进行头部压缩,更加高效。(头部消息由字段和值构成,会在多个帧出现,压缩有利于传播)

  • 在HTTP/2协议中,每个流都有一个权重(Weight)和一个依赖关系(Dependency)。权重用于定义该流在所有并发流中的相对优先级,依赖关系用于定义该流依赖于哪个流,也就是该流应该在哪个流的帧之后进行传输。
    HTTP/2协议中的帧可以通过调整帧的流ID、权重和依赖关系来调整帧的优先级,从而影响响应消息的传输顺序。比如,如果一个流的优先级很高,那么在传输响应消息时,该流的帧会被优先传输,从而减少用户等待时间,提高用户体验。
    通过调整帧的优先级,HTTP/2协议可以更加有效地利用网络带宽,提高网络传输效率。同时,优先级机制还可以防止低优先级的帧过多占用网络资源,影响高优先级帧的传输,从而提高了网络传输的公平性。

  • 有server push,即客户端向服务器发送请求后,服务端会主动给客户端发送一些可能需要的数据,以提高用户体验和页面加载速度。

  • HTTP/2协议中的队头阻塞问题主要是由于TCP协议的拥塞控制机制导致的。

在TCP协议中,拥塞控制是用来防止网络拥塞的一种机制,它可以根据网络拥塞程度来调整数据传输速率,以保证网络的可靠性和公平性。在HTTP/2协议中,由于多个HTTP请求共用同一个TCP连接,如果其中一个请求阻塞,就会影响其他请求的传输,导致队头阻塞问题。

具体来说,当HTTP/2协议中的一个请求的某个帧被阻塞时,后续的帧就无法发送,这会导致其他请求的帧也无法发送,从而形成了队头阻塞的问题。因为TCP协议的拥塞控制机制会认为网络发生了拥塞,从而触发拥塞控制算法,导致数据传输速率降低,进一步影响其他请求的传输速度。

解决办法:

  1. 使用多个TCP连接,每个连接只处理一个请求,这样就可以避免多个请求共用同一个TCP连接导致的队头阻塞问题。
  2. 使用流优先级,对请求进行优先级排序,高优先级的请求先进行处理,从而减少队头阻塞的影响。
  3. 使用帧优先级,对帧进行优先级排序,高优先级的帧先进行传输,从而减少队头阻塞的影响。
  4. 使用流量控制,限制每个流的带宽,避免某个流占用过多的网络资源,从而减少队头阻塞的影响。
  • RTT

HTTP/2协议使用单一的TCP连接来传输多个HTTP请求和响应,通过使用二进制分帧和头部压缩等技术,可以减少HTTP/1.x协议中存在的请求头过大、TCP连接建立和拆除的开销等问题,从而提高网络传输效率和速度。因此,HTTP/2协议的RTT一般会比HTTP/1.x协议的RTT要小一些。

HTTP/3协议则采用了基于UDP的QUIC协议来传输数据,通过使用多路复用、0-RTT握手和头部加密等技术,可以进一步减少传输延迟和网络拥塞的问题,从而提高网络传输效率和速度。因此,HTTP/3协议的RTT一般会比HTTP/2协议的RTT要小一些。

  • QUIC

QUIC基于UDP协议进行通信,并且在协议层面上提供了多路复用、快速连接建立、数据流量控制、重传和拥塞控制等功能,以支持更快、更高效的网络通信。
QUIC的主要特点包括:

  1. 快速连接建立:QUIC使用了0-RTT(Zero Round Trip Time)的技术,允许在未建立完全连接的情况下就可以发送数据,从而减少了连接建立所需的时间。
  2. 多路复用:QUIC支持多路复用,允许在一个连接上同时传输多个数据流,从而提高了网络传输的效率。
  3. 数据流量控制:QUIC可以在协议层面上对数据流进行流量控制,以避免网络拥塞和数据丢失。
  4. 重传和拥塞控制:QUIC可以在协议层面上进行重传和拥塞控制,以保证网络传输的可靠性和效率。
  5. 安全性:QUIC默认使用TLS加密,提供了端到端的安全性保证,同时还提供了一些其他的安全功能,如连接迁移、零窃听等。
  • 网络安全

https=http+TLS

TLS=身份验证+加解密

身份验证靠PKI

PKI是分发以及验证证书的基础安全体系

数字签名是对公开内容的一种身份验证方式,防止其被随意篡改。其实质是用私钥加密,验证者用公钥验证。

而要想实现在公开环境下的秘密通话,必须要先有秘密信息,此处即指公钥。

标签:协议,HTTP,请求,队头,计算机网络,传输,青训营,优先级,字节
From: https://www.cnblogs.com/wryyyyyyy/p/17317910.html

相关文章

  • 【计算机网络-数据链路层】流量控制与可靠传输机制
    目录1停止-等待协议1.1无差错情况1.2有差错情况——数据帧出错或丢失1.3有差错情况——ACK丢失1.4有差错情况——ACK迟到1.5性能分析1.6相关例题2后退N帧协议(GBN)2.1无差错情况2.2超时重传、回退N帧2.3相关例题3选择重传协议(SR)3.1有差错情况3.2相关例题4总结......
  • jvm 字节码
    编译前端编译:依靠jdk的编译工具把java文件编译成class文件,javac命令后端编译:class文件编译成机器指令逐行读取class文件内同,并解释成机器指令引入jit技术提高解释效率,比如某些类中共有的内容,这些内容解释次数过多就直接缓存起来反编译:把class文件反编译为......
  • 使用java.util.zip对生成的字节数组输出文件流 进行打包压缩(单个、批量),并返回压缩包
    废话不多说直接上代码 packagegov.test.util;importjava.io.ByteArrayInputStream;importjava.io.ByteArrayOutputStream;importjava.io.IOException;importjava.util.List;importjava.util.Map;importorg.apache.tools.zip.ZipEntry;importorg.apache.tools.zip.Zip......
  • 计算机网络
    网络模型什么是网络?协议:在网络中通信时,双方遵守的约定和规则服务:每种网络协议规定一种网络的功能,比如:http规定了用户可以浏览WEB页面的功能进程:程序成功之后,我们称之为进程。并以CPU控制。服务器服务对外提供的功能,也就是将进程提供给客户端口:就是唯一标识协议、......
  • 计算机网络 网络层
    目录一、网络层的功能二、网络层的协议三、IP数据包格式四、网关五、实例演示 一、网络层的功能1.定义了基于IP协议的逻辑地址2.连接了不同的媒介类型3.选择数据通过网络的最佳地址二、网络层的协议ICMP和ARP两个协议 ICMP(InternetControl......
  • 计算机网络 交换机
    目录一、交换机概念二、交换机的特点三、交换机的工作流程   一、交换机的概念交换机的功能是连接计算机、服务器、网络打印机、网络摄像头、IP电话等终端设备,并实现与其它交换机、无线接入点、路由器、网络防火墙等网络设备的互联,从而构建局域网络,实现所有设备之......
  • 计算机网络思维导图,快快收藏学习啦!
    第一章(概述) P0-计算机网络<思维导图>第二章(物理层) P1-计算机网络<思维导图>便签中的内容:①香农公式:C=W*Log2(1+S/N)(bit/s)C:极限传输速率W:信道带宽(单位Hz)S:信道内所传信号的平均功率N:信道内的高斯噪声功率②ADSL技术:AsymmetricDigitalSubscriberLine非对称数字用户......
  • 【计算机网络-数据链路层】集线器、网桥、交换机
    目录1【物理层】集线器(Hub)——共享式以太网1.1为什么使用集线器?1.2集线器的特点1.3为什么使用转发器?2【链路层】网桥(Bridge)——多级共享式以太网2.1为什么使用网桥?2.2网桥的工作原理2.3透明网桥的自学习算法3【链路层】交换机(Switch)——交换式以太网3.1为什么使用交换机......
  • 计算机网络基础
    网络的基本组件? 设备介质  服务网络介质网络介质两大类:有线 wire铜质介质双绞线 twistedpairTP (8根线,4对线)  为什么双绞?抗干扰UTP 非屏蔽双绞线 unshieldedTP            (2)STP屏蔽双绞线  shieldedTPSTP的抗干扰性能优于UTP,但价格更贵,日常......
  • 比特和字节
    1、比特比特是计算机中最小的信息量单位,一个比特有且只有0和1两个值。2、字节字节是计算机中常用的信息量单位,一个字节由8个连续的比特组成。在计算机中存储、表示、计算和传输等任务,都是以字节作为基本单位进行的。3、其他信息量单位1字节(Byte)=8位(bit)1KB(Kilobyte,千......