我们知道TCP是面向连接的传输层协议。TCP运输连接的建立和释放是每一次面向连接的通信中必不可少的过程。所以,运输连接就有三个阶段,即:连接的建立,数据传送和连接的释放。
TCP连接的建立
TCP建立连接的过程叫做握手,握手需要在客户和服务器之间交换三个TCP报文,以下就是TCP建立连接的三报文握手:three way(three message)handshake,也称之为三次握手。
假定主机A运行的是TCP客户端程序,而B运行的是TCP服务器程序,最初两端的TCP进程都处于CLOSED (关闭)状态。图中在主机下面的方框分别是TCP进程所处的状态。请注意,在本例中,A主动打开连接,而B被动打开连接。
一开始,B的TCP服务器进程先创建传输控制块TCB,准备接受客户进程的连接请求。然后服务器进程就处于LISTEN (收听)状态,等待客户的连接请求。如有,即作出响应。
A的TCP客户进程也是首先创建传输控制模块TCB。然后,在打算建立TCP连接时,向B发出连接请求报文段,这时首部中的同步位SYN = 1,同时选择一一个初始序号seq =x。TCP规定,SYN报文段(即SYN=1的报文段)不能携带数据,但要消耗掉一个序号。这时,TCP客户进程进入SYN-SENT (同步已发送)状态。
B收到连接