TCP 通訊 簡記

2021-10-25 08:22:45 字數 1223 閱讀 1816

1.客戶端向伺服器端傳送請求建立鏈結報文,

資料: syn = 1, ack = 0 , seq = i

狀態: 客戶端進入 syn_send

2. 伺服器端接收到,客戶端傳送的報文,返回統一鏈結確認報文

資料: syn = 1, ack = 1 , ack = i+1, seq = j

狀態: 伺服器端進入 syn_rcvd

3. 客戶端接受到伺服器端返回的確認報文,將確認報文傳送到伺服器端,鏈結建立

資料: ack = 1 , ack= j+1 , seq = i + 1

狀態: 客戶端: established ; 伺服器端 : established

注:syn : 同步序列號,用來發起鏈結,syn = 1 ,不能攜帶資料

ack : 確認標識,ack = 1 時,確認才有效

seq : 序列號,資料報本身的序列號

ack : 對收到資料報的確認,值是等待接收資料報的序列號

一 : 客戶端傳送關閉請求給伺服器端

資料: fin = 1, seq = u

狀態 : 客戶端 : established -> fin-wait_1

二 : 伺服器端接收到客戶端的關閉請求,返回響應資料

資料: ack = 1, seq = v , ack = u+1

狀態: 伺服器端: established -> close-wait

三: 客戶端,接收到伺服器端傳送的鏈結關閉的確認報文後,不會再向伺服器端傳送報文

資料 : 無

狀態 : 客戶端 : fin-wait_1 -> fin-wait_2

四: 伺服器端,傳送關閉請求,給客戶端

資料: fin =1, ack =1, seq = w, ack = u+1

狀態: 伺服器端: close-wait -> last-ack

五: 客戶端接收到伺服器端在此傳送的揮手報文,同時向伺服器端也傳送揮手報文

資料: ack=1, seq=u+1, ack = w+1

狀態: 客戶端: fin-wait_2 -> time-wait(2個msl時長後,進入closed狀態)

六: 伺服器端接收到客戶端傳送揮手報文

資料:無

狀態: 伺服器: last-ack -> closed

四次揮手完成

Linux下TCP通訊簡單例項

基於tcp 面向連線 的socket程式設計,分為伺服器端和客戶端 伺服器端的流程如下 1 建立套接字 socket 2 將套接字繫結到乙個本地位址和埠上 bind 3 將套接字設為監聽模式,準備接收客戶端請求 listen 4 等待客戶請求到來 當請求到來後,接受連線請求,返回乙個新的對應於此次連...

串列埠通訊簡介

簡介 串列埠是一種泛稱,uart spi iic usb等介面都屬於串列埠。而嵌入式中所說的串列埠,一般是指uart口,即通用非同步收發器 universal asynchronous receiver transmitter 由於該介面傳輸速率低等原因,在普通的計算機中基本已經被取消,但作為一種簡...

WCF通訊簡單示例

今天寫了乙個wcf demo,給大家分享,說明如下 服務介面類庫wcfservice.dll 服務實現類庫wcfservicimp.dll 服務宿主專案wcfhost 客戶端呼叫專案 wcftest 客戶端呼叫服務的時候,要引用介面類庫 wcfservice.dll 伺服器端宿主 public pa...