计算机网络概述
建立对计算机网络的基本认识,对计算机网络中的各种概念(网络分层、网络协议、网络应用等)有初步的理解。进而可以在后续的实际工作中能高效解决网络问题。
收获的知识点
- 通过示例建立对计算机网络的整体认识
- 建立对网络协议分层的认知
- 分析HTTP1、2、3的关系
- CDN运行的基本原理
- 了解网络安全的最基本原则
分析方法
自底向上
- 从简单开始,逐渐变复杂
- 将模块逐渐拼凑成一个系统
自顶向下
- 从复杂开始,逐渐变简单
- 从复杂的系统问题入手,拆分为模块问题
网络基础
网络组成部分
- 主机:客户端和服务端
- 路由器:连接因特网中各局域网、广域网的设备,它会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号
- 网络协议
常见网络协议
- UDP:用户数据包协议,位于传输层,和IP协议配合使用,因为不能提供数据包的重传,所以适合传输较短的文件;
- NFS:网络文件服务器,可使多台计算机透明地访问彼此的目录;
- FTP:远程文件传输协议,允许用户将远程主机上的文件拷贝到自己的计算机上;
- SMTP:简单邮政传输协议,用于传输电子邮件;
- Telnet:提供远程登录功能,一台计算机用户可以登录到远程的另一台计算机上,如同在远程主机上直接操作一样.
- HTTP协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准。 HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。
网络结构:网络的网络
电路交换&分组交换
电路交换的步骤:
- 建立连接(分配通信资源,建立一个专用的物理通路)
- 通话,一直占用通信资源。
- 释放连接(归还通信资源。) 线路的传输效率往往很低,所以不适合用在交换传送计算机数据。 因此在互联网中,一般采用分组交换的。
网络分层
关于因特网分层,主流上一般将计算机分为 7 个层次,并称这种分层方式为——“ OSI ”模型。具体可以看如下这张例图。
目录如下:
协议
协议的存在依赖于连接
协议定义了在两个或多个通信实体之间交换的报文格式和顺序,以及报文发送和/或接收一条报文或其他事件所采取的动作。
标头和载荷
标头:是服务器以HTTP协议传HTML资料到浏览器前所送出的字串 载荷:给服务器或浏览器传递的讯息
HTTP协议示例
web中的网络
HTTP1、2、3的演进历史
- HTTP 1.1:无法多路复用
- HTTP 2:帧
- 前三个字节:载荷长度
- 第四个字节:类型
- 第五个字节:类型对应的Flags
- 第六到第九字节:第1位:保留位,第2-32位:流ID
- 随后的8192字节:载荷
帧带来的额外好处
- 调整响应传输的优先级
- 头部压缩
- Server Push
HTTP2:队头阻塞,但是在TCP上
HTTP2:3 RTT启动
HTTP 3;QUIC
- Quick UDP Internet Connection
- 现存网络设备对TCP和UDP支持已经僵化
CDN解决了HTTP协议之外的问题 DNS劫持
- 域名解析一般有网站自己处理
- 要加速的域名则重定向到CDN厂商的域名解析服务处理
- CDN厂商根据来源确定最近的CDN服务器的IP
- 用户直接访问最近的CDN服务器
WebSocket从HTTP协议升级而来
- 有状态的持久连接
- 服务端可以主动推送消息
- 用WebSocket发送消息延迟比HTTP低
网络安全
三要素:
- 机密性:攻击者无法获知通信内容
- 完整性:攻击者对内容进行篡改时能被发现
- 身份验证:攻击者无法伪装成通信双方的任意一方与另一方通信
对称加密和非对称加密
- 对称加密:加密、解密使用相同的密钥
- 非对称加密:加密、解密用不同的密钥(公钥和私钥),用公钥加密需要私钥解密,反之用公钥解密
密码散列函数(哈希函数)
- 输入:任意长度的内容
- 输出:固定长度的哈希值
- 性质:找到两个不同的输入使之经过密码散列函数后有相同的哈希值,在计算上是不可能的
PKI:分发证书、验证证书的基础设施称为PKI,Public Key Infrastructure
HTTPS=HTTP+TLS TLS=身份验证+加解密 身份验证靠PKI