TCP๋?
<aside>
๐ก TCP (์ ์ก ์ ์ด ํ๋กํ ์ฝ)์ ๋ ๊ฐ์ ํธ์คํธ๋ฅผ ์ฐ๊ฒฐํ๊ณ ๋ฐ์ดํฐ ์คํธ๋ฆผ์ ๊ตํํ๊ฒ ํด์ฃผ๋ ์ค์ํ ๋คํธ์ํฌ ํ๋กํ ์ฝ์ด๋ค. TCP๋ ๋ฐ์ดํฐ์ ํจํท์ด ๋ณด๋ด์ง ์์๋๋ก ์ ๋ฌํ๋ ๊ฒ์ ๋ณด์ฅํด์ค๋ค. Vint CERF์ Bob Kahn (๋น์ DARPA ๊ณผํ์)๋ TCP๋ฅผ 1970๋
๋์ ์ค๊ณํ์๋ค.
TCP์ ์ญํ ์ ์๋ฌ๊ฐ ์์ด ํจํท์ด ์ ๋ขฐํ ์ ์๊ฒ ์ ๋ฌ ๋์๋์ง ๋ณด์ฆํด ์ฃผ๋ ๊ฒ์ด๋ค. TCP๋ ๋์ ์ ์ด๊ฐ ๊ฐ๋ฅํ๋ค. ์ด๋ ์ด๊ธฐ ์์ฒญ์ด ์๊ฒ ์์ํด๋ ์ปดํจํฐ๋ค๊ณผ ์๋ฒ๋ค์ ๋์ญํญ์ ๊น์ด๊ฐ ์ฆ๊ฐํด๋ ๋คํธ์ํฌ๊ฐ ์ง์ํ ์ ์๋ค๋ ๊ฒ์ ๋ปํ๋ค.
</aside>
- TCP๋ ์ธํฐ๋ท ํ๋กํ ์ฝ ์ค์ํธ(IP)์ ํต์ฌ ํ๋กํ ์ฝ ์ค ํ๋๋ก, IP์ ํจ๊ป TCP/IP๋ผ๋ ๋ช
์นญ์ผ๋ก๋ ๋๋ฆฌ ๋ถ๋ฆฐ๋ค. TPC๋ ๊ทผ๊ฑฐ๋ฆฌ ํต์ ๋ง์ด๋ ์ธํธ๋ผ๋ท, ์ธํฐ๋ท์ ์ฐ๊ฒฐ๋ ์ปดํจํฐ์์๋ ์คํ๋๋ ํ๋ก๊ทธ๋จ ๊ฐ์ ์ผ๋ จ์ ์ฅํ
์ ์์ ์ ์ผ๋ก, ์์๋๋ก, ์๋ฌ ์์ด ๊ตํ ํ ์ ์๊ฒ ํ๋ค.
- ์ฆ, TCP๋ ํต์ ํ๊ณ ์ ํ๋ ์์ชฝ ๋จ๋ง(Endpoint)์ด ํต์ ํ ์ค๋น๊ฐ ๋์๋์ง, ๋ฐ์ดํฐ๊ฐ ์ ๋๋ก ์ ์ก๋์๋์ง, ๋ฐ์ดํฐ๊ฐ ๊ฐ๋ ๋์ค ๋ณ์ง๋์ง๋ ์์๋์ง, ์์ ์๊ฐ ์ผ๋ง๋ ๋ฐ์๊ณ ๋น ์ง ๋ถ๋ถ์ ์๋์ง๋ฅผ ์ ๊ฒํ๋ค. (์ด๋ฐ ์ ๋ณด๋ TCP Header์ ๋ด๊ฒจ์๋ค.)
- TCP Header์๋ ์ ๋ขฐ์ฑ ๋ณด์ฅ๊ณผ ํ๋ฆ ์ ์ด, ํผ์ก ์ ์ด์ ๊ด์ฌํ ์ ์๋ ์์๊ฐ ํฌํจ๋์ด ์๋ค. ๋ํ IP Header์ TCP Header๋ฅผ ์ ์ธํ TCP๊ฐ ์ค์ ์ ์๋ ๋ฐ์ดํฐ ํฌ๊ธฐ๋ฅผ โ์ธ๊ทธ๋จผํธ(Segment)โ๋ผ๊ณ ๋ถ๋ฅธ๋ค.

- TCP๋ IP์ ์ ๋ณด๋ฟ๋ง ์๋๋ผ Port๋ฅผ ์ด์ฉํ์ฌ ์ฐ๊ฒฐํ๋ค. ํ์ชฝ ๋จ๋ง(Endpoint)์ ๋์ฐฉํ ๋ฐ์ดํฐ๊ฐ ์ด๋ ์
๊ตฌ(Port)๋ก ๋ค์ด๊ฐ์ผ ํ๋์ง ์์์ผ ์ฐ๊ฒฐ์ ์๋ ํ ์ ์๊ธฐ ๋๋ฌธ
TCP์ ์๋
- 3-Way handshake
TCP๋ฅผ ์ฌ์ฉํ๋ ์ก์ ์์ ์์ ์๋ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ธฐ ์ ๋จผ์ ์๋ก ํต์ ์ด ๊ฐ๋ฅํ ์ง ์์ฌ๋ฅผ ๋ฌป๊ณ ํ ๋ฒ์ ์ผ๋ง๋ ๋ฐ์ ์ ์๋์ง ๋ฑ์ ์ ๋ณด๋ฅผ ํ์ธํ๋ค.
์ด๋ 3-Way Handshake๋ฅผ ํตํด ํต์ ์ ์๋ํ๋ค.
<aside>
๐ก TCP 3 Way Handshake๋ TCP/IPํ๋กํ ์ฝ์ ์ด์ฉํด์ ํต์ ์ ํ๋ ์์ฉํ๋ก๊ทธ๋จ์ด ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ธฐ ์ ์ ๋จผ์ ย ์ ํํ ์ ์ก์ ๋ณด์ฅํ๊ธฐ ์ํดย ์๋๋ฐฉ ์ปดํจํฐ์ ์ฌ์ ์ ์ธ์
์ ์๋ฆฝํ๋ ๊ณผ์ ์ ์๋ฏธ
</aside>

- SYN : synchronize sequence number
- ACK : acknowledgment