面向连接?
这里的连接可以理解为:传输的双方(客户端和服务端)是否已经在线,就像我给你打电话,你接到了,这就算连接上了。
三次握手:
第一次握手:客户端向服务端发送 SYN 报文,服务端确认接收了 SYN 报文。
第二次握手:服务端在确认接收了 SYN 报文之后,会返回向客户端发送 SYN 报文和 ACK 确认报文。
第三次握手:客户端接收到 SYN 报文了 ACK 报文 之后双方就建立起了连接,可以好好玩耍了。
四次挥手:
第一次挥手:客户端向服务端发送数据,发送完成之后会发送一个 FIN 报文,告诉服务端数据发送完毕。
第二次挥手:服务端接收到 FIN 报文之后,将 ACK 报文返回给客户端,告诉客户端(服务端)已经接收到数据。
第三次挥手:服务端处理完数据之后再发送一个 FIN 报文给客户端,告诉客户端(服务端)已经处理完毕。
第四次挥手:客户端接收到服务端发来的 FIN 报文之后就能确认这次的数据传输完成。可以关闭本次数据传输连接了。
SSL三次握手:
首先来了解一下服务器的构
我们的服务器会有一些 已经存在的 加密方式 和 版本信息等等
第一次握手
有客户端生成随机数,并且携带着 版本号 以及 加密的方式
由服务器判断是否是 可用的/支持的 加密方式
if 版本号+加密方式 可用 那么可以 继续进行下一步操作
反之 本次 握手结束
第二次握手
服务器会 生成第二个 随机数 并且 携带者CA证书 发送给客户端
if 证书有效/可用
继续下一步操作
反之 本次握手结束
第三次握手
客户端 生成 第三个 随机数 并且值得一提的是 第三次的报文是可以携带数据的
并且使用CA证书中的公钥进行加密 再次发送给服务器
同时发送前2次 的信息 摘要 由服务器再次验证
服务器 会接收到 这第三个随机数 并且利用 证书中的私钥将其 解密
最后双方都会生成 一个对话秘钥
扩充: 我们前2次的过程是明文的 最后一次是加密的(公钥加密,私钥解密.非对称加密)