一、三次握手
(1)、客户端由关闭状态主动打开连接,建立传输控制块TCB,向服务端发出请求报文段(SYN=1,seq=x),进入SYN-SENT状态
(2)、服务收到后若同意进行连接,向客户端发送确认,SYN=1,ACK=1,ack=x+1,seq=y
进入SYN-RECD同步收到状态
(3)、客户端收到后,再给服务端发送确认,报文段置SYN=1,确认号ack=y+1,请求号seq=x+1
客户端进入连接状态,服务端收到后进入连接状态
为什要最后一次确认:
防止已失效的连接请求再次传到服务端
二、四次挥手
(1)、客户端由连接状态主动关闭,向服务端发送连接释放报文段FIN-1,seq=u,进入终止等待1状态。
(2)、服务段收到后即发送确认报文段,ACK=1,ack=u+1,seq=v,进入关闭等待状态,A-B连接释放。
(3)、客户端收到后进入终止等待2状态,等待服务段发送连接释放报文。B没有要向A发出的数据,B发出连接释放报文段(FIN=1,ACK=1,序号seq=w,确认号ack=u+1),B进入LAST-ACK(最后确认)状态,等待A的确认。
(4)、A收到B的连接释放报文段后,对此发出确认报文段(ACK=1,seq=u+1,ack=w+1),A进入TIME-WAIT(时间等待)状态。此时TCP未释放掉,需要经过时间等待计时器设置的时间2MSL后,A才进入CLOSED状态。
TCP怎样保证传输的的准确性
(1)、TCP提供一种面向连接的,可靠的字节流服务;tcp选择合适发送的数据块
(2)、超时重传。当TCP发出一个报文段后,就启动一个定时器,用来等待目的端确认收到这个报文段;若没能及时收到这个确认,TCP发送端将重新发送这个报文段
(3)、TCP将保持它首部和数据的检验和。这是一个端到端的检验和