๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ“– Protocol

UDP๋ฅผ ์•Œ์•„๋ณด์ž

์˜ค๋Š˜์€ UDP์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค

TCP๋ฅผ ์ข‹์•„ํ•˜๋Š” ๋‚˜์—๊ฒŒ UDP๋ฅผ ์ƒˆ๋กœ ๋งŒ๋“ค์–ด์•ผํ•˜๋Š” ์ผ์ด ์ƒ๊ฒจ์„œ

UDP๋Š” ๋„ˆ๋ฌด ์˜›๋‚ ์— ๋ด์„œ ๊ฐ€๋ฌผ๊ฐ€๋ฌผํ•ด์ง

 

๊ฐ€๋ณ๊ฒŒ ๋ฆฌ๋งˆ์ธ๋“œํ•˜๊ณ  ๊ฐ€๋ณด์ž์ž‡

 

 

๋Œ€ํ•™๊ต ๋•Œ ์ด๊ฑธ๋กœ ๋„คํŠธ์›Œํฌ ์ˆ˜์—… ๋“ค์—ˆ์—ˆ๋Š”๋ฐ

๊ต์ˆ˜๋‹˜ ๋ง์”€์ด ๋‹ค ์˜ณ์œผ์…จ๋‹ค...

 


1. UDP ๋ž€?

 

TCP ( Transmission Control Protocol )

- OSI 7๊ณ„์ธต์—์„œ ์ „์†ก์ธต (4๋ฒˆ์งธ ๊ณ„์ธต)์— ํ•ด๋‹น

- ์ „์†ก์„ ์ œ์–ดํ•˜๋Š” ํ”„๋กœํ† ์ฝœ

- ๊ฐ peer ๊ฐ„ ์‹ ๋ขฐ์ ์ธ ์—ฐ๊ฒฐ ์ง€ํ–ฅ์„ฑ ์„œ๋น„์Šค ์ œ๊ณต

- ์‹ ๋ขฐ์„ฑ (์—ฐ์†X)

 

 

UDP (User Datagram Protocol)

- ์–˜๋„ OSI 7๊ณ„์ธต์—์„œ ์ „์†ก์ธต์— ํ•ด๋‹น๋จ

- ์‚ฌ์šฉ์ž์˜ Datagram์„ ์ „์†กํ•˜๋Š” ํ”„๋กœํ† ์ฝœ

- ์‹ ๋ขฐ์„ฑ์ด ๋‚ฎ์€ ํ”„๋กœํ† ์ฝœ

- ์—ฐ์†์„ฑ

 

 

TCP์™€ UDP ๋ชจ๋‘ ์ƒ๋Œ€๋ฐฉ์—๊ฒŒ ์ž์‹ ์˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ „๋‹ฌํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ํ”„๋กœํ† ์ฝœ์ด๋‹ค

ํ•˜๋Š” ์ง“์ด ๋น„์Šทํ•˜์ง€๋งŒ, call ํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜๋‚˜ ํ๋ฆ„์ด ์กฐ๊ธˆ ๋‹ค๋ฅด๋‹ค

 

TCP์™€ UDP์˜ ๊ฐ€์žฅ ํฐ ์ฐจ์ด์ ์€ ์‹ ๋ขฐ์„ฑ๊ณผ ์—ฐ์†์„ฑ์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค

TCP ํ†ต์‹ ์€ ์ƒ๋Œ€๋ฐฉ์ด ์ž˜ ๋ฐ›์•˜๋Š”์ง€ ๋ชป ๋ฐ›์•˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ณผ์ •์„ ๊ฑฐ์น˜์ง€๋งŒ

UDP ํ†ต์‹ ์€ ์ผ๋‹จ ์ž๊ธฐ๊ฐ€ ๋ณด๋‚ผ๊ฑฐ๋ฅผ ๋ณด๋‚ด๊ณ 

๊ทธ ๋’ค๋Š” ์ƒ๊ฐํ•˜์ง€ ์•Š๋Š”๋‹ค

 

์ž์„ธํ•œ ์–˜๊ธฐ๋Š” ํ๋ฆ„์„ ํ†ตํ•ด ๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค

 

 

2. UDP ํ๋ฆ„

 

