建立和终止TCP连接过程

一.http 和 https

http 和 https 区别:

http 使用过程中存在安全性问题:http 使用明文通信,容易被窃听。由于 http 不验证通信方的身份,攻击者可以伪装成合法的通信方进行欺骗。并且 http 无法提供报文的完整性验证,因此报文有可能被篡改。

https 使用 SSL(Secure Sockets Layer) 或 TLS(Transport Layer Security) 协议进行加密。

https通过 ssl安全套接层 或 tls安全传输层协议 的方式使 http 变成了安全的 https。

https 数据发送时 request 通过 ssl/tls 进行处理,再通过 tcp 进行发送;数据接收时 response 也是通过 ssl/tls 进行处理。相当于在应用层 http 和传输层 tcp 之间多加了一步处理。

https 加密的握手过程:

1.客户端给出协议版本号、客户端生成的一个随机数(Client random)、客户端支持的加密方法。

2.服务器确认双方使用的加密方法,并给出数字证书、服务器生成的一个随机数(Server random)。

3.客户端确认数字证书有效,生成一个新的随机数(Premaster secret),并使用数字证书中的公钥,加密这个随机数,发送至服务器。

4.服务器使用自己的私钥,解密客户端发来的随机数,得到对称密钥。

客户端和服务器根据确认的加密方法,使用前面的三个随机数,生成 对话密钥(session key)对后续的数据传输进行加密。对称密钥由客户端和服务器共享,因此可以安全地传输数据。

服务器的公钥和私钥在 https 连接中仅用于加密和解密对话密钥,即非对称加密只在握手阶段使用。这个过程保证了HTTPS连接的安全性。通过使用公钥加密和私钥解密的方法,https可以确保通信的安全性,以防止数据被窃听和篡改。同时,对称密钥的使用也提高了传输速度,因为对称加密算法较为高效。

对话中断解决方案:

握手阶段用来建立SSL连接,如果 对话中断,就需要重新握手。

两种方法恢复原来的session:session ID 和 session ticket

session ID:每次对话都会有一个编号(session ID)。如果对话中断,下次重连时,只要客户端给出这个编号,并且服务器有这个编号的记录,双方就可以重新使用已有的 对话密钥,而不必重新生成。它的缺点在于 session ID 只保留在一台服务器上。如果客户端的请求发到另一台服务器,就无法恢复对话。

session ticket:解决 session ID 的问题,客户端发送给一个服务器在上一次对话中发送来的session ticket,当服务器收到 session ticket 解密后不必重新生成对话密钥。

【session ticket 是加密的,只有服务器才能解密,其中包括本次对话的主要信息(像 对话密钥和加密方法)】。

三次握手后,建立 TCP 连接,客户端和服务器之间会进行 SSL/TLS 握手,协商加密算法、生成密钥等。https 是在 TCP 连接上应用了 SSL/TLS 协议进行加密和认证的安全传输协议。四次挥手过程中,https 也会应用 SSL/TLS 协议来进行连接的安全关闭。

二.三次握手和四次挥手

三次握手 和 四次挥手 是在网络通信中建立和终止TCP连接时发生的。

三次握手 发生在TCP连接建立阶段。当客户端想要与服务器建立连接时,它会发送一个带有SYN(同步)标志的数据包给服务器。服务器收到后会发送一个带有SYN/ACK(同步/确认)标志的数据包给客户端,表示接收到了客户端的请求并准备好建立连接。最后,客户端再发送一个带有ACK(确认)标志的数据包给服务器,表示连接已经建立。

四次挥手 发生在TCP连接终止阶段。当客户端或服务器想要断开连接时,它会发送一个带有FIN(结束)标志的数据包给对方。对方收到后会发送一个带有ACK标志的数据包作为确认。然后,对方也发送一个带有FIN标志的数据包给发起方,表示对方也准备好断开连接。最后,发起方再发送一个带有ACK标志的数据包作为确认,表示连接已经断开。

通过三次握手建立连接,可以确保双方都愿意进行通信。而通过四次挥手终止连接,可以确保双方都完成了数据的传输并且愿意断开连接。这样可以保证可靠的数据传输和释放网络资源。

三.三次握手和四次挥手过程中,网络断开会发生什么?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

为何幸福如驴薄饼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值