TCP和SSL 的三次握手和四次挥手

TCP : 传输控制协议,是一种可靠的面向连接的协议,对应的还有 UDP 协议UDP:用户数据报协议,是一种面向无连接的协议。

面向连接?

这里的连接可以理解为:传输的双方(客户端和服务端)是否已经在线,就像我给你打电话,你接到了,这就算连接上了。


             三次握手:

                    第一次握手:客户端向服务端发送 SYN 报文,服务端确认接收了 SYN 报文。

                    第二次握手:服务端在确认接收了 SYN 报文之后,会返回向客户端发送 SYN 报文和 ACK 确认报文。

                    第三次握手:客户端接收到 SYN 报文了 ACK 报文 之后双方就建立起了连接,可以好好玩耍了。

            四次挥手:

                    第一次挥手:客户端向服务端发送数据,发送完成之后会发送一个 FIN 报文,告诉服务端数据发送完毕。

                    第二次挥手:服务端接收到 FIN 报文之后,将 ACK 报文返回给客户端,告诉客户端(服务端)已经接收到数据。

                    第三次挥手:服务端处理完数据之后再发送一个 FIN 报文给客户端,告诉客户端(服务端)已经处理完毕。

                    第四次挥手:客户端接收到服务端发来的 FIN 报文之后就能确认这次的数据传输完成。可以关闭本次数据传输连接了。

            SSL三次握手:

                    首先来了解一下服务器的构

                    我们的服务器会有一些 已经存在的 加密方式 和 版本信息等等

服务器

    第一次握手

            有客户端生成随机数,并且携带着 版本号 以及 加密的方式

            由服务器判断是否是 可用的/支持的 加密方式

            if 版本号+加密方式 可用 那么可以 继续进行下一步操作

            反之 本次 握手结束

第一次握手

第二次握手

        服务器会 生成第二个 随机数 并且 携带者CA证书 发送给客户端

        if 证书有效/可用

        继续下一步操作

        反之 本次握手结束


第二次握手


第三次握手

客户端 生成 第三个 随机数  并且值得一提的是 第三次的报文是可以携带数据的

并且使用CA证书中的公钥进行加密 再次发送给服务器

同时发送前2次 的信息 摘要 由服务器再次验证

服务器 会接收到 这第三个随机数 并且利用 证书中的私钥将其 解密

最后双方都会生成 一个对话秘钥

扩充: 我们前2次的过程是明文的 最后一次是加密的(公钥加密,私钥解密.非对称加密)


第三次握手
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容