did_story

[๋„คํŠธ์›Œํฌ] 3.3 Connectionless transport: UDP / ๋น„์—ฐ๊ฒฐ์„ฑ ์šด์†ก ๋ณธ๋ฌธ

ComputerScienc๐Ÿ“š/Computer Network

[๋„คํŠธ์›Œํฌ] 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)

Sender์˜ Actions

  • ๋ฉ”์‹œ์ง€ ์ˆ˜์‹ : ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต(SNMP ํด๋ผ์ด์–ธํŠธ)์œผ๋กœ๋ถ€ํ„ฐ ์ „์†กํ•  ๋ฉ”์‹œ์ง€(SNMP msg)๋ฅผ ์ „๋‹ฌ๋ฐ›์Šต๋‹ˆ๋‹ค.
  • ํ—ค๋” ์ •๋ณด ๊ฒฐ์ •: ์ „์†ก ๊ณ„์ธต(UDP)์€ ์ถœ๋ฐœ์ง€/๋ชฉ์ ์ง€ ํฌํŠธ ๋ฒˆํ˜ธ, ๊ธธ์ด, ์ฒดํฌ์„ฌ(Checksum) ๋“ฑ์˜ ์ •๋ณด๋ฅผ ํฌํ•จํ•˜๋Š” UDP ์„ธ๊ทธ๋จผํŠธ ํ—ค๋”(UDP_h) ํ•„๋“œ ๊ฐ’์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์„ธ๊ทธ๋จผํŠธ ์ƒ์„ฑ: ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฉ”์‹œ์ง€์— UDP ํ—ค๋”๋ฅผ ๋ถ™์—ฌ UDP ์„ธ๊ทธ๋จผํŠธ(UDP Segment)๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์„ ์บก์Аํ™”๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
  • ํ•˜์œ„ ๊ณ„์ธต ์ „๋‹ฌ: ์ƒ์„ฑ๋œ UDP ์„ธ๊ทธ๋จผํŠธ๋ฅผ ํ•˜์œ„ ๊ณ„์ธต์ธ ๋„คํŠธ์›Œํฌ ๊ณ„์ธต(IP)์œผ๋กœ ์ „๋‹ฌํ•˜์—ฌ ์ „์†ก์„ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.

(2) Receiver Actions: ๋””์บก์Аํ™” ๋ฐ ์—ญ๋‹ค์ค‘ํ™” (Decapsulation & Demultiplexing)

receiver actions

  • ์„ธ๊ทธ๋จผํŠธ ์ˆ˜์‹ : ๋„คํŠธ์›Œํฌ ๊ณ„์ธต(IP)์œผ๋กœ๋ถ€ํ„ฐ UDP ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์ „๋‹ฌ๋ฐ›์Šต๋‹ˆ๋‹ค.
  • ํ—ค๋” ๋ฌด๊ฒฐ์„ฑ ๊ฒ€์‚ฌ: UDP ํ—ค๋”์— ํฌํ•จ๋œ ์ฒดํฌ์„ฌ(Checksum) ๊ฐ’์„ ํ™•์ธํ•˜์—ฌ ์ „์†ก ์ค‘ ๋ฐ์ดํ„ฐ์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๋Š”์ง€ ๊ฒ€์‚ฌํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฉ”์‹œ์ง€ ์ถ”์ถœ: UDP ํ—ค๋”๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๋‚ด๋ถ€์— ํฌํ•จ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต ๋ฉ”์‹œ์ง€(SNMP msg)๋ฅผ ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์„ ๋””์บก์Аํ™”(Decapsulation)๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
  • ์—ญ๋‹ค์ค‘ํ™”(Demultiplexing): ํ—ค๋”์— ๋ช…์‹œ๋œ ๋ชฉ์ ์ง€ ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ์ฐธ์กฐํ•˜์—ฌ, ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์‹ ํ•ด์•ผ ํ•  ์˜ฌ๋ฐ”๋ฅธ ์†Œ์ผ“(Socket)์„ ์‹๋ณ„ํ•˜๊ณ  ๊ทธ ์†Œ์ผ“์„ ํ†ตํ•ด ์ƒ์œ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(SNMP ์„œ๋ฒ„)์œผ๋กœ ๋ฉ”์‹œ์ง€๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

