1. 程式人生 > >TCP協議11種狀態集!

TCP協議11種狀態集!

sha listen type ets 分享 .com close 客戶端 接受

TCP協議的11種狀態集

### tcp協議11種狀態集轉換“三次握手5種狀態,四次揮手6種狀態”
服務端:closed—listen—syn_rcvd—established—close_wait—last_ack—close
客戶端:closed—syn_send—established—fin_wait1—fin_wait2—time_wait—close
1. tcp三次握手狀態集轉換:
服務端:
(1)closed—listen(開啟相應服務),只有在listen狀態服務端才可能建立請求
(註意:closed—listen狀態,實際是建立了一個socket 條目信息)
netstat -an | grep -i es 查看socket 條目信息

(2)服務端listen收到客戶端的syn請求並響應syn和ack,從listen—syn_rcvd狀態(第二次握手)

客戶端:
(1)客戶端發送syn信息到服務端,closed—syn_send(第一次握手)
(2)客戶端在syn_send狀態收到syn和ack字段,並回復ack確認(第三次握手)

如圖:
技術分享圖片

2. tcp四次揮手狀態集轉換:
客戶端:
(1)客戶端在established狀態發送fin字段給服務端,established—fin_wait1(四次揮手第一次)
(2)客戶端在fin_wait1接受來自服務端的ack信息
(3)客戶端在fin_wait2狀態接收服務端fin,相應ack,fin_wait2—time_wait狀態

(4)客戶端在time_wait等待90秒後,最終回歸close狀態

服務端:
(1)服務端在established狀態收到來自客戶端的fin字段,established—close_wait,
(2)服務端在close_wait發送ack確認字段(四次揮手第二次揮手)
(3)服務端在close_wait發送fin斷開字段給客戶端,close_wait—last_ack(四次揮手第三次)
(4)服務端在last_ack狀態收到客戶端ack信息,最終回歸close原始狀態

如此,三次握手和四次揮手的狀態集就形成啦!最後給大家安利張圖!
技術分享圖片

TCP協議11種狀態集!