三向交握協議

來源:互聯網
上載者:User

TCP握手協議

  在TCP/IP協議中,TCP協議提供可靠的串連服務,採用三向交握建立一個串連。

  第一次握手:建立串連時,用戶端發送syn包(syn=j)到伺服器,並進入SYN_SEND狀態,等待伺服器確認;

  第二次握手:伺服器收到syn包,必須確認客戶的SYN(ack=j+1),同時自己也發送一個SYN包(syn=k),即SYN+ACK包,此時伺服器進入SYN_RECV狀態;

  第三向交握:用戶端收到伺服器的SYN+ACK包,向伺服器發送確認包ACK(ack=k+1),此包發送完畢,用戶端和伺服器進入ESTABLISHED狀態,完成三向交握。

  完成三向交握,用戶端與伺服器開始傳送資料,在上述過程中,還有一些重要的概念:

  未串連隊列:在三向交握協議中,伺服器維護一個未串連隊列,該隊列為每個用戶端的SYN包(syn=j)開設一個條目,該條目表明伺服器已收到SYN包,並向客戶發出確認,正在等待客戶的確認包。這些條目所標識的串連在伺服器處於Syn_RECV狀態,當伺服器收到客戶的確認包時,刪除該條目,伺服器進入ESTABLISHED狀態。

  Backlog參數:表示未串連隊列的最大容納數目。

  SYN-ACK 重傳次數 伺服器發送完SYN-ACK包,如果未收到客戶確認包,伺服器進行首次重傳,等待一段時間仍未收到客戶確認包,進行第二次重傳,如果重傳次數超過系統規定的最大重傳次數,系統將該串連資訊從半串連隊列中刪除。注意,每次重傳等待的時間不一定相同。

  半串連存活時間:是指半串連隊列的條目存活的最長時間,也即服務從收到SYN包到確認這個報文無效的最長時間,該時間值是所有重傳請求包的最長等待時間總和。有時我們也稱半串連存活時間為Timeout時間、SYN_RECV存活時間。

  [1] * SYN:同步標誌

  同步序列編號(Synchronize Sequence Numbers)欄有效。該標誌僅在三向交握建立TCP串連時有效。它提示TCP已連線的服務端檢查序列編號,該序列編號為TCP串連初始端(一般是用戶端)的初始序列編號。在這裡,可以把TCP序列編號看作是一個範圍從0到4,294,967,295的32位計數器。通過TCP串連交換的資料中每一個位元組都經過序列編號。在TCP前序中的序列編號欄包括了TCP分段中第一個位元組的序列編號。

  *ACK:確認標誌

  確認編號(Acknowledgement Number)欄有效。大多數情況下該標誌位是置位的。TCP前序內的確認編號欄內包含的確認編號(w+1,Figure-1)為下一個預期的序列編號,同時提示遠端系統已經成功接收所有資料。

  *RST:複位標誌

  複位標誌有效。用於複位相應的TCP串連。

  *URG:緊急標誌

  緊急(The urgent pointer) 標誌有效。緊急標誌置位,

  *PSH:推標誌

  該標誌置位時,接收端不將該資料進行隊列處理,而是儘可能快將資料轉由應用處理。在處理 telnet 或 rlogin 等互動模式的串連時,該標誌總是置位的。

  *FIN:結束標誌

  帶有該標誌置位的資料包用來結束一個TCP回話,但對應連接埠仍處於開放狀態,準備接收後續資料。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.