OSI七层协议
应用层:各种应用软件,协议:DNS、FTP、HTTP、SMTP等
表示层:定义数据格式和加密
会话层:控制应用程序的会话能力
传输层:最关键的一层,负责整体的数据传输和数据控制,协议:TCP、UDP等
网络层:负责寻找地址,路由选择,阻塞控制
数据链路层:物理地址寻址、数据的成帧、流量控制等,协议:ARP等
物理层:为上层协议提供了一个传输数据的物理媒体
tcp和udp
tcp三次握手,为什么需要三次
- 确保建立可靠连接
- 避免资源浪费
为了防止已经失效的连接请求报文段突然又传到服务端,因而产生错误
B端收到失效的报文,发出确认报文就会认为新的连接已经建立了,但是A端并没有发出建立连接的请求,因此不会去向B端发送数据,B端没有收到数据就会一直等待,这样B端就会白白浪费掉很多资源
TCP vs UDP
- TCP是面向连接的,可靠性高;UDP是基于非连接的,可靠性低
- 每条TCP连接是点到点的;UDP支持一对一、一对多、多对一、多对多的交互通信
- TCP开销大,UDP开销较小
- TCP是连接的通信,过程复杂,也使其易于攻击;UDP没有建立连接的过程,因而实时性较强,也稍安全
实时性要求高和可靠性要求低,追求效率的情况下使用UDP
传输大量数据且对可靠性要求高的情况下使用TCP
http和https
https主要作用:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性
https加密解密流程(前后端分离项目接口数据加密的秘钥交换逻辑):
RSA非对称加密 RSA算法会生成两个秘钥,一个公钥,一个私钥,使用公钥加密的数据必须使用私钥解密,这样的好处是只有服务器有私钥,其他人无法解密。但是他有个非常致命的弱点,那就是加密内容的长度不能大于秘钥长度,
因为上述的RSA受到秘钥长度的加密限制,我们还需要AES加密,AES的优点是无论明文有多大它都可以加解密。但是缺点是它不区分私钥和公钥,密钥只有一个,任何知道秘钥的人都可以加解密信息
结合使用就可以取长补短,我们可以使用RSA来保护AES的秘钥
区别:
- http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议
- http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
TLS与SSL的差异
TLS使用了称为PRF的伪随机函数来将密钥扩展成数据块,是更安全的方式
TLS还补充定义了很多报警代码