1. 程式人生 > >詳解HTTP的3次握手和4次揮手

詳解HTTP的3次握手和4次揮手

【HTTP與TCP/IP】
我們知道網路由下往上分為7層:物理層、資料鏈路層、網路層、傳輸層、會話層、表示層和應用層。
TPC/IP協議是傳輸層協議,主要解決資料如何在網路中傳輸。
HTTP是應用層協議,主要解決如何包裝資料。
所以說HTTP是基於TPC/IP的,與HTTP類似也是基於TPC/IP的還有FTP啊這類的應用層協議。

【TCP/IP三次握手建立連線】

如上圖,客戶端首先發起第一次握手,向服務端示好(我要傳一些資料給你);
服務端聽到後如果表示可以接受資料,則向客戶端發起第二次握手(這次握手錶示,我能接受你的資料哦,同時由於TCP/IP是全雙工的,服務端的這次握手也是在詢問,你能接受我返回給你的資料嗎?);
接著客戶端發起第三次握手(告訴服務端,是的,我也能接受你返回給我的資料,OK,這下兩個人都放心了,連線建立成功)。


【TCP/IP四次揮手釋放連線】

TCP/IP是全雙工的,每個方向都必須單獨進行關閉。有一方完成它的資料傳送任務後就能傳送一個FIN來終止這個方向的連線。
比如客戶端給服務端傳送一個FIN,告訴服務端,我再也沒有資料要傳給你啦,這是第一次揮手;
服務端收到後返回一個ACK告訴客戶端,好的,知道啦,這是第二次揮手。客戶端收到確認後就可以關閉往服務端那邊的資料傳輸通道了,這個時候服務端仍然可以往客戶端繼續傳送資料。
待服務端也再沒有資料要往客戶端傳送時,就也發一個FIN到客戶端,告訴它,我也沒啥要傳給你了,這是第三次揮手。
客戶端得知後在返回一個ACK告訴服務端,好的,收完了,服務端也就可以安心關閉往客戶端的資料傳輸通道了,這是第四次揮手。自此雙向的傳輸通道都已關閉,連線成功釋放。

相關推薦

TCP的3握手4揮手

為什麼有3次握手          每當建立一個TCP/IP連線的時候都要經歷3次握手,這是為了保證建立一個可靠的連線。 什麼是3次握手        上圖中的三次揮手說的是,客戶端向伺服器發請求,伺服器接收請求,伺服器接收請求之後傳送一個連線標誌,客戶端接收連線標

HTTP的3握手4揮手

【HTTP與TCP/IP】我們知道網路由下往上分為7層:物理層、資料鏈路層、網路層、傳輸層、會話層、表示層和應用層。TPC/IP協議是傳輸層協議,主要解決資料如何在網路中傳輸。HTTP是應用層協議,主要解決如何包裝資料。所以說HTTP是基於TPC/IP的,與HTTP類似也是基

TCP3握手4揮手及其為什麽

one list 錯誤信息 準備工作 dos攻擊 str recv 協商 ring TCP 3次握手 客戶端向服務器發送一個SYN(包含了SYN,SEQ)。 當服務器接收到客戶端發過來的SYN時,會向客戶端發送一個SYN+ACK的數據包,其實ACK的ack等於上一次發送SY

Python之Tcp3握手4揮手

本人總結出來的圖= = 。 沒什麼邏輯思維,讓大家好記一點。 首先客戶端和伺服器的互動都是客戶端client主動發起的。 A為客戶端 B為伺服器 第一步:AB初識。 A需要先打招呼,A說:你好,我想認識你(SYN), 送你的禮物(一個seq=x 序列號。) 第二步:B收到請求後,覺得A可以瞭

TCP的3握手4揮手過程

建立連線(3次握手) SYN是標誌位,設定SYN=1,表示請求建立連線 服務端會同時和多個客戶端建立連線,所以在報文互動時,需要帶上序號seq,在響應是seq+1,以此來檢測報文合法性 連線過程 客戶端:我想建立一個連線。狀態:CLOSED

為什麼要3握手4揮手

