did_story
[๋คํธ์ํฌ] 3.3 Connectionless transport: UDP / ๋น์ฐ๊ฒฐ์ฑ ์ด์ก ๋ณธ๋ฌธ
[๋คํธ์ํฌ] 3.3 Connectionless transport: UDP / ๋น์ฐ๊ฒฐ์ฑ ์ด์ก
์ด์ ์์ 2025. 11. 2. 17:03์ง๊ธ๋ถํฐ๋ UDP: User Datagram Protocol ์ ๋ํด์ ๋ฐฐ์๋ณผ ์ฐจ๋ก์ด๋ค.
1. UDP ํ๋กํ ์ฝ์ ์ฃผ์ ํน์ง
- ์ต์ํ์ ๊ธฐ๋ฅ ์ ๊ณต (No-frills, Bare-bones): UDP๋ ์ ๋ขฐ์ฑ, ์์ ๋ณด์ฅ, ํ๋ฆ ์ ์ด์ ๊ฐ์ ๋ถ๊ฐ์ ์ธ ๊ธฐ๋ฅ ์์ด ๋ฐ์ดํฐ๊ทธ๋จ์ ์ ์กํ๋ ํต์ฌ ๊ธฐ๋ฅ์๋ง ์ง์คํ๋ ์ธํฐ๋ท ์ ์ก ๊ณ์ธต ํ๋กํ ์ฝ์ ๋๋ค.
- ์ต์ ํ ์๋น์ค (Best-Effort Service): UDP๋ ๋ฐ์ดํฐ ์ ์ก์ ๋ณด์ฅํ์ง ์์ต๋๋ค. ๋ฐ๋ผ์ UDP ์ธ๊ทธ๋จผํธ๋ ๋ค์๊ณผ ๊ฐ์ ์ํฉ์ด ๋ฐ์ํ ์ ์์ต๋๋ค.
- ์์ค (Lost): ๋คํธ์ํฌ ํผ์ก์ด๋ ์ค๋ฅ๋ก ์ธํด ์ค๊ฐ์ ์ ์ค๋ ์ ์์ต๋๋ค.
- ์์ ๋น๋ณด์ฅ (Delivered out-of-order): ์ก์ ๋ ์์์ ๋ค๋ฅด๊ฒ ์์ ์ธก ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๋ฌ๋ ์ ์์ต๋๋ค.
- ๋น์ฐ๊ฒฐ์ฑ (Connectionless): UDP๋ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ธฐ ์ ์ ์ก์ ์์ ์์ ์ ๊ฐ์ ๋
ผ๋ฆฌ์ ์ฐ๊ฒฐ์ ์ค์ ํ๋ ๊ณผ์ ์ ๊ฑฐ์น์ง ์์ต๋๋ค.
- ํธ๋์ ฐ์ดํน ๋ถ์ฌ (No handshaking): TCP์ 3-way-handshake์ ๊ฐ์ ์ฐ๊ฒฐ ์ค์ ์ ์ฐจ๊ฐ ์์ด ์ง์ฐ ์๊ฐ์ด ์์ต๋๋ค.
- ๋ ๋ฆฝ์ ์ธ ์ธ๊ทธ๋จผํธ ์ฒ๋ฆฌ: ๋ชจ๋ UDP ์ธ๊ทธ๋จผํธ(๋ฐ์ดํฐ๊ทธ๋จ)๋ ์ด์ ๋๋ ์ดํ์ ์ธ๊ทธ๋จผํธ์ ์๋ฌด๋ฐ ๊ด๊ณ ์์ด ๋ ๋ฆฝ์ ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค.
2. UDP์ ์กด์ฌ ์ด์ (์ค๊ณ ๋ชฉ์ )
์ด๋ฌํ ์ต์ํ์ ํน์ง์ ํน์ ์์ฉ ๋ถ์ผ์์ ๋ค์๊ณผ ๊ฐ์ ๋ช ํํ ์ฅ์ ์ ์ ๊ณตํฉ๋๋ค.
- ์ฐ๊ฒฐ ์ค์ ์ง์ฐ ์์: ์ฐ๊ฒฐ ์ค์ ๊ณผ์ ์ด ์์ผ๋ฏ๋ก, TCP์์ ๋ฐ์ํ๋ ์๋ณต ์๊ฐ(RTT) ์ง์ฐ์ด ๋ฐ์ํ์ง ์์ต๋๋ค. ๋ฐ๋ผ์ ๋ฐ์ดํฐ ์ ์ก์ ์ฆ์ ์์ํ ์ ์์ด ์ง์ฐ์ ๋ฏผ๊ฐํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๋ฆฌํฉ๋๋ค.
- ๋จ์ํ ํ๋กํ ์ฝ ๊ตฌ์กฐ: ์ก์ ์์ ์์ ์ ์์ธก์์ ์ฐ๊ฒฐ ์ํ(Connection State)๋ฅผ ์ ์งํ ํ์๊ฐ ์์ต๋๋ค. ์ด๋ ํ๋กํ ์ฝ์ ๊ตฌํ์ ๋จ์ํํ๊ณ ์ด์์ฒด์ ์ ๋ฆฌ์์ค ๋ถ๋ด์ ์ค์ฌ์ค๋๋ค.
- ์์ ํค๋ ํฌ๊ธฐ: UDP ํค๋๋ 8๋ฐ์ดํธ๋ก, ์ต์ 20๋ฐ์ดํธ์ธ TCP ํค๋์ ๋นํด ๋งค์ฐ ์์ต๋๋ค. ์ด๋ ์ ์ก ์ค๋ฒํค๋๋ฅผ ๊ฐ์์์ผ ๋์ญํญ ํ์ฉ ํจ์จ์ ๋์ ๋๋ค.
- ํผ์ก ์ ์ด ๋ถ์ฌ: UDP๋ ์์ฒด์ ์ธ ํผ์ก ์ ์ด(Congestion Control) ๋ฉ์ปค๋์ฆ์ ์ํํ์ง ์์ต๋๋ค.
- ์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ํ๋ ์ ์ก๋ฅ ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฝ ์์ด ๋ณด๋ผ ์ ์์์ ์๋ฏธํฉ๋๋ค.
- ๋คํธ์ํฌ์ ํผ์ก์ด ๋ฐ์ํ๋๋ผ๋ ์ ์ก๋ฅ ์ ์์ฒด์ ์ผ๋ก ์ค์ด์ง ์์ผ๋ฏ๋ก, ์ฝ๊ฐ์ ๋ฐ์ดํฐ ์์ค์ ๊ฐ์ํ๋๋ผ๋ ์ค์๊ฐ์ฑ์ ์ ์งํด์ผ ํ๋ ์ ํ๋ฆฌ์ผ์ด์ (์: ์ค์๊ฐ ์คํธ๋ฆฌ๋ฐ, ์จ๋ผ์ธ ๊ฒ์)์ ์ ํฉํฉ๋๋ค.
3. UDP: Transport Layer Actions
(1) Sender Actions : ์บก์ํ (Encapsulation)

