计算机网络概论 | 青训营笔记

63 阅读8分钟

计算机网络概论

本次课程旨在介绍计算机网络的基本概念、结构、协议和安全问题,以及Web中的网络技术。 本文分为五个部分,分别是:

  • 前言、基础框架:介绍计算机网络的目标、分析方法和蟹堡王帝国的比喻。
  • 网络基础:介绍网络的组成部分、结构、信息交换方式、分层和协议。
  • Web中的网络:介绍HTTP协议的演进历史、CDN服务器的原理和WebSocket的特点。
  • 网络安全:介绍网络安全的三要素、对称加密和非对称加密、密码散列函数和数字签名等技术。
  • 小结:总结本文的主要内容和要点。

前言、基础框架

计算机网络是由多个计算机设备通过通信线路互联而成的系统,它可以实现信息的共享和传递。计算机网络的目标是:

  • 建立对计算机网络的整体认知,对计算机网络的各种概念(如网络分层、网络协议、网络应用等)有初步的认识。
  • 分析HTTP1、2、3的关系,了解Web中的网络技术。
  • 介绍CDN运行的基本原理,提高网站访问速度和质量。
  • 了解网络安全的最基本原则,保护通信内容和身份。

为了方便理解计算机网络,我们可以使用蟹堡王帝国的比喻,将其外卖服务、开设分店和更多分店等过程与计算机网络中的客户端、服务端、路由器、协议等概念对应起来。

网络基础

计算机网络由以下几个部分组成:

  • 主机:客户端和服务端,是通信的发起者和响应者,提供各种应用服务。
  • 路由器:负责转发数据包,根据目标地址选择最佳路径。
  • 网络协议:定义了通信双方交换数据的格式、顺序和动作,如TCP/IP协议族。

计算机网络可以按照覆盖范围划分为:

  • 区域网(LAN):覆盖一个较小的区域,如办公室或学校。
  • 城域网(MAN):覆盖一个较大的区域,如一个城市。
  • 广域网(WAN):覆盖一个较广的区域,如一个国家或地区。

计算机网络可以按照信息交换方式划分为:

  • 电路交换:在通信开始前建立一条专用的物理连接,通信结束后释放连接,如电话系统。
  • 分组交换:将数据分割成小块(数据包),每个数据包独立传输,不需要预先建立连接,如互联网。

计算机网络可以按照功能划分为五层:

  • 物理层:负责传输比特流,定义物理媒介、接口和信号特性。
  • 链路层:负责传输数据帧,定义节点间的链路协议和差错控制。
  • 网络层:负责传输数据报,定义寻址和路由选择。
  • 运输层:负责传输报文段,定义端到端的可靠传输和流量控制。
  • 应用层:负责提供各种应用服务,如Web、邮件、文件传输等。

每一层都遵循相应的协议,协议是通信双方约定好的规则,它包括报文头部(Header)和载荷(Payload)。报文头部包含了源地址、目标地址、长度等信息,载荷包含了实际要传输的数据。

Web中的网络

Web是互联网上最常用和最重要的应用之一,它基于HTTP协议实现了超文本传输。HTTP协议经历了以下几个版本:

  • HTTP1.0:最初版本,每次请求都需要建立新连接,并且只能发送一个请求。
  • HTTP1.1:增加了持久连接(Keep-alive),允许在同一个连接上发送多个请求,并且支持管道化(Pipelining),即不需要等待上一个请求响应就可以发送下一个请求。
  • HTTP2.0:采用二进制格式而非文本格式传输数据,并且支持多路复用(Multiplexing),即在同一个连接上可以并行发送多个请求,并且可以按任意顺序接收响应。此外还支持服务器推送(Server Push),即服务器可以主动向客户端发送数据而不需要客户端请求。
  • HTTP3.0:采用QUIC协议代替TCP协议作为底层传输协议,并且支持快速握手(Fast Handshake),即不需要三次握手就可以建立连接,并且支持前向纠错(Forward Error Correction),即可以在不重传数据包的情况下恢复丢失或损坏的数据包。

CDN服务器是一种缓存服务器,它可以将源服务器上的内容复制到离用户更近的位置,从而提高网站访问速度和质量。CDN服务器运行的基本原理是:

  • 域名解析一般由网站自己处理
  • 要加速的域名重定向到CDN厂商的域名解析服务处理
  • CDN厂商根据用户来源确定最近的CDN服务器的IP
  • 用户直接访问最近的CDN服务器

WebSocket是一种在单个TCP连接上进行全双工通信的协议,它可以实现浏览器和服务器之间的双向实时通信。WebSocket有以下特点:

  • 有状态的持久连接
  • 服务端可以主动推送消息
  • 用WebSocket发送消息延迟比HTTP低

网络安全

网络安全是指保护网络系统中信息和资源不受攻击者侵犯或破坏。网络安全有三个要素:

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

为了实现这三个要素,我们需要使用以下技术:

  • 对称加密:加密、解密用同样的密钥
  • 非对称加密:加密、解密用不同的密钥(公钥和私钥),而且公钥加密只能用私钥解密、私钥加密只能用公钥解密
  • 密码散列函数(哈希函数):输入任意长度的内容,输出固定长度的哈希值,并且难以找到两个不同输入产生相同哈希值
    • 数字签名:对明文内容的哈希值使用私钥加密,验证者使用公钥解密
  • 根证书:是证书链的尽头,由权威机构颁发,包含了公钥和其他信息
  • 证书链:是一连串的证书,每个证书都由上一个证书的颁发者签发,用于验证根证书的真实性
  • PKI:是分发和验证证书的基础设施,包括根证书机构、中间证书机构和用户

因此,想要实现身份验证,通信双方需要先有秘密信息,即根证书中的公钥。在不安全的信道上交换秘密信息是不可能的,所以我们需要借助PKI来保证根证书的可信度。

小结

本文介绍了计算机网络的基本概念、结构、协议和安全问题,以及Web中的网络技术。我们可以从以下几个方面总结本节课的主要内容和要点:

  • 计算机网络是由多个计算机设备通过通信线路互联而成的系统,它可以实现信息的共享和传递。
  • 计算机网络由主机、路由器、网络协议等组成,可以按照覆盖范围、信息交换方式和功能划分为不同的类型和层次。
  • Web是互联网上最常用和最重要的应用之一,它基于HTTP协议实现了超文本传输。HTTP协议经历了从1.0到3.0的演进,增加了持久连接、多路复用、服务器推送等特性。
  • CDN服务器是一种缓存服务器,它可以将源服务器上的内容复制到离用户更近的位置,从而提高网站访问速度和质量。CDN服务器运行的基本原理是通过域名解析服务将用户导向最近的CDN服务器。
  • WebSocket是一种在单个TCP连接上进行全双工通信的协议,它可以实现浏览器和服务器之间的双向实时通信。WebSocket有状态的持久连接、服务端可以主动推送消息、用WebSocket发送消息延迟比HTTP低等特点。
  • 网络安全是指保护网络系统中信息和资源不受攻击者侵犯或破坏。网络安全有三个要素:机密性、完整性和身份验证。为了实现这三个要素,我们需要使用对称加密、非对称加密、密码散列函数、数字签名等技术。我们还需要借助PKI来保证根证书的可信度。

本文的大部分内容来自网络搜索,是作者在根据本节课的建立的框架上进行补充的。