UDP ํ”Œ๋กœ์šฐ๋Š” ๋„คํŠธ์›Œํฌ ๊ณต๋ถ€๋ฅผ ์กฐ๊ธˆ์ด๋ผ๋„ ํ–ˆ๋‹ค๋ฉด

ํ•œ๋ฒˆ์ฏค์€ ๋ดค์„ ๊ทธ๋ฆผ์ด๋‹ค

 

UDP ํŒจํ‚ท ๊ตํ™˜ ๋ฐฉ์‹

 

์†ก์‹  ํ˜ธ์ŠคํŠธ์™€ ์ˆ˜์‹  ํ˜ธ์ŠคํŠธ ๊ฐ„์˜ ํŒจํ‚ท ๊ตํ™˜์„ ๋ณด์—ฌ์ฃผ๋Š” ๊ทธ๋ฆผ์ด๋‹ค

์†ก์‹  ํ˜ธ์ŠคํŠธ→ ์ˆ˜์‹  ํ˜ธ์ŠคํŠธ๋กœ ํŒจํ‚ท 123์„ ๋ณด๋‚ด๊ณ  ์žˆ๋Š”๋ฐ,

์ฃผ๋ชฉํ•ด์•ผํ•  ๋ถ€๋ถ„์€ ๋งˆ์ง€๋ง‰ (d)๋‹จ๊ณ„์—์„œ ํŒจํ‚ท ์†์‹ค์ด ์ผ์–ด๋‚œ ๋ถ€๋ถ„์ด๋‹ค

 

๋‚˜๋Š” ๋‹ค ๋ณด๋ƒˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋„ ๋ฐ›๋Š” ์ชฝ์€ ์ผ๋ถ€๋งŒ ๋ฐ›์•˜์„ ์ˆ˜๋„ ์žˆ๋‹ค

๋ฐ›๋Š” ์ชฝ์—์„œ๋Š” ์ž์‹ ์ด ์ผ๋ถ€๋งŒ ๋ฐ›์•˜์„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—,

์ด๋ฅผ ๊ณ ๋ คํ•ด์„œ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค์–ด์•ผํ•œ๋‹ค

(๋‚œ ๊ทธ๋ž˜์„œ TCP๊ฐ€ ์ข‹๋‹ค)

 

๊ทผ๋ฐ ํŒจํ‚ท ์†์‹ค์ด ์žˆ์„ ์ˆ˜ ์žˆ๋Š”๊ฑธ ์™œ ์จ???;;; ๋ผ๊ณ  ์ƒ๊ฐํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ

๋Œ€์‹  ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค

๋™์˜์ƒ์ด๋‚˜ ํฌ๊ธฐ๊ฐ€ ํฐ ๋ฐ์ดํ„ฐ์˜ ๊ฒฝ์šฐ์—๋Š”

๊ทธ๋ž˜์„œ UDP๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค

RTP์™€ RTCP๋„ ๊ธฐ๋ณธ์€ UDP๋กœ ์ „์†กํ–ˆ๋˜ ๊ฑธ๋กœ ๊ธฐ์–ตํ•œ๋‹ค...

 


** ์ฐธ๊ณ ) ์•Œ์•„๋‘๋ฉด ์ข‹์€ Datagram๊ณผ Packet ์ฐจ์ด **
Datagram: ์ˆœ์ˆ˜ํ•œ ์‚ฌ์šฉ์ž์˜ ๋ฉ”์‹œ์ง€๋ฅผ ๋‚˜ํƒ€๋ƒ„
Packet: ์‚ฌ์šฉ์ž์˜ Datagram์„ ์–ด๋–ค ๋‹จ์œ„(MTU)์— ๋งž์ถฐ์„œ ํ† ๋ง‰๋‚ธ ์ƒํƒœ


 

3. UDP ํ†ต์‹  ํ•จ์ˆ˜

 

UDP ํ๋ฆ„

 

 /*๊ทธ๋ฆผ์—๋Š” Server์™€ Client๊ฐ€ ์ •ํ•ด์ ธ ์žˆ๋Š”๋ฐ,

๋ช…์นญ์ƒ์ด๊ณ  UDP๋Š” ์„œ๋ฒ„ ํด๋ผ์ด์–ธํŠธ ๊ฐœ๋…๋ณด๋‹ค

ํ˜ธ์ŠคํŠธ ๋Œ€ ํ˜ธ์ŠคํŠธ๋กœ ์ƒ๊ฐํ•˜๋Š”๊ฒŒ  ๋” ์ข‹๋‹ค */

 

