课程目的
建立对计算机网络的整体认知,对计算机网络中的各种概念(网络分层、网络协议、网络应用等)有初步的理解, 进而可以在后续的实际工作中能高效解决网络问题。
基本内容:
- 通过一个示例建立对计算机网络的整体认识
- 建立对网络协议分层的认知
- 分析 HTTP 1、2、3 的关系
- 介绍 CDN 运行的基本原理
- 了解网络安全的最基本原则
一. 计算机网络的整体认识
1.所运用的分析方法
- 自底向上
从简单开始逐渐变复杂,从模块逐步拼凑成一个系统 - 自顶向下
从复杂开始,逐渐变简单,从复杂的系统问题入手,到分为模块的拆分问题
运用蟹煲王帝国的例子了解计算机网络的运行机制和对计算机网络的整体认识
2.计算机网络的划分
- 网络的组成部分:主机:客户端和服务器、路由器、网络协议
- 网络的结构:网络的网络(分为区域网络、城域网和广域网)
与蟹黄堡例子中一一对应:比奇堡和小区网络-本地网络,各地分店-网络节点的网络,全国通信网络-本地网络的网络
- 网络的交换方式:一般网络的交换方式有电路交换、报文交换和分组交换.蟹黄堡例子中运用的是电路和分组交换两种方式
分层和协议
网络分层(五层参考模型):物理层、链路层、网络层、运输层和应用层
协议:网络通信之间规定的交换格式和顺序
标头和载荷
- HTTP协议(HyperText Transfer Protocol,超文本传输协议)
包括:链路层-本地帧头部 、链路层-IP协议头部、运输层-TCP协议头部、应用层-HTTP协议头部
- TCP协议(传输控制协议)
二.Web中的网络(应用)
-
HTTP协议
-
HTTP连接模型
- HTTP1: 其中课程所重点分析HTTP1.1
它在1.0的基础上增加升级两个功能:持久连接和管道机制(同一个tcp连接里面,客户端可以同时发送多个请求.
缺点是无法多路复用,容易造成队头堵塞)
- HTTP2
http2采用二进制格式传输,就是将请求和响应数据分割成更小的帧.
帧带来的额外好处: 调整响应传输·的·优先级、头部压缩、Server Push
帧:前三个字节:载荷长度 、第四个字节:类型、第五个字节表示类型对应的Flags、 第六到第九字节:表示保留位和流id、随后的8192字节代表载荷.
缺点:虽然解决了应用层的队头阻塞,但是并没有解决传输层的队头阻塞
- HTTP3
- QUIC:是一种通用传输协议,与TCP非常相似,而http3就是基于QUIC的
比较靠谱,可以为除HTTP协议以外的应用层协议提供支持、完美的解决了队头阻塞的问题
实现:QUIC 从请求连接到正式接发 HTTP 数据一共花了 1 RTT,这 1 个 RTT 主要是为了获取 Server Config,后面的连接如果客户端缓存了 Server Config,那么就可以直接发送 HTTP 数据,实现 0 RTT 建立连接。
-
CDN解决了HTTP协议之外的问题
-
WebSocket
有状态的持久连接 服务端可以主动推送消息 用WebSocket发送消息延迟比HTTP低
三.网络安全
网络三要素:机密性、完整性、身份验证
服务端身份验证靠PKL,客户端身份验证靠HTTP协议
加密方法
- 对称加密和非对称加密
- 密码散列函数(哈希函数)
四.总结:
整个课程讲述计算机网络的整体运行机制,网络通信之间的协议和合同的发展,结合实际工作中计算机的主体部分到数据传输到资源交互情况,以及如何保障交互工作的网络安全