(3) UDP Segment header

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)'๋ฉ๋‹ˆ๋‹ค.

  • '์กฐ์šฉํžˆ ํ๊ธฐ'์˜ ์˜๋ฏธ:
    1. ์†ก์‹  ์ธก์— ์˜ค๋ฅ˜ ํ†ต๋ณด ์—†์Œ: ์ˆ˜์‹  ์ธก์€ ๋ฐ์ดํ„ฐ ์†์ƒ ์‚ฌ์‹ค์„ ์†ก์‹  ์ธก์— ์•Œ๋ฆฌ๋Š” ์–ด๋– ํ•œ ์ข…๋ฅ˜์˜ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€(์˜ˆ: ICMP ๋ฉ”์‹œ์ง€)๋„ ๋ณด๋‚ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์†ก์‹ ์ž๋Š” ์„ธ๊ทธ๋จผํŠธ๊ฐ€ ํ๊ธฐ๋˜์—ˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
    2. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต์œผ๋กœ ์ „๋‹ฌ ์•ˆ ๋จ: ์†์ƒ๋œ ๊ฒƒ์œผ๋กœ ํŒ๋‹จ๋œ ํ•ด๋‹น ์„ธ๊ทธ๋จผํŠธ๋Š” ์ƒ์œ„ ๊ณ„์ธต์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ์ ˆ๋Œ€ ์ „๋‹ฌ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์‹ ํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

⇒ ์ด๋กœ ์ธํ•œ ๋‹ค์Œ์˜ ๋™์ž‘์ด ์žˆ๋‹ค.

