You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
服务器回应客户端报文2,同时带有 ACK 和 SYN 标志。表示 对刚刚客户端 SYN 报文的回应,同时有将 SYN 标志发给客户端,询问是否准备好进行数据通信。
客户端必须再次回应服务端一个 ACK 报文,过程结束。
为什么需要三次握手
解决 网络中存在延迟的重复分组问题。
有这种情况,client 发出的第一个连接请求由于长时间延迟,以致延误到连接释放以后的某个时间段才到达 server 端。因此这是一个失效的报文段
假设不采用 “三次握手”,那么只要 server 发出确认,新的连接就建立了。由于现在 client 并没有发出建立连接的请求,因此不会理睬 server 的确认,也不会向 server 发送数据。但 server 却以为新的运输连接已经建立,并一直等待 client 发来数据。这样,server 的很多资源就白白浪费掉了。采用“三次握手”的办法可以防止上述现象发生。例如刚才那种情况,client 不会向 server 的确认发出确认。server 由于收不到确认,就知道 client 并没有要求建立连接。”。 主要目的防止server端一直等待,浪费资源。
四次挥手
由于 TCP 连接是全双工的,因此每个方向都需要单独关闭。原则是当一方完成数据发送任务之后,发送 FIN 来终止这个方向的连接。收到一个 FIN 只表示此方向没有数据流动。TCP 连接在收到 FIN 之后仍能发送数据。
TCP 客户端首先发送 FIN, 关闭客户端到服务器的数据传送。
服务器收到 FIN,返回确认码 ACK, 确认序号为 FIN + 1。
服务器关闭客户端的连接,发送 FIN 给客户端。
客户端发会 ACK 报文确认,并将确认序号设置为收到序号 + 1.
因此这里同时也解释为什么需要四次握手:
原因是因为tcp是全双工模式,接收到FIN时意味将没有数据再发来,但是还是可以继续发送数据。
TCP 和 UDP 的区别
主要区别在于:
TCP 协议在传输数据段的时候给标号,UDP没有
TCP 协议可靠,而 UDP 协议不可靠
TCP 面向连接,而 UDP 采用无连接
TCP 协议负载较高,采用虚电路
TCP 发送方要要确认接收方是否是否数据段
TCP 采用滑动窗口和流量控制保证数据传输的正确性
The text was updated successfully, but these errors were encountered:
Https
[TOC]
这篇文章简单介绍一下 https 的工作原理和相关的加密过程
Https 工作原理
https 在传输数据之前需要客户端和服务端之间进行一次握手,在握手过程中确定双方加密传输数据的密码信息。TLS/SSL 协议中使用了非对称加密,对称加密和 hash 算法。具体的过程如下:
Tcp 握手过程和挥手过程
三次握手
为什么需要三次握手
解决 网络中存在延迟的重复分组问题。
有这种情况,client 发出的第一个连接请求由于长时间延迟,以致延误到连接释放以后的某个时间段才到达 server 端。因此这是一个失效的报文段
假设不采用 “三次握手”,那么只要 server 发出确认,新的连接就建立了。由于现在 client 并没有发出建立连接的请求,因此不会理睬 server 的确认,也不会向 server 发送数据。但 server 却以为新的运输连接已经建立,并一直等待 client 发来数据。这样,server 的很多资源就白白浪费掉了。采用“三次握手”的办法可以防止上述现象发生。例如刚才那种情况,client 不会向 server 的确认发出确认。server 由于收不到确认,就知道 client 并没有要求建立连接。”。 主要目的防止server端一直等待,浪费资源。
四次挥手
由于 TCP 连接是全双工的,因此每个方向都需要单独关闭。原则是当一方完成数据发送任务之后,发送 FIN 来终止这个方向的连接。收到一个 FIN 只表示此方向没有数据流动。TCP 连接在收到 FIN 之后仍能发送数据。
因此这里同时也解释为什么需要四次握手:
原因是因为tcp是全双工模式,接收到FIN时意味将没有数据再发来,但是还是可以继续发送数据。
TCP 和 UDP 的区别
主要区别在于:
The text was updated successfully, but these errors were encountered: