Http的三次握手四次揮手

2021-08-27 16:18:44 字數 1541 閱讀 3720

客戶端和服務端是通過三次握手協議建立tcp會話連線。建立連線的理論圖如下

通過wireshark進行抓包,得到資料

可以看出10.240.80.99     58971是客戶端的乙個臨時埠,47.95.47.253     80是伺服器端口 

第一次是 客戶端向伺服器端傳送請求 58971-->80 【syn】

第二次  伺服器向客戶端傳送請求,80-->58971 【syn,ack】,並攜帶第一次傳來的syn

第三次 客戶端向伺服器端傳送請求  58971-->80 【ack】

為什麼需要三次握手:

建立連線後,可以傳送http請求:

1、客戶端向伺服器端傳送http請求,如圖:get     /hry2015/http/1.1

2、伺服器端對客戶端請求進行確認,如圖中間的tcp

3、伺服器端響應如圖:1139 http/1.1 200  ok

客戶端和服務端互動資料完畢後,開始通過四次揮手結束tcp會話連線。

第一次揮手:客戶端 傳送乙個[fin+ack],表示自己沒有資料要傳送了,想斷開連線,並進入fin_wait_1狀態(不能再傳送資料到服務端,但能夠傳送控制資訊ack到服務端)。

第二次揮手:服務端收到fin後,知道不會再有資料從客戶端傳來,傳送ack進行確認,確認序號為收到序號+1(與syn相同,乙個fin占用乙個序號),服務端進入close_wait狀態。

第三次揮手:服務端傳送fin給對方,表示自己沒有資料要傳送了,服務端進入last_ack狀態,然後直接斷開tcp會話的連線,釋放相應的資源。

第四次揮手:客戶端收到了服務端對fin的ack後,進入fin_wait2狀態(等待服務端完成資源釋放的一系列工作:然後釋放你為建立這個連線所分配的資源,並通知我你關閉了); 客戶端收到了服務端的fin信令後,進入timed_wait狀態,並傳送ack確認訊息。客戶端在timed_wait狀態下,等待2msl一段時間,沒有資料到來的,就認為對面已經收到了自己傳送的ack並正確關閉了進入close狀態,自己也斷開了到服務端的tcp連線,釋放所有資源。當服務端收到客戶端的ack回應後,會進入close狀態,並關閉本端的會話介面,釋放相應資源。

第一次握手 客戶端(10.240.80.99) 傳送ack ,通過fin通知對方關閉連線

第二、三次握手:服務端(47.95.47.253)關閉的連線,通過fin通知對方關閉連線

第四次握手客戶端(10.240.80.99 )關閉連線,並傳送ack值和ack確認號( ack的值+1) 

四次揮手:可以由伺服器端發起,也可以由客戶端發起

charles網路除錯**工具

http預設埠80

https預設埠443

hri和url區別

hri:統一資源識別符號,相當於人的身份證號

http是無狀態的,即沒有記憶功能,

http三次握手 HTTP三次握手,四次揮手。

三次握手 首先解析伺服器dns,找到ip,然後開始建立連線 1.第一次握手 建立連線,客戶端a傳送syn 1 隨機產生seq client isn的資料報到伺服器b,等待伺服器確認。2.第二次握手 伺服器b收到請求後確認聯機 可以接受資料 發起第二次握手請求,ack a的seq 1 syn 1,隨機...

http三次握手,四次揮手

本文經過借鑑書籍資料 他人部落格總結出的知識點,歡迎提問 序列號seq 佔4個位元組,用來標記資料段的順序,tcp把連線中傳送的所有資料位元組都編上乙個序號,第乙個位元組的編號由本地隨機產生 給位元組編上序號後,就給每乙個報文段指派乙個序號 序列號seq就是這個報文段中的第乙個位元組的資料編號。確認...

HTTP三次握手四次揮手

一 瀏覽器渲染流程 tcp 建立連線 tcp三次握手 傳送http請求 伺服器處理並響應報文 瀏覽器解析並渲染頁面 斷開連線 tcp 結束連線 二 http之tcp三次握手與四次揮手詳解 三次握手 three way handshake 是指建立乙個 tcp 連線時,需要客戶端和伺服器總共傳送3個包...