본문 바로가기

[+] Information/[-] Network

[2009/06/09] UDP 소켓의 데이터 전송 특징

1. UDP의 이해

 
- IP를 기반으로 데이터를 전송한다.

 - 흐름제어(flow control)을 하지 않기 때문에 데이터 전송을 보장 받지 못한다.

 - 연결설정 및 연결 종료 과정도 존재 않는다.

 - 연결상태가 존재하지 않는다.

 

2. UDP의 역할

 
- Port 정보에 의한 Process의 구분.





3. UDP 기반 서버 / 클라이언트의 구현

 
- 일반적으로 연결 설정과정을 거치지 않는다.

  - 데이터를 주고 받기 위한 소켓은 하나만 생성한다.



4. UDP 기반의 데이터 입 출력 함수.

 
- 데이터 전송 함수.

int sendto(int sock, const void* msg, int len, unsigned flags, const struct sockaddr * addr, int addrlen)
(리눅스)

int sendto(SOCKET s, const char FAR *buf, int len, int flags, const struct sockaddr FAR *to, int tolen)
(윈도우)


 - 데이터 수신 함수.

int recvfrom(int sock, int * buf, int len, unsigned flags, struct sockaddr * addr, int *addrlen)
(리눅스)

int recvfrom(SOCKET s, char FAR * buf, int len, int flags, struct sockaddr FAR *from, int FAR *fromlen)
(윈도우)

 


5. 데이터 경계가 존재하는 UDP 소켓

 
- UDP 소켓은 데이터를 송 수신하는데 필요한 함수 호출의 수를 정확히 일치 시켜야 한다.