1. 程式人生 > >iOS TCP三次握手過程 有意思的解釋

iOS TCP三次握手過程 有意思的解釋

TCP(Transmission Control Protocol,傳輸控制協議)是面向連線的協議,也就是說,在收發資料前,必須和對方建立可靠的連線。一個TCP連線必須要經過三次對話才能建立起來,其中的過程非常複雜,只簡單的描述下這三次對話的簡單過程:主機A向主機B發出連線請求資料包:我想給你發資料,可以嗎?,這是第一次對話;主機B向主機A傳送同意連線和要求同步(同步就是兩臺主機一個在傳送,一個在接收,協調工作)的資料包:可以,你什麼時候發?,這是第二次對話;主機A再發出一個數據包確認主機B的要求同步:我現在就發,你接著吧!,這是第三次對話。三次對話的目的是使資料包的傳送和接收同步,經過三次
對話之後,主機A才向主機B正式傳送資料。
詳細點說就是:(文章部分轉載http://zhangjiangxing-gmail-com.iteye.com,主要是這個人講解得很到位,的確很容易使人理解!)
TCP三次握手過程
主機A通過向主機B 傳送一個含有同步序列號的標誌位的資料段給主機B ,向主機B 請求建立連線,通過這個資料段,
主機A告訴主機B 兩件事:我想要和你通訊;你可以用哪個序列號作為起始資料段來回應我.
2 主機B 收到主機A的請求後,用一個帶有確認應答(ACK)和同步序列號(SYN)標誌位的資料段響應主機A,也告訴主機A兩件事:
我已經收到你的請求了,你可以傳輸資料了;你要用哪佧序列號作為起始資料段來回應我
3 主機A收到這個資料段後,再發送一個確認應答,確認已收到主機B 的資料段:"我已收到回覆,我現在要開始傳輸實際資料了

這樣3次握手就完成了,主機A和主機B 就可以傳輸資料了.
3次握手的特點
沒有應用層的資料
SYN這個標誌位只有在TCP建產連線時才會被置1
握手完成後SYN標誌位被置0


TCP
建立連線要進行3次握手,而斷開連線要進行4次

當主機A完成資料傳輸後,將控制位FIN置1,提出停止TCP連線的請求
2  主機B收到FIN後對其作出響應,確認這一方向上的TCP連線將關閉,將ACK置1
3 由B 端再提出反方向的關閉請求,將FIN置1
4 主機A對主機B的請求進行確認,將ACK置1,雙方向的關閉結束.
由TCP的三次握手和四次斷開可以看出,TCP使用面向連線的通訊方式,大大提高了資料通訊的可靠性,使傳送資料端
和接收端在資料正式傳輸前就有了互動,為資料正式傳輸打下了可靠的基礎

相關推薦

iOS TCP握手過程 有意思解釋

TCP(Transmission Control Protocol,傳輸控制協議)是面向連線的協議,也就是說,在收發資料前,必須和對方建立可靠的連線。一個TCP連線必須要經過三次“對話”才能建立起來,其中的過程非常複雜,只簡單的描述下這三次對話的簡單過程:主機A向主機B發出

TCP握手過程

。:“ 概念:Tcp:傳輸控制協議TCP是主機對主機層的傳輸控制協議,提供可靠的連接服務,采用三次握手確認建立一個連接位碼即tcp標誌位,有6種標示:SYN(synchronous建立聯機) ACK(acknowledgement 確認) PSH(push傳送) FIN(finish結束) RST(reset

握手斷開】TCP握手過程和四斷開

TCP的三次握手和四次斷開   TCP三次握手過程 1 主機A通過向主機B 傳送一個含有同步序列號的標誌位的資料段給主機B ,向主機B 請求建立連線,通過這個資料段, 主機A告訴主機B 兩件事:我想要和你通訊;你可以用哪個序列號作為起始資料段來回應我. 2 主機B 收到主機A

TCP握手過程】Java Service Wrapper簡介與使用 --- 學習中

ava Service Wrapper簡介與使用    在實際開發過程中很多模組需要獨立執行,他們並不會以web形式釋出,傳統的做法是將其壓縮為jar包獨立執行,這種形式簡單易行也比較利於維護,但是一旦伺服器重啟或出現異常時,程式往往無法自行修復或重啟。解決伺服器重啟的傳統做

wireshark 抓包 例項分析TCP握手過程

 三次握手過程為 這圖我都看過很多遍了, 這次我們用wireshark實際分析下三次握手的過程。 開啟wireshark, 開啟瀏覽器輸入 http://www.cr173.com 在wireshark中輸入http過濾, 然後選中GET /tankxiao HTTP/1.1的那條記錄,右鍵然後點選"Fo

tcpdump抓包分析TCP握手過程

tcpdump port 6000 -c 3 -n內容如下:21:07:17.790296 IP  192.168.1.104.2511 > 192.168.1.90.6000: S 3359422806:3359422806(0) win 64240 <mss1460,nop,nop,sackO

TCP握手過程分析

TCP 三次握手過程分析 傳輸控制協議 (TCP) 旨在用作分組交換計算機通訊網路中,以及這些網路的互連繫統中的主機之間的高度可靠的主機到主機協議。 建立 TCP 連線 最簡單的三次握手如下所示: TCP A

TCP協議握手過程分析

fmt 圖1 同步 建立連接 協議 from pan mir 重置 TCP(Transmission Control Protocol) 傳輸控制協議。 TCP是主機對主機層的傳輸控制協議,提供可靠的連接服務,采用三次握手確認建立一個連接: 位碼即tcp標誌位,有6種標

TCP握手詳解及釋放連接過程

alt 信息 情況 序列號 丟失 浪費 需要 nbsp image TCP在傳輸之前會進行三次溝通,一般稱為“三次握手”,傳完數據斷開的時候要進行四次溝通,一般稱為“四次揮手”。 兩個序號和三個標誌位: (1)序號:seq 序號,占 32 位,用來標識從 TCP

TCP握手與四揮手過程

結束 傳輸 tro img 連接 回復 重新 選擇 主動斷開 TCP連接的建立(三次握手) 首先,客戶端與服務器均處於未連接狀態,並且是客戶端主動向服務器請求建立連接:   客戶端將報文段中的SYN=1(同步位),並選擇一個seq=x,(即該請求報文的序號為x) 將這

Python中的TCP握手和四揮手過程

時間 斷開連接 產生 等待 ip地址 狀態 ima ack 丟失 tcp三次握手和四次揮手 首先先介紹什麽是傳輸層: 1、三次握手 1) 三次握手的詳述 首先Client(客戶)端發送連接請求報文,Server(服務器)段接受連接後回復ACK報文,並為這

簡述TCP握手過程

四次握手 href static recv Edito 二次 lose ets pst TCP握手協議 在TCP/IP協議中,TCP協議提供可靠的連接服務,采用三次握手建立一個連接.第一次握手:建立連接時,客戶端發送syn包(syn=j)到服務器,並進入SYN_SEND狀態

HTTP請求過程-域名解析和TCP握手建立連結

  我們在瀏覽器輸入http://www.baidu.com想要進入百度首頁,但是這是個域名,沒法準確定位到伺服器的位置,所以需要通過域名解析,把域名解析成對應的ip地址,然後通過ip地址查詢目的主機。整個訪問過程可以概括為: 域名解析 發起TCP三次握手建立連線 建立連線後發

TCP握手和四揮手過程原理及擴充套件(一)

先上圖:  三次握手過程狀態:          LISTEN:表示伺服器端的某個SOCKET處於監聽狀態,可以接受連線了。         SYN_SENT:當客戶端SOCKET執行CONNECT連線時,它首先發送SYN報文,因此也隨即它會進入SYN_SENT狀態

TCP握手和四揮手過程原理及擴充套件(二)

【1】TCP如何保證可靠性傳輸? 在傳遞資料之前,會有三次握手來建立連線 應用資料被分割成TCP認為最合適的資料庫(按位元組編號,合理分片),這和UDP完全不同,應用程式產生的資料報長度保持不變。(將資料截斷為合理的長度) 當TCP發出一個段後,它啟動一個定時器,等待目

TCP 握手與四揮手?(解釋一下握手與四揮手)

TCP 三次握手與四次揮手?(解釋一下三次握手與四次揮手) 三次握手建立連線 1)  主機A傳送一個SYN段到主機B告訴B想要連線的主機埠,以及初始的序列號(ISN:x)(報文段1) 2) 主機B應答,伺服器發回包含B的初始序號的SYN報文段(報文段

TCP握手和四揮手過程以及連線為什麼使用連線,釋放使用四

TCP三次握手: 第一次握手:客戶端A傳送位碼為SYN=1,隨機產生序號seq=123的資料包到伺服器B,伺服器B由SYN=1知道,A                       要求建立聯機; 第二次握手:伺服器B收到請求後要確認聯機資訊,向A傳送ACK=1,SYN=1

TCP握手揮手過程詳解

TCP頭部: 其中 ACK   SYN  序號  這三個部分在以下會用到,它們的介紹也在下面。 暫時需要的資訊有: ACK : TCP協議規定,只有ACK=1時有效,也規定連線建立後所有傳送的報文的ACK必須為1 SYN(SYNchronization) : 在連線建立

深入理解TCP握手和四揮手過程

三次握手: A:“喂,你聽得到嗎?”A->SYN_SEND B:“我聽得到呀,你聽得到我嗎?”應答與請求同時發出 B->SYN_RCVD | A->ESTABLISHED A:“我能聽到你,今天balabala……”B->ESTABLISHED 四次