- ๋ฉ์์ง ์์ : ์ ํ๋ฆฌ์ผ์ด์ ๊ณ์ธต(SNMP ํด๋ผ์ด์ธํธ)์ผ๋ก๋ถํฐ ์ ์กํ ๋ฉ์์ง(SNMP msg)๋ฅผ ์ ๋ฌ๋ฐ์ต๋๋ค.
- ํค๋ ์ ๋ณด ๊ฒฐ์ : ์ ์ก ๊ณ์ธต(UDP)์ ์ถ๋ฐ์ง/๋ชฉ์ ์ง ํฌํธ ๋ฒํธ, ๊ธธ์ด, ์ฒดํฌ์ฌ(Checksum) ๋ฑ์ ์ ๋ณด๋ฅผ ํฌํจํ๋ UDP ์ธ๊ทธ๋จผํธ ํค๋(UDP_h) ํ๋ ๊ฐ์ ๊ฒฐ์ ํฉ๋๋ค.
- ์ธ๊ทธ๋จผํธ ์์ฑ: ์ ํ๋ฆฌ์ผ์ด์ ๋ฉ์์ง์ UDP ํค๋๋ฅผ ๋ถ์ฌ UDP ์ธ๊ทธ๋จผํธ(UDP Segment)๋ฅผ ์์ฑํฉ๋๋ค. ์ด ๊ณผ์ ์ ์บก์ํ๋ผ๊ณ ํฉ๋๋ค.
- ํ์ ๊ณ์ธต ์ ๋ฌ: ์์ฑ๋ UDP ์ธ๊ทธ๋จผํธ๋ฅผ ํ์ ๊ณ์ธต์ธ ๋คํธ์ํฌ ๊ณ์ธต(IP)์ผ๋ก ์ ๋ฌํ์ฌ ์ ์ก์ ์์ฒญํฉ๋๋ค.
(2) Receiver Actions: ๋์บก์ํ ๋ฐ ์ญ๋ค์คํ (Decapsulation & Demultiplexing)

