青训营笔记

71 阅读1分钟

01 前言&课程介绍

1. 通过一个示例建立对计算机网络的整体认识

2. 建立对网络协议分层的认知

3. 分析HTTP1、2、3的关系

4. 介绍CDN运行的基本原则

5. 了解网络安全的最基本原则

分析方法

自底向上

        ·从简单开始,逐渐变复杂

        ·将模块逐步拼凑成一个系统

自顶向下

        ·从复杂开始,逐渐变简单

        ·从复杂的系统问题入手,拆分为模块问题

 

02 蟹堡王帝国

%U5$B678F7P3~GTHT505N%Y.png `70%)RCNY~YHCH7N14[J[7)F.png 32R~TVMAN}3{{%XU1H~M@7H.png

03 计算机网络基础

网络组成部分

  主机:客户端和服务器

  路由器

  网络协议

网络结构:网络的网络

·比奇堡和小区网络:本地网络

·上海和上海分店+比奇堡:三个本地网络节点的网络

·全国通信网络:本地网络的网络

·区域网络、城域网和广域网

电路交换&分组交换

网络分层

{快递员、卡车司机、高速公路}

由低到高:物理层、链路层、网络层、运输层、应用层

协议(协议的存在依赖于连接)

协议定义了在两个或多个通信实体之间交换的报文格式和顺序,以及报文发送和或接受一条报文或其他事件所采取的动作。
IU~H_4(T{6DZM0AP8KUGJN4.png
第一行:

第二行(Lookback)HTTP协议示例:链路层-本地帧头部

第三行 IP层:链路层-IP协议头部

第四行 运输层-TCP协议头部

第五行 HTTP协议层:应用层-HTTP协议头部

报文=链层头+IP协议的头+TCP协议的头+HTTP协议的头
TD3NCZZ)X5}VXH2S5_K04Z6.png

小结

·网络组成部分:由主机、路由器、交换机等组成

·网络结构:网络的网络

·信息交换方式:电路交换和分组交换

·网络分层:分清职责,物理层、链路层、网络层、运输层和应用层

·网络协议:标头和载荷

04 Web中的网络

HTTP协议

第一行    GET/HTTP/1.1  (请求的方法、资源路径、HTTP的版本)

后面     头部名称(不区分大小写):头部的值

响应

第一行(状态行) HTTP/1.1 200 OK  (HTTP版本、状态码、状态信息)

后面     头部名称(不区分大小写):头部的值
W(4F_U8BJP@O(WO2F_3G}M5.png

队头堵塞

当单个(慢)对象阻止其他/后续的对象前进时。
当顺序发送的请求序列中的一个请求因为某种原因被阻塞时,在后面排队的所有请求也一并被阻塞,会导致客户端迟迟收不到数据。

HTTP 2:帧带来的额外好处

·调整响应传输的优先级
·头部压缩
·Server Push
DK(]MFN_OPBJ%LJF90V3P36.png 4F34P2P@QEYXY~F7Q4`()JM.png DSP$_]7QX3W]4YAOF5P%UL2.png 1JYJEZCV8`%%`C2HT4E%)KF.png @JZUHD7~DA{7%$BTK3~9C`7.png

CDN:DNS劫持

·域名解析一般由网站自己处理

·要加速的域名则重定向到CDN厂商的域名解析服务处理

·CDN厂商根据来源确定最近的CDN服务器的IP

·用户直接访问最近的CDN服务器

WebSocket

·有状态的持久连接

·服务端可以主动推送消息

·用WebSocket发送消息延迟比HTTP低

小结

·HTTP 1 2 3 的演变历史

·CDN解决了HTTP协议之外的问题

·WebSocket从HTTP协议升级而来

05 网络安全

网络完全:三要素

 ·机密性:攻击者无法获知通信内容
 
 ·完整性:攻击者对内容进行篡改能被发现
 
 ·身份验证:攻击者无法伪装成通信双方的任意一方与另一方通信
 

网络安全:对称加密和非对称加密

 ·对称加密:加密、解密用同样的密钥
 
 ·非对称加密:加密、解密使用不同的密钥(公钥和私钥),而且公钥加密只能用私钥加密、私钥加密只能用公钥解密
 

网络安全:密码散列函数(哈希函数)

  ·输入:任意长度的内容
  
  ·输出:固定长度的哈希值
  
  ·性质:找到两个不同的输入使之经过密码散列函数后有相同的哈希值,在计算上是不可能的

网络安全:机密性

  ·加密需要加密算法和密钥等信息(统称为秘密信息)
  
  ·网络是明文的,不安全
  

网络安全:完整性和身份验证

   完整性和身份证验证相互关联
   

网络安全:如何实现机密性

  ·已知:网络是明文的
  
  ·如果双方可以通过明文通信商量出秘密信息,那么攻击者也可以
  
  ·所以想要通过明文通信交换秘密信息,通信双方需要先有秘密信息
  
HKP[6P22)OF8W5YDBH@(@H0.png YF[V%ITF)ARXU7UWM_HV$LK.png D3H$F7UR)RI7~(UHULF3_75.png BCI@)_2VG3Y(JGDGXRKM]X9.png

网络安全:HTTPS

把HTTP的明文换成密文,再验证身份,即HTTPS

HTTPS=HTTP + TLS

TLS=身份验证 + 加解密

身份验证靠PKI

服务端身份验证靠PKI,客户端身份验证靠HTTP协议

小结

 ·网络安全三要素:机密性、完整性和身份验证
 
 ·在没有提前交换秘密信息的前提下,无法在不安全的信通交换秘密信息
 
 ·PKI保证了普通用户不需要“面对面”和根证书机构交换根证书
 
 ·HTTPS使用PKI完成了除客户端身份验证以外的特性,客户端身份验证靠HTTP协议实现