TCP(Transmission Control Protocol)๋ ์ฐ๊ฒฐ ์งํฅ์ ์ธ ํ๋กํ ์ฝ๋ก, ๋ฐ์ดํฐ์ ์ ๋ขฐ์ฑ๊ณผ ์์๋ฅผ ๋ณด์ฅํฉ๋๋ค. TCP๋ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๊ธฐ ์ ์ ๋จผ์ ์ฐ๊ฒฐ์ ์ค์ ํด์ผ ํฉ๋๋ค. ์ด ๊ณผ์ ์ '3-way handshaking'์ด๋ผ๊ณ ๋ถ๋ฆ
๋๋ค. 3-way handshaking์ ๋ค์๊ณผ ๊ฐ์ ๋จ๊ณ๋ก ์ด๋ฃจ์ด์ง๋๋ค:
ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์๊ฒ SYN(Synchronize) ํจํท์ ๋ณด๋ ๋๋ค. ์ด ํจํท์ ํด๋ผ์ด์ธํธ๊ฐ ์ฐ๊ฒฐ์ ์์ฒญํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.์๋ฒ๋ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋ฐ๊ณ , SYN ํจํท์ ๋ํ ACK(Acknowledgment)๋ฅผ ๋ณด๋ด๊ณ , ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ ์ค๋น๋ฅผ ํฉ๋๋ค.ํด๋ผ์ด์ธํธ๋ ์๋ฒ์ ACK๋ฅผ ๋ฐ์ผ๋ฉด, ๋ค์ ACK๋ฅผ ๋ณด๋ด๊ณ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ์ ์๊ฒ ๋ฉ๋๋ค.
์ด๋ ๊ฒ 3-way handshaking์ด ์๋ฃ๋๋ฉด ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ์ ๋ขฐ์ฑ ์๋ ์ฐ๊ฒฐ์ด ํ์ฑ๋ฉ๋๋ค. TCP๋ ์ดํ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ๋ ์์๋ฅผ ๋ณด์ฅํ๊ณ , ์์ ํ์ธ ์๋ต(ACK)์ ํตํด ๋ฐ์ดํฐ์ ์์ค ์ฌ๋ถ๋ฅผ ํ์ธํ๊ณ ์ฌ์ ์ก์ ์ํํฉ๋๋ค. ๋ํ, TCP๋ ํ๋ฆ ์ ์ด์ ํผ์ก ์ ์ด ๊ธฐ๋ฅ์ ์ ๊ณตํ์ฌ ๋ฐ์ดํฐ์ ์ก์์ ์๋๋ฅผ ์กฐ์ ํ๊ณ ๋คํธ์ํฌ ํผ์ก์ ๋ฐฉ์งํฉ๋๋ค. ์ด๋ฅผ ํตํด ๋ฐ์ดํฐ์ ์ ํํ ์ ๋ฌ๊ณผ ์ ๋ขฐ์ฑ์ ๋ณด์ฅํฉ๋๋ค. TCP๋ ์ด๋ฉ์ผ, ํ์ผ ์ ์ก, ์น ํ์ด์ง ๋ก๋ฉ๊ณผ ๊ฐ์ด ์ ๋ขฐ์ฑ์ด ์ค์ํ ์ ํ๋ฆฌ์ผ์ด์
์ ์ฃผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
๋ฐ๋ฉด์ UDP(User Datagram Protocol)๋ ๋น์ฐ๊ฒฐ์ฑ ํ๋กํ ์ฝ๋ก, ๋ฐ์ดํฐ์ ์ ๋ขฐ์ฑ๊ณผ ์์๋ฅผ ๋ณด์ฅํ์ง ์์ต๋๋ค. UDP๋ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๊ธฐ ์ ์ ๋ณ๋์ ์ฐ๊ฒฐ ์ค์ ๊ณผ์ ์ด ํ์ํ์ง ์์ต๋๋ค. ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๋ฉด ๊ทธ๋๋ก ์ ์ก๋๋ฉฐ, ์์ ํ์ธ ์๋ต์ด๋ ์ฌ์ ์ก ๊ธฐ๋ฅ์ด ์์ต๋๋ค. ๋ฐ๋ผ์ UDP๋ ์ ์ํ ๋ฐ์ดํฐ ์ ์ก์ด ํ์ํ ์ ํ๋ฆฌ์ผ์ด์
์ ์ฃผ๋ก ์ฌ์ฉ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์ค์๊ฐ ์คํธ๋ฆฌ๋ฐ, ์จ๋ผ์ธ ๊ฒ์ ๋ฑ์์๋ ์๋๊ฐ ์ค์ํ๋ฏ๋ก UDP๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ UDP๋ ๋ฐ์ดํฐ์ ์์ค์ด๋ ์ค๋ณต ์ ์ก์ด ๋ฐ์ํ ์ ์์ผ๋ฏ๋ก, ์ ํ๋ฆฌ์ผ์ด์
์์ ์ด๋ฌํ ์ํฉ์ ์ฒ๋ฆฌํด์ผ ํฉ๋๋ค.
์์ฝํ์๋ฉด, TCP๋ ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ๋ ์ฐ๊ฒฐ ์งํฅ์ ์ธ ํ๋กํ ์ฝ๋ก, 3-way handshaking์ ํตํด ์ ๋ขฐ์ฑ ์๋ ์ฐ๊ฒฐ์ ํ์ฑํฉ๋๋ค. ๋ฐ๋ฉด์ UDP๋ ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ์ง ์๋ ๋น์ฐ๊ฒฐ์ฑ ํ๋กํ ์ฝ์
๋๋ค. ์ด๋ค ํ๋กํ ์ฝ์ ์ ํํ ์ง๋ ์ ํ๋ฆฌ์ผ์ด์
์ ์๊ตฌ์ฌํญ๊ณผ ํน์ฑ์ ๋ฐ๋ผ ๊ฒฐ์ ๋์ด์ผ ํฉ๋๋ค.
โข
์์ฝ
TCP๋ ์ฐ๊ฒฐ์งํฅ ํ๋กํ ์ฝ๋ก ๋ฐ์ดํฐ์ ์ ๋ขฐ์ฑ๊ณผ ์์๋ฅผ ๋ณด์ฅํ๊ณ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๊ธฐ ์ ์ ์ฐ๊ฒฐ์ ์ค์ ํด์ผ ํ๋ค. ์ด ๊ณผ์ ์ 3-way handshakeing ์ด๋ผ๊ณ ํ๋ฉฐ ๋ค์๊ณผ ๊ฐ์ ๋จ๊ณ๊ฐ ์ด๋ฃจ์ด์ง๋ค.
1.
ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ SYN ํจํท์ ๋ณด๋ธ๋ค.
2.
์๋ฒ๋ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋ฐ๊ณ ACK๋ฅผ ๋ณด๋ธ ํ ํด๋ผ์ด์ธํธ๋ก ๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ ์ค๋น๋ฅผ ํ๋ค.
3.
ํด๋ผ์ด์ธํธ๋ ACK๋ฅผ ๋ฐ์ผ๋ฉด ๋ค์ ACK๋ฅผ ๋ณด๋ด๊ณ ๋ฐ์ดํฐ๋ฅผ ์ก์ ํ๋ค.
TCP๋ ๋ฐ์ดํฐ์ ์์๋ฅผ ๋ณด์ฅํ ๋ ์ฐ๊ณ ์์ ํ์ธ ์๋ต์ ํตํด ๋ฐ์ดํฐ์ ์์ค ์ฌ๋ถ๋ฅผ ํ์ธ ์ฌ์ ์ก์ ์ํํ๋ค.
TCP๋ ํ๋ฆ์ ์ด์ ํผ์ก์ ์ด ๊ธฐ๋ฅ์ ์ ๊ณตํ์ฌ ์ก์์ ์๋๋ฅผ ์กฐ์ ํ๊ณ ๋คํธ์ํฌ ํผ์ก์ ๋ฐฉ์งํ๋ค. ์ด๋ฅผ ํตํด ์ ํํ ์ ๋ฌ๊ณผ ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ๋ค.
UDP๋ ๋น ์ฐ๊ฒฐ์ฑ ํ๋กํ ์ฝ๋ก ๋ฐ์ดํฐ์ ์ ๋ขฐ์ฑ๊ณผ ์์๋ฅผ ๋ณด์ฅํ์ง ์์ผ๋ฉฐ ๋ณ๋์ ์ฐ๊ฒฐ ์ค์ ๊ณผ์ ์ ํ์ํ์ง ์๋๋ค. TCP์์ ์ ๊ณต๋๋ ์์ ํ์ธ ์๋ต์ด๋ ์ฌ์ ์ก๊ธฐ๋ฅ์ด ์์ผ๋ฏ๋ก ์ ์ํ ๋ฐ์ดํฐ ์ ์ก์ด ํ์ํ ์ ํ๋ฆฌ์ผ์ด์
์ ์ฃผ๋ก ์ฌ์ฉ๋๋ค. ๋ฐ์ดํฐ ์์ค์ด๋ ์ค๋ณต ์ ์ก์ด ๋ฐ์ํ ์ ์๋ค.
tcp | udp |
๋ณดํธ | ๋น๋ณดํธ |
์ฐ๊ฒฐ ์งํฅ | ๋ฌด์ฐ๊ฒฐ |
๋๋ฆผ | ๋น ๋ฆ |
์ ์ก ๋ณด์ฅ | ๋ณด์ฅํ์ง ์์ |
์ ํํ ๋ฐ์ดํฐ ์ ๋ฌ์ด ์ค์ํ
์ฑ์์ ์ฌ์ฉ๋จ | ์ค์๊ฐ ์ก์ถ์์ ์ฌ์ฉ๋จ |
ํจํท ์ฌ์ ๋ ฌ ๋งค์ปค๋์ฆ์ ๊ฐ์ง | ๊ฐ์ง์ง ์์ |
ํ๋ฆ ์ ์ด | ๊ฐ์ง์ง ์์ |
์๋ฌ ์ฒดํน | ๊ฐ์ง์ง ์์ |
20byte์ ํค๋ | 8byte์ ํค๋ |
Acknowledgement mechanism | no acknowledgement |
three-way handshake | ๊ฐ์ง์ง ์์ |
DNS, HTTPS, FTP, SMTP | DNS, DHCP, TFTP, SNMP |
tcp๋ three-way handshake๋ก ์ฐ๊ฒฐ์ ๋งบ๊ณ four-way handshake๋ก ์ฐ๊ฒฐ์ ๋๋๋ค.
ํจํท์ ํ๋ฐฐ๋ฐ์ค์ ๊ฐ๋ค. ์ ์ก์ด ๋ ๋๋ ์๋ซ๊ณ์ธต์ ์ง๋๋ฉฐ ์บก์ํ๊ฐ ์งํ๋๊ณ ์์ ์ ์ธก์์๋ ์๋ซ๊ณ์ธต์์ ์๋ก ์ฌ๋ผ๊ฐ๋ฉด์ ๋์บก์ํ๊ฐ ์ผ์ด๋๋ค.
ack1,2โฆ๊ฐ ๊ฐ๊ณ ์์ ์์ธก์์ ack3์ ๋ ๋ฆผ ack3์ ๋ฌ๋ผ๊ณ ํ๋๊ฑด๋ฐ ack3์ ์ค๊ธฐ์ ๊น์ง ๊ธฐ๋ค๋ฆผ ์ด๋ ์๋์ง์ฐ์ด ๋ฐ์๋จ (udp์ ์๋ ์ฐจ์ด๊ฐ ๋๋ ์ด์ )
window size : ์์ ์ธก์์ ์ธ๊ทธ๋จผํธ๋ฅผ ์กฐ๋ฆฝํด์ ๋ฃ์ ์ ์๋ ๊ณต๊ฐ์
์์ ์ธก์์ ack3์ ๋ณด๋ผ๋ window size๋ฅผ ์ ์กํจ
๊ฝ์ฐจ๋ฉด ack3์ ์ ์กํ์ง ์์(์ ์ก์ง์ฐ์ด ๋ฐ์๋จ)