Tcp-udp.md
Last updated
Last updated
์ค๋์ ๋คํธ์ํฌ 7๊ณ์ธต ์ค ์ ์ก๊ณ์ธต์ ์ํ๋ ํ๋กํ ์ฝ ์ค TCP์ UDP์ ๋ํด์ ์์๋ณด๊ฒ ์ต๋๋ค.
Transmission Control Protocol
์ง์ญํด๋ณด๋ฉด '์ ์ก ์ ์ด ํ๋กํ ์ฝ'
โ ์ธํฐ๋ท์์์ ๋ฐ์ดํฐ๋ฅผ ๋ฉ์ธ์ง์ ํํ๋ก ๋ณด๋ด๊ธฐ ์ํด IP์ ํจ๊ป ์ฌ์ฉํ๋ ํ๋กํ ์ฝ
์ผ๋ฐ์ ์ผ๋ก TCP๋ง์ ๋ถ๋ฅด์ง ์๊ณ TCP/IP๋ผ๊ณ ๋ง์ด ํ๊ธฐํ๋๋ฐ์, ๊ทธ ์ด์ ๋ IP๊ฐ TCP์์ ์ค์ํ ์ญํ ์ ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
IP (Internet Protocol Address)
์ธํฐ๋ท์์ ์๋ ์ปดํจํฐ์ ๊ณ ์ ํ ์ฃผ์
IP๊ฐ ๋ฐ์ดํฐ์ ๋ฐฐ๋ฌ์ ์ฒ๋ฆฌํ๋ค๋ฉด TCP๋ ํจํท์ ์ถ์ ๋ฐ ๊ด๋ฆฌํฉ๋๋ค.
๐ข ํจํท(Packet)์ด๋?
์ธํฐ๋ท ํต์ ์ํ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๊ธฐ ์ํ ๋ผ์ฐํ ์ ํจ์จ์ ์ผ๋ก ํ๊ธฐ ์ํด ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ ๊ฐ์ ์กฐ๊ฐ๋ค๋ก ๋๋์ด ์ ์กํ๊ฒ ๋๋๋ฐ, ์ด๋ ์ด ์กฐ๊ฐ์ ํจํท์ด๋ผ๊ณ ํฉ๋๋ค.
๐ TCP๊ฐ ํจํท์ ์ถ์ ๋ฐ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ
ํจํท A, B, C๊ฐ ์๋ค๊ณ ๊ฐ์ ํด๋ด ์๋ค. ์ธ ํจํท ๋ชจ๋ ๋ชฉ์ ์ง Z์ ์์ฐจ์ ์ผ๋ก ๋๋ฌํด์ผํฉ๋๋ค. ๊ทธ๋ฐ๋ฐ ํจํท์ด ์ ์ก๋๋ ๋์ค B๊ฐ ๋ถ์ค๋์๋ค๊ณ ๊ฐ์ ํฉ์๋ค. ํ์ง๋ง ๋ชฉ์ ์ง Z์์๋ A, C๋ง ๋ณด๊ณ ์ ์ก์ด ์๋ฃ๋์๋ค๊ณ ์๊ฐํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ A, B, C ํจํท์ 1,2,3์ด๋ผ๋ ๋ฒํธ๋ฅผ ๋ถ์ฌํ์ฌ ํจํท์ ๋ถ์ค ํ์ธ๊ณผ ๊ฐ์ ์ฒ๋ฆฌ๋ฅผ ํ์ฌ ๋ชฉ์ ์ง์์ ์ฌ์กฐ๋ฆฝํ๋ ๊ณผ์ ์ ๊ฑฐ์น๊ฒ ๋ฉ๋๋ค. ์ด๋ฌํ ๊ณผ์ ์ผ๋ก TCP๋ ํจํท์ ์ถ์ ํ๊ณ , ๋๋์ด ๋ณด๋ด์ง ๋ฐ์ดํฐ๋ฅผ ๋ฐ๊ณ ์กฐ๋ฆฝํ ์ ์์ต๋๋ค.
TCP Flow
TCP๋ ์ฐ๊ฒฐํ ์๋น์ค๋ฅผ ์ง์ํ๋ ํ๋กํ ์ฝ๋ก ์ธํฐ๋ท ํ๊ฒฝ์์ ๊ธฐ๋ณธ์ผ๋ก ์ฌ์ฉํฉ๋๋ค.
์ฐ๊ฒฐํ ์๋น์ค๋ก ๊ฐ์ ํ์ ๋ฐฉ์์ ์ ๊ณต
3-way handshaking ๊ณผ์ ์ ํตํด ์ฐ๊ฒฐ์ ์ค์ ํ๊ณ 4-way handshaking์ ํตํด ํด์ ํ๋ค.
ํ๋ฆ์ ์ด ๋ฐ ํผ์ก ์ ์ด
๋์ ์ ๋ขฐ์ฑ ๋ณด์ฅ
UDP๋ณด๋ค ๋๋ฆฐ ์๋
์ ์ด์ค, ์ ๋์ ๋ฐฉ์
์์ ๊ฐ์ ํน์ง๋ค์ ํตํด ๋ฐ์ ์ง์ ์์ ์ง๋ฅผ ์ฐ๊ฒฐํ์ฌ ์ ํํ ์ ์ก์ ๋ณด์ฅํ์ง๋ง ์ด๋ฐ ๊ธฐ๋ฅ๋ค์ ์ ๊ณตํ๋ ๊ฒ์ cpu๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ UDP์ ๋นํด ์๋๊ฐ ๋๋ฆฝ๋๋ค.
โ ๋ฐ๋ผ์ TCP๋ ์ฐ์์ฑ๋ณด๋ค๋ ์ ๋ขฐ์ฑ์๋ ์ ์ก์ด ์ค์ํ ๋์ ์ฃผ๋ก ์ฌ์ฉํฉ๋๋ค
User Datagram Protocol
โ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ดํฐ๊ทธ๋จ ๋จ์๋ก ์ฒ๋ฆฌํ๋ ํ๋กํ ์ฝ
๋ฐ์ดํฐ๊ทธ๋จ์ด๋ ๋ ๋ฆฝ์ ์ธ ๊ด๊ณ๋ฅผ ์ง๋๋ ํจํท์ ์๋ฏธํฉ๋๋ค.
TCP์ ๋ค๋ฅด๊ฒ UDP๋ ๋น์ฐ๊ฒฐํ ํ๋กํ ์ฝ์ ๋๋ค. ์ฆ, ์ฐ๊ฒฐ์ ์ํด ๋ ผ๋ฆฌ์ ์ธ ๊ฒฝ๋ก๊ฐ ํ ๋น๋์ง ์์ต๋๋ค. ๋ฐ๋ผ์ ๊ฐ๊ฐ์ ํจํท์ ๋ค๋ฅธ ๊ฒฝ๋ก๋ก ์ ์ก๋๊ณ , ๊ฐ๊ฐ์ ํจํท์ ๋ ๋ฆฝ์ ์ธ ๊ด๊ณ๋ฅผ ์ง๋๊ฒ ๋๋๋ฐ ์ด๋ ๊ฒ ๋ฐ์ดํฐ๋ฅผ ์๋ก ๋ค๋ฅธ ๊ฒฝ๋ก๋ก ๋ ๋ฆฝ์ ์ผ๋ก ์ฒ๋ฆฌํ๊ฒ ๋๋ ํํ๋ฅผ ์ง๋ ํ๋กํ ์ฝ์ UDP๋ผ๊ณ ํฉ๋๋ค.
๋น์ฐ๊ฒฐํ ์๋น์ค๋ก ๋ฐ์ดํฐ๊ทธ๋จ ๋ฐฉ์ ์ ๊ณต
์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ์ ๋ ๋ณด๋ด๊ฑฐ๋ ๋ฐ๋๋ค๋ ์ ํธ์ ์ฐจ๋ฅผ ๊ฑฐ์น์ง ์๋๋ค.
UDPํค๋์ CheckSum ํ๋๋ฅผ ํตํด ์ต์ํ์ ์ค๋ฅ๋ง ๊ฒ์ถํ๋ค.
์ ๋ขฐ์ฑ์ด ๋ฎ๋ค.
TCP๋ณด๋ค ๋น ๋ฅธ ์๋
๋น์ฐ๊ฒฐํ ์๋น์ค์ธ UDP๋ ์๋ก ๋ค๋ฅธ ๊ฒฝ๋ก๋ก ๋ ๋ฆฝ์ ์ผ๋ก ์ฒ๋ฆฌํจ์๋ ํจํท ์ฌ์กฐ๋ฆฝ์ด๋ ์์๋ฅผ ์ง์ ํ๋ ๊ณผ์ ์ด ์๊ธฐ ๋๋ฌธ์ TCP๋ณด๋ค ์๋๊ฐ ๋น ๋ฅด๊ณ ๋คํธ์ํฌ์ ๋ถํ๊ฐ ์์ง๋ง ์ ๋ขฐ์ฑ์๋ ๋ฐ์ดํฐ์ ์ ์ก์ ๋ณด์ฅํ์ง๋ ์์ต๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ ๋ขฐ์ฑ๋ณด๋ค๋ ์ฐ์์ฑ์ด ์ค์ํ ์ค์๊ฐ ์๋น์ค(streaming)์ ์์ฃผ ์ฌ์ฉ๋ฉ๋๋ค.
UDP Flow
UDP๋ ์ฐ๊ฒฐ ์์ฒด๊ฐ ์๊ธฐ ๋๋ฌธ์ ์๋ฒ์์ผ๊ณผ ํด๋ผ์ด์ธํธ ์์ผ์ ๊ตฌ๋ถ์ด ์์ต๋๋ค. ๋ํ ํ๋ฆ์ ์ด(flow-control)๊ฐ ์๊ธฐ ๋๋ฌธ์ ํจํท์ด ์ ๋๋ก ์ ์ก๋์๋์ง, ์ค๋ฅ๊ฐ ์๋์ง ํ์ธํ ์ ์์ต๋๋ค.
ํ๋ฆ์ ์ด(flow-control)๋?
ํ๋ฆ์ ์ด๋ ๋ฐ์ดํฐ๋ฅผ ์ก์ ํ๋ ๊ณณ๊ณผ ์์ ํ๋ ๊ณณ์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์๋๋ฅผ ์กฐ์ ํ์ฌ ์์ ์์ ๋ฒํผ ์ค๋ฒํ๋ก์ฐ๋ฅผ๋ฐฉ์งํ๋ ๊ฒ์ ๋๋ค.
ํผ์ก์ ์ด(Congestion-control)๋?
ํผ์ก์ ์ด๋ ๋คํธ์ํฌ ์ ์ ํจํท ์๊ฐ ๋์น์ง ์๋๋ก ๋ฐฉ์งํ๋ ๊ฒ์ ๋๋ค. ๋ง์ฝ ์ ๋ณด์ ์ํต๋์ด ๊ณผ๋คํ๋ค๋ฉด ํจํท์ ์กฐ๊ธ๋ง ์ ์กํ์ฌ ํผ์ก ๋ถ๊ดด ํ์์ด ์ผ์ด๋๋ ๊ฒ์ ๋ง์ต๋๋ค.
์ฐ๊ฒฐ ๋ฐฉ์
์ฐ๊ฒฐํ
๋น ์ฐ๊ฒฐํ
ํจํท ๊ตํ ๋ฐฉ์
๊ฐ์ํ์ ๋ฐฉ์
๋ฐ์ดํฐ ๊ทธ๋จ ๋ฐฉ์
์ ์ก ์์
๋ณด์ฅ
๋ณด์ฅํ์ง ์์
์์ ์ฌ๋ถ
ํ์ธ
ํ์ธํ์ง์์
ํต์ ๋ฐฉ์
1:1
1:1 or 1:N or N:N
์ ๋ขฐ์ฑ
โฌ
โฌ
์๋
๋๋ฆผ
๋น ๋ฆ
3-way-handshaking