TCP/IP可靠性协议
- 建立连接的机制
- 三次握手建立连接
- SYN攻击
- 连接的关闭,四次挥手
- TCP是全双工,双向传输
- 长连接(通过不断发送心跳包维持连接就叫做长连接) 连接有超时机制,如果超过时间没有数据包通信,连接会关闭
三次握手(可靠建立连接机制):
1. 客户端向服务端发送SYN = 1,seq = x 的数据包
客户端主动打开---服务端被动打开
2. 服务端向客户端相应SYN = 1,ACK = 1,seq = y,ack = x+1
服务端状态LISTEN(监听)
3. 客户端向服务端发送ACK = 1,seq = x + 1,ack = y + 1
客户端状态SYN-SENT(发送)
服务端状态SYN-RCVD(接收)
完成:ESTAB-LISHED(已建立) <=> ESTAB-LISHED(已建立)
SYNC攻击:不同IP进行识别和过滤
四次挥手:
1. 客户端发送FIN = 1,seq = u(表示自己没有数据可以发送了)
客户端状态FIN-WAIT-1
2. 服务器相应ACK = 1,seq = v,ack = u+1(表示确定收到数据包了,但是不会马上关闭,继续执行完任务)
客户端状态FIN-WAIT-2 服务端不会马上关闭
3. 当服务端没有任务处理了,再次发送FIN = 1,ACK = 1,seq = w,ack = u + 1(告诉客户端)
客户端状态LAST-ACK
4. 客户端再次确认ACK = 1,seq = u + 1,ack = w + 1
最后客户端服务端都关闭
等待两个最大段的声明周期默认2MSL(超时自动关闭)