计算机网络概论|青训营笔记
1.前言和课程介绍
课程目标和收益
建立对计算机网络的整体认知,对计算机网络中的各种概念(网络分层、网络协议、网络应用等)有初步的理解。 进而可以在后续的实际工作中可以高效解决网络问题。
课程介绍
- 通过一个示例建立对计算机网络的整体认识
- 建立对网络协议分层的认知
- 分析HTTP1、2、3的关系
- 介绍CDN运行的基本原理
- 了解网络安全的最基本原则
分析方法
- 自底向上:简单开始,逐渐变复杂;将模块逐步拼凑成一个系统。
- 自顶向下:从复杂开始,逐渐变简单;从复杂问题入手,拆分为模块问题。
2.蟹堡王帝国
为了实现蟹老板的“小目标”,作为军师的我,实施了三步走战略
三步走战略
- 在比奇堡开通外卖
- 在北京和上海开分店
- 在全国开分店并开通外卖
蟹堡王外卖
- 点餐的人是谁 点的什么餐 送餐目的地
- 点餐开始是通过电话通信,每个人大约一分钟
- 在经过珊迪的努力后,使用传真通信,提高了效率
在北京和上海开通分店
- 北京蟹堡王分店
- 上海科技蟹堡王
- 确定通信线路
- 赚钱额度
- 原料数量
- 是否需要新的分店
- 促销信息
新的分店
- 新开的分店为:中航、紫金、大钟寺
- 为了解决通信问题,将上面新开的三个分店连接到北京蟹堡王分店
- 转发表格如下:
杭州蟹堡王
- 建设杭州到上海的通信线路
蟹堡王外卖
- 考虑居民住房情况和分店密集问题
- 设置一些城市为转发点
小结
- 蟹堡王顾客——>客服端
- 蟹堡王分店——>服务端
- 小区转发点和蟹堡王城市转发分店——>路由器
- 转发表格——>网络协议
蟹堡王外卖拓扑图
3.计算机网络基础
网络组成部分
- 主机:客户端和服务端(提供信息和接受信息)
- 路由器(转发主机之间的信息)
- 网络协议(提供统一的格式)
网络结构就是网络的网络
信息交换方式:电路交换和分组交换
- 传真可以看作是分组交换
- 计网中采用的都是分组交换
网络分层
协议
- 协议的存在依赖于连接
- 协议定义了在两个或多个通信实体之间交换的报文格式和顺序,以及报文发送和/或接受一条报文或其他事件所采取的动作。
标头和载荷(用快递类比)
- 快递面单类似于标头
- 包裹内东西类似于载荷
HTTP协议示例
- 链路层-本地帧头部
- 链路层-IP协议头部
- 运输层-TCP协议头部
- 应用层-HTTP协议头部
TCP协议格式
小结
4.Web中的网络
- HTTP 1.1 :无法多路复用
- HTTP 2 :帧
- HTTP 2:帧带来的额外好处
- 调整响应传输的优先级
- 头部压缩
- Server Push
- HTTP 2:队头堵塞,但是在TCp上
- HTTP 2:3RTT启动
- HTTP 3 :QUIC
- HTTP 3:QUIC-1 RTT
- HTTP 3:QUIC-0 RTT
CDN
- CDN劫持:
WebSocket
- 有状态的持久连接
- 服务端可以主动推送消息
- 用WebSocket发送消息延迟比HTTP低
- WebSocket示例:
- 服务端代码:
- 客户端代码:
小结
- HTTP 1 2 3 的演进历史
- CDN解决HTTP协议之外的问题
- WebSocket从HTTP协议升级而来
5.网络安全
- 网络安全三要素
- 机密性
- 完整性
- 身份验证
- 网络安全:对称加密和非对称加密
- 网络安全:密码三列函数(哈希函数)
- 网络安全:如何实现机密性:
- 已知:网络是文明的
- 如果双方可以通过明文通信商量出秘密信息,那么攻击者也可以
- 所以想要通过明文通信交换秘密信息,通信双方需要先有秘密通信
- 如何实现完整性
- 找到两个不同的输入使之经过密码散列函数后有相同的哈希值,在计算上是不可能的
- 通信双方需要先有秘密信息
- 如何实现身份验证
- 通信双方需要先有秘密信息,即根证书中的公钥
- 小结