
TCP 연결(터널이라고도 함)을 통해 UDP 데이터그램을 전달하는 간단한 크로스 플랫폼 클라이언트/서버 프로그램입니다. 클라이언트는 멀티캐스트 그룹에 가입하고 수신된 데이터그램을 서버에 전달합니다. 그러면 서버는 해당 데이터그램을 자신의 서브넷에서 멀티캐스트합니다.
요구사항
설치
개요
예
어떻게 작동하나요?
DTEP 프로토콜
라이선스
cd <path_to_the_repo>/DatagramTunneler
make
./bin/DatagramTunneler -h
실행 방법에 대한 자세한 내용은 아래 개요를 확인하세요.
DatagramTunneler를 사용하려면 먼저 서버 측을 시작한 다음 클라이언트 측을 시작해야 합니다. 그렇지 않으면 클라이언트가 서버 연결에 실패하고 즉시 종료됩니다.
dgramtunneler --server -i <udp_iface_ip> -t <tcp_listen_port> [-u <udp_dst_ip>:<port>]
dgramtunneler --client -i <udp_iface_ip> -t <tcp_srv_ip>:<tcp_srv_port> -u <udp_dst_ip>:<port>
(이 도구가 유용하다면 작은 별표를 주는 것을 잊지 마세요 :)) 서버 측:
./bin/datagramtunneler --server -i 192.168.0.104 -u 228.14.28.52:1234 -t 28052
클라이언트 측:
./bin/datagramtunneler --client -i 192.168.0.105 -u 228.1.2.3:7437 -t 192.168.0.104:28052
DatagramTunneler의 목적은 멀티캐스트 데이터를 하나의 서브넷 A에서 해당 멀티캐스트 채널을 사용할 수 없는 다른 서브넷 B로 전송하는 것입니다. 이를 달성하기 위해 DatagramTunneler는 아래 다이어그램에 표시된 것처럼 클라이언트 측과 서버 측의 두 측면으로 분할됩니다. 
클라이언트 측은 멀티캐스트 채널이 참가할 수 있는 서브넷에서 실행되어야 합니다. 일단 시작되면 다음을 수행합니다:
서버 측은 멀티캐스트를 사용할 수 없는 서브넷에서 실행되어야 합니다. 일단 시작되면 다음을 수행합니다:
데이터그램 터널러 프로토콜(DTEP)은 다음 다이어그램으로 설명되는 간단한 이진 프로토콜입니다. 
DTEP 패킷에는 포함된 페이로드 유형을 지정하는 1바이트 헤더가 있습니다.
이 유형의 패킷에는 페이로드가 없습니다. 이는 클라이언트에서 서버로 전송되며 연결의 양쪽 끝이 다른 쪽 끝이 살아 있는지 확인하는 데 도움이 됩니다.
이 패킷은 클라이언트가 관찰한 데이터그램을 캡슐화합니다. 전체 설명은 다음과 같습니다. 
이 다이어그램은 설명이 필요하지만 다음은 모든 필드에 대한 분석입니다.
라이센스 참조