๐ TCP vs UDP (ํ๋ฆ์ ์ด, ํผ์ก์ ์ด)
OSI 7๊ณ์ธต์ ๋ณด๋ฉด์ 4๊ณ์ธต์ธ ์ ์ก ๊ณ์ธต์์ TCP, UDP๊ฐ ๋ฑ์ฅํ๋ค๊ณ ํ์๋ค.
๊ทธ๋๋ โ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋ ์ญํ โ ์ ๋๋ก๋ง ๋์ด๊ฐ๋๋ฐ
์ด ๋ถ๋ถ์ด ์ค์ ๋คํธ์ํฌ ๋์์์ ๊ฐ์ฅ ์ค์ํ ์ญํ ์ ํ๋ค.
์ด๋ฒ์๋ ์ ๋๋ก ์์๋ณด์.
TCP vs UDP
๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ ๋ณด๋ผ์ง ์ ํ๋ ๋ฐฉ์
๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๋๋ผ๋
- ์ ํํ๊ฒ ๋ณด๋ผ์ง
- ๋น ๋ฅด๊ฒ ๋ณด๋ผ์ง
์ด ์ ํ์ ๋ฐ๋ผ ๋ฐฉ์์ด ๋ฌ๋ผ์ง๋ค.
๊ทธ๊ฑธ ๋ด๋นํ๋ ๊ฒ TCP์ UDP๋ค.
TCP (Transmission Control Protocol)
๋๋ฆฌ์ง๋ง ์ ํํ๊ฒ ๋ณด๋ด๋ ๋ฐฉ์
TCP๋ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ผ ๋ ์๋๊ฐ ์ ๋๋ก ๋ฐ์๋์ง๋ฅผ ๊ณ์ ํ์ธํ๋ค.
๋์ ๋ฐฉ์์ ๋จ์ํ๋ค.
- ๋ฐ์ดํฐ ์ ์ก
- ์๋ต ํ์ธ (ACK)
- ๋ฌธ์ ์์ผ๋ฉด ์ฌ์ ์ก
๊ทธ๋์ ํน์ง์ ์ด๋ ๊ฒ ์ ๋ฆฌ๋๋ค.
- ์ฐ๊ฒฐ ๊ธฐ๋ฐ (์ฐ๊ฒฐ ํ ํต์ )
- ์ ๋ขฐ์ฑ ๋ณด์ฅ (๋ฐ์ดํฐ ์ ์ค ์์)
- ์์ ๋ณด์ฅ
- ์๋๋ ์๋์ ์ผ๋ก ๋๋ฆผ
์ฝ๊ฒ ๋ณด๋ฉด ํ๋ฐฐ์ฒ๋ผ ๋ณด๋์ผ๋ฉด ๋์ฐฉ ํ์ธํ๊ณ ๋ฌธ์ ์์ผ๋ฉด ๋ค์ ๋ณด๋ด๋ ๋ฐฉ์์ด๋ค.
TCP๋ ๋ฐ์ดํฐ๊ฐ ์ ๋ ํ๋ฆฌ๋ฉด ์ ๋๋ ์ํฉ์์ ์ฌ์ฉ๋๋ค.
์น์ฌ์ดํธ ์ ์ (HTTP / HTTPS)์ด๋ ํ์ผ ๋ค์ด๋ก๋, ์ด๋ฉ์ผ ์ ์ก๊ณผ ๊ฐ์ ์ํฉ์์ ์ฌ์ฉ๋๋๋ฐ,,
์ฐ์ ์นํ์ด์ง๋ฅผ ๋ถ๋ฌ์ค๋ ์ํฉ์ ๋จผ์ ์๊ฐํด๋ณด์
HTML ํ์ผ์ ์ค๊ฐ์ ํ๋๋ผ๋ ๋น ์ง๋ฉด ํ์ด์ง๊ฐ ์์ ๊นจ์ ธ๋ฒ๋ฆฐ๋ค. ๋ํ ์ด๋ฏธ์ง๋ ์ผ๋ถ๋ง ์ค๋ฉด ์ด์ํ๊ฒ ๋ณด์ธ๋ค..
ํ์ผ ๋ค์ด๋ก๋ ๋ํ ๋ง์ฐฌ๊ฐ์ง๋ค. ๋ฐ์ดํฐ๊ฐ ํ๋๋ผ๋ ํ๋ฆฌ๋ฉด ํ์ผ ์์ฒด๊ฐ ๋ง๊ฐ์ง๋ค.
๊ทธ๋์ TCP๋ ๋ฐ์ดํฐ๊ฐ ํ๋๋ผ๋ ๋น ์ง๋ฉด ๋ค์ ๋ณด๋ด๊ณ , ์์๋ ๋ง์ถฐ์ ์ ๋ฌํ๋ ๊ฒ์ด๋ค.
UDP (User Datagram Protocol)
๋น ๋ฅด๊ฒ ๋ณด๋ด์ง๋ง ํ์ธํ์ง ์๋ ๋ฐฉ์
UDP๋ TCP์ ๋ฐ๋๋ค..๋ฐ์ดํฐ๋ฅผ ๊ทธ๋ฅ ๋ณด๋ธ๋ค.
- ํ์ธ ์์
- ์ฌ์ ์ก ์์
- ์์ ๋ณด์ฅ ์์
ํน์ง์ผ๋ก๋
- ๋น์ฐ๊ฒฐ ๋ฐฉ์
- ๋น ๋ฆ
- ๋ฐ์ดํฐ ์์ค ๊ฐ๋ฅ
์ด ์๋ค.
UDP๋ ์ฝ๊ฒ ๋ณด๋ฉด ๋ฐฉ์ก ๊ฐ์ ๋๋์ด๋ค.
๋ณด๋์ผ๋ฉด ๋์ด๋ค. ๋ฐ์๋์ง ๋ฐ์๋ ์ ๊ฒฝ ์ ์ด๋ค.
๊ทธ๋์ ์ค์๊ฐ ์คํธ๋ฆฌ๋ฐ์ด๋, ์จ๋ผ์ธ ๊ฒ์, ์์ ํตํ ๋ฑ์์ ์ฌ์ฉ๋๋ค.
์ ์ด๋ฐ ์๋น์ค์์ UDP๋ฅผ ์ธ๊น?
์์ ํตํ๋ฅผ ์์๋ก ๋ณด๋ฉด ์์ ํตํ๋ ๋ฐ์ดํฐ๊ฐ ์กฐ๊ธ ์์ค๋๋๋ผ๋ ๊ทธ๋ฅ ๋ค์ ํ๋ฉด์ด ๋ฐ๋ก ๋์ค๋ ๊ฒ์ด ๋ ์ค์ํ๋ค.
์ค๊ฐ์ ๋ฉ์ถ๋ ๊ฒ ๋ณด๋ค ์กฑ๋ฏ ๊นจ์ง๋๋ผ๋ ๊ณ์ ์ด์ด์ง๋ ๊ฒ ํจ์ฌ ์์ฐ์ค๋ฌ์ฐ๋๊น..
์จ๋ผ์ธ ๊ฒ์๋ ๋น์ทํ๋ค.
๋ด ์บ๋ฆญํฐ ์์น๋ฅผ ์๋ฒ์ ๋ณด๋ด๋๋ฐ, ์ด์ ์ขํ ํ๋ ์ ์ค๋๋ค๊ณ ํด์ ๋ค์ ๋ฐ์ ํ์๋ ์๋ค. ์ด์งํผ ๋ค์ ์ขํ๊ฐ ๊ณ์ ์ค๊ธฐ ๋๋ฌธ์ด๋ค.
์ฆ UDP๋ ๋ฐ์ดํฐ๊ฐ ์กฐ๊ธ ํ๋ ค๋ ๊ด์ฐฎ๊ณ
๋์ ๋๊น ์์ด ๋น ๋ฅด๊ฒ ๋ณด๋ด์ผ ํ๋ ์ํฉ์์ ์ฌ์ฉ๋๋ค.
๊ทธ๋ผ TCP๋ ์ ์ด๋ ๊ฒ๊น์ง ๋๋ ค์ง๋ฉด์ ๊ตณ์ด ์ ํํ๊ฒ ๋ณด๋ด๋ ๊ฑธ๊น?
๋จ์ํ ์ฌ์ ์ก ๋๋ฌธ๋ง์ ์๋๋ค.
๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๋ ๋ฐฉ์ ์์ฒด๊ฐ ์ ์ด์ ๋ค๋ฅด๊ฒ ์ค๊ณ๋์ด ์๊ธฐ ๋๋ฌธ์ด๋ค.
ํ๋ฆ ์ ์ด (Flow Control)
์๋๋ฐฉ์ด ์ฒ๋ฆฌํ ์ ์๋ ๋งํผ๋ง ๋ณด๋ด๋ ๊ฒ
TCP๋ ๋ฌด์กฐ๊ฑด ๋ฐ์ดํฐ๋ฅผ ๋ง์ด ๋ณด๋ธ๋ค๊ณ ์ข์ ๊ฒ ์๋๋ค.
๋ฐ๋ ์ชฝ์ด ์ฒ๋ฆฌํ ์ ์๋ ์๋๋ณด๋ค ๋ณด๋ด๋ ์ชฝ์ด ๋ ๋นจ๋ฆฌ ๋ณด๋ด๋ฒ๋ฆฌ๋ฉด ์ด๋ป๊ฒ ๋ ๊น?
๋ฐ์ดํฐ๊ฐ ์์ด๋ค๊ฐ ๊ฒฐ๊ตญ ์์ค๋๋ค.
๊ทธ๋์ ํ์ํ ๊ฒ ํ๋ฆ ์ ์ด๋ค.
์ฝ๊ฒ ์ค๋ช ํ๋ฉด ์ด๋ฐ ๋๋์ด๋ค.
- ๋ณด๋ด๋ ์ชฝ โ ๊ณ์ ๋ณด๋
- ๋ฐ๋ ์ชฝ โ ใฑใท ๋ ์ง๊ธ ์ฒ๋ฆฌ ์ค
์ด๊ฑธ ๋ง์ถฐ์ฃผ๋ ๊ฒ ํ๋ฆ ์ ์ด๋ค.
TCP์์๋ ์ด๊ฑธ ์๋์ฐ(Window)๋ผ๋ ๊ฐ๋ ์ผ๋ก ๊ด๋ฆฌํ๋ค.
๋ฐ๋ ์ชฝ์ด โ์ง๊ธ ์ด ์ ๋๊น์ง๋ ๋ฐ์๋ ๋๋คโ ๋ผ๋ ํฌ๊ธฐ๋ฅผ ๋ณด๋ด์ฃผ๋ฉด ๊ทธ ๋ฒ์ ์์์๋ง ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ค.
์ฆ, ๋ฐ๋ ์ชฝ ๊ธฐ์ค์ผ๋ก ์๋๋ฅผ ๋ง์ถ๋ค.
๊ทธ๋์ ๋ฐ์ดํฐ๊ฐ ๋์ณ์ ํฐ์ง๋ ๊ฑธ ๋ง๋๋ค.
ํผ์ก ์ ์ด (Congestion Control)
๋คํธ์ํฌ ์ํฉ์ ๋ง์ถฐ ์๋๋ฅผ ์กฐ์ ํ๋ ๊ฒ
ํ๋ฆ ์ ์ด๊ฐ โ์๋๋ฐฉ ๊ธฐ์คโ์ด๋ผ๋ฉด
ํผ์ก ์ ์ด๋ โ๋คํธ์ํฌ ์ ์ฒด ๊ธฐ์คโ์ด๋ค.
์ธํฐ๋ท์ ๋ ํผ์ ์ฐ๋ ๊ฒ ์๋๋ค.
์๋ง์ ์ฌ๋๋ค์ด ๋์์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๊ณ ์๋ค.
์ด ์ํฉ์์ ๋ค ๊ฐ์ด ์๋๋ฅผ ์ฌ๋ฆฌ๋ฉด ์ด๋ป๊ฒ ๋ ๊น?
๋คํธ์ํฌ๊ฐ ๋ฒํฐ์ง ๋ชปํ๊ณ ํจํท์ด ๋งํ๊ฑฐ๋ ์์ค๋๋ค.
๊ทธ๋์ TCP๋ ๋คํธ์ํฌ ์ํ๋ฅผ ๋ณด๋ฉด์ ์๋๋ฅผ ์๋์ผ๋ก ์กฐ์ ํ๋ค.
๋ฌธ์ ์์ โ ์ ์ ์๋ ์ฆ๊ฐ
ํจํท ์์ค ๋ฐ์ โ ์๋ ํ ์ค์
์ด๋ฐ ์์ผ๋ก ์กฐ์ ์ ํ๋ ๊ฒ์ด๋ค.
๋ํ์ ์ธ ๋ฐฉ์์ด Slow Start (์ฒ์์๋ ์ฒ์ฒํ ์์), Congestion Avoidance (์ ์ ์ฆ๊ฐ) ์ด๋ฐ ํ๋ฆ์ผ๋ก ๋์ํ๋ค.
์ฝ๊ฒ ๋งํ๋ฉด
๊ธธ์ด ๋งํ๋ฉด ์๋๋ฅผ ์ค์ด๊ณ , ๊ธธ์ด ๋ซ๋ฆฌ๋ฉด ๋ค์ ์๋๋ฅผ ์ฌ๋ฆฌ๋ ๋๋์ด๋ค.
ํ๋ฆ ์ ์ด vs ํผ์ก ์ ์ด
์ ๋ฆฌํ๋ฉด ์ด๋ ๊ฒ ๋ณด๋ฉด ๋๋ค.
- ํ๋ฆ ์ ์ด โ ๋ฐ๋ ์ชฝ ๊ธฐ์ค
- ํผ์ก ์ ์ด โ ๋คํธ์ํฌ ์ ์ฒด ๊ธฐ์ค
TCP๊ฐ โ๋๋ฆฌ์ง๋ง ์์ ์ ์ด๋คโ๋ผ๋ ๋ง์ ์ด์ ๊ฐ
๋ฐ๋ก ์ด ๋ ๊ฐ ๋๋ฌธ์ด๋ค.
- ํ๋ฆ ์ ์ด โ ์๋๊ฐ ๊ฐ๋นํ ๋งํผ๋ง ๋ณด๋ด๊ณ
- ํผ์ก ์ ์ด โ ๋คํธ์ํฌ ์ํฉ ๋ณด๋ฉด์ ์๋ ์กฐ์
์ด๊ฑธ ๊ณ์ ํ๊ธฐ ๋๋ฌธ์ ์๋๋ ๋๋ ค์ง ์ ์์ง๋ง ๋ฐ์ดํฐ๋ ์์ ์ ์ผ๋ก ์ ๋ฌ๋๋ค.
๋ฐ๋๋ก UDP๋ ์ด๋ฐ ๊ณผ์ ์ด ์๋ค.
๋์ UDP๋ ํ์ํ ๊ฒฝ์ฐ ์ ํ๋ฆฌ์ผ์ด์ ๋ ๋ฒจ์์ ์ง์ ์ ์ด ๋ก์ง์ ๊ตฌํํ๋ค.
๊ทธ๋์ UDP๋ ๋จ์ํ๊ณ ๋น ๋ฅด์ง๋ง, ๊ทธ๋งํผ ์ฑ ์์ด ์๋ก ์ฌ๋ผ๊ฐ ๊ตฌ์กฐ๋ผ๊ณ ๋ณผ ์ ์๋ค.
๊ฒฐ๊ตญ ์ค์ํ ๊ฑด ํ๋๋ค.
์ด๋ค ๊ฒ ๋ ์ข์ ๊ฒ ์๋๋ผ
์ด๋ค ์ํฉ์์ ์ด๋ค ๋ฐฉ์์ ์ ํํ ์ง๋ค.