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