본문 바로가기
IT 이론/네트워크&무선통신

User Datagram Protocol (UDP)

by 아이들링 2014. 5. 1.

UDP는 전달 계층이다

Network 계층는 종단 호스트까지의 전달을 담당하고 (종단 호스트간 전송)

특정 프로세스에게 메세지를 전달한다. (종단 프로세스간 전송)

House to house는 Nework, Person to person은 Transport

이보다 상위 Layer는 전송과는 관련이 없다.


"No frills", "Bare bones"

필수적인 기능만을 수행한다.

달리 말하면 UDP는 IP에 포트 지정기능을 추가하는 정도의 역할 밖에 하지 않는다.


UDP는 비 연결형이다. 

그냥 상대방에게 데이터를 던진다.

받든 못 받든 신경 쓰지 않는다. (오류 제어, 흐름 제어를 전혀 하지 않는다.)

오류 검출은 하지만 오류 복구를 하지 않는다. (재전송 요청 또한 없다.)

오류 복구 여부는 상위 계층에서 결정한다.


UDP의 사용성

연결 설정도 없고 혼잡 제어도 업고 오류 메커니즘도 없으므로 header도 작다.

 => 상위 레이어에서 내려주는 족족 그냥 내려보내는 수준이다. (처리 속도 완전 빠름)

 => 네트워크에 부담이 없다. (속도도 빠르다.)

Transaction 기반의 어플리케이션에서 선호한다. (단순한 요청-응답을 필요로 하는 프로그램)

SNMP, RIP와 같은 프로토콜의 상태 정보 수집 작업 (너무나도 간단한 작업엔 연결 설정하는게 지나치게 귀찮다)

세그먼트 분실이 크게 영향을 미치지 않거나 실시간을 요구하는 경우 (멀티미디어 어플리케이션)

내부적으로 흐름 제어와 오류 제어 매커니즘을 가지고 있는 경우

멀티캐스팅과 브로드캐스팅을 위한 전송 프로토콜 (TCP는 멀티 캐스팅, 브로드 캐스팅 지원 안함)


클아이언드/서버 방식에서 가장 많이 사용된다.

서버 프로세스는 항상 Stand by 상태이다. 따라서 언제든지 데이터를 던지더라도 받을 수 있다.

범용 서버 프로세스의 포트는 전 세계적으로 표준이다. (Well known process, 0~1023번)

서버측의 well-kown 포트는 고정이고 클라이언트측은 그때그때 임시로 포트를 할당 받는다.

클라이언트 -> 서버 : "51231포트에서 22번 포트로 보냅니다" 라고 header에 포함시킨다.


멀티플렉싱

전화 할때, TV볼때  많이 쓰인다. 선은 한가닥, 두가닥이지만 많은 채널로 나눠 진다.

포트 넘버 개념


UDP Segment

UDP의 PDU는 Segment라고 부른다. (비 표준 TCP/IP 용어)

Header가 정말 간단하다. 발신자 포트, 수신자 포트, Total length, Checksum

데이터 필드는 총 65507 바이트 까지 가능. 65535 - 20 - 8 (IP헤드, UDP 헤드 제외)


UDP Pseudo Header

Checksum 계산시에는 IP헤더에 사용되는 일부 정보(IP주소 등)을 포함해서 계산한다.

 => Pseudo header는 아래로 내려 보내는 header가 아니다. Checksum용 임시 헤더

(계층화가 제대로 안되어 있는 예이다 => UDP가 IP보다 위에 있으므로 원래는 접근 불가)

16비트 섹션으로 나눠 1의 보수 연산을 한다.



댓글0