- ์ธ๊ทธ๋จผํธ ์์ : ๋คํธ์ํฌ ๊ณ์ธต(IP)์ผ๋ก๋ถํฐ UDP ์ธ๊ทธ๋จผํธ๋ฅผ ์ ๋ฌ๋ฐ์ต๋๋ค.
- ํค๋ ๋ฌด๊ฒฐ์ฑ ๊ฒ์ฌ: UDP ํค๋์ ํฌํจ๋ ์ฒดํฌ์ฌ(Checksum) ๊ฐ์ ํ์ธํ์ฌ ์ ์ก ์ค ๋ฐ์ดํฐ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋์ง ๊ฒ์ฌํฉ๋๋ค.
- ๋ฉ์์ง ์ถ์ถ: UDP ํค๋๋ฅผ ์ ๊ฑฐํ๊ณ ๋ด๋ถ์ ํฌํจ๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ณ์ธต ๋ฉ์์ง(SNMP msg)๋ฅผ ์ถ์ถํฉ๋๋ค. ์ด ๊ณผ์ ์ ๋์บก์ํ(Decapsulation)๋ผ๊ณ ํฉ๋๋ค.
- ์ญ๋ค์คํ(Demultiplexing): ํค๋์ ๋ช ์๋ ๋ชฉ์ ์ง ํฌํธ ๋ฒํธ๋ฅผ ์ฐธ์กฐํ์ฌ, ํด๋น ๋ฐ์ดํฐ๋ฅผ ์์ ํด์ผ ํ ์ฌ๋ฐ๋ฅธ ์์ผ(Socket)์ ์๋ณํ๊ณ ๊ทธ ์์ผ์ ํตํด ์์ ์ ํ๋ฆฌ์ผ์ด์ (SNMP ์๋ฒ)์ผ๋ก ๋ฉ์์ง๋ฅผ ์ ๋ฌํฉ๋๋ค.
(3) UDP Segment header

