TCP 標(biāo)志位
- SYN:建立
- ACK:確認(rèn)
- PSH:傳送
- FIN:結(jié)束
- RST:重置
- URG:緊急
TCP 11 種狀態(tài)
- SYN_RCVD
- SYN_SEND
- LISTEN
- ESTABLISHED
- FIN_WAIT1
- FIN_WAIT2
- TIME_WAIT
- CLOSED
- CLOSING
- CLOSE_WAIT
- LAST_ACK
3 次握手 建立連接
假設(shè)從 A 到 B 建立連接:
3 次握手 建立連接
4 次握手 關(guān)閉連接
假設(shè) A 想主動(dòng)關(guān)閉與 B 之間的 TCP 連接:
4 次握手 關(guān)閉連接
MSL:Maximum Segment Lifetime 表示一個(gè) IP 數(shù)據(jù)包在互聯(lián)網(wǎng)上生存的最長(zhǎng)時(shí)間。
為什么要有 TIME_WAIT 狀態(tài)?:
為了可靠地實(shí)現(xiàn) TCP 雙工連接的關(guān)閉!
在主動(dòng)關(guān)閉方 A 發(fā)送完最后一個(gè) ACK 后,進(jìn)入 TIME_WAIT 狀態(tài),持續(xù) 2 MSL。
假設(shè)沒有 TIME_WAIT 狀態(tài),主動(dòng)關(guān)閉方 A 發(fā)送完最后一個(gè) ACK 后直接關(guān)閉,進(jìn)入 CLOSED 狀態(tài)。如果這個(gè) ACK 在網(wǎng)絡(luò)上丟失,被動(dòng)關(guān)閉方 B 沒有收到,只能再次發(fā)送 FIN,而此時(shí) A 已經(jīng)關(guān)閉,就會(huì)響應(yīng) RST,錯(cuò)誤。