长连接和短连接
- 长连接指一个TCP连接可以连续发送多个数据包, TCP连接期间, 如果没有数据包发送, 需要双方发送检测包来维持连接.
- 短连接指通讯双方建立一个TCP连接,数据发送完成后,就断开TCP连接.
过程
短链接:连接–>数据传输–>关闭连接
长连接:连接–>数据传输–>心跳包–>数据传输–>心跳包–>…–>关闭连接
TCP
传输层协议UDP和TCP, UDP是无连接协议, TCP协议是面向连接的协议.
UDP可以一对一, 一对多, 多对多, 多对一的交互通信, 而每个TCP连接只能一对一通信.
TCP三次握手和四次挥手
TCP采用三次握手建立一个连接, 采用4次挥手关闭一个连接.
连接过程:
开始客户端和服务端都处于closed状态
第一次握手,客户端发送一个SYN包,发送完毕后, 客户端进入SYN_SEND状态
第二次握手,服务端返回一个SYN+ACK包, 发送完毕后, 服务端进入SYN_RCVD状态
第三次握手, 客户端收到SYN+ACK包后, 返回一个ACK包, 发送完毕后, 客户端进入ESTABLISHED状态, 当服务端接收到这个包时, 也进入ESTABLISHED状态, TCP握手, 即可开始数据传输

关闭连接过程(4次挥手):
处于连接状态的客户端和服务端都可以发起关闭连接请求
如果客户端主动发起关闭连接请求
第一次挥手,客户端向服务端发送FIN包,表示要关闭连接, 客户端进入FIN-WAIT-1状态
第二次挥手, 服务端收到FIN报, 返回一个ACK包, 自己进入CLOSE-WAIT状态, 客户端进入FIN-WAIT-2状态
第三次挥手, 服务端发送一个FIN包, 进入LAST-ACK状态
第四次挥手, 客户端收到FIN包后, 返回一个ACK包, 客户端进入TIME-WAIT状态, 服务端收到ACK包后立刻进入CLOSED状态, 最后客户端等待超时后进入CLOSED状态

2540

被折叠的 条评论
为什么被折叠?



