2017-12-21 2 views
3

TCP는 혼잡 제어 및 오류 복구 또는 한 노드에서 다른 노드로 정보를 안정적으로 전달하는 데 필요하며 정보를 전달하는 데 가장 빠른 프로토콜이 아닙니다.일부 프로토콜이 IP를 통해 직접 연결될 때 UDP가 필요한 이유는 무엇입니까?

EIGRP 및 OSPF와 같은 일부 라우팅 프로토콜은 IP 상단에 직접 탑재됩니다. ICMP조차도 IP를 통해 직접 탑승합니다.

왜 UDP가 필요합니까? 개발자/프로그래머가 패킷에 포함 된 대상 포트 번호를 기반으로 인바운드 패킷을 전송해야하는 응용 프로그램을 식별 할 수 있도록하기 위해서만 필요합니까?

그렇다면 포트 번호 정보가없는 경우 IP 상단에서 직접 걸리는 프로토콜에서 수집 한 정보가 적절한 프로세스로 전송되는 방법은 무엇입니까?

왜 UDP를 통해 음성 및 영상이 전송됩니까? IP를 직접 사용하지 않는 이유는 무엇입니까?

(필자는 TCP 사용 사례를 철저히 이해하고 있지만, 왜 TCP를 통해 UDP를 사용하는지 또는 그 반대인지를 묻지는 않습니다. 왜 UDP를 사용하고 왜 일부 프로토콜이 IP 계층을 직접 사용할 수 있는지 묻는 중입니다. 추가 된 장점 또는 IP를 통해 UDP의 목적?)

+1

다른 프로토콜의 경우 '프로세스'가 없으므로 포트 번호가 필요하지 않습니다. 프로토콜은 IP 스택 자체에서 사용됩니다. 응용 프로그램 프로세스에는 명확하게 정의 된 의미를 가진 포트 지향 사용자 데이터 그램 프로토콜이 필요합니다. – EJP

답변

1

먼저 IP와 UDP는 서로 다른 계층의 프로토콜이며 IP는 UDP가 transport layer 인 경우 정의에 따라 인터넷 계층입니다. 레이어는 네트워크 프로토콜 아키텍처를 단순화하고 관심사를 분리하기 위해 도입되었습니다. 응용 프로그램 계층 프로토콜은 전송 계층을 기반으로합니다 (일부 예외가 있음).

대부분의 대중적인 전송 프로토콜 (IP 네트워크에서)은 UDP와 TCP입니다. TCP는 기능이 풍부하지만 많은 절충안을 가지고 있지만 UDP는 매우 간단하지만 많은 자유를 제공하므로 일반적으로 다른 프로토콜의 기반이됩니다.

UDP의 주요 기능은 멀티플렉싱입니다. 여러 프로토콜 인스턴스 (일명 소켓)가 동일한 노드에 공존 할 수있게 해주는 포트입니다. 즉, UDP 대신 IP를 통해 자체 프로토콜을 구현하면 동일한 시스템에 프로토콜의 인스턴스를 여러 개 가질 수 없거나 직접 멀티플렉싱을 구현해야합니다.

세분화 및 체크섬과 같은 다른 기능이 있습니다. 이러한 기능은 필수는 아닙니다.

또 다른 대답에서 라우터, NAT 및 방화벽과 같은 미들웨어가 많아 사용자 지정 "IP over IP"프로토콜의 개념을 망칠 수는 있지만 UDP 기능보다 부수적 인 손상과 비슷합니다 .

2

당신의 질문은 의 측면에서 더 의미가 왜 왜) UDP는이 필요하다 UDP 유용 (보다.

UDP는 Internet Assigned Numbers Authority에 의해 인식 된 프로토콜입니다. UDP는 데이터 그램 기반의 네트워크 프로토콜을 작성하고 인터넷 장치로보다 잘 재생하려는 경우 유용 할 수 있습니다.

라우터는 같은 의미의 패킷을 삭제하는 규칙을 지정할 수 있습니다.. 따라서 하나 이상의 라우터로 구분 된 호스트간에 할당되지 않은 IP 프로토콜 번호를 사용하여 패킷을 보내고 보내면 의도 한대로 패킷이 전달되지 않을 수 있습니다. 인식되지 않는 UDP 프로토콜의 패킷에서도 같은 일이 발생할 수 있지만 패킷이 통과 할 수 있는지 여부를 걱정할 수있는 최소한의 문이 하나 있습니다.

인터넷 끝점 (예 : 호스트)도 비슷한 필터링을 수행 할 수 있습니다. 자신의 데이터 그램 기반 프로토콜을 작성하고 일반적인 호스트 운영 체제를 사용하려면 자체 확장으로 사용하려고 시도하는 경우 커널 확장이 아닌 경우 특권 프로세스로 소프트웨어를 작성해야 할 가능성이 높습니다 IP 프로토콜 (UDP를 사용하는 경우보다).

희망이 답변은 유용합니다!

관련 문제