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...