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

105 阅读4分钟

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

一、分析复杂系统的方法

自底向上

  • 从简单开始,逐渐变复杂
  • 将模块逐步拼凑成一个系统 用于构建对计算机网络的认知

自顶向下

  • 从复杂开始,逐渐变简单
  • 从复杂的系统问题入手,拆分为模块问题 用于解释现存网络协议的特性、工作原理

二、蟹堡王帝国

小区建立中转,通过中转与分店联系;分店也建立中转,通过中转与总店联系;(通信网络) 传真机->计算机 转换点->路由器 分店厨房->服务器 表格->网络协议

三、计算机网络基础

网络组成部分

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

网络结构:网络的网络

小区组成一个本地网络(区域网络),每个分店与转发点城市组成城市间的网络(城域网),城域网组成的网络叫广域网

信息交换方式

电路交换:一对一,会占线;占用带宽 分组交换:不会建立电路连接,不会预留资源

网络分层

  • 下层对上层为黑盒,每层无需关心下一层的问题
  • 分清各层职责,减低使用成本
  • 物理层、链路层、网络层、运输层和应用层

协议(标头和载荷)

  • 协议的存在依赖于连接(没有连接无论是限制什么格式都没有意义)
  • 协议定义了通信实体之间交换的报文格式和顺序,以及报文发送或接收所采取的动作
  • 每一层都会把上一层的标头作为载荷,然后添加自己的标头

示例

image.png

  • 链路层-本地帧头部(图片第二行)
  • 链路层-IP协议头部(图片第三行)
  • 运输层-TCP协议头部(图片第四行)
  • 应用层-HTTP协议头部(图片第五行)

TCP协议格式

image.png

四、web中的网络

HTTP协议

image.png

HTTP连接模型

image.png

五、网络安全

三要素

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

身份验证

PKI(服务端)

公开密钥基础设施 Public Key Infrastructure(PKI)

1、核心

PKI的主要目的是用来发行“身份证明书”,网络上因为大家不能见面,所以伪造身份是非常容易的事情。通过验证对方的证书就能确保对方是自己想通信的人,因此需要一个发证书的人确保证书的客观性

2、要素

  • 证明书
  • 认证机关
  • 证书库

3、加密

实现验证的同时也进行了加密。但双方验证了对方的证书之后,用对方证书上的密钥给想发的信息加密,这样只有对方能解密。

4、公开密钥、私有密钥

证书上的密钥是所有获得证书的人都可以知道的,即公开密钥。相对的,本人保管的密钥就是私有密钥。

5、证书可信度

证书其实本质也是一份文件,也可能被假造。比如你想和a聊天,我伪造了a的证书,把我的公钥给你,那你发给a的信息就只有我能解密。 所以认证机关就至关重要了,认证机关的可信度,直接与证书的可信度挂钩,也就是与整个PKI机制的可信度息息相关。

6、证书透明 Certificate Transparency

认证机构发布证书前先在日志服务器报备,并将日志服务器返回的SCT数据加到证书上。拿到证书的时候相比于之前要多一步先日志服务器验证的步骤。相当于在证书之上进行套娃,再加一层验证。

但日志会不会也有问题呢,那我们难道又要在此之上再套一层验证?经过了解发现日志服务采用了默克尔树

默克尔树 日志服务采用默克尔树防止篡改。在默克尔树中对记录进行排列,计算哈希值。然后将相邻哈希值组合计算出新的哈希值,如此往复最终只剩一个哈希值(根哈希)。如果日志被篡改,那么根哈希一定会发生改变(哈希函数碰撞)。所以只需要监督根哈希就可以确保日志没被篡改。

HTTPS(客户端)

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

HTTPS = HTTP + TLS

TLS = 身份验证 + 加解密