1. 程式人生 > >socket的TCP的三次握手&&四次揮手

socket的TCP的三次握手&&四次揮手

socket中的TCP_IP的三次握手與四次揮手:


(一)socket中TCP的三次握手建立連線:


(1)tcp建立連線要進行“三次握手”,即交換三個分組。大致流程如下:


客戶端向伺服器傳送一個SYN J
伺服器向客戶端響應一個SYN K,並對SYN J進行確認ACK J+1
客戶端再想伺服器發一個確認ACK K+1
只有就完了三次握手,但是這個三次握手發生在socket的那幾個函式中呢?請看下圖:


(2)示意圖:


(3)步驟:
1.當客戶端呼叫connect時,觸發了連線請求,向伺服器傳送了SYN J包,這時connect進入阻塞狀態;
2.伺服器監聽到連線請求,即收到SYN J包,呼叫accept函式接收請求向客戶端傳送SYN K ,ACK J+1,這時accept進入阻塞狀態;
3.客戶端收到伺服器的SYN K ,ACK J+1之後,這時connect返回,並對SYN K進行確認;伺服器收到ACK K+1時,accept返回,至此三次握手完畢,連線建立。


(4)總結:
客戶端的connect在三次握手的第二個次返回,而伺服器端的accept在三次握手的第三次返回。
--------------
(二)socket中TCP的四次揮手釋放連線:


(1)示意圖:


(2)過程:
1.某個應用程序首先呼叫close主動關閉連線,這時TCP傳送一個FIN M;
2.另一端接收到FIN M之後,執行被動關閉,對這個FIN進行確認。它的接收也作為檔案結束符傳遞給應用程序,因為FIN的接收意味著應用程序在相應的連線上再也接收不到額外資料;
3.一段時間之後,接收到檔案結束符的應用程序呼叫close關閉它的socket。這導致它的TCP也傳送一個FIN N;
4.接收到這個FIN的源傳送端TCP對它進行確認。

相關推薦

五層協議及tcp握手揮手

