计算机网络概论
网络结构
ISP(Internet service provider) 网络服务提供商
网络组成部分:
- 主机(客户端、服务端):接收或提供信息
- 路由器:转发主机之间的消息
- 网络协议:定义统一格式,方便路由器和主机编码和解码
- 交换机......
计算机网络分类:局域网、城域网、广域网
信息交换方式: 电路交换:需要建立电路连接,资源被占,则需要排队。 分组交换:不会建立电路连接,不会预留资源和带宽,按顺序输出。(报文)
网络分层(分清职责): 应用层、运输层、网络层、数据链路层、物理层
协议:协议定义了在两个或多个通信实体之间交换的报文格式和顺序,以及报文发送和/或接受一条报文或其他事件所 采取的动作。
协议的存在依赖于连接。
TCP / UDP
HTTP1 / HTTP2 / HTTP3(QUIC)
请求头: 请求方法 路径 协议版本
响应头: 协议版本 状态码
HTTP1 HTTP1.1
HTTP1.1 缺点:无法多路复用。
HTTP2
使用帧传输。 好处:多路复用、解决队头堵塞、调整相应传输的优先级、头部压缩、Server Push。
帧的格式:
HTTP3 QUIC
Quick UDP internet connection。(丢包重传、顺序发送)
出现的原因:因为HTTP2不够快。
现存网络设备对TCP和UDP支持已经僵化,UDP不靠谱但是QUIC靠谱,QUIC可以为除HTTP协议以外的应用层协议提供支持。
同一个客户端再次请求时:
WebSocket
有状态的持久连接,服务端可以主动推送消息,用WebSocket发送消息延迟比HTTP低。
由HTTP协议升级而来,在建立HTTP连接之后,再协商使用Websocket进行通信。
CDN
CDN解决HTTP协议之外的问题。
HTTP3再快,也有无法突破的物理极限、重复发送同一数据、只有一台服务器流量如何承载。
DNS劫持:域名解析一般由网站自己处理,要加速的域名则重定向到CDN厂商的域名解析服务处理 ,CDN厂商根据来源确定最近的CDN服务器的IP,用户直接访问最近的CDN服务器。
每隔一段时间,会清除一部分数据。
拉策略:现场去获取数据。
推策略:先存着,用的时候直接发。
安全(SSL / TLS / 基础密码学)
网络安全三要素:
- 机密性:攻击者无法获知通信内容
- 完整性:攻击者对内容进行篡改时能被发现
- 身份验证:攻击者无法伪装成通信双方的任意一方与另一方通信
加密方式:
- 对称加密:加密、解密用同样的密钥
- 非对称加密:加密、解密使用不同的密钥(公钥和私钥) ,而且公钥加密只能用私钥解密、私钥加密只能用公钥解密
密码散列函数(哈希函数):
- 输入:任意长度的内容
- 输出:固定长度的哈希值
- 性质:找到两个不同的输入使之经过密码散列函数后有相同的哈希值,在计算上是不可能的
完整性和身份验证(数字签名)。
数字签名:对明文内容的哈希值使用私钥加密,验证者使用公钥验证。
根证书是证书链的尽头,验证的一连串证书称为证书链,分发证书、验证证书的基础设施称为PKI,Public Key Infrastructure,所以想要实现身份验证、通信双方需要先有秘密信息,即根证书中的公钥。
查看路径:【🔒】→【连接是安全的】→【证书有效】
HTTPS
HTTPS = HTTP + TLS
TLS = 身份验证 + 加解密
服务端身份验证靠 PKI,客户端身份验证靠HTTP协议。
起初HTTP在传输数据时使用的是明文,是不安全的。为了解决这个隐患,网景(Netscap)公司推出了SSL。而越来越多的人也开始使用HTTPS(HTTP+SSL)。
SSL(Secure Socket Layer)安全套接层是Netscape公司率先采用的网络安全协议。它是在传输通信协议(TCP/IP)上实现的一种安全协议,采用公开密钥技术。SSL广泛支持各种类型的网络,同时提供三种基本的安全服务,它们都使用公开密钥技术。 SSL(Secure Socket Layer 安全套接层)是TCP/IP协议中基于HTTP之下,TCP之上的一个可选协议层。
HTTPS的推出受到了很多人的欢迎,在SSL更新到3.0时, 互联网工程任务组(IETF)对SSL3.0进行了标准化,并添加了少数机制,并将其更名为TLS1.0(Transport Layer Security 安全传输层协议。
参考资料
- 计算机网络(原书第7版) ,机械工业出版社
- HTTP权威指南,人民邮电出版社
- 密码编码学与网络安全(第6版),电子工业出版社
- web.dev/performance…
- calendar.perfplanet.com/2020/head-o…