위키백과사전에 정리된 내용
Universal Datagram Protocol 이라고도 한다.
1980년에 데이빗 리드가 설계 하였다.
현재 IETF 의 RFC 768 표준으로 정의 되어 있다.
TCP와 함께 데이터그램 단문 메시지를 교환하기 위해서 사용된다.
TCP보다 속도가 일반적으로 빠르고 오버헤드가 적다
TCP와 달리 메시지를 데이터그램으로 나누고 받는 쪽에서 재조립하는 기능이 없다.
도적하는 패킷의 순서를 보장하지 않는다.
패킷이 도착했는지 확인하여 주지 않는다.
연결 없는 데이터그램 서비스를 제공한다. ( 호스트 사이에 세션이 형성되지 않는다 )
point-to-point 와 point-to-multipoint 통신을 지원한다.
Universal Datagram Protocol 이라고도 한다.
1980년에 데이빗 리드가 설계 하였다.
현재 IETF 의 RFC 768 표준으로 정의 되어 있다.
TCP와 함께 데이터그램 단문 메시지를 교환하기 위해서 사용된다.
TCP보다 속도가 일반적으로 빠르고 오버헤드가 적다
TCP와 달리 메시지를 데이터그램으로 나누고 받는 쪽에서 재조립하는 기능이 없다.
도적하는 패킷의 순서를 보장하지 않는다.
패킷이 도착했는지 확인하여 주지 않는다.
연결 없는 데이터그램 서비스를 제공한다. ( 호스트 사이에 세션이 형성되지 않는다 )
point-to-point 와 point-to-multipoint 통신을 지원한다.
1. UDP 란
TCP/IP 4계층에서 봤을때 UDP는 TCP와 같은 Transport Layer에 위치한다.
UDP는 비연결지향성(connectionless)이며, 데이터의 흐름을 신뢰 할 수 없다는 특징이 있다.
UDP 패킷에 신뢰성을 주기 위해서는 어플리케이션 차원에서 직접 코딩을 해야 한다. 보통은 데이터 헤더를 따로 만들어서 일련번호등을 넣어서 서버측에서 보내고 서버측에서는 응답을 보내는 방식을 이용하여 신뢰성을 부여한다.
TCP/IP 4계층에서 봤을때 UDP는 TCP와 같은 Transport Layer에 위치한다.
UDP는 비연결지향성(connectionless)이며, 데이터의 흐름을 신뢰 할 수 없다는 특징이 있다.
UDP 패킷에 신뢰성을 주기 위해서는 어플리케이션 차원에서 직접 코딩을 해야 한다. 보통은 데이터 헤더를 따로 만들어서 일련번호등을 넣어서 서버측에서 보내고 서버측에서는 응답을 보내는 방식을 이용하여 신뢰성을 부여한다.
2. UDP 프로그래밍
2.1. UDP는 코딩할때 더 간단하고 쉽다. TCP와 달리 listen, accept를 할 필요 없이 그냥 소켓을 생성하고, 읽을 데이터가 있는지 기다리기만 한다.
2.2 UDP는 데이터를 받을때, 데이터를 보낸 클라이언트의 정보를 받아오고, 이 클라이언트의 정보를 토대로 데이터를 보내면 된다. (recvfrom 함수를 이용해서.., msdn에 검색하면 나온다)
2.3 UDP는 데이터를 전송할때마다 연결했다, 끊었다 하는 동작을 반복한다. 예를들어 전송해야 할 데이터가 열개 있다고 가정하면 TCP는 데이터 열개를 전송하기전에 연결을 하고 전송이 모두 완료된 다음에 연결을 끊는 반면, UDP는 데이터를 전송할때마다 연결을 맺었다 끊어서 열개의 데이터를 보낸다면 열번의 연결이 존재하게 된다.
2.3 연결(con-nection)을 이용 할 수도 있다. SOCKADDR에 통신할 주소를 입력하고 connect나 WSAConnect를 호출 할 수 있다. (실제로 연결이 이루어지지는 않는다), 연결을 이용하면 recv나 WSARecv를 recvfrom 이나 WSARecfFrom 대신 사용 할 수 있다.
UDP를 통신 프로토콜로 사용하는 서비스로는 게임, DNS, NFS, SNMP, syslog 등이 있다.
2.1. UDP는 코딩할때 더 간단하고 쉽다. TCP와 달리 listen, accept를 할 필요 없이 그냥 소켓을 생성하고, 읽을 데이터가 있는지 기다리기만 한다.
2.2 UDP는 데이터를 받을때, 데이터를 보낸 클라이언트의 정보를 받아오고, 이 클라이언트의 정보를 토대로 데이터를 보내면 된다. (recvfrom 함수를 이용해서.., msdn에 검색하면 나온다)
2.3 UDP는 데이터를 전송할때마다 연결했다, 끊었다 하는 동작을 반복한다. 예를들어 전송해야 할 데이터가 열개 있다고 가정하면 TCP는 데이터 열개를 전송하기전에 연결을 하고 전송이 모두 완료된 다음에 연결을 끊는 반면, UDP는 데이터를 전송할때마다 연결을 맺었다 끊어서 열개의 데이터를 보낸다면 열번의 연결이 존재하게 된다.
2.3 연결(con-nection)을 이용 할 수도 있다. SOCKADDR에 통신할 주소를 입력하고 connect나 WSAConnect를 호출 할 수 있다. (실제로 연결이 이루어지지는 않는다), 연결을 이용하면 recv나 WSARecv를 recvfrom 이나 WSARecfFrom 대신 사용 할 수 있다.
UDP를 통신 프로토콜로 사용하는 서비스로는 게임, DNS, NFS, SNMP, syslog 등이 있다.
3. UDP 헤더
4. TCP 헤더
http://www.joinc.co.kr/modules/moniwiki/wiki.php/article/UDP_%BC%D2%C4%CF_%C7%C1%B7%CE%B1%D7%B7%A1%B9%D6#AEN47
'프로그래밍 > Server' 카테고리의 다른 글
DB 복사 에러 (0) | 2013.01.23 |
---|---|
IO 모델 (0) | 2013.01.14 |
input director 설정 ( PC, 노트북 ) (0) | 2012.06.17 |
MTU ( Maximun Transmission Unit ) (0) | 2012.06.15 |
RUDP (1) | 2012.02.13 |