[ðCN] UDP - User Datagram Protocol
ð Internet Protocol ì ê³µ ìì ì 늬
IP ê³ìžµì Best Effort ìë¹ì€ ìì Transport Layerê° ë±ì¥íë€. UDPë ê°ì¥ ëšìí ì ì¡ ê³ìžµ íë¡í ìœë¡, IPì Multiplexing/Demultiplexing êž°ë¥ë§ ì¶ê°íë€. ëšìíš ìì ìšê²šì§ ê°ë ¥í íì© ì¬ë¡ì ì€ê³ ì² íì ìŽíŽë³Žì.
Transport Layer ê°ì
TCP/IP ê³ìžµ 구조ììì ìì¹
ðTransport Layer: Network Layer(IP) ììì ëìíë©° ì í늬ìŒìŽì ê° ë°ìŽí° ì ì¡ì ëŽë¹íë ê³ìžµ
íë¡í ìœ ì€í:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
âââââââââââââââââââââââââââââââââââââââââââ
â Application Layer â
â Telnet FTP HTTP DHCP DNS Ping â
âââââââââââââââââââââââââââââââââââââââââââ
â
âââââââââââââââââââââââââââââââââââââââââââ
â Transport Layer â ââ ì¬êž°!
â TCP UDP â
âââââââââââââââââââââââââââââââââââââââââââ
â
âââââââââââââââââââââââââââââââââââââââââââ
â Network Layer â
â IP ICMP IGMP â
âââââââââââââââââââââââââââââââââââââââââââ
â
âââââââââââââââââââââââââââââââââââââââââââ
â Link Layer â
â ARP Hardware Interface RARP â
âââââââââââââââââââââââââââââââââââââââââââ
â
Media
End-to-End Principle
ðEnd-to-End Principle: êž°ë¥ ë°°ì¹ì ìì¹ - ì í늬ìŒìŽì ë³ êž°ë¥ì íµì ì ì ëëš(end nodes)ìë§ êµ¬í
íµì¬ ì² í:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
HOST HOST
âââââââââââââââââââââââââ âââââââââââââââââââââââââ
â Application ââ··········âºâ Application â
ââââââââââââââââââââââââ†âââââââââââââââââââââââââ€
â Transport ââ··········âºâ Transport â
ââââââââââââââââââââââââ†âââââââââââââââââââââââââ€
â Network ââââââââ â Network â
ââââââââââââââââââââââââ†â âââââââââââââââââââââââââ€
â Data Link âââââ â âââºâ Data Link â
âââââââââââââââââââââââââ â â â âââââââââââââââââââââââââ
â â â
âââââââââŒâââŒâââŒââââââââ
â Intermediate â
â Routers â
â (Network + Link) â
âââââââââââââââââââââââ
ì€ê³ ìì¹:
- â Application-specific features: íµì íë End nodesìë§ êµ¬í
- â Intermediate routers: ë€ížìí¬ êµ¬ì±ë§ ëŽë¹ (Dumb minimal networks)
- â Smart terminals: 몚ë ì§ë¥ì ì ëëšì
- â Performance enhancement: ížì€ížê° ì¬ë°ë¥Žê² 구íí ì ìë€ë©Ž, íì ê³ìžµìë ì±ë¥ í¥ì 목ì ìŒë¡ë§ 구í
- â No burden: íŽë¹ êž°ë¥ìŽ íì ìë ì í늬ìŒìŽì ì ë¶ëŽì ì£Œì§ ìì
ì² íì íµì¬: âêž°ë¥ì íìë¡ íì§ ìë ì í늬ìŒìŽì ì ë¶ëŽì ì£Œì§ ë§ëŒ!â
Transport Protocols: UDP vs TCP
ìží°ë·ì 2ê°ì§ Transport Protocol
ë¹êµí:
1
2
3
4
5
6
7
8
9
âââââââââââââââââââââââââââââââââââââââ¬ââââââââââââââââââââââââââââââââââ
â UDP â TCP â
â User Datagram Protocol â Transmission Control Protocol â
âââââââââââââââââââââââââââââââââââââââŒââââââââââââââââââââââââââââââââââ€
â â
Datagram oriented â â
Stream oriented â
â â Unreliable, Connectionless â â
Reliable, Connection-orientedâ
â â
Simple â â Complex â
â â
Unicast and Multicast â â Only Unicast â
âââââââââââââââââââââââââââââââââââââââŽââââââââââââââââââââââââââââââââââ
UDPì í¹ì§ ë° ì©ë
UDP í¹ì§:
- Datagram oriented: ê° ë©ìì§ê° ë 늜ì
- Unreliable: ìì€, ì€ë³µ, ìì ë°ë ê°ë¥
- Connectionless: ì°ê²° ì€ì ìì
- Simple: ìµìíì ì€ë²í€ë
- Multicast ì§ì: 1:N íµì ê°ë¥
UDP 죌ì ì¬ì©ì²:
1
2
3
4
3ê°ì§ 죌ì ì©ë:
1. Non-unicast (Multicast/Broadcast)
2. Real-time (ì€ìê° íµì )
3. Short transactions (ì§§ì ížëìì
)
| ë¶ë¥ | ì í늬ìŒìŽì | ìŽì |
|---|---|---|
| ìë¹ì€ | DNS, DHCP, SNMP, RIP | ì§§ì ìì²/ìëµ |
| ë©í°ë¯žëìŽ | VoIP, íìíì, IPTV, ê²ì | ì€ìê°ì± ì€ì, ì§ì° ìµìí |
| ë©í°ìºì€íž | Router discovery, Multicast video | 1:N íµì |
TCPì í¹ì§ ë° ì©ë
TCP í¹ì§:
- Stream oriented: ì°ìë ë°ìŽíž ì€ížëŠŒ
- Reliable: ìì 볎ì¥, ìì€ ë³µêµ¬
- Connection-oriented: 3-way handshake
- Complex: íëŠ ì ìŽ, íŒì¡ ì ìŽ
- Unicast only: 1:1 íµì ë§ ê°ë¥
TCP 죌ì ì¬ì©ì²:
| ì í늬ìŒìŽì | í¬íž | í¹ì§ |
|---|---|---|
| HTTP | 80 | ì¹ ëžëŒì°ì§ |
| SMTP | 25 | ìŽë©ìŒ ì ì¡ |
| FTP | 21 | íìŒ ì ì¡ |
| Telnet | 23 | ì격 í°ë¯žë |
UDPì ìí
UDPê° ì ê³µíë ê²
ðUDPì íµì¬ êž°ë¥: IPì host-to-host delivery륌 application-to-application deliveryë¡ íì¥
UDPê° ì¶ê°íë ì ìŒí êž°ë¥:
1
2
3
4
5
6
7
8
9
10
11
12
Applications Applications
â â â â â â
â â â â â â
ââââŒââŒââŒââââ âââŒââŒââŒâââ
â UDP â â UDP â
ââââââ¬ââââââ ââââââ¬ââââ
â â
ââââââŒââââââ ââââââŒââââ
â IP â âââââââââââââââºâ IP â
ââââââââââââ ââââââââââ
íµì¬ êž°ë¥: Multiplexing & Demultiplexing
UDP = IP + Multiplexing/Demultiplexing
- Multiplexing (ì¡ì ìž¡): ì¬ë¬ ì í늬ìŒìŽì ì ë°ìŽí°ë¥Œ IPë¡ ì ë¬
- Demultiplexing (ìì ìž¡): IP íší·ì ì¬ë°ë¥ž ì í늬ìŒìŽì ìŒë¡ ì ë¬
UDPê° ì ê³µíì§ ìë ê²:
- â ì ë¢°ì± (Reliability)
- â ìì ë³Žì¥ (Ordering)
- â íëŠ ì ìŽ (Flow Control)
- â íŒì¡ ì ìŽ (Congestion Control)
- â ì°ê²° êŽëЬ (Connection Management)
Unreliable transmission: UDPë datagramì ì ì¡ë§ ì ê³µíë©°, ë®ì ì€ë²í€ë륌 ì ì§íë€!
UDP Header 구조
UDP íší· 구ì±
1
2
3
4
ââââââââââââ¬âââââââââââââ¬âââââââââââââââââââââââââââ
âIP header â UDP header â UDP data â
â(20 bytes)â (8 bytes) â (variable) â
ââââââââââââŽâââââââââââââŽâââââââââââââââââââââââââââ
UDP Header í¬ë§·
1
2
3
4
5
6
7
8
9
10
11
12
13
14
0 7 8 15 16 23 24 31
ââââââââââŽâââââââââŒâââââââââŽâââââââââââââââââââââââââââ€
â Source Port â Destination Port Number â
â Number â (16 bits) â
â (16 bits) â â
âââââââââââââââââââŒâââââââââââââââââââââââââââââââââââ€
â UDP Message â Checksum â
â Length â (16 bits) â
â (16 bits) â â
âââââââââââââââââââŽâââââââââââââââââââââââââââââââââââ€
â â
â DATA â
â â
ââââââââââââââââââââââââââââââââââââââââââââââââââââââ
íë ì€ëª :
| íë | í¬êž° | ì€ëª |
|---|---|---|
| Source Port Number | 16 bits | ì¡ì ì í늬ìŒìŽì ìë³ |
| Destination Port Number | 16 bits | ìì ì í늬ìŒìŽì ìë³ |
| UDP Message Length | 16 bits | UDP í€ë + ë°ìŽí° ì 첎 êžžìŽ |
| Checksum | 16 bits | ì€ë¥ ê²ì¶ (IPv4ììë ì í, IPv6ìì íì) |
í€ë íë ììž
Port Numbers (ê° 16 bits):
- ì¡ì /ìì ì í늬ìŒìŽì (íë¡ìžì€) ìë³
- íë¡ìžì€ë¥Œ ì°Ÿêž° ìíŽ íì
- ICMP ìë¬ê° ë°ìí IP datagramì ì²ì ë¶ë¶ì í¬íšíì¬ ì ë¬
- ì°ê²°(association)ì ì°Ÿì ì ììŒë©Ž â ICMP Port Unreachable ìë¬ ë°í
UDP Message Length:
- ìµì: 8 bytes (í€ëë§, ë°ìŽí° íë ë¹ìŽìì ì ìì)
- ìµë: 65,535 bytes (2^16 - 1)
- UDP í€ë + UDP ë°ìŽí° í¬íš
Checksum:
- UDP í€ëì UDP ë°ìŽí° ì 첎륌 ê²ìŠ
- IPv4: ì í ì¬í (0ìŽë©Ž ì¬ì© ì íš)
- IPv6: íì ì¬í
- ê³ì° ë°©ë²: Oneâs complement arithmetic
Port Numbers
Port Numberì ìí
ðPort Number: Transport Layerìì ì í늬ìŒìŽì (íë¡ìžì€)ì ìë³íë 16ë¹íž ë²íž
ì ì ê³ ì 죌ì:
1
2
3
4
5
6
Transport Layerì êžë¡ë² 죌ì = <IP address, Port number>
ìì:
192.168.1.100:80 â ì¹ ìë²
192.168.1.100:53 â DNS ìë²
(ê°ì IP, ë€ë¥ž í¬íž â ë€ë¥ž ì í늬ìŒìŽì
)
ë²ì:
- ê° ížì€ížë¹ 65,535ê° UDP í¬íž (2^16 - 1)
- TCPì UDPë ë 늜ì ìž í¬íž ê³µê° ì¬ì©
Multiplexing & Demultiplexing
Demultiplexing 곌ì :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
User Processes
âââââ¬ââââ¬ââââ¬ââââ¬ââââ¬ââââ
â 1 â 2 â 3 â 4 â 5 â 6 â
âââ²ââŽââ²ââŽââ²ââŽââââŽââ²ââŽââ²ââ
â â â â â
â â â â â
ââââââââŽââââŽââââŽââââââââŽââââŽâââââââ
â Demultiplex â
â based on Port Number â
â â
â TCP UDP â
ââââââââââââââââ¬ââââââââââââââââââââ
â
ââââââââââââââââŒââââââââââââââââââââ
â Demultiplex â
â based on Protocol Field â
â in IP Header â
â â
â IP â
ââââââââââââââââââââââââââââââââââââ
2ëšê³ Demultiplexing:
- IP Layer: Protocol fieldë¡ TCP/UDP 구ë¶
- Transport Layer: Port numberë¡ íë¡ìžì€ 구ë¶
Port Number êŽëЬ 첎ê³
ðIANA (Internet Assigned Numbers Authority): í¬íž ë²ížë¥Œ êŽëЬíë êžë¡ë² êž°êŽ
í¬íž ë²íž ë²ì:
| Range | Category | ì€ëª |
|---|---|---|
| 1 - 1023 | Well-known | ì ìë €ì§ ìë¹ì€ (root ê¶í íì) |
| 1024 - 4915 | Registered | ë±ë¡ë ì í늬ìŒìŽì |
| 49152 - 65535 | Private/Dynamic | ìì í¬íž (íŽëŒìŽìžížê° ëì ìŒë¡ ì¬ì©) |
Well-known Ports ìì:
| Port | Service | íë¡í ìœ | ì€ëª |
|---|---|---|---|
| 20 | FTP-DATA | TCP | FTP ë°ìŽí° |
| 21 | FTP | TCP | FTP ì ìŽ |
| 22 | SSH | TCP | Secure Shell |
| 23 | Telnet | TCP | ì격 í°ë¯žë |
| 25 | SMTP | TCP | ë©ìŒ ì ì¡ |
| 53 | DNS | UDP | ëë©ìž ìŽëŠ ìë² |
| 67 | DHCP | UDP | DHCP ìë² |
| 68 | DHCP | UDP | DHCP íŽëŒìŽìžíž |
| 80 | HTTP | TCP | ì¹ ìë² |
| 161 | SNMP | UDP | ë€ížìí¬ êŽëЬ |
| 443 | HTTPS | TCP | 볎ì ì¹ ìë² |
Tracerouteì UDP
Linux Tracerouteì ëì:
1
2
3
4
5
6
7
8
9
10
Linux tracerouteë UDP륌 ì¬ì©!
ëì 곌ì :
1. TTL=1ë¶í° ììíì¬ UDP íší· ì ì¡
2. Private port number ì¬ì© (33434+)
3. ì€ê° ëŒì°í°ìì TTL=0 â ICMP Time Exceeded ìëµ
4. 목ì ì§ ëë¬ ì â íŽë¹ í¬ížì íë¡ìžì€ ìì
â ICMP Destination Unreachable (Port Unreachable) ìëµ â
ìŽë¥Œ íµíŽ ëª©ì ì§ ëë¬ì íìž!
ìì:
1
2
3
4
5
$ traceroute www.example.com
...
12 * * *
13 203.0.113.1 (203.0.113.1) 50.123 ms
â ICMP: Port Unreachable (목ì ì§ ëë¬!)
Port Numberì íë¡ìžì€ ì í
ì ì¡ ê³Œì :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
âââââââââââââââââââââââââââââââââââââââââââ
â Host: 193.14.26.7 â
â âââââ âââââ âââââ â
â â ð â â ð â â...â Processes â
â âââ²ââ âââ²ââ âââââ â
â â â â
â â â Port number â
â âââŽâââââââŽâââ selects the â
â â 13 â process â
â âââââââ¬ââââââ â
â â â
â âââââââŒâââââââââââââââââââ â
â â UDP header â â
â â âââââââââââ¬âââââââââââ â â
â â âSrc Port âDest Port â â â
â â â â 13 â â â
â â âââââââââââŽâââââââââââ â â
â ââââââââââââââââââââââââââ â
â â
â ââââââââââââââââââââââââââ â
â â IP header â â
â â ââââââââââââââââââââ â â
â â â 193.14.26.7 â â IP address â
â â â â â selects â
â â ââââââââââââââââââââ â the host â
â ââââââââââââââââââââââââââ â
âââââââââââââââââââââââââââââââââââââââââââ
죌ì íŽì ìì:
- IP address: ìŽë ížì€ížìžê°? â 193.14.26.7
- Port number: ìŽë íë¡ìžì€ìžê°? â 13ë² í¬íž
UDP Checksum
Checksum ê³ì° 곌ì
ðUDP Checksum: UDP í€ëì ë°ìŽí°ì 묎결ì±ì ê²ìŠíêž° ìí 16ë¹íž ê°
ê³ì° ì ì°š:
1
2
3
4
5
6
7
1. Pseudo-header ì¶ê°
2. Checksum íë륌 0ìŒë¡ ì±ì
3. 16-bit wordsë¡ ë¶í (íìì padding ì¶ê°)
4. One's complement arithmeticìŒë¡ 몚ë words ëíêž°
5. 결곌륌 complementíì¬ checksum íëì ì ì¥
6. Pseudo-headerì padding ì ê±°
7. UDP segment륌 IPë¡ ì ë¬
Pseudo-header 구조
ì Pseudo-header?
1
2
Pseudo-headerë IP í€ëì ìŒë¶ ì 볎륌 í¬íšíì¬
UDPê° ì¬ë°ë¥ž ížì€ížì ì ë¬ëìëì§ ê²ìŠ!
Pseudo-header í¬ë§·:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
0 7 8 15 16 23 24 31
ââââââââââŽâââââââââŽâââââââââŽâââââââââââââââââââââââââââ€
â 32-bit Source IP Address â
ââââââââââââââââââââââââââââââââââââââââââââââââââââââ€
â 32-bit Destination IP Address â
ââââââââââââââââââ¬âââââââââââââââââ¬âââââââââââââââââââ€
â All 0s â 8-bit Protocolâ 16-bit UDP â
â (padding) â (17) â Total Length â
ââââââââââââââââââŽâââââââââââââââââŽâââââââââââââââââââ
â
ââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â Source Port â Destination Port â
âââââââââââââââââââââââââââŒâââââââââââââââââââââââââââ€
â UDP Total Length â Checksum â
ââââââââââââââââââââââââââââââââââââââââââââââââââââââ€
â Data â
â (Padding must be added to make data multiple â
â of 16 bits) â
ââââââââââââââââââââââââââââââââââââââââââââââââââââââ
Pseudo-header íë:
| íë | í¬êž° | ê° |
|---|---|---|
| Source IP Address | 32 bits | IP í€ëìì |
| Destination IP Address | 32 bits | IP í€ëìì |
| Zero padding | 8 bits | 0x00 |
| Protocol | 8 bits | 17 (UDP) |
| UDP Total Length | 16 bits | UDP í€ëìì |
Checksum ê³ì° ìì
ìì : ê°ëší UDP datagram
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Pseudo-header:
153.18.8.105 â 10011001 00010010 00001000 01101001
171.2.14.10 â 10101011 00000010 00001110 00001010
All 0s | 17 | 15 â 00000000 00010001 00000000 00001111
UDP Header:
1087 (port) â 00000100 00111111
13 (port) â 00000000 00001101
15 (length) â 00000000 00001111
Checksum â 00000000 00000000 (ê³ì° ì )
Data:
T E S T â 01010100 01000101 01010011 01010100
I N G â 01001001 01001110 01000111 00000000 (padding)
ê³ì°:
10011001 00010010 (153.18)
+ 00001000 01101001 (8.105)
+ 10101011 00000010 (171.2)
+ 00001110 00001010 (14.10)
+ 00000000 00010001 (0 and 17)
+ 00000000 00001111 (15)
+ 00000100 00111111 (1087)
+ 00000000 00001101 (13)
+ 00000000 00001111 (15)
+ 00000000 00000000 (0 - checksum)
+ 01010100 01000101 (T and E)
+ 01010011 01010100 (S and T)
+ 01001001 01001110 (I and N)
+ 01000111 00000000 (G and 0 - padding)
âââââââââââââââââââ
10010110 11101011 â Sum
One's Complement:
01101001 00010100 â Checksum!
Checksum ê²ìŠ (ìì ìž¡)
ìì ìž¡ ì ì°š:
1
2
3
4
5
6
7
8
9
10
11
1. Pseudo-header륌 UDP segmentì ì¶ê°
2. íìì padding ì¶ê°
3. 16-bit wordsë¡ ë¶í
4. One's complement arithmeticìŒë¡ 몚ë ëíêž°
5. 결곌륌 complement
6. ê²°ê³Œê° all 0'sìŽë©Ž:
- Pseudo-headerì padding ì ê±°
- Segment ìëœ â
ê·žë ì§ ììŒë©Ž:
- Segment íêž° â
Pseudo-headerì 목ì
ìì¬ì 배겜 (David P. Reed, 2005):
âTCP (and UDP) are end-to-end protocols. In particular, the TCP checksum is âend-to-endâ. It is a âprivate matterâ between end points implementing the TCP layer, guaranteeing end-to-end reliability, not hop-by-hop reliability.â
íµì¬ ìŽì :
1
2
3
4
5
6
7
8
9
10
11
12
1. Source/Destination Addressë ì믞 ìë ì 볎
â IPì TCP/UDP ì쪜ìì ì¬ì©
â ì€ë³µ ì ì¥ë³Žë€ë "virtual header" (pseudo-header) ì¬ì©
2. End-to-end ìíží 볎íž
â SA, DA ë±ì checksumì í¬íšíì¬
â Man-in-the-middle 공격 ë°©ìŽ
â SAì DAë ì믞 ììŒë¯ë¡ IPê° ë³ê²œí멎 ì ëš
3. NATì 묞ì
â NATê° end-to-end ìíží륌 ë°©íŽ
â Middleboxì ë±ì¥ìŒë¡ ìë ì€ê³ íŒì
Pseudo-headerì ì믞: IP í€ë ì 볎륌 checksumì í¬íšììŒ íší·ìŽ ì¬ë°ë¥ž ížì€ížì ì ë¬ëìëì§ ê²ìŠ!
Encapsulation & Decapsulation
ì¡ì 곌ì (Encapsulation)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Process (Application)
â
â Message
âŒ
âââââââââââââââââââââââââââââââââ
â Message from process â
âââââââââââââââââââââââââââââââââ
â
â Add UDP header
âŒ
ââââââââââââ¬âââââââââââââââââââââ
â UDP â UDP data â
â header â â
ââââââââââââŽâââââââââââââââââââââ
â
â Add IP header
âŒ
ââââââââââââ¬âââââââââââââââââââââ
â IP â IP data â
â header â (UDP segment) â
ââââââââââââŽâââââââââââââââââââââ
â
â Add Frame header
âŒ
ââââââââââââ¬âââââââââââââââââââââ
â Frame â Frame data â
â header â (IP datagram) â
ââââââââââââŽâââââââââââââââââââââ
â
âŒ
Network
ìì 곌ì (Decapsulation)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Network
â
âŒ
ââââââââââââ¬âââââââââââââââââââââ
â Frame â Frame data â
â header â â
ââââââââââââŽâââââââââââââââââââââ
â
â Remove Frame header
âŒ
ââââââââââââ¬âââââââââââââââââââââ
â IP â IP data â
â header â â
ââââââââââââŽâââââââââââââââââââââ
â
â Remove IP header
âŒ
ââââââââââââ¬âââââââââââââââââââââ
â UDP â UDP data â
â header â â
ââââââââââââŽâââââââââââââââââââââ
â
â Remove UDP header
âŒ
âââââââââââââââââââââââââââââââââ
â Message to process â
âââââââââââââââââââââââââââââââââ
â
âŒ
Process (Application)
ê³ìžµë³ ì²ëЬ:
| ê³ìžµ | ì¡ì (Encapsulation) | ìì (Decapsulation) |
|---|---|---|
| Application | Message ìì± | Message ìì |
| Transport | UDP header ì¶ê° | UDP header ì ê±°, Port íìž |
| Network | IP header ì¶ê° | IP header ì ê±°, IP íìž |
| Link | Frame header ì¶ê° | Frame header ì ê±° |
UDPì ì¥ëšì
UDPì ì¥ì
â 1. ë®ì ì€ë²í€ë
1
2
3
TCP header: ìµì 20 bytes
UDP header: ê³ ì 8 bytes
â ëìí íšìšì !
â 2. ë®ì ì§ì° (Low Latency)
1
2
3
TCP: ì°ê²° ì€ì (3-way handshake) íì
UDP: ìŠì ë°ìŽí° ì ì¡ ê°ë¥
â ì€ìê° ì í늬ìŒìŽì
ì ì 늬!
â 3. Multicast/Broadcast ì§ì
1
2
3
TCP: 1:1 íµì ë§ ê°ë¥
UDP: 1:N íµì ê°ë¥
â IPTV, íìíì, ëŒì°í° discovery ë±
â 4. ëšìì±
1
2
3
ì°ê²° ìí êŽëЬ ë¶íì
íëŠ ì ìŽ, íŒì¡ ì ìŽ ìì
â 구í ë° ëë²ê¹
ì©ìŽ
UDPì ëšì
â 1. ì ë¢°ì± ìì
1
2
3
4
íší· ìì€ ê°ë¥
ì€ë³µ ê°ë¥
ìì ë€ë°ë ê°ë¥
â ì í늬ìŒìŽì
ë 벚ìì ì²ëЬ íì
â 2. íŒì¡ ì ìŽ ìì
1
2
3
ë€ížìí¬ ìí ê³ ë € ì íš
곌ëí ížëíœ ë°ì ê°ë¥
â ë€ížìí¬ íŒì¡ ì
í ê°ë¥
â 3. ìì ë³Žì¥ ìì
1
2
뚌ì ë³Žëž íší·ìŽ ëì€ì ëì°© ê°ë¥
ì í늬ìŒìŽì
ìŽ ì§ì ì¬ì ë ¬ íì
UDP ì¬ì© ì¬ë¡ ë¶ì
1. DNS (Domain Name System)
ì UDP?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
í¹ì§:
- ì§§ì ìì²/ìëµ (Query/Response)
- ë³Žíµ 512 bytes ìŽí
- ë¹ ë¥ž ìëµìŽ ì€ì
ëì:
Client ââ(Query: www.example.com)ââ⺠DNS Server
Client ââ(Response: 93.184.216.34)ââ DNS Server
ì¥ì :
â
TCPì 3-way handshake ì€ë²í€ë ìì
â
ëšìŒ UDP datagramìŒë¡ ìë£
â
ìëµ ììŒë©Ž ì¬ì ì¡ (ì í늬ìŒìŽì
ë 벚)
ëš, 512 bytes ìŽê³Œ ì â TCPë¡ ì í!
2. DHCP (Dynamic Host Configuration Protocol)
ì UDP?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
í¹ì§:
- íŽëŒìŽìžížë ìì§ IP 죌ìê° ìì!
- Broadcast ì¬ì© íì
- ì§§ì ížëìì
ëì:
Client (0.0.0.0) ââ(DHCP Discover - Broadcast)ââ⺠Server
Client ââ(DHCP Offer)ââââââââââââââââââââ Server
Client ââ(DHCP Request)âââââââââââââââ⺠Server
Client ââ(DHCP ACK)ââââââââââââââââââââ Server
ì¥ì :
â
Broadcast ê°ë¥ (TCPë ë¶ê°ë¥)
â
IP 죌ì ììŽë íµì ê°ë¥
â
ë¹ ë¥ž 죌ì í ë¹
3. Real-time ì í늬ìŒìŽì (VoIP, íìíì)
ì UDP?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
í¹ì§:
- ì§ì° > ì 뢰ì±
- ì€ëë ë°ìŽí°ë 묎ì©ì§ë¬Œ
- ì€ìê°ì±ìŽ íµì¬
ìì: VoIP (Voice over IP)
- 200ms ìŽì ì§ì° â ëí ë¶ê°ë¥
- 1-2% íší· ìì€ â ì¬ë ê·ë¡ êµ¬ë³ ìŽë €ì
- ì¬ì ì¡ë ì€ëë ìì± ë°ìŽí° â ìžëªšìì
TCP 묞ì :
â ì¬ì ì¡ìŒë¡ ìží ì§ì° ìŠê°
â Head-of-line blocking
â íŒì¡ ì ìŽë¡ ìží ì²ëЬë ê°ì
UDP ì¥ì :
â
ìµì ì§ì°
â
ìì€ë ë°ìŽí°ë ê·žë¥ ë¬Žì
â
ìŒì í ì ì¡ ìë ì ì§
4. SNMP (Simple Network Management Protocol)
ì UDP?
1
2
3
4
5
6
7
8
9
10
í¹ì§:
- ë€ížìí¬ êŽëЬ ë° ëªšëí°ë§
- 죌Ʞì ìž polling
- ê°ëší ìì²/ìëµ
ì¥ì :
â
ë€ížìí¬ ë¬žì ë°ì ììë ëì
(TCPë ì°ê²° ì€ì ìì²Žê° ì€íší ì ìì)
â
겜ë íë¡í ìœ
â
ë§ì ì¥ë¹ë¥Œ ë¹ ë¥Žê² polling
5. Multicast ì í늬ìŒìŽì
ì UDP?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
í¹ì§:
- 1:N íµì
- ëìŒ ë°ìŽí°ë¥Œ ì¬ë¬ ìì ììê²
ìì:
- IPTV
- ì€ìê° ì£Œì ì 볎
- ë©í°ìºì€íž ë¹ëì€ ì€ížëЬë°
- ëŒì°í° discovery
TCP ë¶ê°ë¥:
â TCPë unicastë§ ì§ì
â ê° ìì ìë§ë€ ë³ë ì°ê²° íì
â íì¥ì± 묞ì
UDP ì¥ì :
â
ìì°ì€ë¬ìŽ multicast ì§ì
â
ëšìŒ íší·ìŒë¡ 몚ë ìì ììê² ì ë¬
UDP vs TCP ì í êž°ì€
ì í ê°ìŽë
UDP륌 ì¬ì©íŽìŒ íë 겜ì°:
1
2
3
4
5
6
â
ì€ìê°ì±ìŽ ì€ìí ê²œì° (VoIP, ê²ì, íìíì)
â
Multicast/Broadcastê° íìí 겜ì°
â
ì§§ì ížëìì
(DNS, DHCP)
â
ìì€ì ê°ëŽí ì ìë 겜ì°
â
ì í늬ìŒìŽì
ë 벚ìì ì ë¢°ì± êµ¬í ê°ë¥í 겜ì°
â
ìµì ì€ë²í€ëê° íìí 겜ì°
TCP륌 ì¬ì©íŽìŒ íë 겜ì°:
1
2
3
4
5
â
ë°ìŽí° 묎결ì±ìŽ ì€ìí ê²œì° (íìŒ ì ì¡, ìŽë©ìŒ)
â
ììê° ì€ìí 겜ì°
â
ì ë¢°ì± ìë ì ì¡ìŽ íììž ê²œì° (HTTP, FTP)
â
ëëì ë°ìŽí° ì ì¡
â
íëŠ ì ìŽì íŒì¡ ì ìŽê° íìí 겜ì°
ë¹êµí:
| í¹ì± | UDP ì í© | TCP ì í© |
|---|---|---|
| ì€ìê°ì± | â VoIP | â |
| íìŒ ì ì¡ | â | â FTP |
| ë©í°ìºì€íž | â IPTV | â |
| ì§§ì 쿌늬 | â DNS | â |
| ì€ížëŠ¬ë° | â (ì§ì°) | â (íì§) |
| ê²ì | â | â |
| ì¹ ëžëŒì°ì§ | â | â HTTP |
| ìŽë©ìŒ | â | â SMTP |
ì 늬
UDPì íµì¬ í¹ì§
| í¹ì§ | ì€ëª |
|---|---|
| Unreliable | ìì€, ì€ë³µ, ìì ë°ë ê°ë¥ |
| Connectionless | ì°ê²° ì€ì ììŽ ìŠì ì ì¡ |
| Datagram | ê° ë©ìì§ ë 늜ì ìŒë¡ ì²ëЬ |
| Simple | ìµì ì€ë²í€ë (8 byte header) |
| Fast | ë®ì ì§ì°, ì€ìê° íµì ì ì 늬 |
| Multicast | 1:N íµì ì§ì |
UDP Header ììœ
| íë | í¬êž° | ìí |
|---|---|---|
| Src Port | 16 bits | ì¡ì ì í늬ìŒìŽì ìë³ |
| Dst Port | 16 bits | ìì ì í늬ìŒìŽì ìë³ |
| Length | 16 bits | ì 첎 êžžìŽ (8~65535) |
| Checksum | 16 bits | ë¬Žê²°ì± ê²ìŠ |
Port Number ë²ì
| ë²ì | ë¶ë¥ | ì©ë |
|---|---|---|
| 1-1023 | Well-known | íì€ ìë¹ì€ |
| 1024-49151 | Registered | ë±ë¡ë ì í늬ìŒìŽì |
| 49152-65535 | Private/Dynamic | ìì í¬íž |
UDPì ì² í: âëšìíšìŽ ê°ë ¥íšìŽë€.â - ìµìíì êž°ë¥ë§ ì ê³µíê³ , íìí êž°ë¥ì ì í늬ìŒìŽì ìŽ êµ¬í!
UDPì íµì¬ ê°ì¹:
- â IP + Multiplexing/Demultiplexing
- â Low overhead, Low latency
- â Multicast support
- â No reliability, No flow control
- â Perfect for real-time, short transactions, multicast
References
- RFC 768 (User Datagram Protocol)
- RFC 1122 (Requirements for Internet Hosts)
- Prof. Jongwon Yoon, Intelligent Machines Lab
- David P. Reed, âPurpose of pseudo header in TCP checksumâ, 2005