TCP三次握手和keep alive

2021-09-02 21:14:58 字數 312 閱讀 1955

tcp/ip協議很久之前看過,現在忘得差不多了,補充一下tcp的三次握手和狀態。

[img]

當對已經關閉的tcp套接字呼叫recv時,會返回-1,表示連線已經關閉,這是因為tcp有乙個keep_alive的機制,相當於心跳連線,保證連線斷開時,或者對方異常關閉時,自己能夠馬上知道,不會導致在recv上堵塞。

至於udp,因為沒有狀態,所以不會有keep_alive的機制,也無法第一時間得知對方已經關閉。

如何保證不會堵塞?第一種,比較常見就是配合select或epoll;第二種,使用較新的so_rcvtimeo和so_sndtimeo套接字選項。

tcp三次握手 TCP 三次握手總結

tcp特點概述 tcp segment structure 段結構 step2 server host receives syn,replie with syn ack segment 答覆syn ack報文段 step3 client receives synack,replies with ac...

TCP 三次握手

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

TCP三次握手

1.伺服器準備好接受外來連線。passive open 被動開啟 需呼叫 socket bind listen 函式來完成。2.客戶端通過呼叫 connect 主動開啟 active open 這使得客戶 tcp傳送乙個 syn 表示同步 分節,這個分節告訴伺服器,客戶端將在待建立的連線中傳送的資料...