๐ก ํฌํธ์ ์ํ ์ ๋ณด
CLOSED
: ํฌํธ๊ฐ ๋ซํ ์ํLISTEN
: ํฌํธ๊ฐ ์ด๋ฆฐ ์ํ๋ก ์ฐ๊ฒฐ ์์ฒญ ๋๊ธฐ ์คSYN_RCV
: SYNC ์์ฒญ์ ๋ฐ๊ณ ์๋๋ฐฉ์ ์๋ต์ ๊ธฐ๋ค๋ฆฌ๋ ์คESTABLISHED
: ํฌํธ ์ฐ๊ฒฐ ์ํFIN_WAIT_1
: close()๋ฅผ ์งํํ ์์ผ์ด ์ง์ ํ๋ ์ํFIN_WAIT_2
:ACK
์ ํธ๋ฅผ ๋ฐ์FIN_WAIT_1
์์ผ์ดFIN_WAIT_2
๋ก๋ณ๊ฒฝCLOSE_WAIT
: ์๋๋ฐฉ์FIN
์ ๋ฐ์ ์ํ. ์๋๋ฐฉFIN
์ ๋ํACK
๋ฅผ ๋ณด๋ด๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ข ๋ฃ๋ฅผ ์๋ฆฐ๋คTIME_WAIT
: FIN์ ๋ํ ACK๋ฅผ ๋ฐ๊ณ ์ฐ๊ฒฐ ์ข ๋ฃ๊ฐ ์๋ฃ๋ ์ํ. ์ผ์ ์๊ฐ ๊ธฐ๋ค๋ฆฐ ํCLOSED
๋ก ์ ์ด๋๋ค.LAST_ACK
:CLOSE-WAIT
์ํ๋ฅผ ์ฒ๋ฆฌ ํ ์์ ์FIN
์์ฒญ์ ๋ณด๋ธ ํFIN
์ ๋ํACK
๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ์ํ
๐ก ํ๋๊ทธ ์ ๋ณด
- TCPํค๋๋ ๊ฐ 1 bit์ฉ ์ฐจ์งํ๋ 6๊ฐ์ ํ๋๊ทธ๊ฐ ์๊ณ , ๊ฐ ํ๋๊ทธ๋ ์ด๊ธฐ๊ฐ 0์ ๊ฐ์ง๋ค.
- ํจํท์ ํด๋น ํ๋๊ทธ์ ๋นํธ๋ฅผ ์กฐ์ ํ์ฌ ํด๋น ํจํท์ด ์ด๋ค ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋์ง ์๋ ค์ค๋ค.
SYN
- Synchronize sequence numbers
์ฐ๊ฒฐ ์ค์ , ์ฐ๊ฒฐ์ ์ํด ๋๋ค์ผ๋ก ์ค์ ํ์ฌ ์ธ์ ์ ์ฐ๊ฒฐํ๋๋ฐ ์ฌ์ฉ. Client์ Server์ Connection์ ์์ฑํ ๋ ์ฌ์ฉํ๋ FlagACK
- Acknowledgment
์๋ต ํ์ธ. ์๋ต์ ํ์ธํ์์ ์๋ ค์ค๋ค.FIN
- Finish
์ฐ๊ฒฐ ํด์ . Client/Server๊ฐ ์ฐ๊ฒฐ์ ์ข ๋ฃํ๊ธฐ ์ํด ์ฌ์ฉ. ๋ ์ด์ ์ ๋ฌํ ์๋ฏธ๊ฐ ์์์ ์๋ฏธํ๋ค.
Client๋ Server์ ์ ์์ ์์ฒญํ๋ SYN์ ๋ณด๋ธ๋ค.
Client โ SYN-SENT
/ Server โ Wait For Client
Server๋ Client๋ก ๋ถํฐ SYN์ ๋ฐ๊ณ , ์์ฒญ์ ์๋ฝํ๋ ACK์ SYN Flag๊ฐ ์ค์ ๋ ํจํท์ ๋ฐ์กํ๋ค.
Client โ SYN-SENT
/ Server โ SYN-RECEIVED
Client๋ Server์๊ฒ ACK๋ณด๋ด๊ณ , ์ดํ Client์ Server๋ ๋ฐ์ดํฐ ์ ์ก์ด ๊ฐ๋ฅํด์ง๋ค.
Client โ ESTABLISHED
/ Server โ ESTABLISHED
FIN
ํ๋๊ทธ๊ฐ ์ฌ์ฉ๋๋ค.Client๊ฐ ์ฐ๊ฒฐ์ ๋๋๋ค. ์ด๋ ์๋ฒ์ FIN
ํ๋๊ทธ๋ฅผ ๋ณด๋ธ๋ค.
Client โ FIN_WAIT_1
/ Server โ ESTABLISHED
Server๋ FIN
ํ๋๊ทธ๋ฅผ ๋ฐ๊ณ , ํ์ธํ๋ค๋ ์๋ฏธ๋ก ACK
๋ฅผ ๋ณด๋ด๊ณ Client์๊ฒ ๋ณด๋ด๊ณ , ์๋ฒ์ ์ํ๋ฅผ CLOSE_WAIT
์ํ๋ก ๋ณ๊ฒฝํ๊ณ , ๋ฏธ์ฒ ๋ณด๋ด์ง ๋ชปํ ๋ฐ์ดํฐ๋ฅผ ๋ง์ ๋ณด๋ด๊ณ , ์๋ฒ์์ close()๋ฅผ ํธ์ถํ๋ค.
Client โ FIN_WAIT_2
/ Server โ CLOSE_WAIT
๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ์ ์กํ ํ์ Server๋ Client์ ์ฐ๊ฒฐ ์ข
๋ฃ์ ํฉ์ํ๋ค๋ ์๋ฏธ์ FIN
ํจํท์ Client์๊ฒ ์ ๋ฌํ๋ค. ์ด๋ Client๊ฐ ํ์ธํ๋ค๋ ACK
ํจํท์ ๋ณด๋ด์ฃผ๊ธฐ ์ ๊น์ง LAST_ACK
์ํ๋ก ๋ค์ด๊ฐ๋ค.
Client โ TIME_WAIT
/ Server โ LAST_ACK
Client๋ ํ์ธ์ ์๋ฏธ๋ก Server์๊ฒ ACK
ํจํท์ ๋ณด๋ด์ฃผ๊ณ CLOSED
์ํ๋ก ๋ค์ด๊ฐ๋ฉฐ, ACK
ํจํท์ ์ ๋ฌ๋ฐ์ Server ๋ํ CLOSED
์ํ๋ก ๋ค์ด๊ฐ๋ค.
Client โ CLOSED
/ Server โ CLOSED
3 way handshake ์ 4 way handshake์์ ๋จ๊ฒ์ ์ฐจ์ด๊ฐ ๋ฐ์ํ๋ ์ด์
Client๊ฐ ์ข
๋ฃ๋ฅผ ํฌ๋งํด๋, Server ์ชฝ์์ ์ ๋ฌํ ํ์๊ฐ ์๋ ๋ฐ์ดํฐ๊ฐ ๋จ์์์ ๊ฒฝ์ฐ, Client์ Server์ ์ข
๋ฃ ์์ ์ด ๋ค๋ฅผ ์ ์๋ค. ๊ทธ๋์ Client์์ FIN
ํจํท์ ๋ณด๋์ ๋, Server์์ ์ผ๋จ ํ์ธํ์์ ์๋ ค์ฃผ๊ธฐ ์ํด ACK
ํจํท์ ์ ๋ฌํ๊ณ , ์ดํ Server๊ฐ ์ฐ๊ฒฐ ์ข
๋ฃ๋ฅผ ํฌ๋งํ ๋ FIN ํจํท์ ๋ณด๋ด๊ธฐ ๋๋ฌธ์ ์ฐ๊ฒฐํ ๋์ ์ฐ๊ฒฐ์ ์ข
๋ฃํ ๋ ๋จ๊ณ์ ์ฐจ์ด๊ฐ ๋ฐ์ํ๋ค.
์ด๊ธฐ Sequence Number์ธ ISN์ 0 ๋ถํฐ ์์ํด์ ์ฐ์์ ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒ์ด ์๋ ๋์๋ฅผ ์์ฑํด์ ์ค์ ํ๋ ์ด์ ๋ ?
์ฐ๊ฒฐ์ ์ฌ์ฉ๋๋ ํฌํธ๋ฒํธ๋ ์ ํํ ๋ฒ์ ๋ด์ ์ ์ฌ์ฉ๋๊ณ , ์ฌ์ฌ์ฉ๋๋ค. ๋ฐ๋ผ์ Client์ Server๊ฐ ๊ณผ๊ฑฐ์ ์ฌ์ฉํ ํฌํธ๋ฒํธ๋ ์์ผ๋ก ์กด์ฌํ ๊ฐ๋ฅ์ฑ์ด ์๋ค. Server ์ชฝ์์๋ ์ฐ๊ฒฐ์ ์ํด ์ ๋ฌ๋ฐ๋ SYN
์ ๋ณด๊ณ ํจํท์ ๊ตฌ๋ถํ๋ ๋ฐ ๊ณผ๊ฑฐ์ ์ฌ์ฌ์ฉ๋ ํฌํธ๋ฒํธ๋ก ์ธ์งํ ๊ฐ๋ฅ์ฑ์ด ์๋ค. ์ด๋ฐ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ ๊ฐ๋ฅ์ฑ์ ์ค์ด๊ธฐ ์ํด ๋์๋ก ์ค์ ํ๋ค.