TCP建立连接及释放连接示意图
注:假设左边运行TCP客户程序,右边运行TCP服务器程序
建立连接3次握手
TCP建立连接过程需要经过3次握手,最初服务器B的TCP服务器进程先创建传输控制块TCB,准备接收客户进程的连接请求,然后服务器进程就处于LISTEN(收听)状态,等待客户的连接请求。
1. 第一个次握手:A的TCP客户进程首先创建传输控制模块TCB,向服务器B发送连接请求报文段,即SYN报文段,此时首部中的同步位SYN=1,同时选择一个初始序号seq=x,这时,TCP客户进程进入SYN-SENT(同步已发送)状态(注:SYN报文段不能携带数据,但会消耗一个序号)。
2. 第二次握手:服务器B收到SYN报文段后,向A发送确认报文段,即SYN+ACK报文段,在此报文段中,SYN和ACK位置1,确认号是ack=x+1,同时也为自己选择一个初始序号seq=y,这时,TCP服务器进程进入SYN-RCVD(同步收到)状态(注:此报文段不能携带数据,但要消耗一个序号