HTTP 三向交握  建立串連 和  四次握手中斷連線,握手中斷連線

來源:互聯網
上載者:User

HTTP 三向交握  建立串連 和  四次握手中斷連線,握手中斷連線

三向交握建立串連  第一次握手:主機A發送位碼為syn=1,隨機產生seq number=1234567的資料包到伺服器,主機B由SYN=1知道,A要求建立聯機;第二次握手:主機B收到請求後要確認聯機資訊,向A發送ack number=(主機A的seq+1),syn=1,ack=1,隨機產生seq=7654321的包第三向交握:主機A收到後檢查ack number是否正確,即第一次發送的seq number+1,以及位碼ack是否為1,若正確,主機A會再發送ack number=(主機B的seq+1),ack=1,主機B收到後確認seq值與ack=1則串連建立成功。  四次握手斷開:由於 TCP 串連是全雙工系統的,因此每個方向都必須單獨進行關閉。這個原則是當一方完成它的資料發送任務後就能發送一個FIN 來終止這個方向的發送通道。收到一個 FIN 只意味著這一方向上沒有資料流動,一個 TCP 串連在收到一個 FIN 後仍能發送資料。首先進行關閉的一方將執行主動關閉,而另一方執行被動關閉。  
( 1 )用戶端 A 發送一個 FIN ,用來關閉客戶 A 到伺服器 B 的資料傳送(報文段 4 )。  
( 2 )伺服器 B 收到這個 FIN ,它發回一個 ACK ,確認序號為收到的序號加 1 (報文段 5 )。和 SYN 一樣,一個FIN 將佔用一個序號。  
( 3 )伺服器 B 關閉與用戶端 A 的串連,發送一個 FIN 給用戶端 A (報文段 6 )。  ( 4 )用戶端 A 發回 ACK 報文確認,並將確認序號設定為收到序號加 1 (報文段 7 )。 問題1: 為什麼建立連線協定是三向交握,而關閉串連卻是四次握手呢?  這是因為服務端的 LISTEN 狀態下的 SOCKET 當收 到 SYN 報文的建立串連請求後,它可以把 ACK 和 SYN ( ACK 起應答作用,而 SYN 起同步作用)放在一個報文裡來發送。但關閉串連時, 當收到對方的 FIN 報文通知時,它僅僅表示對方沒有資料發送給你了;但未必你所有的資料都全部發送給對方了,所以你可以未必會馬上會關閉 SOCKET, 也即你可能還需要發送一些資料給對方之後,再發送 FIN 報文給對方來表示你同意現在可以關閉串連了,所以它這裡的 ACK 報文 和 FIN報文多數情況下都是分開發送的。  HTTP 要求響應常見狀態代碼 100~199:表示成功接收請求,要求用戶端繼續提交下一次請求才能完成整個處理過程。
 200~299:表示成功接收請求並已完成整個處理過程。常用200
 300~399:為完成請求,客戶需進一步細化請求。例如:請求的資源已經移動一個新地址、常用302(意味著你請求我,我讓你去找別人),307和304(我不給你這個資源,自己拿緩衝)
 400~499:用戶端的請求有錯誤,常用404(意味著你請求的資源在web伺服器中沒有)403(伺服器拒絕訪問,許可權不夠) 500~599:伺服器端出現錯誤,常用500

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.