计算机网络
个人总结
- 从讲稿来看,以案例入手,在蟹堡王帝国订蟹堡王来层层剖析感觉还是挺不错的,还有一些具体的通信线路图也很生动
- 从学习方法的角度看,这次是先看ppt然后1.5倍速看视频,感觉效果还可以之后还可以改进
- 从知识的角度看,对计算机网络有了一个大概的认知,对网格结构,udp,tcp,http,https,cdn,websocket等有个概念性的了解,有对网络协议分层的认知,每一层都是包裹自上一层加上自己的头部信息,了解http一代二代三代如何一步步升级,但是感觉仍然没有理解透彻,需要啃啃大黑书还有更详细的资料
- 希望可以作为一个学习督促,秋招加油
总体大纲
- 网络结构
- TCP/UDP
- HTTP 1 / HTTP2 / HTTP3 (QUIC)
- WebSocket
- CDN
- 安全(SSL/TLS/基础密码学)
计算机网络基础
- 主机:客户端 服务端
- 路由器
- 网络协议
网格结构: 网格的网格
- 比奇堡和小区的网络: 本地网络
- 北京和上海分店 + 比奇堡 : 三个本地网络节点的网络
- 全国通信网络: 本地网络的网格
- 区域网格 城域网 广域网
网络分层
协议
协议的存在依赖于链接
协议定义了俩个或多个通信实体之间交换的报文格式和顺序。 以及报文发送和接收一条报文或其他事件所采取的动作
标头和载荷
HTTP协议示例
链路层 本地帧头部 IP协议头部
运输层 TCP协议头部
应用层 HTTP协议头部
TCP协议格式
小结
- 网络组成部分:由主机、路由器、交换机等组成
- 网络结构:网络的网络
- 信息交换方式:电路交换和分组交换
- 网络分层:分清职责,物理层、链路层、网络层、运输层和应用层
- 网络协议:标头和载荷
WEB中的网络
HTTP协议示例
HTTP连接模型
队头堵塞(head of line blocking)
HTTP1. 1 : 无法多路复用
HTTP2 : 帧
前三个字节:载荷长度
第四个字节 : 类型
第五个字节:类型对应的flags
第六到第九字节:第一位: 保留位; 第2 - 32位 留ID
随后的8192字节 : 载荷
HTTP2 : 帧带来的额外好处
解决多路复用和队头堵塞的问题
- 调整响应传输的优先级
- 头部压缩
- Server push
HTTP2:队头堵塞,但是在TCP上
HTTP2:3 RTT启动
HTTP 3:QUIC
- Quick UDP Internet Connection
- 现存网络设备对TCP和UDP支持已经僵化
- UDP不靠谱但是QUIC靠谱
- QUIC可以为除HTTP协议以外的应用层协议提供支持
HTTP 3:QUIC -1 RTT
QU1C第一次访问
- HTTP客户端:我要和大哥说话!
- QUIC客户端:嗨!服务端,你在吗?在的话能给我把钥匙吗?
- QUC服务端:嗨!客户端,我在,这是你的钥匙!
- HTTP客户端:今天这么快?我要index.html!
- QUC服务端(偷偷地告诉客户端):这还有把钥匙,下次找我可以不用问,直接用
HTTP:QUIC -0 RTT
QUIC第二次访问
- HTTP客户端:我要和大哥说话!
- QUIC客户端:嗨!服务端,你在吗?后面的话我已经用上次你给我的钥匙加密过了,HTTP那小子肯定要index.html!
- QUIC服务端:嗨!客户端,我在,我知道你要index.html,给你!
- HTTP客户端:?
CDN:你无法突破物理极限的(内容交付网络)
CDN : 最多跳俩次
CDN:DNS劫持
- 域名解析一般由网站自己处理
- 要加速的域名则重定向到CDN厂商的域名解析服务处理
- CDN厂商根据来源确定最近的CDN服务器的IP
- 用户直接访问最近的CDN服务器
WebSocket : 升级
HTTP 请求头
HTTP 响应头
WebSocket :发送消息
WebSocket :客户端消息
WebSocket 服务端消息
小结
- HTTP123的演进历史
- CDN解决了HTTP协议之外的问题
- WebSocket从HTTP协议升级而来
网络安全
-
对称加密 加密 解密用同样的密钥
-
非对称加密
- 加密 解密使用不同的迷药(公钥和私钥) 而且公钥加密只能用私钥解密
- 私钥加密只能用公钥解密
数字签名:对明文内容的哈希值使用私钥加密,验证者使用公钥验证 数字签名(指纹)=私钥加密(密码散列函数(原文)) 消息=原文+数字签名
如何实现身份验证
根证书是证书链的尽头 验证的一连串证书称为证书链 分发证书、验证证书的基础设施称为PKI,Public Key Infrastructure 所以想要实现身份验证,通信双方需要先有秘密信息,即根证书中的公钥
网络安全:HTTPS
把HTTP的明文换成密文,再验证身份,即HTTPS。
HTTPS = HTTP + TLS TLS=身份验证+加解密 身份验证靠PKI
服务端身份验证靠PKI,客户端身份验证靠HTTP协议。
小结
- 网络安全三要素:机密性、完整性和身份验证
- 在没有提前交换秘密信息的前提下,无法在不安全的信道交换秘密信息
- PK1保证了普通用户不需要“面对面”和根证书机构交换根证书
- HTPS使用PKI完成了除客户端身份验证以外的特性,客户端身份验证靠 HTTP协议实现