UDP ํ†ต์‹ ์‹œ์— ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜๋Š” ์œ„์— ๊ทธ๋ฆผ์—์„œ ๋ณด๋Š” ๊ฒƒ์ฒ˜๋Ÿผ

socket(), bind, recvfrom(), sendto(), close()๋กœ 5๊ฐœ๊ฐ€ ์žˆ๋‹ค

ํ•˜๋‚˜ํ•˜๋‚˜ ์‚ดํŽด๋ณด์žฅ

 

(1) socket()

TCP๋‚˜ UDP ํ†ต์‹ ์‹œ, endpoint๋ฅผ ๋งŒ๋“ค์–ด์ฃผ๋Š” ํ•จ์ˆ˜

 

#include <sys/types.h>          
#include <sys/socket.h>

int socket(int domain, int type, int protocol);

 

Return

- ๋งŒ๋“ค์–ด์ง„ ์†Œ์ผ“ descriptor ๋ฒˆํ˜ธ

- ์‹คํŒจ์‹œ -1 ๋ฐ˜ํ™˜, errno(EACCES, EIO ๋“ฑ)๋ฅผ ์„ค์ •ํ•จ 

 

Parameters

1) domain

- ์š”์ฒญ๋œ ์ฃผ์†Œ ๋„๋ฉ”์ธ (AF_INET, AF_INET6, AF_UNIX ๋“ฑ)

- IPv4๋‚˜ IPv6 ๊ฐ™์€ ํ”„๋กœํ† ์ฝœ ์ง‘ํ•ฉ(protocol family)๋ฅผ ์˜๋ฏธ

 

2) type

- ์ƒ์„ฑ๋œ ์†Œ์ผ“ ์œ ํ˜• (SOCK_STREAM, SOCK_DGRAM, SOCK_RAW ๋“ฑ)

- TCP์ผ ๊ฒฝ์šฐ SOCK_STREAM์„ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ, UDP์ผ ๊ฒฝ์šฐ SOCK_DGRAM์„ ์‚ฌ์šฉํ•˜๋ฉด ๋จ

 

3) protocol

- UDP๋‚˜ TCP ๊ฐ™์€ ํŠน์ • ํ”„๋กœํ† ์ฝœ์„ ๋ช…์‹œํ•จ (0, IPPROTO_UDP, IPPROTO_TCP)

- 0์„ ์‚ฌ์šฉํ•˜๋ฉด ์•Œ์•„์„œ ํ•ด์ค˜์„œ ๋ณดํ†ต 0์„ ๋งŽ์ด ์”€

 

 

(2) bind()

socket()์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ์†Œ์ผ“(fd)์— ๋กœ์ปฌ ์ด๋ฆ„์„ ๋ถ™์—ฌ์คŒ(binding)

 

#include <sys/types.h>         
#include <sys/socket.h>

int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen);

 

Return

- binding ์„ฑ๊ณต/์‹คํŒจ ์—ฌ๋ถ€ (์„ฑ๊ณต์‹œ์—๋Š” 0์„ ๋ฐ˜ํ™˜)

- ์‹คํŒจ์‹œ -1 ๋ฐ˜ํ™˜, errno(EACCES, EIO ๋“ฑ)๋ฅผ ์„ค์ •ํ•จ 

 

Parameters

1) sockfd

- socket() ํ˜ธ์ถœ์—์„œ ๋ฐ˜ํ™˜๋œ ์†Œ์ผ“ descriptor

 

2) const struct sockaddr

- socket์— ๋ถ™์—ฌ์ค„ ์ด๋ฆ„์„ ํฌํ•จํ•˜๋Š” socketaddr ๊ตฌ์กฐ์ฒด์˜ ์ฃผ์†Œ

 

3) addrlen

- ๋‘๋ฒˆ์งธ ์ธ์ž์ธ sockaddr ๋กœ ์ƒ์„ฑํ•œ ์ฃผ์†Œ ํฌ๊ธฐ

- ex) sizeof(addr)

 


** bind๋Š” ๊ผญ ํ•„์š”ํ• ๊นŒ? **

