TCP協議連接管理流程
TCP協議連接管理。這個內容就是我們的協議的基本工作流程了。那么這個連接的建立,其中包括三次握手。那么針對這個在TCP協議中建立連接采用三次握手的方法。為了建立連接,其中一方,如服務器,通過執行LISTEN和ACCEPT原語被動地等待一個到達的連接請求。
另一方,如客戶方,執行CONNECT原語,同時要指明它想連接到的IP地址和端口號,設置它能夠接受的TCP數據報的***值,以及一些可選的用戶數據。CONNECT原語發送一個SYN=1,ACK=0的數據報到目的端,并等待對方響應。
該數據報到達目的端后,那里的TCP實體將察看是否有進程在偵聽目的端口字段指定的端口。如果沒有,它將發送一個RST=1的應答,拒絕建立該連接。
如果某個進程正在對該端口進行偵聽,于是便將到達的TCP協議數據報交給該進程,它可以接受或拒絕建立連接。如果接受,便發回一個確認數據報。一般情況下,TCP的連接建立過程如圖所示。
為了釋放連接,每方均可發送一個FIN=1的TCP協議數據報,表明本方已無數據發送。當FIN數據報被確認后,那個方向的連接即告關閉。當兩個方向上的連接均關閉后,該連接就被完全釋放了。一般情況下,釋放一個連接需要4個TCP數據報:每個方向均有一個FIN數據報和一個ACK數據報。