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

102 阅读5分钟

计算机网络概论:通过蟹堡王了解计算机网络的运行机制

Date: April 13, 2023


课程介绍:

可以对着最后的思维导图梳理其中的重点知识

课程目标:

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

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

分析 HTTP 1、2、3的关系

介绍CDN 运行的基本原理

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



分析方法:

自底向上:

  • 从简单开始,逐渐变复杂
  • 将模块逐步拼凑成一个系统

自顶向下:

  • 从复杂开始,逐渐变简单
  • 从复杂的系统问题入手,拆分为模块问题



蟹堡王帝国:




计算机网络基础:

基础小结:

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

网络结构:网络的网络(区域网络→城域网→广域网)

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

电路交换特点:预先设定线路;专线占用,他人不能用;稳定性好

分组交换:不需要预先设定网络;不用专线占用;稳定性不比电路交换

网络分层:分清职责,降低成本。 物理层、链路层、网络层、运输层和应用层

网络协议:协议 与 标头和载荷

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

标头:包含原地址、目的地址等

载荷:需要运输的信息




Web中的网络:

HTTP协议:

image.png

HTTP 2: 帧

image.png 解决多路复用

总结:HTTP2 解决多路复用问题



小结:

HTTP123的演进历史

CDN解決了 HTTP 协议之外的问题

WebSocket 从 HTTP 协议升级而来




网络安全:

网络安全:三要素

机密性:攻击者无法获知通信内容

完整性:攻击者对内容进行篡改时能被发现

身份验证:攻击者无法伪装成通信双方的任意一方与另一方通信



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

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

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



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

输入:任意长度的内容

输出:固定长度的哈希值

性质:找到两个不同的输入使之经过密码散列西数后有相同的哈希值,在计算上是不可能的



网络安全:机密性

加密需要加密算法和密钥等信息(统称为秘密信息)

网络是明文的,不安全



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

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

  • 蟹老板向银行发起了转账请求
  • 银行需要确认
  • 这个请求真的是蟹老板发起的
  • 目标账户和转账金额没有被篡改


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

已知:网络是明文的

如果双方可以通过明文通信商量出秘密信息,那么攻击者也可以

所以想要通过明文通信交换秘密信息,通信双方需要先有秘密信息



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

密码散列函数性质:找到两个不同的输入使之经过密码散列函数后有相同的哈希值,在计算上是不可能的

有明文m,密码散列函数H

计算H(m)获得哈希值h

将 m 和 h 组合成新信息 m+h

接收方拆分 m + h,重新计算 H(m)得h‘,对比h'和h

有明文m,密码散列函数H,以及一个密钥s

计算H(m +s) 获得哈希值h

将m 和h组合成新信息m+h

接收方拆分 m十h,重新计算 H(m十s)得h,对比h'和h

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

**总结:**通过哈希算法来对信息进行加密



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

签名:用于鉴别身份和防止伪造

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

蟹老板用自己的私钥对信件进行加密,并发送给海绵宝宝

海绵宝宝使用蟹老板的公钥进行解密,获得原文

保证了机密性、完整性和身份验证

数字签名:对明文内容的哈希值使用私钥加密,验证者使用公钥验证

数字签名(指纹)二私钥加密(密码散列函数(原文))

消息=原文+数字签名

一般用于对公开内容(如包含公钥的证书)进行数字签名,防止篡改

可信的人验证蟹老板的公钥

那谁验证可信的人的公钥?

根证书是证书链的尽头

验证的一连串证书称为证书链

分发证书、验证证书的基础设施称为 PKI, Public Key Infrastructure

所以想要实现身份验证,通信双方需要先有秘密信息,即根证书中的公钥



网络安全:HTTPS

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

HTTPS = HTTP + TLS

TLS = 身份验证 +加解密

身份验证靠 PKI

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



小结:

网络安全三要素:机密性、完整性和身份验证

在没有提前交换秘密信息的前提下,无法在不安全的信道交换秘密信息

PKI 保证了普通用户不需要“面对面”和根证书机构交换根证书

HTTPS 使用 PK1 完成了除客户端身份验证以外的特性,客户端身份验证靠HTTP 协议实现




课程总结:

image.png