bind๋Š” ์„œ๋ฒ„๋‚˜ ํด๋ผ์ด์–ธํŠธ์—์„œ ๊ผญ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค

์™œ๋ƒ๋ฉด, bind์˜ ๋ชฉ์ ์€ socket์— address์™€ port๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š”๊ฑฐ๋‹ค

์ฆ‰, ํŒจํ‚ท์„ ์ˆ˜์‹ ํ•  ๋•Œ ์ด๊ฑธ ์–ด๋””๋กœ ๋ณด๋‚ผ๋ž˜? ํ•˜๋Š”๊ฑธ ์ •ํ•˜๋Š”๊ฑฐ๋‹ค

 

OS๊ฐ€ ํŒจํ‚ท์„ ์–ด๋””๋กœ ์ „๋‹ฌํ•ด์•ผํ•˜๋Š”์ง€ ๋ชจ๋ฅผ ๋•Œ ์‚ฌ์šฉํ•˜๋ฉด ๋˜๊ณ ,

(recvfrom์„ ๋จผ์ € ํ˜ธ์ถœํ•˜๋Š” ๊ฒฝ์šฐ์— ํ•ด๋‹น)

sendto๋ฅผ ๋จผ์ € ํ˜ธ์ถœํ•  ๋•Œ๋Š” OS๊ฐ€ ์•Œ์•„์„œ bind๋ฅผ ํ•ด์ค˜์„œ ์•ˆ์จ๋„ ๋จ


 

(3) recvfrom()

 

์†Œ์ผ“ discriptor(์ด์ œ ๊ทธ๋ƒฅ ์†Œ์ผ“ FD๋กœ ๋ถ€๋ฅด๊ฒ ๋‹ค)๋กœ๋ถ€ํ„ฐ ๋ฉ”์‹œ์ง€๋ฅผ ์ˆ˜์‹ ํ•ด์„œ ๋ฒ„ํผ์— ์ €์žฅ

 

 #include <sys/types.h>
 #include <sys/socket.h>

ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags,
                        struct sockaddr *src_addr, socklen_t *addrlen);

 

Return

-  ๋ฉ”์‹œ์ง€ ๋˜๋Š” ๋ฐ์ดํ„ฐ ๊ทธ๋žจ์˜ ๊ธธ์ด๋ฅผ Byte ๋‹จ์œ„๋กœ ๋ฐ˜ํ™˜

- 0 ๋ฐ˜ํ™˜์‹œ์—๋Š” ์—ฐ๊ฒฐ์ด close ๋์Œ์„ ์˜๋ฏธ

- ์‹คํŒจ์‹œ -1 ๋ฐ˜ํ™˜, errno(EACCES, EIO ๋“ฑ)๋ฅผ ์„ค์ •ํ•จ 

 

Parameters (๋„ˆ๋ฌด ๋งŽ๊ธ”)

1) int sockfd

- socket() ํ˜ธ์ถœ์—์„œ ๋ฐ˜ํ™˜๋œ ์†Œ์ผ“ fd

 

2) void *buf

- ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์„ ๋ฒ„ํผ์— ๋Œ€ํ•œ ์ฃผ์†Œ

 

3) size_t len

- ๋‘๋ฒˆ์งธ ์ธ์ž์ธ buf์˜ ๊ธธ์ด (Byte ๊ธธ์ด)

- 4๋ฒˆ์งธ ์ธ์ž์ธ flag์— MSG_CONNTERM ํ”Œ๋ž˜๊ทธ ์„ค์ •์ด ๋œ ๊ฒฝ์šฐ์—๋Š”, len์ด 0์ด์–ด์•ผ ํ•จ

 

4) int flags

- ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์„ ๋•Œ์— ์ฃผ๋Š” ์˜ต์…˜

- 0, MSG_CONNTERM, MSG_PEEK, MSG_OOB ๋˜๋Š” MSG_WAITALL๋กœ ์„ค์ •ํ•  ์ˆ˜์žˆ๋Š” ๋งค๊ฐœ ๋ณ€์ˆ˜

- ์ž˜ ๋ชจ๋ฅด๊ฒ ๋‹ค๋ฉด 0์„ ์“ฐ์ž

 

5) struct sockaddr *src_addr

- ๋ฐ์ดํ„ฐ๊ฐ€ ์ˆ˜์‹ ๋˜๋Š” ์†Œ์ผ“ ์ฃผ์†Œ struct์— ๋Œ€ํ•œ ์ฃผ์†Œ

