三次握手的过程
第一次握手
客户机首先发出一个SYN消息。
第二次握手
服务器使确认SYN + ACK应答表示接收到了这个消息。
第三次握手
客户机再以ACK确认响应。
SYN是在 TCP 连接的第一次握手时发送的一种数据包。它可以做为黑客攻击的一种手段,SYN攻击属于DDoS攻击的一种,它利用 TCP的缺陷,发送大量的连接请求,耗费CPU和内存资源。
ACK是接收站发给发送站的确认字符, 表示自己已经接收到了。
传输数据的过程
TCP 传输是通过字节流传输的, 传输前会把数据流分割成多段报文发送给接受端。 为了保证传输的可靠性, TCP 会有一些传输机制:
超时重传
当发送数据后,在一定时间内没有收到 ACK 应答, 就会重新发送数据, 直到发送成功。
快速重传
如果发送端收到 3 个以上的重复 ACK 应答, 就知道数据有可能丢失了, 发送端会立即重新传递一次 。
四次挥手的过长
第一次挥手
主动关闭端会先发送一个FIN ,表示数据发送完毕。
第二次挥手
被动关闭收到 FIN, 发送一个 ACK对方确认,执行被动关闭。
第三次挥手
一段时间后, 被动关闭端接发送一个 FIN, 告诉主动端已关闭数据传输。
第四次挥手
主动关闭端收到后确认 FIN 。