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 소켓은 데이터를 송 수신하는데 필요한 함수 호출의 수를 정확히 일치 시켜야 한다.
'[+] Information > [-] Network' 카테고리의 다른 글
[2009/06/09] UDP 소켓의 성능향상 (0) | 2009.06.09 |
---|---|
[2009/06/09] 예제소스(uecho_server.c, uecho_client.c, becho_server.c, becho_client.c) (0) | 2009.06.09 |
[2009/06/08] TCP의 내부구조 (0) | 2009.06.08 |
[2009/06/08] 예제소스(echo_client2.c, bnd_server.c, bnd_client.c) (0) | 2009.06.08 |