(1) Sender์˜ ๋™์ž‘

  1. ๋ฐ์ดํ„ฐ ๋ถ„ํ• : ์ฒดํฌ์„ฌ ๊ณ„์‚ฐ์„ ์œ„ํ•ด UDP ์„ธ๊ทธ๋จผํŠธ์˜ ์ „์ฒด ๋‚ด์šฉ(UDP ํ—ค๋”, ๋ฐ์ดํ„ฐ, ๊ทธ๋ฆฌ๊ณ  IP ํ—ค๋”์˜ ์ผ๋ถ€ ์ •๋ณด์ธ ๊ฐ€์ƒ ํ—ค๋” ํฌํ•จ)์„ 16๋น„ํŠธ ๋‹จ์œ„์˜ ์ •์ˆ˜(Integer) ์‹œํ€€์Šค๋กœ ๊ฐ„์ฃผํ•ฉ๋‹ˆ๋‹ค.
  2. ์ฒดํฌ์„ฌ ๊ณ„์‚ฐ: ์ด 16๋น„ํŠธ ์ •์ˆ˜๋“ค์„ 1์˜ ๋ณด์ˆ˜ ํ•ฉ(One's Complement Sum) ๋ฐฉ์‹์œผ๋กœ ๋ชจ๋‘ ๋”ํ•ฉ๋‹ˆ๋‹ค.
    • 1์˜ ๋ณด์ˆ˜ ํ•ฉ์€ ๋ชจ๋“  16๋น„ํŠธ ์›Œ๋“œ(word)๋ฅผ ๋”ํ•˜๊ณ , ๋ง์…ˆ ๊ณผ์ •์—์„œ ์ž๋ฆฌ์˜ฌ๋ฆผ(carry)์ด ๋ฐœ์ƒํ•˜๋ฉด ๊ทธ ๊ฐ’์„ ์ตœํ•˜์œ„ ๋น„ํŠธ(LSB)์— ๋‹ค์‹œ ๋”ํ•ด์ฃผ๋Š” ์—ฐ์‚ฐ์ž…๋‹ˆ๋‹ค. ์ตœ์ข… ํ•ฉ๊ณ„์— ๋Œ€ํ•ด 1์˜ ๋ณด์ˆ˜(๋น„ํŠธ ๋ฐ˜์ „)๋ฅผ ์ทจํ•œ ๊ฐ’์ด ์ตœ์ข… ์ฒดํฌ์„ฌ์ด ๋ฉ๋‹ˆ๋‹ค.
    • ์ฒดํฌ์„ฌ ํ•„๋“œ ์ €์žฅ: ๊ณ„์‚ฐ๋œ ๊ฒฐ๊ณผ๊ฐ’์„ UDP ํ—ค๋”์˜ ์ฒดํฌ์„ฌ ํ•„๋“œ์— ์‚ฝ์ž…ํ•˜์—ฌ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.

(2) Receiver์˜ ๋™์ž‘

  1. ์ฒดํฌ์„ฌ ์žฌ๊ณ„์‚ฐ: ์ˆ˜์‹ ํ•œ ์„ธ๊ทธ๋จผํŠธ์˜ ๋ชจ๋“  ๋‚ด์šฉ(ํ—ค๋”์˜ ์ฒดํฌ์„ฌ ํ•„๋“œ๋Š” 0์œผ๋กœ ๊ฐ„์ฃผ)์— ๋Œ€ํ•ด ์†ก์‹  ์ธก๊ณผ ๋™์ผํ•œ 1์˜ ๋ณด์ˆ˜ ํ•ฉ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ์ฒดํฌ์„ฌ ๊ฐ’์„ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.
  2. ๊ฐ’ ๋น„๊ต ๋ฐ ๊ฒ€์ฆ:
    • ๋ถˆ์ผ์น˜ (Not equal): ์ˆ˜์‹  ์ธก์—์„œ ๊ณ„์‚ฐํ•œ ๊ฐ’๊ณผ ์„ธ๊ทธ๋จผํŠธ์˜ ์ฒดํฌ์„ฌ ํ•„๋“œ์— ํฌํ•จ๋œ ๊ฐ’์ด ๋‹ค๋ฅผ ๊ฒฝ์šฐ, ์ „์†ก ์ค‘ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค๊ณ  ํŒ๋‹จํ•˜๊ณ  ํ•ด๋‹น ์„ธ๊ทธ๋จผํŠธ๋ฅผ ํ๊ธฐํ•ฉ๋‹ˆ๋‹ค.
    • ์ผ์น˜ (Equal): ๋‘ ๊ฐ’์ด ๊ฐ™์„ ๊ฒฝ์šฐ, ์˜ค๋ฅ˜๊ฐ€ ์—†๋Š” ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์œ„ ๊ณ„์ธต์œผ๋กœ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.
    • "But maybe errors nonetheless?"์˜ ํ•œ๊ณ„์ : ์ฒดํฌ์„ฌ ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ 100% ์™„๋ฒฝํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, 2๊ฐœ ์ด์ƒ์˜ ๋น„ํŠธ์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์ง€๋งŒ ์šฐ์—ฐํžˆ ๊ทธ ๊ฒฐ๊ณผ๊ฐ€ ์ƒ์‡„๋˜์–ด ์ฒดํฌ์„ฌ ๊ฐ’์ด ๋™์ผํ•˜๊ฒŒ ๊ณ„์‚ฐ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ด๋ก ์ ์œผ๋กœ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์˜ค๋ฅ˜๊ฐ€ ํƒ์ง€๋˜์ง€ ์•Š์•˜๋‹ค๊ณ  ํ•ด์„œ ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ์ด 100% ๋ณด์žฅ๋˜๋Š” ๊ฒƒ์€ ์•„๋‹˜์„ ์‹œ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๋งˆ๋ฌด๋ฆฌ

UDP๋Š” ‘๋น ๋ฆ„’์„ ์œ„ํ•ด ์‹ ๋ขฐ๋ฅผ ํฌ๊ธฐํ•œ ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค.

์—ฐ๊ฒฐ ์„ค์ •, ํ˜ผ์žก ์ œ์–ด, ์ˆœ์„œ ๋ณด์žฅ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ๊ณผ๊ฐํžˆ ์ œ๊ฑฐํ•จ์œผ๋กœ์จ

์ง€์—ฐ์„ ์ตœ์†Œํ™”ํ•˜๊ณ , ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ฆ‰์‹œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

 

ํ•˜์ง€๋งŒ ์ด ๋‹จ์ˆœํ•จ์€ ๊ณง ‘์ฑ…์ž„์˜ ์ด์ „’์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ์†์‹ค, ์ˆœ์„œ ๋’ค์„ž์ž„, ์ „์†ก๋ฅ  ์ œ์–ด๋Š” ์ด์ œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ง์ ‘ ํ•ด๊ฒฐํ•ด์•ผ ํ•  ๊ณผ์ œ์ž…๋‹ˆ๋‹ค.

๋‹ค์Œ์€ Principles of reliable data transfer๋กœ ์ฐพ์•„ ๋ต™๊ฒ ์Šต๋‹ˆ๋‹ค.