青训营day1 计算机网络

104 阅读4分钟

day1 计算机网络

网络结构

  • 网络组成部分:主机、路由器、交换机等
  • 网络结构:网络的网络
  • 信息交换方式:电路交换和分组交换
    • 电路交换是以电路连接为目的的交换方式,通信之前要在通信双方之间建立一条被双方独占的物理通道。
    • 分组交换是以分组为单位进行传输和交换的,它是一种存储——转发交换方式,即将到达交换机的分组先送到存储器暂时存储和处理,等到相应的输出电路有空闲时再送出。
    • 计算机网络中使用的是分组交换。
  • 网络分层:从下而上分别为物理层、链路层、网络层、运输层和应用层
  • 网络协议:标头和载荷

每一层都会将上一层的标头和载荷视为自己的载荷,并添加自己的标头

web中的网络

http协议

  • http请求的第一行为起始行,响应的第一行为状态行
  • 请求和响应的第二行开始到第一空行为止,为头部
  • 第一空行的之后内容为正文

HTTP/1.0 —— 无状态无连接的应用层协议

  • 无状态:服务器不跟踪不记录请求过的状态
  • 无连接:浏览器每次请求都需要建立tcp连接

HTTP/1.0规定浏览器和服务器保持短暂的连接。浏览器的每次请求都需要与服务器建立一个TCP连接,服务器处理完成后立即断开TCP连接(无连接),服务器不跟踪每个客户端也不记录过去的请求(无状态
无状态导致的性能缺陷:

  • 无法复用连接。每次发送请求的时候,都需要进行一次TCP连接,而TCP的连接释放过程又是比较费事的。这种无连接的特性会导致网络的利用率非常低。

  • 队头堵塞(head of line blocking)。由于HTTP/1.0规定下一个请求必须在前一个请求响应到达之前才能发送。假设一个请求响应一直不到达,那么下一个请求就不发送,就到导致阻塞后面的请求。

HTTP/1.1

  • 长连接。HTTP/1.1增加了一个Connection字段,通过设置Keep-alive(默认已设置)可以保持连接不断开,避免了每次客户端与服务器请求都要重复建立释放TCP连接,提高了网络的利用率。如果客户端想关闭HTTP连接,可以在请求头中携带Connection:false来告知服务器关闭请求
  • 支持请求管道化(pipelining)。基于HTTP/1.1的长连接,使得请求管线化成为可能。管线化使得请求能够“并行”传输。举个例子来说,假如响应的主体是一个html页面,页面中包含了很多img,这个时候keep-alive就起了很大的作用,能够进行“并行”发送多个请求。

HTTP/2.0

HTTP/2 采用二进制格式传输数据,而非 HTTP/1.x 的文本格式,二进制协议解析起来更高效。 HTTP / 1 的请求和响应报文,都是由起始行,首部和实体正文(可选)组成,各部分之间以文本换行符分隔。HTTP/2 将请求和响应数据分割为更小的帧,并且它们采用二进制编码
HTTP/2.0实现了真正的并行传输,它能够在一个TCP上进行任意数量HTTP请求。而这个强大的功能则是基于“二进制分帧”的特性。 但不能解决在TCP上的队头堵塞

HTTP/3.0

QUIC协议,真正解决队头堵塞

CDN

解决了HTTP协议之外的问题

WebSocket

从HTTP协议升级而来

网络安全

网络安全三要素

  • 机密性:攻击者无法获知通信内容
  • 完整性:攻击者对内容进行篡改时能够发现
  • 身份验证:攻击者无法伪装成通信双方的任意一方与另一方通信

在没有提前交换秘密信息的前提下,无法在不安全的信道交换秘密信息
PKI保证了普通用户不需要‘面对面’和根证书机构交换根证书
HTTPS使用PKI完成了除客户端身份验证以外的特性,客户端身份验证靠HTTP协议实现