第一天的计算机基础|青训营笔记

136 阅读6分钟

第一讲:计算机网络概论

01前沿&课程介绍

方法:

  • 自底向上:从简单开始逐渐变复杂,将模块逐步拼凑成一个系统(从底层基础开始)
  • 自顶向下:从复杂开始逐渐变简单,从复杂的系统问题入手,拆分为模块问题(从实际需求开始向下解释)

02蟹堡王帝国

小目标:蟹老板想赚一个“小目标”

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

随着分店建设的还有通信网络(信息传递)

  1. 在比奇堡开通外卖:

问题:信息处理不及时,经过统计出现3个重点问题:(谁吃,吃什么,送到哪)

谁吃派大星
吃什么百事可乐
送到哪石头屋

当有传真之后解决了信息处理问题

  1. 北京和上海分店

通过通信线路(分店-比奇堡)获取信息,目前出现两家分店

更多分店通信线路(更多分店-分店-比奇堡)分店承担了转化功能

来自中行蟹堡王
发往比奇堡蟹堡王
信息今日销售1000000个百事可乐

外卖问题:如果每个人都拉一条到分店的线就要很多钱,所以就把每个小区设置一个点,每个人拉到小区点上

类比:

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

03计算机网络基础

1.网络组成部分

主机:客户端和服务端(提供信息或接受信息)

路由器(转发主机之间的信息)

网络协议(提供统一的格式,方便路由器或主机对信息进行解码和编码)

2.网络结构:网络的网络

  • 比奇堡和小区网络:本地网络
  • 上海和北京分店+比奇堡:三个本地网络节点的网络
  • 全国通信网络:本地网络的网络
  • 区域网络、城域网和广域网

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

3.网络分层

  • 快递员不关心包裹内容
  • 卡车司机不关心车厢里拉什么
  • 高速公路不关心开的什么车

4.协议

协议的存在依赖于链接

协议定义了在两个或多个通信实体之间交换的报文格式和顺序,以及报文发送和/或接受一条报文火其他时间所采取的动作

Null/Loopback#帧是本机,源地址和目标地址都是本机

5.TCP协议格式

小结

  • 网络组成部分:由主机、路由器、交换机等组成
  • 网络结构:网络的网络
  • 信息交换方式:电路交换和分组交换
  • 网络分层:分清职责,物理层、链路层、网络层、运输层和应用层
  • 网络协议:标头和载荷

真正的载荷是最后几个字节

04Web中的网络

红色的是请求,蓝色的是响应

http模型:请求、响应模型(网络利用率不高,无法在一条请求中插入另一种请求)

http1:请求、响应,无法多路复用

http2:帧

http2帧带来的额外好处:

  • 调整相应传输的优先级
  • 头部压缩
  • Server Push

http2:队头堵塞,但是在TCP上

http3:QUIC

UDP不管丢包

QUIC比较靠谱

QUIC第二次可以化简流程

服务器可以成熟的流量是有限的

CDN:

CDN最多跳两次

CDN:DNS劫持

  • 域名解析一般有网站自己处理
  • 要加速的域名则重定向到CDN厂商的域名解析服务处理
  • CDN厂商根据来源确定最近的CDN服务器的IP
  • 用户直接访问最近的CDN服务器

大型站点使用策略:只在CDN服务器上维护部分内容,但是这部分内容满足大部分用户需求

  1. 拉策略
  • 默认情况下什么都不做
  • 谁需要了先看仓库有没有
  • 有就直接给
  • 没有就等着去弄
  • 隔几天:丢掉弄来的

2.推策略

  • 给指令今天存这些,明天存那些
  • 谁需要先看仓库有没有
  • 有就直接给
  • 没有就现去弄
  • 然后给指令删除部分

WebSocket

有状态的持久链接

服务端可以主动推送信息

延迟比HTTP低

05网络安全

三要素:

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

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

对称加密:加密、解密用同样的密钥

非对称加密:加密、解密使用不同的密钥(公钥和私钥),公钥加密只能用私钥解密,反之相同

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

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

网络安全:机密性

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

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

  • 已知:网络是明文的
  • 如果双方可以通过铭文信息商量出秘密信息,那么攻击者也可以
  • 所以如果想要通过明文通信交换秘密信息,通信双方需要先有秘密信息

网络安全:如何实现完整性

  • 密码散列函数性质:找到两个不同的输入使之经过密码散列函数后有相同的哈希值,在计算上是不可能的
  • 有明文m,密码散列函数H
  • 计算H(m)获得哈希值h
  • 将m和h组合成新信息m+h
  • 接收方拆分m+h,重新计算H(m)得h‘,对比h’和h

所以如果有一个密钥s

想要实现完整性,通信双方需要先有秘密信息

网络安全:如何实现身份验证

  • 签名:用于鉴别身份和防止伪造
  • 非对称加密性质:加密、解密使用不同的密钥(公钥和私钥),而且公钥加密只能用私钥解密、私钥加密只能用公钥解密
  • 保证了机密性、完整性和身份验证
  • 数字签名:对明文内容的哈希值使用私钥加密,验证者使用公钥验证
  • 数字签名(指纹)=私钥加密(密码散列函数(原文))
  • 信息=原文+数字签名
  • 一般用于对公开内容(如包含公钥的证书)进行数字签名,防止篡改
  • 可信的人验证发信人的公钥
  • 谁验证颗心的人的公钥?
  • 根证书是证书链的尽头
  • 验证的一连串证书成为证书链
  • 分发证书、验证证书的基础设施成为PKI
  • 所以想要实现身份验证,通信双方需要先有秘密信息,即根证书中的公钥

网络安全:HTTPS

把HTTP的明文换成蜜文,在验证身份,即HTTPS

HTTPS=HTTP+TLS

TLS=身份验证+加解密

身份验证考PKL

服务端身份验证考PKLI,客户端身份验证考HTTP协议!