- UDP ํค๋ (Header): ์ด 8๋ฐ์ดํธ (64๋นํธ) ํฌ๊ธฐ์ด๋ฉฐ, 4๊ฐ์ ํ๋๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
- Source Port (16 bits): ์ก์ ์ธก ํ๋ก์ธ์ค๋ฅผ ์๋ณํ๋ ํฌํธ ๋ฒํธ์ ๋๋ค. ์๋ต์ ๋ฐ์ง ์๋ ๋จ๋ฐฉํฅ ํต์ ์์๋ 0์ผ๋ก ์ค์ ๋ ์ ์์ต๋๋ค.
- Destination Port (16 bits): ์์ ์ธก ํ๋ก์ธ์ค๋ฅผ ์๋ณํ๋ ํฌํธ ๋ฒํธ์ ๋๋ค. ์์ ํธ์คํธ๊ฐ ์ด ๊ฐ์ ์ฌ์ฉํ์ฌ ์ฌ๋ฐ๋ฅธ ์ ํ๋ฆฌ์ผ์ด์ ์์ผ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ญ๋ค์คํ(demultiplex)ํ๋ฏ๋ก ํ์์ ์ธ ํ๋์ ๋๋ค.
- Length (16 bits): UDP ํค๋์ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ํฌํจํ UDP ์ธ๊ทธ๋จผํธ ์ ์ฒด์ ๊ธธ์ด๋ฅผ ๋ฐ์ดํธ(byte) ๋จ์๋ก ๋ํ๋ ๋๋ค. ์ต์๊ฐ์ ํค๋์ ๊ธธ์ด์ธ 8๋ฐ์ดํธ์ ๋๋ค.
- Checksum (16 bits): ํค๋์ ๋ฐ์ดํฐ ์์ญ ๋ชจ๋์ ๋ํ ์ค๋ฅ ๊ฒ์ถ์ ์ํด ์ฌ์ฉ๋ฉ๋๋ค. ์ก์ ์ธก์ ํน์ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ์ฒดํฌ์ฌ ๊ฐ์ ๊ณ์ฐํ์ฌ ์ด ํ๋์ ํฌํจ์ํค๊ณ , ์์ ์ธก์ ๋์ผํ ๊ณ์ฐ์ ์ํํ์ฌ ๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ์ ๊ฒ์ฆํฉ๋๋ค. ์ค๋ฅ๊ฐ ๋ฐ๊ฒฌ๋๋ฉด ํด๋น ์ธ๊ทธ๋จผํธ๋ ์ผ๋ฐ์ ์ผ๋ก ํ๊ธฐ๋ฉ๋๋ค. ์ด ํ๋๋ IPv4์์๋ ์ ํ ์ฌํญ์ด์ง๋ง, IPv6์์๋ ํ์์ ๋๋ค.
- Application Data (Payload):
- ์์ ์ ํ๋ฆฌ์ผ์ด์ ๊ณ์ธต์ผ๋ก๋ถํฐ ์ ๋ฌ๋ฐ์ ์ค์ ๋ฐ์ดํฐ์ ๋๋ค. ์ด ๋ฐ์ดํฐ์ ํฌ๊ธฐ๋ Length ํ๋์ ๊ฐ์์ ํค๋ ํฌ๊ธฐ์ธ 8๋ฐ์ดํธ๋ฅผ ๋บ ๊ฐ๊ณผ ๊ฐ์ต๋๋ค.
4. UDP checksum
⇒ Goal: detect errors (i.e., flipped bits) in transmitted segment
ํด๋น UDP ์ธ๊ทธ๋จผํธ๋ ์์ ์ธก ์ด์์ฒด์ (OS)์ ํ๋กํ ์ฝ ์คํ์ ์ํด '์กฐ์ฉํ ํ๊ธฐ(Silently Discarded)'๋ฉ๋๋ค.

