1.同步發送
SYN_SENT表示請求連接。當妳想訪問其他電腦的服務時,妳必須先向端口發送壹個同步信號。此時狀態為SYN_SENT。如果連接成功,它將被建立。此時,SYN_SENT狀態很短。
2.命令正確應答
ACK(確認)是確認字符,它是在數據通信中由接收站發送給發送站的傳輸控制字符。表示已確認發送的數據已被正確接收。
3.SYN_RCVD(同步接收)
4.ESTAB_LISHED(連接已建立)
5.變速器控制模塊TCB
TCB(傳輸控制塊)在每個連接中存儲壹些重要信息。
首先,B的PCP服務器進程首先創建傳輸控制模塊TCB,準備接受客戶端進程的連接請求。然後服務器進程處於監聽狀態,等待客戶端的連接請求。
1.SYN=1,seq=x
A的TCP客戶端進程也是先創建傳輸控制模塊TCB,然後在打算建立TCP連接時向B發送請求消息段。此時,選擇報頭中的同步比特SYN=1和初始序列號seq=x。即syn = 1,seq = X. TCP規定壹個syn段(即SYN = 1的段)不能攜帶數據,但它消耗壹個序列號。此時,TCP客戶端進程進入SYN_SENT狀態。
2.SYN=1,ACK=1,seq=y,ack=x+1
B收到連接請求消息後,如果同意建立連接,將向A發送確認。在確認報文段中,SYN位和ACK位都要設置為1,確認號為ack=x+1,還應該為自己選擇壹個初始號seq=y。即syn = 1,ack = 1,seq = y,ack = x+1。
請註意:這個消息段也不能攜帶數據,但同時會消耗壹個序列號。此時,TCP服務器進程進入SYN_RCVD(同步接收)狀態。
3.ACK=1,seq=x+1,ack=y+1
在收到來自B的確認後,TCP客戶端進程也將向B發出確認..確認段的ACK設置為1,確認號ack=y+1,自身序列號seq=x+1。即ACK = 1,seq = x+1,ack = y+1 TCP標準規定ACK段可以攜帶數據。但是如果沒有攜帶數據,則不消耗序列號。在這種情況下,下壹個數據段仍然是seq=x+1。這個時候。TCP連接已經建立,A進入ESTAB狀態。
4.當B收到A的確認時,它也進入ESTAB_LISHED狀態。