TCP三次握手与四次挥手
TCP 基础知识
TCP 是面向连接的、可靠的、基于字节流的传输层通信协议。
TCP 连接是用于保证可靠性和流量控制维护的某些状态信息的组合,包括 Socket、序列 号和窗口大小
TCP 四元组可以唯一的确定一个连接:源地址、源端口、目的地址、目的端口
三次握手建立连接
术语
seq(sequence number),通过 sequence initial algorithm 随机生成的
ack(acknowledgement number),确认号 ack=seq+1
ACK(acknowledgement)确定确认号有效
SYN(synchronous)发起新连接
过程
四次挥手断开连接
术语
seq(sequence number),通过 sequence initial algorithm 随机生成的
ack(acknowledgement number),确认号 ack=seq+1
ACK(acknowledgement)确定确认号有效
SYN(synchronous)发起新连接
FIN(FINISH)完成
过程
等待阶段 2
FIN_WAIT_2 会处理还没有完成的任务,直到所有的任务处理完毕,才会发送第三次挥手
超时等待状态持续 1 ~ 4 分钟,存在的原因?
这是为了保证服务端收到 ACK 包。
假设如果没有 2MSL 的等待时间,ACK 包丢失了,那服务端将永远不会断开连接。
有了 2MSL,如果一旦发生丢包将会进行超时重传,实现可靠连接。
TCP三次握手与四次挥手
https://hugtyftg.github.io/2024/01/25/TCP三次握手与四次挥手/