TCP協議三次握手

          Posted on 2007-03-12 15:03 Hally 閱讀(1574) 評論(0)  編輯  收藏 所屬分類: 技術文章轉載
          在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存活時間。

          posts - 43, comments - 200, trackbacks - 0, articles - 2

          Copyright © Hally

          主站蜘蛛池模板: 揭西县| 桃江县| 禹城市| 仁化县| 贵州省| 南投县| 巴塘县| 朝阳市| 罗江县| 隆尧县| 洛阳市| 元谋县| 德令哈市| 娄烦县| 侯马市| 札达县| 吉隆县| 阳原县| 昌都县| 遂宁市| 伊宁县| 崇左市| 富裕县| 长白| 左权县| 墨竹工卡县| 深泽县| 敦化市| 台东市| 山丹县| 新巴尔虎右旗| 宜阳县| 咸宁市| 南乐县| 乌鲁木齐县| 江口县| 盈江县| 桦甸市| 广南县| 普陀区| 获嘉县|