TCP狀態(tài)轉(zhuǎn)移圖:
netstat -apn | grep client 查看客戶端網(wǎng)絡(luò)連接狀態(tài)
netstat -apn | grep port 查看端口的網(wǎng)絡(luò)連接狀態(tài)
TCP狀態(tài)時(shí)序圖:
結(jié)合三次握手、四次揮手 理解記憶。
1. 主動(dòng)發(fā)起連接請(qǐng)求端:CLOSE -- 發(fā)送SYN -- SEND_SYN -- 接收 ACK、SYN -- SEND_SYN -- 發(fā)送 ACK -- ESTABLISHED(數(shù)據(jù)通信態(tài))
2. 主動(dòng)關(guān)閉連接請(qǐng)求端:ESTABLISHED(數(shù)據(jù)通信態(tài)) -- 發(fā)送 FIN -- FIN_WAIT_1 -- 接收ACK -- FIN_WAIT_2(半關(guān)閉)
-- 接收對(duì)端發(fā)送 FIN -- FIN_WAIT_2(半關(guān)閉)-- 回發(fā)ACK -- TIME_WAIT(只有主動(dòng)關(guān)閉連接方,會(huì)經(jīng)歷該狀態(tài))
-- 等 2MSL時(shí)長(zhǎng) -- CLOSE
3. 被動(dòng)接收連接請(qǐng)求端:CLOSE -- LISTEN -- 接收 SYN -- LISTEN -- 發(fā)送 ACK、SYN -- SYN_RCVD -- 接收ACK -- ESTABLISHED(數(shù)據(jù)通信態(tài))
4. 被動(dòng)關(guān)閉連接請(qǐng)求端:ESTABLISHED(數(shù)據(jù)通信態(tài)) -- 接收 FIN -- ESTABLISHED(數(shù)據(jù)通信態(tài)) -- 發(fā)送ACK
-- CLOSE_WAIT (說(shuō)明對(duì)端【主動(dòng)關(guān)閉連接端】處于半關(guān)閉狀態(tài)) -- 發(fā)送FIN -- LAST_ACK -- 接收ACK -- CLOSE
重點(diǎn)記憶: ESTABLISHED、FIN_WAIT_2<-->CLOSE_WAIT、TIME_WAIT(2MSL)
2MSL時(shí)長(zhǎng):
一定出現(xiàn)在【主動(dòng)關(guān)閉連接請(qǐng)求端】 --- 對(duì)應(yīng) TIME_WAIT 狀態(tài)。
保證,最后一個(gè) ACK 能成功被對(duì)端接收。(等待期間,對(duì)端沒(méi)收到我發(fā)的ACK,對(duì)端會(huì)再次發(fā)送FIN請(qǐng)求。)
二、半關(guān)閉及shutdown函數(shù)端口復(fù)用:
int opt = 1; // 設(shè)置端口復(fù)用。
setsockopt(lfd, SOL_SOCKET, SO_REUSEADDR, (void *)&opt, sizeof(opt));
半關(guān)閉:
通信雙方中,只有一端關(guān)閉通信。 --- FIN_WAIT_2
close(cfd);
shutdown(int fd, int how);
how: SHUT_RD 關(guān)讀端
SHUT_WR 關(guān)寫端
SHUT_RDWR 關(guān)讀寫
注:shutdown在關(guān)閉多個(gè)文件描述符應(yīng)用的文件時(shí),采用全關(guān)閉方法。close,只關(guān)閉一個(gè)。
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧
當(dāng)前文章:Linux網(wǎng)絡(luò)編程之TCP狀態(tài)轉(zhuǎn)移-創(chuàng)新互聯(lián)
URL網(wǎng)址:http://jinyejixie.com/article12/dsiigc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、企業(yè)建站、軟件開發(fā)、品牌網(wǎng)站設(shè)計(jì)、小程序開發(fā)、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容