计算机网络概论
本次课程旨在介绍计算机网络的基本概念、结构、协议和安全问题,以及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来保证根证书的可信度。