tcp連線close過程

2021-06-07 21:04:41 字數 770 閱讀 1626

active

passive

tcp_fin_wait1 -------fin------->

tcp_fin_wait2 <------ack--------tcp_close_wait

<------data-------

<------fin--------tcp_last_ack

tcp_time_wait --------ack------->tcp_close

||2msl

\|/tcp_close

其中:主動發起fin的一端的tcp_time_wait狀態中,可以發給passive的ack丟失,會重發,但是2msl時間後,強行進入tcp_close

如果在tcp_fin_wait1階段收到對端傳送的fin訊號,則雙方都進入tcp_closing

active

passive

tcp_fin_wait1 -------fin------->

tcp_closing   <-------fin-------- tcp_fin_wait1

|  \|/

tcp_closing

tcp_time_wait --------ack------->

<-------ack-------   tcp_time_wait

|                                  |

|2msl

| 2msl

\|/ \|/

tcp_close

tcp_close

TCP連線中的close和shutdown

今天在看網路的書,自己想寫乙個tcp連線半關閉的程式.在連線建立之後,客戶端呼叫了close函式,但是伺服器端並沒有close.埠的狀態和書上講的一樣,客戶端進入過了fin wait2狀態,而伺服器端進入了close wait狀態.但是客戶端在繼續向客戶端寫入資料時,寫入成功,但是客戶端讀取出了錯誤...

TCP連線建立過程和TCP連線終止過程

1 當客戶端想要與伺服器端進行tcp通訊時,會首先傳送乙個syn同步包 tcp包頭的syn位被置位 並指明要連線的伺服器端口號。2 如果伺服器端同意連線,就會向客戶端傳送乙個ack確認包 tcp包頭的ack被置位 表示同意客戶端的請求,同時將該包的syn位置位,表示伺服器也想與客戶端通訊。3 客戶端...

TCP連線過程

1 建立連線協議 三次握手 1 客戶端傳送乙個帶syn標誌的tcp報文到伺服器。這是三次握手過程中的報文1.2 伺服器端回應客戶端的,這是三次握手中的第2個報文,這個報文同時帶ack標誌和syn標誌。因此它表示對剛才客戶端syn報文的回應 同時又標誌syn給客戶端,詢問客戶端是否準備好進行資料通訊。...