TCP的三次握手
第一次:客户端发送建立连接请求。同步序号SYN,1表示连接请求,发送字节流的顺序号seq,假定为x。
第二次:服务端应答请求。同步序号依然设置为1,确认号ack为顺序号加1,ACK设置为1表示确认号有效。本次的字节流需要一个顺序号seq,假定为y。
第三次:客户端检查确认号是否正确,如果正确,发送确认信息到服务器,至此建立了TCP连接。 ack=y+1,ACK=1表示确认号有效,seq=x+1。
如果只有两次握手会发生什么?
如果只两次握手的话,那么服务器向客户端发送应答后会认为连接已经建立,开始向客户端发送数据。当服务器的应答丢失,客户端没有收到服务器的应答,会一直等待服务器的应答而抛弃客户端发送的数据。这样就导致了死锁,客户端一直等待,服务端一直再发送数据。TCP四次挥手
第一次:客户端关闭连接 FIN设置为1,表示关闭本方数据流。顺序号seq假定为u。此时客户端进入终止等待,等待应答。
第二次:服务器应答</