TCP๋ ํต์ ํ๊ธฐ์ ์์ ๋ ผ๋ฆฌ์ ์ธ ์ ์์ ์ฑ๋ฆฝํ๊ธฐ ์ํด 3-way handshake ๊ณผ์ ์ ์งํํ๋ค. (์ ๋ขฐ์ฑ์ ๋ณด์ฅํ๋ ์ฐ๊ฒฐํ ์๋น์ค)
- TCP ํต์ ์ ์ด์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ธฐ ์ํด ๋คํธ์ํฌ ์ฐ๊ฒฐ์ ์ค์ ํ๋ ๊ณผ์
- ์์ชฝ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ์ค๋น๊ฐ ๋์๋ค๋ ๊ฒ์ ๋ณด์ฅํ๊ณ , ์ค์ ๋ก ๋ฐ์ดํฐ ์ ๋ฌ์ด ์์ํ๊ธฐ ์ ์ ํ ์ชฝ์ด ๋ค๋ฅธ ์ชฝ์ด ์ค๋น๋์๋ค๋ ๊ฒ์ ์ ์ ์๋๋ก ํ๋ค.
- TCP/IP ํ๋กํ ์ฝ์ ์ด์ฉํด์ ํต์ ์ ํ๋ ์์ฉ ํ๋ก๊ทธ๋จ์ด ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ธฐ ์ ์ ๋จผ์ ์ ํํ ์ ์ก์ ๋ณด์ฅํ๊ธฐ ์ํด ์๋๋ฐฉ ์ปดํจํฐ์ ์ฌ์ ์ ์ธ์
์ ์๋ฆฝํ๋ ๊ณผ์
A ํ๋ก์ธ์ค(ํด๋ผ์ด์ธํธ)๊ฐ Bํ๋ก์ธ์ค(์๋ฒ)์ ์ฐ๊ฒฐ์ ์์ฒญ
1. A -> B :SYN
2. B -> A :SYN + ACK
3. A -> B :ACK
- A -> B :SYN
- ์ ์ ์์ฒญ ํ๋ก์ธ์ค๊ฐ ์ฐ๊ฒฐ ์์ฒญ ๋ฉ์์ง ์ ์ก(SYN)
- ์ก์ ์๊ฐ ์ต์ด๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ๋ Seq Number๋ฅผ ์์์ ๋๋ค ์ซ์๋ก ์ง์ ํ๊ณ , SYN ํ๋๊ทธ ๋นํธ๋ฅผ 1๋ก ์ค์ ํ ์ธ๊ทธ๋จผํธ๋ฅผ ์ ์กํ๋ค.
- A :Closed, B :Listen
- B -> A :SYN + ACK
- ์ ์ ์์ฒญ์ ๋ฐ์ ํ๋ก์ธ์ค B๊ฐ ์์ฒญ ์๋ฝ, ์ ์ ์์ฒญ ํ๋ก์ธ์ค A์๊ฒ ํฌํธ๋ฅผ ์ด์ด๋ฌ๋ผ๋ ๋ฉ์์ง ์ ์ก(SYN+ACK)
- ์์ ์๋ Ack Number ํ๋๋ฅผ Seq Number + 1๋ก ์ง์ , SYN๊ณผ ACK ํ๋๊ทธ ๋นํธ๋ฅผ 1๋ก ์ค์ ํ ์ธ๊ทธ๋จผํธ๋ฅผ ์ ์ก
- A :Closed, B :Syn_Rcv
- A -> B :ACK
- ๋ง์ง๋ง์ผ๋ก ์ ์ ์์ฒญ ํ๋ก์ธ์ค A๊ฐ ์๋ฝ ํ์ธ์ ๋ณด๋ด ์ฐ๊ฒฐ์ ๋งบ์
- ์ด๋ ์ ์กํ ๋ฐ์ดํฐ๊ฐ ์์ผ๋ฉด ์ด ๋จ๊ณ์์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ์ ์๋ค.
- ์ด๊ธฐ => A :Established, B :Syn_Rcv
- ํ๊ธฐ => A :Established, B :Established
TCP ์ฐ๊ฒฐ์ ํด์ ํ๋ ๊ณผ์ ์ด๋ค.
A ํ๋ก์ธ์ค(ํด๋ผ์ด์ธํธ)๊ฐ Bํ๋ก์ธ์ค(์๋ฒ)์ ์ฐ๊ฒฐ ํด์ ๋ฅผ ์์ฒญ
1. A -> B :FIN
2. B -> A :ACK
3. B -> A :FIN
4. A -> B :ACK
- A -> B :FIN
- ํ๋ก์ธ์ค A๊ฐ ์ฐ๊ฒฐ์ ์ข ๋ฃํ๊ฒ ๋ค๋ FIN ํ๋๊ทธ ์ ์ก
- ํ๋ก์ธ์ค B๊ฐ Fin ํ๋๊ทธ๋ก ์๋ตํ๊ธฐ ์ ๊น์ง ์ฐ๊ฒฐ์ ๊ณ์ ์ ์งํ๋ค.
- A :Established, B :Established
- A :FIN_WAIT, B :Established
- B -> A :ACK
- ์๋ฒB๋ FIN ํ๋๊ทธ๋ฅผ ๋ฐ๊ณ ์ผ๋จ ํ์ธ ๋ฉ์์ง๋ฅผ ๋ณด๋ด๊ณ ์์ ์ ํต์ ์ด ๋๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฐ๋ค.
- A๋ Ack Number ํ๋๋ Seq Num + 1๋ก ์ง์ ํ๊ณ , Ack ํ๋๊ทธ ๋นํธ๋ฅผ 1๋ก ์ค์ ํ ์ธ๊ทธ๋จผํธ๋ฅผ ์ ์กํ๋ค.
- ๊ทธ๋ฆฌ๊ณ ์ ์กํ ๋ฐ์ดํฐ๊ฐ ๋จ์์๋ค๋ฉด ์ด์ด์ ๊ณ์ ์ ์กํ๋ค.
- A :FIN_WAIT, B :CLOSE_WAIT
- B -> A :FIN
- B๋ ํต์ ์ด ๋๋ฌ์ผ๋ฉด ์ฐ๊ฒฐ ์ข ๋ฃ ์์ฒญ์ ํฉ์์ ์ํ์ฌ FIN ํ๋๊ทธ๋ฅผ ์ ์กํ๋ค.
- A: TIME_WAIT, B :CLOSE_WAIT
- A -> B :ACK
- A๋ ํด์ง ์ค๋น๊ฐ ๋์๋ค๋ ACK๋ฅผ ํ์ธํ๋ค๋ ๋ฉ์์ง B์๊ฒ ๋ณด๋ธ๋ค.
- ํด๋ผ์ด์ธํธ๋ ์์ง ์๋ฒ๋ก๋ถํฐ ๋ฐ์ง ๋ชปํ ๋ฐ์ดํฐ๊ฐ ์์ ๊ฒ์ ๋๋นํด ์ผ์ ์๊ฐ๋์ ์ธ์ ์ ๋จ๊ฒจ๋๊ณ ์์ฌ ํจํท์ ๊ธฐ๋ค๋ฆฌ๋ ๊ณผ์ ์ ๊ฑฐ์น๋ค.
- A :TIME_WAIT, B :CLOSED
- A :CLOSED, B :CLOSED (์์ ํ ๋ชจ๋ ํจํท์ ๋ค ๋ฐ์ผ๋ฉด ACK๋ฅผ ๋ณด๋ธ๋ค ๋ฐ๋)

