1. 程式人生 > >TCP/IP協議的三次握手和四次揮手(建立連線和斷開連線)

TCP/IP協議的三次握手和四次揮手(建立連線和斷開連線)

1、TCP/IP協議概述

TCP/IP協議(TransmissionControl Protocol/Internet Protocol)叫做傳輸控制/網際協議,又叫網路通訊協議,這個協議是Internet國際網際網路絡的基礎。TCP/IP是網路中使用的基本的通訊協議。雖然從名字上看TCP/IP包括兩個協議,傳輸控制協議(TCP)和網際協議(IP),但TCP/IP實際上是一組協議,它包括上百個各種功能的協議,如:遠端登入、檔案傳輸和電子郵件等,而TCP協議和IP協議是保證資料完整傳輸的兩個基本的重要協議。通常說TCP/IP是Internet協議族,而不單單是TCP和IP。TCP/IP協議使用範圍極廣,是目前異種網路通訊使用的唯一協議體系,適用於連線多種機型,既可用於區域網,又可用於廣域網,許多廠商的計算機作業系統和網路作業系統產品都採用或含有TCP/IP協議。TCP/IP協議已成為目前事實上的國際標準和工業標準。

TCP/IP是很多的不同的協議組成。TCP使用者資料報表協議,也稱作TCP傳輸控制協議(Transport Control Protocol,可靠的主機到主機層協議),這裡要先強調一下,傳輸控制協議是OSI網路的第四層的叫法,TCP傳輸控制協議是TCP/IP傳輸的6個基本協議的一種。兩個TCP意思不相同)。TCP是一種可靠的面向連線的傳送服務。它在傳送資料時是分段進行的,主機交換資料必須建立一個會話。它用位元流通訊,即資料被作為無結構的位元組流。通過每個TCP傳輸的欄位指定順序號,以獲得可靠性。是在OSI參考模型中的第四層,TCP是使用IP的網間互聯功能而提供可靠的資料傳輸,IP不停的把報文放到 網路上,而TCP是負責確信報文到達

。在協同IP的操作中TCP負責:握手過程、報文管理、流量控制、錯誤檢測和處理(控制),可以根據一定的編號順序對非正常順序的報文給予從新排列順序。

2、三次握手原理解析

圖1  三次握手

在TCP會話初期,有所謂的“三握手”,即對每次傳送的資料量是怎樣跟蹤進行協商使資料段的傳送和接收同步,根據所接收到的資料量而確定的資料確認數及資料傳送、接收完畢後何時撤消聯絡,並建立虛連線。為了提供可靠的傳送,TCP在傳送新的資料之前,以特定的順序將資料包的序號,並需要這些包傳送給目標機之後的確認訊息。TCP總是用來發送大批量的資料。當應用程式在收到資料後要做出確認時也要用到TCP。由於TCP需要時刻跟蹤,這需要額外開銷,使得TCP的格式有些顯得複雜。

TCP握手協議在TCP/IP協議中,TCP協議提供可靠的連線服務,採用三次握手建立一個連線

第一次握手:建立連線時,客戶端傳送syn包(syn=j)到伺服器,並進入SYN_SEND狀態,等待伺服器確認;

第二次握手:伺服器收到syn包,必須確認客戶的SYN(ack=j+1),同時自己也傳送一個SYN包(syn=k),即SYN+ACK包,此時伺服器進入SYN_RECV狀態;

第三次握手:客戶端收到伺服器的SYN+ACK包,向伺服器傳送確認包ACK(ack=k+1),此包傳送完畢,客戶端和伺服器進入ESTABLISHED狀態,完成三次握手。完成三次握手,客戶端與伺服器開始傳送資料,在上述過程中,還有一些重要的概念:未連線佇列:在三次握手協議中,伺服器維護一個未連線佇列,該佇列為每個客戶端的SYN包(syn=j)開設一個條目,該條目表明伺服器已收到SYN包,並向客戶發出確認,正在等待客戶的確認包。這些條目所標識的連線在伺服器處於Syn_RECV狀態,當伺服器收到客戶的確認包時,刪除該條目,伺服器進入ESTABLISHED狀態。Backlog引數:表示未連線佇列的最大容納數目。

SYN-ACK :重傳次數。 伺服器傳送完SYN-ACK包,如果未收到客戶確認包,伺服器進行首次重傳,等待一段時間仍未收到客戶確認包,進行第二次重傳,如果重傳次數超過系統規定的最大重傳次數,系統將該連線資訊從半連線佇列中刪除。注意,每次重傳等待的時間不一定相同。