TCP的3次握手和4次揮手很好理解,但如果問一句,你思考過為什麼需要這麼複雜的步驟嗎?   還是來回顧下這兩個操作,首先明確下TCP是全雙工通訊(2個方向能同時通訊) (1)3次握手 這裡我用男生和女生聊天的例子來解釋 男生:在幹嘛(第1次握

TCP為什麼要3握手4揮手時等待2MSL

和TCP三次同步握手不一樣的是,TCP關閉連線用四次握手來實現,即A--->B Fin, B--->A ACK, B--->A Fin, A--->B ACK,為什麼要這樣? A--->B Fin, B--->A ACK ,A屬於主動關閉方,收到B的ACK後,A到B的方向連

Java 基礎快速掌握 TCP 3握手4握手的理解

一、概述 配圖不是我自己的,來源於網路 二、理解 3次握手: 3次握手指的是TCP 建立連線 階段 1.Client–>Service SYN

TCP協議的3握手4揮手過程

進行 發送數據 不存在 信息 隊列 協議 標識 方式 ar9 所謂三次握手(Three-Way Handshake)即建立TCP連接,就是指建立一個TCP連接時,需要客戶端和服務端總共發送3個包以確認連接的建立。所謂四次揮手(Four-Way Wavehand)即終止TCP

TCP三握手揮手

tcp三次握手和四次揮手詳解TCP(Transmission Control Protocol)網絡傳輸控制協議,是一種面向連接的、可靠的、基於字節流的傳輸層通信協議,數據傳輸前建立連接的工作要經過三次握手,數據傳輸後斷開連接的工作要經過四次揮手。工作過程TCP標誌位:TCP共有6個標誌位,分別是:SYN(s

TCP協議的3握手4揮手過程 標籤: TCP IM

1、前言 儘管TCP和UDP都使用相同的網路層(IP),TCP卻嚮應用層提供與UDP完全不同的服務。TCP提供一種面向連線的、可靠的位元組流服務。 面向連線意味著兩個使用TCP的應用(通常是一個客戶和一個伺服器)在彼此交換資料之前必須先建立一個TCP連線。這一過程與打電話很相似,先撥

Linux網路程式設計---TCP的三握手揮手

我們知道,在TCP/IP協議中,TCP協議提供可靠的連線服務,是因為它有許多保證可靠連線的機制。可以分為3個方面: 1.確認應答機制:指的是不管哪一端傳送資料都需要確認回覆一下。 2.超時重傳機制,傳送後等待一段時間,不管是傳送失敗或者是還沒有收到回覆,那麼就認為資料傳輸失敗了;此時將會

(轉)理論經典:TCP協議的3握手4揮手過程

<div id="article_content" class="article_content clearfix csdn-tracking-statistics" data-pid="blog" data-mod="popu_307" data-dsm="post"

TCP的三握手揮手

TCP傳輸連線管理 TCP協議是可靠傳輸的 使用TCP通訊有三個階段,分別為連線建立、資料傳送、和連線釋放。 TCP連線的建立都是採用客戶伺服器的方式 主動發起連線建立的應用程序叫客戶(client) 被動等待連線建立的應用程序叫伺服器(server) 連線建立和資料傳輸

網路通訊的三握手分手

三次握手 TCP是主機對主機層的傳輸控制協議,提供可靠的連線服務,採用三次握手確認建立一個連線: 位碼即tcp標誌位,有6種標示:SYN(synchronous建立聯機) ACK(acknowledgement 確認) PSH(push傳送) FIN(f

網路通訊中的三握手揮手

0.  準備知識 (1)ACK ,TCP協議規定只有ACK=1時有效,也規定連線建立後所有傳送的報文的ACK必須為1。 (2)SYN,在連線建立時用來同步序號。當SYN=1而ACK=0時,表明這是一個連線請求報文。對方若同意建立連線,則應在響應報文中使SYN=1和ACK=

TCP三握手揮手以及原因

三次握手 三次握手(three times handshake;three-way handshake)所謂的“三次握手”即對每次傳送的資料量是怎樣跟蹤進行協商使資料段的傳送和接收同步,根據所接收到的資料量而確定的資料確認數及資料傳送、接收完畢後何時撤消聯絡,

乙太網幀、IP資料報、TCP報文的格式,TCP的三握手揮手過程

乙太網幀、IP資料報、TCP報文等各級報文在更底層的報文或(幀)中的位置: 乙太網幀格式: 上面的源地址和目的地址是指網絡卡的硬體地址(MAC地址),長度均為6B。 網絡卡晶片(例如DM9000A)收到的資料就是如上所示的一長串資料;其中包括乙太網幀頭、IP報報

TCP 三握手揮手的流程,為什麼斷開連線要 4 ,如果握手只有兩,會出現什麼。

·       第一次握手(SYN=1, seq=x):客戶端傳送一個 TCP 的 SYN 標誌位置1的包,指明客戶端打算連線的伺服器的埠,以及初始序號 X,儲存在包頭的序列號(SequenceNumber)欄位裡。傳送完畢後,客戶端進入 SYN_SEND 狀態。·     

TCP協議的三握手揮手

揮手 這一 nbsp 服務端 msl cnblogs chm 可靠的 不相信 TCP報文段格式圖: 序號:seq序號,用來標識從TCP源端向目的端發送的字節流,發起方發送數據時對此進行標記。 確認號:ack序號,只有ACK標誌位為1時,確認序號字段才有效,Ack=seq+1