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

84 阅读5分钟

**网络组成部分:

1.主机(负责提供信息或接受信息):客户端和服务端

2.路由器(负责转发主机之间的信息)

3.网络协议(负责统一的格式,方便主机或路由器对信息进行编码和解码)

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

**信息交换方式:电路交换、分组交换

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

**计算机网络分五层(分清职责)(从低到高): 物理层、内容层、网络层、运输层、应用层

**网络协议:标头和载荷(每一层都会将上一层的标头和载荷视为自己的载荷,并添加新的标头

   协议的存在依赖于连接

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

   报文=应用层头+IP协议的头++TCP协议的头+HTTP协议的头+HTTP的正文

**HTTP 1.1:无法多路复用

**HTTP 2:帧(将多个HTTP的请求拆分到帧里,每个帧可以收到来自不同HTTP中的数据,(注意:与链路层的帧不同),组织一条TCP上流数据的传统方式,让HTTP在连接上每个数据包都有自己的身份,即标识每个数据包属于哪个请求)

      好处:1.可以实现多路复用
           2.调整响应的优先级
           3.Serve Push
      坏处:队头堵塞,但在TCP上

HTTP 2: 3 RTT启动

**HTTP 3: QUIC(将TUS作为自身的一部分。吸取了HTTP 2 中流的概念,在QUIC中提供互相独立的流,解决队头堵塞问题。同时引入新的机制,可以首次实现连接1 RTT后续实现连接0 RTT的特性) 现存网络设备对TCP和UDP支持已经僵化 UDP不靠谱但是QUIC靠谱 QUIC可以为除HTTP协议以外的应用层协议提供支持

**CDN(解决了HTTP协议之外的问题):

     1.无法突破物理极限
     2.最多跳两次
     3. DNS劫持:域名解析一般由网络自己处理
                要加速的域名则重定向到CDN厂商的域名解析服务处理
                CDN厂商根据来源确定最近的CDN服务器的IP
                用户直接访问最近的CDN服务器
    拉策略:用户需要该地区服务器发现并没有拷贝,则向总服务器发出请求,则发送给用户并地区服务器拷贝一份,过一段时间会根据策略清除部分拷贝
    推策略:地区服务器将大部分用户的需求先拷贝,后续清除不太常用的拷贝

**Websocket的运用不用关心其连接,不用关心如何创建一个可以升级的HTTP连接,只用关心来自服务端的消息以及根据自己的需要给服务端发送的消息,从HTTP协议升级而来,即建立WebSocket要先使用HTTP协议,在HTTP建立的基础上,双方进行协商后,运用WebSocket:有状态的持久连接

服务器可以主动推送消息

用WebSocket发送消息延迟比HTTP低

**网络安全三要素:

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

**网络安全:

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

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

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

经过哈希函数后,任意长度的原始输入都会变成固定的长度的输出,原始输入中所包含的数据已经丢失了,从一个哈希值是不可能推出输入的

**网络安全:机密性

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

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

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

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

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

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

密码散列函数性质:找到两个不同的输入使之经过密码散列函数后有相同的哈希值,在计算上是不可能的
网络安全:如何实现身份验证
签名:用于鉴别身份和防止伪造
数字签名:对明文内容的哈希值使用私钥加密,验证者使用公钥验证
数字签名(指纹)= 私钥加密(密码散列函数(原文))
消息 = 原文 + 数字签名
一般用于对公开内容(如包含公钥的证书)进行数字签名,防止篡改

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

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

**网络安全:HTTPS

把HTTP的明文换成密文,再验证身份,即HTTPS
HTTPS= HTTP+TLS
TLS=身份验证+加解密
身份验证靠PKI
服务器身份验证靠PKI,客户端身份验证靠HTTP协议
PKI保证了普通用户不需要“面对面”和根证书机构交换根证书
HTTPS使用PKI完成了除客户端身份验证以外的特性,客户端身份验证靠HTTP协议完成