计算机网络概论 | 青训营笔记

80 阅读4分钟

计算机网络概论|青训营笔记

1.前言和课程介绍

课程目标和收益

建立对计算机网络的整体认知,对计算机网络中的各种概念(网络分层、网络协议、网络应用等)有初步的理解。 进而可以在后续的实际工作中可以高效解决网络问题。

课程介绍

  • 通过一个示例建立对计算机网络的整体认识
  • 建立对网络协议分层的认知
  • 分析HTTP1、2、3的关系
  • 介绍CDN运行的基本原理
  • 了解网络安全的最基本原则

分析方法

  1. 自底向上:简单开始,逐渐变复杂;将模块逐步拼凑成一个系统。
  2. 自顶向下:从复杂开始,逐渐变简单;从复杂问题入手,拆分为模块问题。

2.蟹堡王帝国

为了实现蟹老板的“小目标”,作为军师的我,实施了三步走战略

三步走战略

  1. 在比奇堡开通外卖
  2. 在北京和上海开分店
  3. 在全国开分店并开通外卖

蟹堡王外卖

  • 点餐的人是谁 点的什么餐 送餐目的地
  • 点餐开始是通过电话通信,每个人大约一分钟
  • 在经过珊迪的努力后,使用传真通信,提高了效率

在北京和上海开通分店

  • 北京蟹堡王分店
  • 上海科技蟹堡王
  • 确定通信线路
  • 赚钱额度
  • 原料数量
  • 是否需要新的分店
  • 促销信息

新的分店

  • 新开的分店为:中航、紫金、大钟寺
  • 为了解决通信问题,将上面新开的三个分店连接到北京蟹堡王分店
  • 转发表格如下:

image.png

image.png

杭州蟹堡王

  • 建设杭州到上海的通信线路

蟹堡王外卖

  • 考虑居民住房情况和分店密集问题
  • 设置一些城市为转发点

小结

  • 蟹堡王顾客——>客服端
  • 蟹堡王分店——>服务端
  • 小区转发点和蟹堡王城市转发分店——>路由器
  • 转发表格——>网络协议

蟹堡王外卖拓扑图

image.png

3.计算机网络基础

网络组成部分

  • 主机:客户端和服务端(提供信息和接受信息)
  • 路由器(转发主机之间的信息)
  • 网络协议(提供统一的格式)

网络结构就是网络的网络

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

  • 传真可以看作是分组交换
  • 计网中采用的都是分组交换

网络分层

协议

  • 协议的存在依赖于连接
  • 协议定义了在两个或多个通信实体之间交换的报文格式和顺序,以及报文发送和/或接受一条报文或其他事件所采取的动作。

标头和载荷(用快递类比)

  • 快递面单类似于标头
  • 包裹内东西类似于载荷

HTTP协议示例

  • 链路层-本地帧头部
  • 链路层-IP协议头部
  • 运输层-TCP协议头部
  • 应用层-HTTP协议头部

TCP协议格式

image.png

小结

image.png

4.Web中的网络

  • HTTP 1.1 :无法多路复用

image.png

  • HTTP 2 :帧

image.png

image.png

  • HTTP 2:帧带来的额外好处
  1. 调整响应传输的优先级
  2. 头部压缩
  3. Server Push
  • HTTP 2:队头堵塞,但是在TCp上
  • HTTP 2:3RTT启动
  • HTTP 3 :QUIC
  • HTTP 3:QUIC-1 RTT
  • HTTP 3:QUIC-0 RTT

CDN

  • CDN劫持:

image.png

WebSocket

  • 有状态的持久连接
  • 服务端可以主动推送消息
  • 用WebSocket发送消息延迟比HTTP低
  • WebSocket示例:
  1. 服务端代码:

image.png

  1. 客户端代码:

image.png

小结

  • HTTP 1 2 3 的演进历史
  • CDN解决HTTP协议之外的问题
  • WebSocket从HTTP协议升级而来

5.网络安全

  • 网络安全三要素
  1. 机密性
  2. 完整性
  3. 身份验证
  • 网络安全:对称加密和非对称加密
  • 网络安全:密码三列函数(哈希函数)
  • 网络安全:如何实现机密性:
  1. 已知:网络是文明的
  2. 如果双方可以通过明文通信商量出秘密信息,那么攻击者也可以
  3. 所以想要通过明文通信交换秘密信息,通信双方需要先有秘密通信
  • 如何实现完整性
  1. 找到两个不同的输入使之经过密码散列函数后有相同的哈希值,在计算上是不可能的
  2. 通信双方需要先有秘密信息
  • 如何实现身份验证
  1. 通信双方需要先有秘密信息,即根证书中的公钥
  • 小结

image.png