p地址 電平 揮手 syn 服務端 局域網 dhcp 網絡層 數據 一.五層協議:物理層:傳送數據 通過高低電平傳輸數據數據鏈路層:ethernet 以太網協議 必須有一塊網卡:12位16進制數,前六位位廠商編號,後六位為流水線號 (定位到某一臺機

socket的TCP的握手/揮手

exce 5.2.1 其他 oca clas message trac input 創建 第一次握手:客戶端嘗試連接服務器,向服務器發送syn包(同步序列編號Synchronize Sequence Numbers),syn=j,客戶端進入SYN_SEND狀態等待服務器確

tcp握手 揮手 (轉)

分享 cli fcm 是我 chm 2msl 比較 為什麽 需要 轉自: http://blog.csdn.net/whuslei/article/details/6667471 建立TCP需要三次握手才能建立,而斷開連接則需要四次握手。整個過程如下圖所示: 先來看

Tcp協議握手揮手

blog 可靠的 協議 smis 客戶端 finish 協議號 time 徹底 一、什麽是TCP   TCP(Transmission Control Protocol 傳輸控制協議)是一種面向連接(連接導向)的、可靠的、 基於IP的傳輸層協議。TCP在IP報文的協議號是6

[na]TCP的握手揮手/SYN泛洪

同步 阿裏 應用層 保護 才有 運行 cookie medium soc 1、TCP報文格式 上圖中有幾個字段需要重點介紹下: (1)序號:Seq序號,占32位,用來標識從TCP源端向目的端發送的字節流,發起方發送數據時對此進行標記。 (2)確認序號:Ack序號,占32位

python 網絡協議-------------- tcp 握手 揮手 簡述

三次握手 四次揮手 語言簡述 三次握手:第一次:客戶端向服務器端發出鏈接請求第二次:服務器端向客戶端給出響應可以鏈接第三次:客戶端告訴服務器端鏈接成功四次揮手:第一次:客戶端向服務器端發起斷開鏈接請求第二次:服務器端響應客戶端等會兒斷開第三次:服務器端響應客戶端可以斷開了第四次:客戶端告知服務器端

tcp握手揮手

tcp 三次握手 數據傳輸 四次揮手 tcp三次握手四次揮手圖解 1、tcp三次握手 第一次握手:建立連接時,客戶端發送SYN到服務器,並進入SYN_SENT狀態 第二次握手:服務器收到請求後,回送SYN+ACK信令到客戶端,此時服務器進入SYN_RECV狀態; 第三次握手:客戶端收到SYN+

day_6.10 tcp握手 揮手

In 技術分享 對比 分享 info 9.png 斷開連接 CP mage tcp和udp對比 tcp比udp穩定 斷開連接的四次揮手 day_6.10 tcp三次握手 四次揮手

TCP握手揮手詳解

位置 center 下載 服務器端 沒有 ctrl+c 有效 網絡協議 為我 相對於SOCKET開發者,TCP創建過程和鏈接折除過程是由TCP/IP協議棧自動創建的.因此開發者並不需要控制這個過程.但是對於理解TCP底層運作機制,相當有幫助. 而且對於有網絡協議工程師之類

web服務-1、http協議的握手揮手

sof close 基本 通信 無法 mage 數據 web 發送 知識點:http協議:它是基於tcp協議的,瀏覽器訪問服務器,服務器把資源回給瀏覽器,這個過程都是遵循http協議的,否則無法完成,http早些年是1.0版本,現在基本上都是1.1版本了,倆個版本的區別就是

TCP/IP握手揮手

.net 執行 source 建立連接 二次 同步 結束 tps sock TCP三次握手所謂握手,也就是建立連接,三次過程。三次握手旨在連接到服務端的指定端口,進行通信。建立一個TCP連接,需要向客戶端和服務端發送三個包。其中包含同步序列號和確認號以及TCP窗口大小的信息

tcp協議的握手揮手

第一次握手:建立連線時,客戶端傳送syn包到伺服器,並進入SYN_SENT狀態,等待伺服器確認;SYN:同步序列編號 第二次握手:伺服器收到syn包,必須確認客戶的SYN,同時自己也傳送一個SYN包和一個ack包,此時伺服器進入SYN_RECV狀態; 第三次握手:客戶端收到伺服器的SYN包和ACK包,

TCP/UDP協議、理解握手揮手、Socket

一、什麼是socket? 中文名叫套接字,是對底層的 TCP IP UDP 等網路協議進行封裝,使得上層的應用程式開發者,不用直接接觸這對複雜,醜陋的協議。 在程式設計師的言論,他就是一個封裝好的模組,要完成網路通訊,只需要使用系統提供的socket模組就行,我們通過呼叫模組中已經實現的方法建立兩個程序

握手,揮手

首先我們知道HTTP協議通常承載於TCP協議之上,HTTPS承載於TLS或SSL協議層之上 通過上面這張圖我們能夠知道。 在Http工作之前,Web瀏覽器通過網路和Web伺服器建立鏈連線,該連線是通過Tcp來完成的,該協議和Ip共同組成了Internet,即著名的Tcp/Ip協議族

超詳細且易於理解的握手揮手過程圖解

## 底層流程圖: SYN: 表示連線請求 ACK: 表示確認 FIN: 表示關閉連線 seq:表示報文序號 ack: 表示確認序號   ## 詳細圖解: > **圖解流程說明如下:** ## 通訊前:3次握手**3次握手:呼叫connect 雙方都在準備資源(目的)** 第一

Linux學習之網路程式設計(TCP握手揮手

言之者無罪,聞之者足以戒。 - “詩序” 1、三次握手: 看一下三次握手的框圖: (1)、伺服器必須準備好接受外來連線 (2)、客戶端呼叫connect來主動開啟一個連線,此時客戶端TCP將會發送一個SYN分節 (3)、伺服器必須確認客戶的SYN (4)、客戶必須確認伺

python-day27(握手,揮手)

一. Osi七層 二.  三次握手 四次揮手(重點) 3次握手: A約嗎>>>B約啊>>>A收到 4次揮手: A分手吧>>>B讓我考慮下>>>.B分吧>>>>A再見 三. Tcp和Udp的

day 27 網際網路TCP與UDP協議 ,握手揮手

一 . OSI七層模型(網際網路核心協議,從下往上的順序是物理層<資料鏈路層<網路層<傳輸層<會話層<表示層<應用層)         也瞭解下五層通訊的流程: 二 . socket      

python3.6入門到高階(全棧) day027 tcp協議的握手揮手

TCP協議的三次握手, 四次揮手   三次握手過程   1, 伺服器時刻準備接受客戶端程序的連線請求, 此時伺服器就進入了LISTEN(監聽)狀態;   2, 客戶端程序然後向伺服器發出連線請求報文, 之後客戶端程序進入了 SYN-SENT(同步已傳送狀態)狀態;   3, 伺

TCP、UDP之握手揮手

1. http協議的簡介 HTTP,HyperText Transfer Protocol。超文字傳輸協議,是網際網路上應用最為廣泛的一種網路協議。基於TCP的協議,HTTP是一個客戶端和伺服器端請求和應答的標準 2. TCP三次握手過程 SYN是請求