TCP中的優雅關閉和非優雅關閉

2021-10-04 19:45:18 字數 260 閱讀 1527

優雅關閉:其實就是正常的四次揮手

非優雅關閉:向對端傳送乙個rst報文直接進入closed狀態

伺服器為了避免太多time_wait的關閉方式:

1.保證由客戶端主動發起關閉

2.關閉的時候使用rst的方式

3.對處於time_wait狀態的tcp允許重用

一般我們當然最好是選擇第一種方式,實在沒有辦法的時候,我們可以使用so_linger選擇第二種方式,使用so_reuseaddr選擇第三種方式

參考:

優雅的關閉socket

我們在利用iocp 完成埠 進行程式設計的時候,經常要關閉一些不滿足條件的套接字。假如我們直接採用closesocket方法進行關閉的話,繫結到io埠的此套接字的未傳送的資料就會丟失,這種情況是我們不願意發生的。下面介紹一種合理關閉此套接字的方法 首先,利用setsockopt msdn 函式設定套...

SO LINGER和優雅關閉連線

當呼叫closesocket關閉套接字時,so linger將決定系統如何處理殘存在套接字傳送佇列中的資料。處理方式無非兩種 丟棄或者將資料 繼續傳送至對端,優雅關閉連線。事實上,so linger並不被推薦使用,大多數情況下我們推薦使用預設的關閉方式 即下方 中的第一種情況 struct ling...

Spark Streaming優雅的關閉策略優化

我們可以有兩種方式來更加優雅的停止流程式,分別是通過http暴露服務,和通過hdfs做訊息中轉來定時掃瞄mark檔案是否存在來觸發關閉服務。下面我們先來看下通過http暴露服務的核心 負責啟動守護的jetty服務 param port 對外暴露的埠號 param ssc stream上下文 負責接受...