有圖可知,由於http只有請求和響應的概念,通道連線需要通過tcp來完成的,因此讓我們先來談談tcp的三次握手和四次分手吧客戶端首先要syn=1,表示要建立連線
服務端接收到後,要告訴客戶端:我接受到了!所以加個ack=1表示確認跟客戶端建立連線,因為tcp連線是雙向的,然後還需要傳送syn=1表示我也想跟你連線
理論上這時就建立連線成功(也就是半連線狀態)了,但是要防止乙個意外(也就是下面的為什麼需要三次握手),所以客戶端要再發乙個訊息給服務端確認一下,這時只需要ack=1就行了
三次握手完成
首先客戶端請求關閉客戶端到服務端方向的連線,這時客戶端就要傳送乙個fin=1,表示要關閉乙個方向的連線(見上面四次分手的圖)
服務端接收到後是需要確認一下的,所以返回了乙個ack=1,現在處於半關閉狀態,服務端還可以傳送資料給客戶端(關閉了客戶端向服務端傳送資料的通道,但tcb還未銷毀,仍可傳送ack)
這時只關閉了tcp乙個方向,另乙個方向也需要關閉,如果服務端沒有資料傳送給客戶端了,服務端也向客戶端發了乙個fin=1 ,ack=1,當然也要有seq和ack
客戶端接收到後傳送ack=1,表示接受成功
服務端接收到客戶端發來的ack=1後關閉tcp連線,銷毀tcb(什麼是tcb見下)
客戶端等到2msl後再銷毀tcb(什麼是2msl見下)
四次分手完成!
2msl解釋:2msl是什麼?深入淺出通俗理解 TCP的三次握手 四次分手
運輸連線有三個階段,即 連線建立 資料傳送和連線釋放。運輸連線的管理就是使運輸連線的建立和釋放都能正常地進行。連線建立過程中要解決以下三個問題 要使每一方能夠確知對方的存在。要允許雙方協商一些引數 如最大報文段長度,最大視窗大小,服務質量等 能夠對運輸實體資源 如快取大小,連線表中的專案等 進行分配...
tcp三次握手和四次握手
建立tcp需要三次握手才能建立,而斷開連線則需要四次握手。整個過程如下圖所示 先來看看如何建立連線的。首先client端傳送連線請求報文,server段接受連線後回覆ack報文,並為這次連線分配資源。client端接收到ack報文後也向server段發生ack報文,並分配資源,這樣tcp連線就建立了...
TCP三次握手和四次握手
ip 網路層 不穩定性。硬體聯絡緊密 傳輸層 1.完全不彌補 udp 無連線不可靠報文傳輸 2.完全彌補 tcp 面向連線的可靠資料報傳遞 tcp傳送資料就包含了tcp三次握手建立連線和關閉連線的四次握手 建立連線用syn傳送,用ack應答 所謂三次握手就是客戶端與伺服器之間的三次應答。伺服器是一直...