1、OSI:
早期的互联网模型:开放系统互联(Open System Interconnection),国际标准化组织(ISO)制定了OSI模型,该模型定义了不同计算机互联的标准,是设计和描述计算机网络通信的基本框架。OSI模型把网络通信的工作分为7层,分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。现在的模型是TCP/IP 5层模型,与7层模型的对应关系如下:
每层分别有相应的规范与协议:
2、TCP的三次握手与四次挥手
第一次握手:客户端尝试连接服务器,向服务器发送 syn 包(同步序列编号Synchronize Sequence Numbers),syn=j,客户端进入 SYN_SEND 状态等待服务器确认。 第二次握手:服务器接收客户端syn包并确认(ack=j+1),同时向客户端发送一个 SYN包(syn=k),即 SYN+ACK 包,此时服务器进入 SYN_RECV 状态。 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
(1) TCP客户端发送一个FIN,用来关闭客户到服务器的数据传送。 (2) 服务器收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号。 (3) 服务器关闭客户端的连接,发送一个FIN给客户端。 (4) 客户端发回ACK报文确认,并将确认序号设置为收到序号加1。
3、Http与Https协议
最明显的区别:是HTTP与SSL协议的组合体 1、HTTPS是加密传输协议,HTTP是明文传输协议 2、HTTPS标准端口443,HTTP标准端口80; 3、HTTP 页面响应速度比 HTTPS 快,主要是因为 HTTP 使用 TCP 三次握手建立连接,客户端和服务器需要交换 3 个包,而 HTTPS除了 TCP 的三个包,还要加上 ssl 握手需要的 9 个包,所以一共是 12 个包。 HTTPS的不足之处: 建立https需要花费时间(~0.3s)数据需要加密和解密,占用更多的cpu数据加密后比原信息更大,占用更多的带宽 优点:在目前的技术背景下,HTTPS是现行架构下最安全的解决方案。
4、https完整的握手连接
使用随机数,就是使用随机数来生成对称加密算法。这样就可以做到服务器和客户端每次交互都是新的加密算法、只有在交互的那一该才确定加密算法。
1、TCP 三次同步握手
2、客户端验证服务器数字证书
3、DH 算法协商对称加密算法的密钥、hash 算法的密钥
4、SSL 安全加密隧道协商完成
5、网页以加密的方式传输,用协商的对称加密算法和密钥加密,保证数据机密性;用协商的hash算法进行数据完整性保护,保证数据不被篡改。