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