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

179 阅读4分钟

计算机网络概论

网络结构

ISP(Internet service provider) 网络服务提供商

网络组成部分:

  • 主机(客户端、服务端):接收或提供信息
  • 路由器:转发主机之间的消息
  • 网络协议:定义统一格式,方便路由器和主机编码和解码
  • 交换机......

计算机网络分类:局域网、城域网、广域网

信息交换方式: 电路交换:需要建立电路连接,资源被占,则需要排队。 分组交换:不会建立电路连接,不会预留资源和带宽,按顺序输出。(报文)

网络分层(分清职责): 应用层、运输层、网络层、数据链路层、物理层

image.png

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

协议的存在依赖于连接。

TCP / UDP

image.png

HTTP1 / HTTP2 / HTTP3(QUIC)

请求头: 请求方法 路径 协议版本

响应头: 协议版本 状态码

image.png

HTTP1 HTTP1.1

image.png

HTTP1.1 缺点:无法多路复用。

HTTP2

使用帧传输。 好处:多路复用、解决队头堵塞、调整相应传输的优先级、头部压缩、Server Push。

帧的格式: image.png

image.png

HTTP3 QUIC

Quick UDP internet connection。(丢包重传、顺序发送)

出现的原因:因为HTTP2不够快。

现存网络设备对TCP和UDP支持已经僵化,UDP不靠谱但是QUIC靠谱,QUIC可以为除HTTP协议以外的应用层协议提供支持。

image.png

同一个客户端再次请求时:

image.png

WebSocket

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

由HTTP协议升级而来,在建立HTTP连接之后,再协商使用Websocket进行通信。

CDN

CDN解决HTTP协议之外的问题。

HTTP3再快,也有无法突破的物理极限、重复发送同一数据、只有一台服务器流量如何承载。

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

每隔一段时间,会清除一部分数据。

拉策略:现场去获取数据。 推策略:先存着,用的时候直接发。 image.png

安全(SSL / TLS / 基础密码学)

网络安全三要素:

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

加密方式:

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

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

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

完整性和身份验证(数字签名)。

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

根证书是证书链的尽头,验证的一连串证书称为证书链,分发证书、验证证书的基础设施称为PKI,Public Key Infrastructure,所以想要实现身份验证、通信双方需要先有秘密信息,即根证书中的公钥。

查看路径:【🔒】→【连接是安全的】→【证书有效】 image.png

HTTPS

HTTPS = HTTP + TLS

TLS = 身份验证 + 加解密

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

起初HTTP在传输数据时使用的是明文,是不安全的。为了解决这个隐患,网景(Netscap)公司推出了SSL。而越来越多的人也开始使用HTTPS(HTTP+SSL)。

SSL(Secure Socket Layer)安全套接层是Netscape公司率先采用的网络安全协议。它是在传输通信协议(TCP/IP)上实现的一种安全协议,采用公开密钥技术。SSL广泛支持各种类型的网络,同时提供三种基本的安全服务,它们都使用公开密钥技术。 SSL(Secure Socket Layer 安全套接层)是TCP/IP协议中基于HTTP之下,TCP之上的一个可选协议层。

HTTPS的推出受到了很多人的欢迎,在SSL更新到3.0时, 互联网工程任务组(IETF)对SSL3.0进行了标准化,并添加了少数机制,并将其更名为TLS1.0(Transport Layer Security 安全传输层协议。

参考资料