1) 請求端(通常稱為客戶)傳送一個S Y N段指明客戶打算連線的伺服器的埠,以及初始序號(I S N)。這個S Y N段為報文段1。2) 伺服器發回包含伺服器的初始序號的S Y N報文段(報文段2)作為應答。同時,將確認序號設定為客戶的I S N加1以對客戶的S Y N報文段進行確認。一個S Y N將佔用一個序號。3) 客戶必須將確認序號設定為伺服器的I S N加1以對伺服器的S Y N報文段進行確認(報文段3)。這三個報文段完成連線的建立。這個過程也稱為三次握(three-wayhandshake)。根據這個定義,我們有以下幾個問題需要明確:1,報文段1如何確定客戶端初始序號ISN, 同理報文段2如何確定伺服器端初始序號ISN?2,tcp透過三次握手機制保證傳送和接受的同步,保證資料的可靠傳送.3,和可靠性相關的還有以下三個概念很重要:未連線佇列:在三次握手協議中,伺服器維護一個未連線佇列,該佇列為每個客戶端的SYN包開設一個條目,該條目表明伺服器已收到SYN包,並向客戶發出確認,正在等待客戶的確認包。這些條目所標識的連線在伺服器處於Syn_RECV狀態,當伺服器收到客戶的確認包時,刪除該條目,伺服器進入ESTABLISHED狀態。Backlog引數:表示未連線佇列的最大容納數目。 SYN-ACK 重傳次數 伺服器傳送完SYN-ACK包,如果未收到客戶確認包,伺服器進行首次重傳,等待一段時間仍未收到客戶確認包,進行第二次重傳,如果重傳次數超過系統規定的最大重傳次數,系統將該連線資訊從半連線佇列中刪除。注意,每次重傳等待的時間不一定相同。 半連線存活時間:是指半連線佇列的條目存活的最長時間,也即服務從收到SYN包到確認這個報文無效的最長時間,該時間值是所有重傳請求包的最長等待時間總和。有時我們也稱半連線存活時間為Timeout時間、SYN_RECV存活時間。
1) 請求端(通常稱為客戶)傳送一個S Y N段指明客戶打算連線的伺服器的埠,以及初始序號(I S N)。這個S Y N段為報文段1。2) 伺服器發回包含伺服器的初始序號的S Y N報文段(報文段2)作為應答。同時,將確認序號設定為客戶的I S N加1以對客戶的S Y N報文段進行確認。一個S Y N將佔用一個序號。3) 客戶必須將確認序號設定為伺服器的I S N加1以對伺服器的S Y N報文段進行確認(報文段3)。這三個報文段完成連線的建立。這個過程也稱為三次握(three-wayhandshake)。根據這個定義,我們有以下幾個問題需要明確:1,報文段1如何確定客戶端初始序號ISN, 同理報文段2如何確定伺服器端初始序號ISN?2,tcp透過三次握手機制保證傳送和接受的同步,保證資料的可靠傳送.3,和可靠性相關的還有以下三個概念很重要:未連線佇列:在三次握手協議中,伺服器維護一個未連線佇列,該佇列為每個客戶端的SYN包開設一個條目,該條目表明伺服器已收到SYN包,並向客戶發出確認,正在等待客戶的確認包。這些條目所標識的連線在伺服器處於Syn_RECV狀態,當伺服器收到客戶的確認包時,刪除該條目,伺服器進入ESTABLISHED狀態。Backlog引數:表示未連線佇列的最大容納數目。 SYN-ACK 重傳次數 伺服器傳送完SYN-ACK包,如果未收到客戶確認包,伺服器進行首次重傳,等待一段時間仍未收到客戶確認包,進行第二次重傳,如果重傳次數超過系統規定的最大重傳次數,系統將該連線資訊從半連線佇列中刪除。注意,每次重傳等待的時間不一定相同。 半連線存活時間:是指半連線佇列的條目存活的最長時間,也即服務從收到SYN包到確認這個報文無效的最長時間,該時間值是所有重傳請求包的最長等待時間總和。有時我們也稱半連線存活時間為Timeout時間、SYN_RECV存活時間。