半連線存活時間:是指半連線佇列的條目存活的最長時間,也即服務從收到SYN包到確認這個報文無效的最長時間,該時間值是所有重傳請求包的最長等待時間總和。有時我們也稱半連線存活時間為Timeout時間、SYN_RECV存活時間。

在TCP/IP協議中,TCP協議提供可靠的連線服務,採用三次握手建立一個連線。如圖1所示。


圖2 四次揮手

需要斷開連線的時候,TCP也需要互相確認才可以斷開連線,採用四次揮手斷開一個連線,如圖2所示。在第一次互動中,首先發送一個FIN=1的請求,要求斷開,目標主機在得到請求後傳送ACK=1進行確認;在確認資訊發出後,就傳送了一個FIN=1的包,與源主機斷開;隨後源主機返回一條ACK=1的資訊,這樣一次完整的TCP會話就結束了。

總結:

          傳輸層是整個協議層的核心,而TCP是面向連線的傳輸協議,用於在不可靠的因特網上提供可靠的,端到端的位元組流通訊的協議。所以說。TCP在傳輸層有著很重要的地位。

          而我認為TCP傳輸過程中建立連線是最重要的,TCP與UDP的區別也體現在這裡,TCP需要在資料傳輸前建立連線。一部分保障了資料傳輸的可靠性。

 還記得兩軍問題中由於兩軍距離問題在同步作戰的方案中,需要建立連線,達成協議,但是由於不能確定對方是否接收到訊息就會在雙發無休止的建立連線。而三次握手協議不僅保持著協議雙方的可靠通訊,也不會使得雙方的無休止的建立通訊這個弊端。而對每個報文都增加了一個定時器,設計一個最大延時,使得超時的資料認定為丟失,同時不會因為無休止的等待,而耽誤其他工作。

相關推薦

TCP/IP協議握手揮手大白話解說

ini 存在 detail 系統 超時 定時 com 又能 ssi TCP/IP協議三次握手和四次揮手大白話解說 前言 昨天晚上被一位師傅問到了TCP/IP的工作機制,心裏很清楚三次握手,然而對於四次揮手卻忘了,這是大學習裏學過的,奮而翻閱書籍和網絡對之前所學的做一個溫

tcp協議報文握手揮手

tcp報文 三次握手與四次揮手 tcp11種狀態tcp協議:tcp是面向連接、可靠的進程到進程之間的協議。tcp提供全雙工服務:即:數據可在同一時間雙向傳輸。tcp報文段首部格式:各字段含義:源端口號:16位字段,為發送端進程對應的端口號目標端口:16位字段,為接收端進程對應的端口號,接收方接收到數據

通俗理解TCP/IP協議握手分手流程

https 客戶端 四次揮手 謝謝 special csdn tails spec 走了 轉自:https://blog.csdn.net/special23/article/details/54137298 三次握手流程 客戶端發個請求“開門吶,我要進

TCP協議特點握手揮手

TCP的特性 TCP提供一種面向連線的、可靠的位元組流服務 在一個TCP連線中,僅有兩方進行彼此通訊。廣播和多播不能用於TCP TCP使用校驗和,確認和重傳機制來保證可靠傳輸 TCP給資料分節進行排序,並使用累積確認保證資料的順序不變和非重複 TCP使用滑動視窗機制來實現流量控

嵌入式linux網路程式設計,TCPIP協議原理,wireshark抓包工具,乙太網頭Ethernet headerIP頭,TCP頭,握手握手,UDP頭

文章目錄 1,wireshark抓包工具 1.1,wireshark安裝 1.2,wireshark啟動 1.2.1,出現錯誤警告 1.2.2,解決方案 2,常用除錯測試工具 3,TCP

簡述TCP協議的六個標誌位握手揮手的過程及原理

簡述TCP協議的三次握手與四次揮手的過程及原理        今天,我們來分享一下TCP協議的六個標誌位和三次握手與四次揮手的過程及原理。        先介紹一下TCP中的六個控制位,      

TCP/IP協議握手握手流程

(1)第一次握手:Client將標誌位SYN設定為1,隨機產生一個值seq=x,並將該資料包傳送給Server,Client進入SYN_SENT狀態,等待Server確認。(2)第二次握手:Server收到資料包後由標誌位SYN=1知道Client請求建立連線,Server將標誌位SYN和ACK都置為1,ac

TCP/IPTCP協議首部、握手揮手、FSM

timestamp 我希望 可能 傳輸 同步 調用 emc ron 超時 TCP包頭 <--------------------------------32 位------------------------------> 0 8

[計算機網路協議分析]TCP/IP協議握手握手流程解析