- ์ฐธ๊ณ ) source address ์˜๋ฏธ: ์†ก์‹ ํ•˜๋Š” ์ชฝ IP ์ฃผ์†Œ

 

6) socklen_t *addlen

- 5๋ฒˆ์งธ ์ธ์ž์ธ src_addr์˜ ํฌ๊ธฐ

- src_addr์ด NULL์ด๋ผ๋ฉด ๊ธธ์ด๋Š” ๋ฌด์‹œ๋จ

 

 

(4) sendto()

 

์†Œ์ผ“ fd๋ฅผ ํ†ตํ•ด ์ˆ˜์‹ ์ž์—๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๋Š” ํ•จ์ˆ˜

 

#include <sys/types.h>
#include <sys/socket.h>

ssize_t sendto(int sockfd, const void *buf, size_t len, int flags,
                      const struct sockaddr *dest_addr, socklen_t addrlen);

 

Return

-  ๋ณด๋‚ธ ๋ฌธ์ž ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜

- 0 ์ด์ƒ์˜ ๊ฐ’์€ ์ „์†ก๋œ Byte ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋ƒ„ ( ์™„๋ฒฝํ•˜๊ฒŒ ๋‹ค ๋ณด๋ƒˆ๋‹ค๊ณ ๋Š” ์•ˆํ–ˆ๋‹ค. ๋ณด์žฅ X )

- ์‹คํŒจ์‹œ -1 ๋ฐ˜ํ™˜, errno(EACCES, EIO ๋“ฑ)๋ฅผ ์„ค์ •ํ•จ 

 

Parameters (๋„ˆ๋ฌด ๋งŽ๊ธ”)

1) int sockfd

- socket() ํ˜ธ์ถœ์—์„œ ๋ฐ˜ํ™˜๋œ ์†Œ์ผ“ fd

 

2) const void *buf

- ์ „์†กํ•  ๋ฉ”์‹œ์ง€๊ฐ€ ํฌํ•จ๋œ ๋ฒ„ํผ์— ๋Œ€ํ•œ ์ฃผ์†Œ

- ๋ณด๋‚ผ ๋ฉ”์‹œ์ง€๋Š” ๋ณ€๊ฒฝ๋˜๋ฉด ์•ˆ๋˜๊ธฐ ๋•Œ๋ฌธ์— const๊ฐ€ ๋ถ™๋Š” ๋“ฏ

 

3) size_t len

- ๋‘๋ฒˆ์งธ ์ธ์ž์ธ buf์˜ ๊ธธ์ด (Byte ๊ธธ์ด)

 

4) int flags

- ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ผ ๋•Œ ์ฃผ๋Š” ์˜ต์…˜

- 0, MSG_OOB, MSG_DONTROUTE ๋“ฑ

 

5) struct sockaddr *dest_addr

- ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์„(์ˆ˜์‹ ์ธก) ํ˜ธ์ŠคํŠธ์˜ ์ฃผ์†Œ (์ƒ๋Œ€๋ฐฉ์ด๊ฒ ์ฅฌ?)

- ์ฐธ๊ณ ) destination address ์˜๋ฏธ: ์ˆ˜์‹ ํ•˜๋Š” ์ชฝ IP ์ฃผ์†Œ

 

6) socklen_t *addlen

- 5๋ฒˆ์งธ ์ธ์ž์ธ dest_addr์˜ ํฌ๊ธฐ

 

(5) close()

 

์†Œ์ผ“ fd๋ฅผ close ํ•˜๋Š” ํ•จ์ˆ˜

 

#include <unistd.h>

int close(int fd);

 

Return

-  close ์„ฑ๊ณต์‹œ 0์„ ๋ฐ˜ํ™˜

- ์‹คํŒจ์‹œ -1 ๋ฐ˜ํ™˜, errno ๊ฐ’ ์„ค์ •ํ•ด์คŒ 

 

Parameters

1) int fd

- ๋‹ซ์„ socket fd

- ๋Œ€๊ธฐ์ค‘์ธ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์„ ๋•Œ๋Š” ์™„์ „ํžˆ ๋‹ซํžˆ์ง€ ์•Š๊ณ  ์žฌ์„ค์ • ๋  ์ˆ˜๋„ ์žˆ์Œ

 


