TCP長短連線

2021-05-24 02:39:31 字數 1234 閱讀 6780

tcp

長短連線

1、什麼是

tcp長連線

從應用層來看,就是

client

到server

建立一次連線,傳送多個資料報,直到不再與

server

通訊時關閉連線。

connect----send----recv----send----recv----... ...----close。

從傳輸層來看,使用的是

keep alive timer

實現(tcp

對每個連線建立

7個定時器:

connection establishment

、retransmission

、delayed ack

、persist

、keep alive

、fin_wait_2

、time_wait

),keep alive

定時器會在應用層沒有資料傳送時每隔

2小時傳送乙個

tcp包,序列號是當前

segment sequence-1

,包內容為空,然後接收

ack。

目的:1、

防止對方掉電或者

crash

後能釋放連線;

2、通過nat

**或者防火牆的時候,由於

nat和防火牆會因為記憶體大小的原因而丟棄不活躍的連線,這就導致連線丟失,而

keep alive

定時器到期後傳送的

tcp包使連線在

nat或者防火牆上排到連線佇列的前面,避免被

nat或者防火牆釋放連線。

2、什麼是tcp

短連線

從應用層看,就是

client

發哦server

建立一次連線,通訊一次,斷開連線。

connect----send----recv----close   connect----send----recv----close

如果需要實現不釋放連線而傳送多次資料,需要在應用層實現心跳傳送。

3、優缺點:

長連線:一旦建立連線,以後傳送資料就避免了三次握手連線和四次握手關閉的開銷,但是需要額外傳送

keep alive

定時器到期傳送的

tcp包;

短連線:每次傳送資料都需要先三次握手建立連線,傳送資料後需要四次握手關閉連線,每次傳送資料都需要額外開銷,無維護連線的額外開銷。

TCP報文結構和長短連線

一 報文結構介紹 在開始講tcp連線過程時,還是先看看tcp報文的格式如圖1所示。ip資料報此時由ip頭部 tcp頭部 tcp資料組成。不帶選項的tcp頭部是20位元組長,而帶選項的,tcp頭部最長可達60位元組。常見的選項包括最大的大小 mss 時間戳 傳輸控制時使用 視窗縮放 流量控制時使用 選...

長短輪詢,長短連線

長短輪詢 相對於 客戶端動作來講是沒有區別的,都是不停的去請求,區別在於後端的反應和前端的行為。由於都比較占用服務端資源,就不說這些缺點了 短輪詢 是前端不停的請求,後端有沒有資料都會返回,前端拿到的是否為空資料也都繼續請求,因此,前端的資料不太好。長輪詢 也是前端不停的請求,後端去判斷 有資料返回...

Socket程式設計 長短連線

長連線和短連線是由客戶端決定的 短連線是客戶端每做乙個通訊就連線一次 如果是頻繁的業務模型,長連線比較好 寫乙個短連線的的例子 include include include include include include include include include include includ...