TCP/IP協議三次握手與四次握手流程解析 一、TCP報文格式 TCP/IP協議的詳細資訊參看《TCP/IP協議詳解》三卷本。下面是TCP報文格式圖: 圖1 TCP報文格式 上圖中有幾個欄位需要重點介紹下: (1)序號:Seq序號,佔3

TCP協議握手揮手通俗解析

再次 方式 32位 sent 時間 應用層 系統 socket編程 檢測 TCP/IP協議三次握手與四次握手流程解析 一、TCP報文格式 TCP/IP協議的詳細信息參看《TCP/IP協議詳解》三卷本。下面是TCP報文格式圖: 圖1 TCP報文格式 上圖中

理解TCP/IP握手揮手的正確姿勢

ron eight AI 主動 ddos攻擊 ID set 什麽 方案 背景 和女朋友異地戀一年多,為了保持感情我提議每天晚上視頻聊天一次。 從好上開始,到現在,一年多也算堅持下來了。 問題 有時候聊天的過程中,我的網絡或者她的網絡可能會不好,視頻就會卡住,聽不到對方的聲音

以女朋友為例講解 TCP/IP 握手揮手

seq 關於 轉載 向上 情況 日常 socket 標示 但是 背景 和女朋友異地戀一年多,為了保持感情我提議每天晚上視頻聊天一次。 從好上開始,到現在,一年多也算堅持下來了。 問題 有時候聊天的過程中,我的網絡或者她的網絡可能會不好,視頻就會卡住,聽不到對方的聲音

TCP握手端口有限狀態機

TCP三次握手、四次端口和有限狀態機1、TCP用三次握手(three-way handshake) 一對終端同時初始化一個它們之間的連接是可能的。但通常是由一端打開一個套接字(socket)然後監聽來自另一方的連接,這就是通常所指的被動打開(passive open)。服務器端被被動打開以後,用戶端就能開始創

Tcp協議握手揮手

adf ado 圖片 pro ext -o cto img size 一、Tcp協議(傳輸控制協議)1、面向連接的、可靠的進程到進程通信協議2、tcp提供雙工服務,即數據統一時間可以雙向傳輸3、tcp報文段A、tcp將若幹個字節構成一個分組B、tcp報文段封裝在ip數據報中

抓包查看TCP/IP握手分手

請求報文 無聊 技術分享 表示 新的 回復 握手 字段 inf 閑的無聊,自己折騰了個三次握手與四次分手,不正確的地方請大家批評 10.0.0.1 主機A10.0.0.200 主機B 1)由主機A向B發送建立TCP連接的請求報文,請求報文中SYN字段設置為1,表示需要建立

TCP協議握手揮手

TCP的概述 TCP 把連線作為最基本的物件,每一條 TCP 連線都有兩個端點,這種斷點我們叫作套接字(socket),它的定義為埠號拼接到 IP 地址即構成了套接字,例如,若 IP 地址為 192.3.4.16  而埠號為 80,那麼得到的套接字為 192.3.4.16:80 。 但凡是基於

TCP協議握手揮手

文章目錄 TCP報文格式 三次握手 四次揮手 注 TCP報文格式 TCP/IP協議的詳細資訊參看《TCP/IP協議詳解》三卷本。下面是TCP報文格式圖: 上圖中有幾個欄位需要重點介紹下: (1

tcp/ip----握手揮手

三次握手與四次揮手 1. 序列號seq佔4個位元組,用來標記資料段的順序,TCP把連線中傳送的所有資料位元組都編上一個序號,第一個位元組的編號由本地隨機產生,給位元組編上序號後,就給每一個報文段指派一個序號,序列號seq就是這個報文段中的第一個位元組的資料編號。 2. 確認號ack佔4個位元組,期待收到對

TCP協議詳解TCP報文、握手揮手、TIME_WAIT狀態、滑動視窗、擁塞控制、粘包問題、狀態轉換圖

一、TCP報文 【重要的欄位】: 序號:Seq序號,佔32位,用來標識從TCP源端向目的端傳送的位元組流,發起方傳送資料時對此進行標記; 確認序號:Ack序號,佔32位,只有ACK標誌位為1時,確

TCP/IP握手揮手、11種狀態知識點整理

做應用層做得比較久了,底層的一些知識點有點遺忘,今天正好有空梳理了一下關於TCP/IP通訊相關的一些知識點。 TCP三次握手建立連線 Tcp頭部   六個標誌位中,我們要用到三個: SYN:SYNchronous,SYN= 1 表示這是一個連線請求或連線接受報文。在建立連線時用來進行同步序號(個人理解