<address id="tn7bz"></address>

      
      
      <address id="tn7bz"></address>

              <address id="tn7bz"></address>

              HTTP協議三次握手過程詳解

              文章熱詞:HTTP協議,三次握手

              日期:2019-03-09 13:33 by admin 3112 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協議區別


              評論