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

37 阅读5分钟

第一天 计算机网络概率

学习目标

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

一、“蟹堡王帝国”

通过对“蟹堡王帝国”例子的分析,自底向上了解计算机网络。

一共完成三个目标:
  1. 比奇堡外卖;
  2. 北京和上海分店;
  3. 全国分店和网络通信。

在该例子中:

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

二、网络基础

  • 网络组成部分:主机、路由器、交换机等组成
  • 网络结构:网络的网络
  • 信息交换方式:电路交换和分组交换

其中: 电路交换

电路交换需要建立一条专用的数据通信路径,这条路径上可能包含许多中间节点。
这条通信路径在整个通信过程中将被独占,直到通信结束才会释放资源。
电路交换适合实时性要求较高的大量数据传输的情况。

电路交换的优点主要包括以下几个方面:

-   通信时延小。通信双方通过专用线路进行通信,数据可以直达。当数据传输量较大时,优点将十分显著。
-   线路独占,没有冲突。
-   实时性强。一旦通信线路建立,双方可以实时通信。

电路交换的缺点主要包括以下几个方面:

-   线路独占,利用率太低。
-   连接建立时间过长。``

分组交换

分组交换是将大的数据块分割成小的分组,并添加源地址、目的地址和分组编号等信息。

分组交换的优点主要包括以下几个方面:

-   无需建立连接。
-   线路利用率高。
-   相对报文交换,分组长度固定,缓冲区容易管理。
-   分组比报文小,因此传输时间更短。

分组交换的缺点主要包括以下几个方面:

-   仍然存在时延。
-   需要传输包括源地址、目的地址、分组编号等额外信息。
-   分组可能遇到失序、丢失、重复等问题。

分组交换还可以进一步细分为数据报方式和虚电路方式。 
数据包为网络层提供无连接服务,不同分组到达目的节点可能会乱序、重复或丢失。
分组在交换节点时,可能会带来一定的时延。数据报方式适用于突发性通信,不适合长报文、会话式通信。 
虚电路方式将数据报方式与电路交换结合,发挥两者优点。
虚电路在源节点和目的节点建立一条逻辑链路,
与电路交换不同的地方在于虚电路并不是独占链路资源的。虚电路方式避免了分组的乱序、重复和丢失等问题。
  • 网络分层:分清职责,物理层,链路层,网络层,运输层和应用层
  • 网络协议:标头和载荷:标头类似于门牌号,载荷为房间内容

三、Web中的网络

HTTP协议

image.png

HTTP1的不足: 无法多路复用

HTTP2的帧带来的额外好处:

  1. 调整响应传输的优先级
  2. 头部压缩
  3. Server Push

不足:

  1. TCP队头堵塞

HTTP3:QUIC: Quick UDP Internet Connection

image.png

需要突破的限制:

  1. 受物理距离限制
  2. 价格昂贵
  3. 能够承载的流量有限

解决方法:CDN

DNS劫持:

image.png

选择CDN时,要选择节点少的线路

一般策略:

拉策略:

用户决定CDN时长拷贝

推策略

网站决定CDN时长拷贝

WebSocket

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

WebSocket是HTTTP的升级

四、网络安全

网络安全三要素

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

对称加密和非对称加密

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

密码散列函数(哈希函数)

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

机密性

  • 秘密信息(最重要):加密算法、密钥等信息
  • 在不安全的信道里交换信息

完整性和身份验证

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

如何实现机密性

  • 想要通过明文通信交换秘密信息,双方必须先有秘密信息

如何实现完整性

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

如何实现身份验证

  • 数字签名技术:对明文内容的哈希值使用私钥加密,验证者用公钥验证
  • 性质:可鉴别、不可伪造
  • 根证书:证书链的尽头
  • 分发证书、验证证书的基础设施:PKI
  • 所以想要实现身份验证,通信双方需要有秘密信息,即根证书中的公钥。

证书链实例

image.png

HTTPS

  • 把HTTP的明文换成密文再验证身份,即HTTPS
  • HTTPS=HTTP+TLS
  • TLS=身份验证+加解密
  • 身份验证考PKI

服务端身份验证靠PKI,客户端身份验证靠HTTPS

五、思维导图

image.png

六、参考资料

image.png