- '์กฐ์ฉํ ํ๊ธฐ'์ ์๋ฏธ:
- ์ก์ ์ธก์ ์ค๋ฅ ํต๋ณด ์์: ์์ ์ธก์ ๋ฐ์ดํฐ ์์ ์ฌ์ค์ ์ก์ ์ธก์ ์๋ฆฌ๋ ์ด๋ ํ ์ข ๋ฅ์ ์ค๋ฅ ๋ฉ์์ง(์: ICMP ๋ฉ์์ง)๋ ๋ณด๋ด์ง ์์ต๋๋ค. ๋ฐ๋ผ์ ์ก์ ์๋ ์ธ๊ทธ๋จผํธ๊ฐ ํ๊ธฐ๋์๋ค๋ ์ฌ์ค์ ์ ์ ์์ต๋๋ค.
- ์ ํ๋ฆฌ์ผ์ด์ ๊ณ์ธต์ผ๋ก ์ ๋ฌ ์ ๋จ: ์์๋ ๊ฒ์ผ๋ก ํ๋จ๋ ํด๋น ์ธ๊ทธ๋จผํธ๋ ์์ ๊ณ์ธต์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ผ๋ก ์ ๋ ์ ๋ฌ๋์ง ์์ต๋๋ค. ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ํด๋น ๋ฐ์ดํฐ๋ฅผ ์์ ํ์ง ๋ชปํ๊ฒ ๋ฉ๋๋ค.
⇒ ์ด๋ก ์ธํ ๋ค์์ ๋์์ด ์๋ค.
(1) Sender์ ๋์
- ๋ฐ์ดํฐ ๋ถํ : ์ฒดํฌ์ฌ ๊ณ์ฐ์ ์ํด UDP ์ธ๊ทธ๋จผํธ์ ์ ์ฒด ๋ด์ฉ(UDP ํค๋, ๋ฐ์ดํฐ, ๊ทธ๋ฆฌ๊ณ IP ํค๋์ ์ผ๋ถ ์ ๋ณด์ธ ๊ฐ์ ํค๋ ํฌํจ)์ 16๋นํธ ๋จ์์ ์ ์(Integer) ์ํ์ค๋ก ๊ฐ์ฃผํฉ๋๋ค.
- ์ฒดํฌ์ฌ ๊ณ์ฐ: ์ด 16๋นํธ ์ ์๋ค์ 1์ ๋ณด์ ํฉ(One's Complement Sum) ๋ฐฉ์์ผ๋ก ๋ชจ๋ ๋ํฉ๋๋ค.
- 1์ ๋ณด์ ํฉ์ ๋ชจ๋ 16๋นํธ ์๋(word)๋ฅผ ๋ํ๊ณ , ๋ง์ ๊ณผ์ ์์ ์๋ฆฌ์ฌ๋ฆผ(carry)์ด ๋ฐ์ํ๋ฉด ๊ทธ ๊ฐ์ ์ตํ์ ๋นํธ(LSB)์ ๋ค์ ๋ํด์ฃผ๋ ์ฐ์ฐ์ ๋๋ค. ์ต์ข ํฉ๊ณ์ ๋ํด 1์ ๋ณด์(๋นํธ ๋ฐ์ )๋ฅผ ์ทจํ ๊ฐ์ด ์ต์ข ์ฒดํฌ์ฌ์ด ๋ฉ๋๋ค.
- ์ฒดํฌ์ฌ ํ๋ ์ ์ฅ: ๊ณ์ฐ๋ ๊ฒฐ๊ณผ๊ฐ์ UDP ํค๋์ ์ฒดํฌ์ฌ ํ๋์ ์ฝ์ ํ์ฌ ์ ์กํฉ๋๋ค.
(2) Receiver์ ๋์
- ์ฒดํฌ์ฌ ์ฌ๊ณ์ฐ: ์์ ํ ์ธ๊ทธ๋จผํธ์ ๋ชจ๋ ๋ด์ฉ(ํค๋์ ์ฒดํฌ์ฌ ํ๋๋ 0์ผ๋ก ๊ฐ์ฃผ)์ ๋ํด ์ก์ ์ธก๊ณผ ๋์ผํ 1์ ๋ณด์ ํฉ ์ฐ์ฐ์ ์ํํ์ฌ ์ฒดํฌ์ฌ ๊ฐ์ ๊ณ์ฐํฉ๋๋ค.
- ๊ฐ ๋น๊ต ๋ฐ ๊ฒ์ฆ:
- ๋ถ์ผ์น (Not equal): ์์ ์ธก์์ ๊ณ์ฐํ ๊ฐ๊ณผ ์ธ๊ทธ๋จผํธ์ ์ฒดํฌ์ฌ ํ๋์ ํฌํจ๋ ๊ฐ์ด ๋ค๋ฅผ ๊ฒฝ์ฐ, ์ ์ก ์ค ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค๊ณ ํ๋จํ๊ณ ํด๋น ์ธ๊ทธ๋จผํธ๋ฅผ ํ๊ธฐํฉ๋๋ค.
- ์ผ์น (Equal): ๋ ๊ฐ์ด ๊ฐ์ ๊ฒฝ์ฐ, ์ค๋ฅ๊ฐ ์๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผํ๊ณ ๋ฐ์ดํฐ๋ฅผ ์์ ๊ณ์ธต์ผ๋ก ์ ๋ฌํฉ๋๋ค.
- "But maybe errors nonetheless?"์ ํ๊ณ์ : ์ฒดํฌ์ฌ ๋ฉ์ปค๋์ฆ์ 100% ์๋ฒฝํ์ง ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, 2๊ฐ ์ด์์ ๋นํธ์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ง๋ง ์ฐ์ฐํ ๊ทธ ๊ฒฐ๊ณผ๊ฐ ์์๋์ด ์ฒดํฌ์ฌ ๊ฐ์ด ๋์ผํ๊ฒ ๊ณ์ฐ๋๋ ๊ฒฝ์ฐ๊ฐ ์ด๋ก ์ ์ผ๋ก ๊ฐ๋ฅํฉ๋๋ค. ๋ฐ๋ผ์ ์ค๋ฅ๊ฐ ํ์ง๋์ง ์์๋ค๊ณ ํด์ ๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ์ด 100% ๋ณด์ฅ๋๋ ๊ฒ์ ์๋์ ์์ฌํฉ๋๋ค.
๋ง๋ฌด๋ฆฌ
UDP๋ ‘๋น ๋ฆ’์ ์ํด ์ ๋ขฐ๋ฅผ ํฌ๊ธฐํ ํ๋กํ ์ฝ์ ๋๋ค.
์ฐ๊ฒฐ ์ค์ , ํผ์ก ์ ์ด, ์์ ๋ณด์ฅ ๊ฐ์ ๊ธฐ๋ฅ์ ๊ณผ๊ฐํ ์ ๊ฑฐํจ์ผ๋ก์จ
์ง์ฐ์ ์ต์ํํ๊ณ , ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ฆ์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ์ ์๋๋ก ์ค๊ณ๋์์ต๋๋ค.
ํ์ง๋ง ์ด ๋จ์ํจ์ ๊ณง ‘์ฑ ์์ ์ด์ ’์ ์๋ฏธํฉ๋๋ค.
๋ฐ์ดํฐ ์์ค, ์์ ๋ค์์, ์ ์ก๋ฅ ์ ์ด๋ ์ด์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ง์ ํด๊ฒฐํด์ผ ํ ๊ณผ์ ์ ๋๋ค.
๋ค์์ Principles of reliable data transfer๋ก ์ฐพ์ ๋ต๊ฒ ์ต๋๋ค.
'ComputerScienc๐ > Computer Network' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [๋คํธ์ํฌ] Subnet Mask | ์๋ธ๋ท ๋ง์คํฌ (1) | 2026.05.08 |
|---|---|
| [๋คํธ์ํฌ] A,B,C class | IP ์ฃผ์ ํด๋์ค (0) | 2026.05.08 |
| [๋คํธ์ํฌ] 3.2 Multiplexing / demultiplexing | ๋ค์คํ / ์ญ๋ค์คํ (0) | 2025.10.22 |
| [๋คํธ์ํฌ] 3.1 Transport-layer services | ์ ์ก ๊ณ์ธต ์๋น์ค (0) | 2025.10.15 |