TCP三次握手,四次挥手

1.三次握手:

1.发送SYN报文,(seq=x,SYN=1)   PC1:SYN-SEND同步已发送状态,PC2:TCB-LISTEN监听状态

2.发送SYN+ACK报文(seq=1.ack=x+1  SYN=1  ACK=1  (指针))PC2:SYN-RCVD同步已收到状态,对x回应将ack=x+1         

3.发送ACK报文(seq=x+1,ack=y+1  ACK=1)PC1:ESTABLISHED已建立连接状态,对y回应,将ack=y+1  PC2:ESTABLISHED已建立连接状态    seq=x+1为期待序列号得到后不再改变。

确认方ack=发起方seq+1这时两端配对。

  1. TCP服务器进程先创建传输控制块TCB,时刻准备接受客户进程的连接请求,此时服务器就进入了LISTEN(监听)状态;
  2. TCP客户进程也是先创建传输控制块TCB,然后向服务器发出连接请求报文,这是报文首部中的同部位SYN=1,同时选择一个初始序列号 seq=x ,此时,TCP客户端进程进入了 SYN-SENT(同步已发送状态)状态。TCP规定,SYN报文段(SYN=1的报文段)不能携带数据,但需要消耗掉一个序号。
  3. TCP服务器收到请求报文后,如果同意连接,则发出确认报文。确认报文中应该 ACK=1,SYN=1,确认号是ack=x+1,同时也要为自己初始化一个序列号 seq=y,此时,TCP服务器进程进入了SYN-RCVD(同步收到)状态。这个报文也不能携带数据,但是同样要消耗一个序号。
  4. TCP客户进程收到确认后,还要向服务器给出确认。确认报文的ACK=1,ack=y+1,自己的序列号seq=x+1,此时,TCP连接建立,客户端进入ESTABLISHED(已建立连接)状态。TCP规定,ACK报文段可以携带数据,但是如果不携带数据则不消耗序号。
  5. 当服务器收到客户端的确认后也进入ESTABLISHED状态,此后双方就可以开始通信了
原文地址:https://www.cnblogs.com/wrwrwrwr/p/11191484.html