TCP三次握手,四次揮手異常情況

2021-09-11 04:24:13 字數 805 閱讀 9048

(1)、client第乙個syn包丟失,沒有收到server的ack,則client進行持續重傳syn包。總嘗試時間為75秒。參與文獻《tcp/ip詳解 卷1:協議》p178

(2)、server收到了client的syn,並發出了syn+ack包,syn+ack包丟失。

client方面,因為沒收server的。將執**況(1);

server方面,超時時間內沒有收到client的ack包(或者資料報),會持續傳送syn+ack包;

(3)、當client端收到server的syn+ack應答後,其狀態變為established,並傳送ack包給server;

如果此時ack在網路中丟失,那麼server端該tcp連線的狀態為syn_recv,並且依次等待3秒、6秒、12秒後重新傳送syn+ack包,以便client重新傳送ack包,以便client重新傳送ack包。

server重發syn+ack包的次數,可以通過設定/proc/sys/net/ipv4/tcp_synack_retries修改,預設值為5。

如果重發指定次數後,仍然未收到ack應答,那麼一段時間後,server自動關閉這個連線。

如果此時client向server傳送資料報,server能正常接收資料。並認為連線已正常。參考:

應用層編寫socket**時,三次握手發生在client的connect,所以為了避免長時間(75秒)無響應連線,應設定為非阻塞socket,同時用select檢測設定合適的超時時間。

posted @

2019-02-20 22:13

知有 閱讀(

...)

編輯收藏

TCP三次握手 四次揮手

tcp 三次握手 tcp 連線是通過三次握手進行初始化的。三次握手的目的是同步連線雙方的序列號和確認號並交換 tcp 視窗大小資訊。以下步驟概述了通常情況下客戶端計算機聯絡伺服器計算機的過程 1.客戶端向伺服器傳送乙個syn置位的tcp報文,其中包含連線的初始序列號x和乙個視窗大小 表示客戶端上用來...

TCP三次握手 四次揮手

服務端的tcp程序先建立傳輸控制塊tcb,準備接受客戶端程序的連線請求,然後服務端程序處於listen狀態,等待客戶端的連線請求,如有,則作出響應。1 客戶端的tcp程序也首先建立傳輸控制模組tcb,然後向服務端發出連線請求報文段,該報文段首部中的syn 1,ack 0,同時選擇乙個初始序號seq ...

TCP三次握手四次揮手

tcp transmission control protocol 傳輸控制協議 tcp是主機對主機層的傳輸控制協議,提供可靠的連線服務,採用三次握手確認建立乙個連線。位碼即tcp標誌位,有6種標誌 urg urgent緊急 ack acknowledgement 確認 psh push傳送 rst...