TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接。
ACK是应答域,为1时表示应答域有效,反之为0;
SYN表示同步序号,用来建立连接;
SEQ为这个报文段分配的序号;
AN为ACK NUMBER,即确认号;
主机A(客户进程);主机B(服务器进程);
第一次握手:→→SYN=1,ACK=0,SEQ=1200 (主机A的客户进程将向主机B的服务器进程发出连接请求报文段,连接请求报文段中SYN=1,ACK=0,同时需要为这个报文段分配一个序号,如SEQ=1200)
第二次握手:←←SYN=1,ACK=1,SEQ=4800,AN=1201 (主机B的服务器进程如果同意与主机A的客户进程建立传输连接,那么它将发出应答报文段。应答报文段的SYN=1,ACK=1,需要为这个报文段分配一个序号,如SEQ=4800。同时,应答报文段通过使用确认号AN,来对请求报文段发回一个确认信息。确认号AN是1201,即在客户端发送的序号1200上加1,表示序号为1200的报文段已正确接收,下一次应该发送序号为1201的报文段。因此确认号AN有捎带确认的作用)
第三次握手:→→SYN=0,ACK=1,SEQ=1201,AN=4801 (主机A的客户进程在接收主机B的服务器进程的应答报文段后,需要向服务器进程再次发送一个建立传输连接确认报文段。确认报文段的SYN=1,ACK=1,序号SEQ=1201,确认号AN=4801)
释放连接:
第一次握手:→→FIN=1,ACK=0,SEQ=2500 希望释放这次连接
第二次握手:←←ACK=1,SEQ=6000,AN=2501 知道你的想法
第三次握手:←←FIN=1,SEQ=6001,AN=2501 同意释放这次连接
第四次握手:→→ACK=1,SEQ=2501,AN=6002 释放这次连接