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

51 阅读3分钟

计算机网络概论

计算机网络基础

网络组成部分

  • 主机:客户端和服务端
  • 路由器
  • 网络协议

网络结构:网络的网络

  • 局域网
  • 城域网
  • 广域网

电路交换&分组交换

计算机网络中用的是分组交换

网络分层

  • 应用层
  • 传输层
  • 网络层
  • 链路层
  • 物理层

协议

协议的存在依赖于连接

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

标头和载荷

小结

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

Web中的网络

HTTP连接模型

HTTP1.1:无法多路复用

HTTP2:帧

HTTP2:帧带来的好处
  • 调整响应传输的优先级
  • 头部压缩
  • Server Push
HTTP2:队头堵塞,但是在TCP上
HTTP2:3RTT启动

HTTP3:QUIC

HTTP3:QUIC-1RTT
HTTP3:QUIC-0RTT

CDN

CDN这个技术其实说起来并不复杂,最初的核心理念,就是将内容缓存在终端用户附近

内容源不是远么?那么,我们就在靠近用户的地方,建一个缓存服务器,把远端的内容,复制一份,放在这里,不就OK了?

因为这项技术是把内容进行了分发,所以,它的名字就叫做CDN——Content Delivery Network,内容分发网络

WebSocket

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

小结

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

网络安全

三要素

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

对称加密和非对称加密

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

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

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

机密性

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

完整性和身份验证

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

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

如何实现机密性

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

如何实现完整性

如何实现身份验证

HTTPS

HTTPS = HTTP + TLS

TLS = 身份验证 + 加解密

身份验证靠PKI

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

小结

  • 网络安全三要素:机密性完整性身份验证
  • 在没有提前交换秘密信息的前提下,无法在不安全的信道交换秘密信息
  • PKI保证了普通用户不需要“面对面”和根证书机构交换根证书
  • HTTPS使用PKI完成了除客户端身份验证以外的特性,客户端身份验证靠HTTP协议实现