** ์ฐธ๊ณ )

TCP์ธ ๊ฒฝ์šฐ, socket() ์œผ๋กœ ๋งŒ๋“ค๊ณ  setsocktopt() ์˜ต์…˜์œผ๋กœ SO_LINGER ์„ค์ •์‹œ,

close๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ๋‹ซ๊ธฐ๋ฅผ ์›ํ•  ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ๊ฐ€ ์กด์žฌ์‹œ ์ฆ‰์‹œ ์ข…๋ฃŒ๋˜์ง€ ์•Š๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Œ


 

4. UDP Packet ๊ตฌ์กฐ

 

UDP ํŒจํ‚ท ๊ตฌ์กฐ

 

UDP ํŒจํ‚ท ๊ตฌ์กฐ๋Š” IP ํ—ค๋”์™€ UDP ํ—ค๋”์™€ ๋ฐ์ดํ„ฐ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค

๋ฐ์ดํ„ฐ๋Š” ์‹ค์ œ ์šฐ๋ฆฌ๊ฐ€ ๋ณด๋‚ผ ๋ฐ์ดํ„ฐ์ด๊ณ 

๊ทธ ์•ž์— UDP ํ—ค๋”๋ฅผ ๋ถ™์—ฌ์„œ UDP ์‚ฌ์šฉ์„ ๋ช…์‹œํ•œ๋‹ค

(TCP๋ฉด TCP ํ—ค๋”๊ฐ€ ๋ถ™๊ฒ ์ฅฌ)

 

๊ทธ๋ฆฌ๊ณ  ์œ„ ๊ทธ๋ฆผ์—์„œ UDP ํ—ค๋” ๋ถ€๋ถ„์€ ์•„๋ž˜๋กœ ๊ตฌ์„ฑ๋œ๋‹ค

 

UDP ํ—ค๋”์˜ ๊ตฌ์กฐ

 

๋ณด๋‚ด๊ณ  ๋ฐ›์„ Port์˜ ์ •๋ณด์™€

๋’ค์— ์˜ฌ ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ ๋“ฑ์„ ๋‹ด๊ณ  ์žˆ๋‹ค

 

 

TCP ํ—ค๋”์™€ UDP๋ฅผ ์ฐธ๊ณ ์ž๋ฃŒ๋กœ ์ฒจ๋ถ€ํ•˜๊ณ  ๋งˆ์น˜๊ฒ ๋‹ค

 

 

 


[ ์ฐธ๊ณ  ์ž๋ฃŒ ]

 

** ์ฝ์–ด๋ณด๋Š”๊ฑฐ ๊ฐ•์ถ”!! **

https://www.ibm.com/docs/en/zos/2.3.0?topic=functions-socket-create-socket 

https://kldp.org/node/136920

 

UDP Client Socket์—์„œ bind๋ฅผ ์•ˆํ•ด๋„ ๋˜๋Š” ์ด์œ ๊ฐ€ ๋ฌด์—‡์ผ๊นŒ์š”? | KLDP

UDP C/S socket ์„ ๋งŒ๋“ค๋‹ค ๋ฌธ๋“ ๊ถ๊ธˆํ•ด์„œ ์—ฌ์ญˆ์–ด๋ด…๋‹ˆ๋‹ค. ์„œ๋ฒ„์—์„œ๋Š” bind๋ฅผ ํ•˜๋Š”๋ฐ ํด๋ผ์ด์–ธํŠธ์—์„œ๋Š” bind๋ฅผ ํ•˜์ง€ ์•Š๋Š”๋ฐ ์ด๋Ÿฌํ•œ ์ผ๋ จ์˜ ํ”„๋กœ์„ธ์Šค๋“ค์ด ์–ด๋–ป๊ฒŒ ๋Œ์•„๊ฐ€๋Š” ๊ฒƒ์ธ๊ฐ€์š”?

kldp.org

 

'๐Ÿ“– Protocol' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

SOAP์„ ์•Œ์•„๋ณด์ž  (0) 2021.06.10
HTTP Chunked Message๋ฅผ ์•Œ์•„๋ณด์ž  (0) 2021.03.09
SMTP๋ฅผ ์•Œ์•„๋ณด์ž  (0) 2020.12.16