TCP๋ ์ ์ก ๊ณ์ธต(Transport Layer)์ ๋ํ์ ์ธ ํ๋กํ ์ฝ๋ก,
๋ฐ์ดํฐ๋ฅผ ์ ๋ขฐ์ฑ ์๊ฒ, ์์๋๋ก, ์ค๋ฅ ์์ด ์ ๋ฌํ๋ ๊ฒ์ ๋ชฉํ๋ก ํ๋ค.
ย
์ด๋ฌํ ํน์ง๋ค ๋๋ถ์ TCP๋ ์ ๋ขฐํ ์ ์๋ ํ๋กํ ์ฝ๋ก, ์น ๋ธ๋ผ์ฐ์ง, ์ด๋ฉ์ผ, ํ์ผ ์ ์ก ๋ฑ ๋๋ถ๋ถ์ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋๋ฆฌ ์ฌ์ฉ๋๊ณ ์๋ค.
ย
TCP/IP๋ก ํต์ ์ ์์ํ ๋๋ โ3๋จ๊ณ ์ ์ฐจ(3-Way Handshake)โ ๋ฅผ ๊ฑฐ์ณ ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ์ฐ๊ฒฐ์ ์ค์ ํ๋ค. ์ด ๊ณผ์ ์ ํตํด ์๋ก๋ฅผ โ์ ๋ขฐํ ์ ์๋ ์ํโ ๋ผ๊ณ ํ์ธํ ๋ค์์์ผ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋๋ค.

โSYNโ : "์ฐ๊ฒฐ ์์ฒญ", โACKโ : "์๋ต ํ์ธโ
ย
1๋จ๊ณ: ํด๋ผ์ด์ธํธ โ ์๋ฒ
: ํด๋ผ์ด์ธํธ๋ ์๋ฒ์๊ฒ SYN ํ๋๊ทธ๊ฐ ์ค์ ๋ ์ธ๊ทธ๋จผํธ๋ฅผ ๋ณด๋ธ๋ค. ์ด ์ธ๊ทธ๋จผํธ์๋ ์ด๊ธฐ ์์ ๋ฒํธ(Sequence Number)์ ์๋์ฐ ํฌ๊ธฐ(Window Size) ์ ๋ณด๊ฐ ๋ด๊ธด๋ค.
์: SYN=1, Seq=100
ย
2๋จ๊ณ: ์๋ฒ โ ํด๋ผ์ด์ธํธ
์๋ฒ๋ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ์๋ฝํ๋ฉฐ SYN๊ณผ ACK ํ๋๊ทธ๊ฐ ๋์์ ์ค์ ๋ ์ธ๊ทธ๋จผํธ๋ฅผ ๋ณด๋ธ๋ค.
SYN=1, ACK=1, Seq=300, ACK=101
์ฆ, ์๋ฒ๋ ์์ ์ ์ด๊ธฐ ์์ ๋ฒํธ(300)๋ฅผ ๋ณด๋ด๊ณ , ํด๋ผ์ด์ธํธ์ ๋ฒํธ(100)๋ฅผ ์ ๋ฐ์๋ค๋ ์๋ต(Ack=101)๋ ํจ๊ป ๋ณด๋ธ๋ค.
ย
3๋จ๊ณ: ํด๋ผ์ด์ธํธ โ ์๋ฒ
ํด๋ผ์ด์ธํธ๋ ์๋ฒ์ ์๋ต์ ํ์ธํ๊ณ , ACK ํ๋๊ทธ๊ฐ ์ค์ ๋ ์ธ๊ทธ๋จผํธ๋ฅผ ์๋ฒ์ ๋ณด๋ธ๋ค.
์: ACK=1, Seq=101, Ack=301
์ด ๊ณผ์ ์ ํตํด ์์ชฝ์ ์๋ก์ ์กด์ฌ๋ฅผ ํ์ธํ๊ณ , ์ํ์ค ๋ฒํธ ๋๊ธฐํ๋ ์๋ฃํ๋ค. ์ด์ ๋ณธ๊ฒฉ์ ์ธ ๋ฐ์ดํฐ ์ ์ก์ด ๊ฐ๋ฅํด์ง๋ค.
ย
์ด๋ ๊ฒ ์ฐ๊ฒฐ์ ์ค์ ํ๋ค ํ๋๋ผ๋, ๋ฌผ๋ฆฌ์ ์ผ๋ก๋ ์๋ง์ ๋ ธ๋(๋ผ์ฐํฐ, ์ค์์น ๋ฑ)๋ฅผ ๊ฑฐ์น๋ค. ์ด ์ค๊ฐ ๋ ธ๋๋ค์ TCP ์ฐ๊ฒฐ ์ํ๋ฅผ ๊ธฐ์ตํ์ง ์๊ธฐ ๋๋ฌธ์, ์ฐ๊ฒฐ์ ์ด๋๊น์ง๋ โ์ข ๋จ ๊ฐ(end-to-end)์ ๋ ผ๋ฆฌ์ ์ฐ๊ฒฐโ ์ผ ๋ฟ์ด๋ค.
ย

ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ๋ฉ์์ง๋ฅผ ๋ณด๋ผ ๋, ๋จ์ํ "๋ณด๋๋ค" ๊ณ ๋๋์ง ์๋๋ค. TCP๋ ๋ฐ๋์ โ์์ ์๋ก๋ถํฐ ํ์ธ ์๋ต(ACK)โ ์ ๋ฐ์์ผ๋ง ์ ์ก์ด ์๋ฃ๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผํ๋ค.
๋ง์ฝ ์๋ต์ด ์๊ฑฐ๋ ์์ค๋๋ฉด?
: ์ฌ์ ์ก ํ์ด๋จธ๊ฐ ๋์ํด ์๋์ผ๋ก ํจํท์ ๋ค์ ๋ณด๋ธ๋ค. ์ด๋ฐ ๋ฐฉ์ ๋๋ถ์, TCP๋ ์์ค ์์ด ์์ ํ ๋ฐ์ดํฐ ์ ๋ฌ์ ๋ณด์ฅํ๋ค.
ย

ํด๋ผ์ด์ธํธ๊ฐ ํจํท์ 1๋ฒ, 2๋ฒ, 3๋ฒ ์์๋ก ๋ณด๋๋ค๊ณ ๊ฐ์ ํ์. ํ์ง๋ง ์๋ฒ๋ ๋คํธ์ํฌ ์ํฉ์ ๋ฐ๋ผ 1๋ฒ, 3๋ฒ, 2๋ฒ ์์๋ก ๋ฐ์ ์๋ ์๋ค.
์ด๋ด ๋ TCP๋ ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ์์ผ๋ก ๋์ํ๋ค:
ย
TCP๋ ๋ค์๊ณผ ๊ฐ์ ์ด์ ๋ก ์ ๋ขฐ์ฑ์ด ์ค์ํ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ ํธ๋๋ค:
ํ์ง๋ง ์ด๋ฌํ ์ ๋ขฐ์ฑ์ ๋๊ฐ๋ ์๋ค. โ์ค๋ฒํค๋์ ์ง์ฐ(latency)โ ์ด ๋ฐ์ํ๋ฏ๋ก, ์ค์๊ฐ์ฑ์ด ์ค์ํ ์์ ์คํธ๋ฆฌ๋ฐ์ด๋ ์จ๋ผ์ธ ๊ฒ์ ๋ฑ์์๋ UDP๊ฐ ์ฐ์ด๊ธฐ๋ ํ๋ค.