青训营x字节前端训练营(一)计算机网络

120 阅读4分钟

theme: github

本次学习内容以“蟹堡王 ”为例,自底向上的介绍计算机网络的基础架构,了解计算机网络的运行机制。计算机网络作为虚拟网络世界与现实世界交互的桥梁,在开发应用过程中,对于计算机网络中协议、http等内容架构的了解,有助于问题排查和效率提高。

在视频中提到,本节内容的叙述采用两种分析方法:自底向上和自顶向下 自底向上地从简单开始,逐渐变复杂。将模块逐步拼凑成一个计算机网络系统,而后通过当下实际案例来自顶向下的印证计算机网络的基础架构和组成原理。

一、蟹堡王帝国

由蟹堡王作为引入点,提出以下内容:

  1. 目标--待解决问题
  2. 方案规划--三步走战略(外卖->分店->全国连锁)
  3. 可行性分析--建立通信服务,搭建计算机网络,维持分店、外卖等渠道间的联系
  4. 具体实施过程: 获取并确认订单信息--制定协议(简化下单流程)--更新协议格式(用于分店间联系)--确认分店与总部通信地址--规划总部与分店、分店于分店间的通信线路。 在此过程中,客户下单点外卖可以看作客户端,客户在下单时填写下单表格用于简化店铺获取和确认订单信息的流程,这个过程中的表格看作网络协议。而蟹堡王分店可以看作服务端,当同一地区的订单量过多时,可以采用路由器作为中转,接收该地区的总体订单信息再转发给分店服务端。 根据以上内容可以构建如下蟹堡王分店及用户体系。 image.png 将其与计算机网络中对应的部分联系起来 image.png

二、计算机网络基础

1. 网络的基本组成:

  • 主机:客户端和服务端 (分别对应下单客户和蟹堡王店铺前台)
  • 路由器 (小区中继,作为小区订单的发送端,也作为从蟹堡王前台接受订单后转发给厨房的中继。)
  • 网络协议 (订单表格)

2. 网络结构:网络的网络

image.png

3. 电路交换和分组交换--通信方式

电路交换可以看作蟹堡王早期的经营模式,客户打电话下单,只有章鱼哥作为接单员,跟客户对接获取并确认订单信息。

分组交换可以看到传真、根据用户发送的信息按顺序进行订单打印。

4. 计算机网络的层级结构

从低到高分别是:物理层、内容层、网络层、运输层和应用层。

本次主要介绍上三层。

网络层可以看作高速公路,只作为传输通道,不关系传输的具体内容; 运输层可以看作货运卡车,只运输货物而不关心货物是什么; 应用层可以看作快递员,只负责将快递运送到指定地址。

5. 协议--通信的规范语言

image.png

image.png

6. 标头和载荷--快递订单标签和快递包裹里的物品

三、Web中的网络

image.png 给出以上实例,其中红色的是请求,蓝色的是响应。

请求部分

从上往下主要分别:起始行、头部(格式如下: 头部名称:该头部的值)

相应部分

从上往下依次为:状态行(状态码和状态信息)、头部

HTTP2 结构

HTTP2解决了HTTP1.1无法多路复用的问题。 image.png 其帧的结构如下图所示: image.png 将总体内容拆分为帧的方式,不仅解决了多路复用的问题,还可以通过帧的调整来修改响应传输的优先级、进行头部压缩和Server Push。

但是未完全解决HTTP1.1队头堵塞的问题,而且也带来了传输速率较慢的问题。 基于上述的HTTP2示例,其存在的问题可以具体描述为:

image.png

HTTP3: QUIC(Quick UDP Internet Connection)

QUIC可以为除HTTP协议以外的应用层协议提供支持,以下是QUIC协议通信举例:

image.png

四、网络安全

前文所介绍的协议都是基于明文的,相比更容易会截取或篡改,因此加强网络安全,保障信息传输是必要的。

image.png

明文加密的两种方式:

image.png 如果想要通过明文通信交换秘密信息,通信双方需要先有共同的秘密信息(即根证书中的公钥)。

image.png其中数字签名的实现方式为:

image.png