<dfn draggable='mri2d3vt'><q dropzone='xnmsm3'></q></dfn>
        1. <kbd id='yrofwl3'></kbd>

          <center date-time='xtpv8ycr'></center>
          • 文章熱詞:HTTP協議,三次握手

            日期:2019-03-09 13:33 by 楊國偉 2760 0 收藏
            我要分享

            摘要:在Http工作之前,Web浏覽器通過網絡和Web服務器建立鏈連接,該連接是通過Tcp來完成的,該協議和Ip共同組成了Internet,即著名的Tcp/Ip協議族,因此Internet也被稱爲Tcp/Ip網絡,Http是比Tcp更高的應用層協議,一般Tcp接口的端口好是80。

            在Http工作之前,Web浏覽器通過網絡和Web服務器建立鏈連接,該連接是通過Tcp來完成的,該協議和Ip共同組成了Internet,即著名的Tcp/Ip協議族,因此Internet也被稱爲Tcp/Ip網絡,Http是比Tcp更高的應用層協議,一般Tcp接口的端口好是80。

            timg.jpg

              

            當建立協議的時候,tcp進行了3次握手:

            1、客戶端發送了一個帶有SYN的Tcp報文到服務器,這個三次握手中的開始。表示客戶端想要和服務端建立連接。 主機A發送位碼爲syn=1,随機産生seq number=1234567的數據包到服務器,主機B由SYN=1知道,A要求建立聯機。

            2、服務端接收到客戶端的請求,返回客戶端報文,這個報文帶有SYN和ACK标志,詢問客戶端是否準備好。 主機B收到請求後要确認聯機信息,向A發送ack number=(主機A的seq+1),syn=1,ack=1,随機産生seq=7654321的包。

            3、客戶端再次響應服務端一個ACK,表示我已經準備好。主機A收到後檢查ack number是否正确,即第一次發送的seq number+1,以及位碼ack是否爲1,若正确,主機A會再發送ack number=(主機B的seq+1),ack=1,主機B收到後确認seq值與ack=1則連接建立成功。

            當終止協議的時候,tcp進行了4次握手:

            由于Tcp連接是進行全雙工工作的,因此每個方向都必須單獨進行關閉,這個原則是當一方完成他的數據發送的時候就發送一個FIN來終止這個方向的連接,收到這個FIN意味着這個方向上沒有數據的流動,一個TCP連接在收到這個FIN之後還能發送消息,首先執行關閉的一方進行主動的關閉,而另一方進行被動的關閉。 

            1、TCP發送一個FIN,用來關閉客戶到服務端的連接。 
            2、服務端收到這個FIN,他發回一個ACK,确認收到序号爲收到序号+1,和SYN一樣,一個FIN将占用一個序号。 
            3、服務端發送一個FIN到客戶端,服務端關閉客戶端的連接。 
            4、客戶端發送ACK報文确認,并将确認的序号+1,這樣關閉完成。

            上一篇:PHP 快速(冒泡)排序算法詳解

            下一篇:http協議與https協議區别


            評論