TURN 서버

Delphi에서 자체 TURN(RFC 8656) 서버를 실행하세요. P2P 경로를 설정할 수 없는 클라이언트에게 중계 전송 주소를 할당하고, 장기 자격 증명과 할당별 할당량을 지원해요.

TsgcTURNServer

자체 호스팅 TURN 서버 — Allocate / CreatePermission / ChannelBind / Send / Refresh / Data를 처리하고 할당과 대역폭을 관리하며 장기 자격 증명을 검증해요.

컴포넌트 클래스

TsgcTURNServer

프로토콜

TURN (RFC 8656)

플랫폼

Windows, macOS, Linux, iOS, Android

에디션

Enterprise

컴포넌트를 놓고, 영역을 설정하고, 자격 증명을 발급

Port + Realm을 설정하고, OnTURNAuthenticate로 사용자별 비밀번호를 제공한 뒤 Active := True 하면 끝이에요 — 이제 서버가 모든 RFC 8656 클라이언트에 중계를 할당해요.

uses
  sgcP2P;

var
  TURNServer: TsgcTURNServer;
begin
  TURNServer := TsgcTURNServer.Create(nil);
  TURNServer.Port  := 3478;
  TURNServer.Realm := 'turn.example.com';

  TURNServer.OnTURNAuthenticate := procedure(Sender: TObject;
    const aUsername: string; var aPassword: string;
    var Accept: Boolean)
  begin
    aPassword := LookupPassword(aUsername);
    Accept    := aPassword <> '';
  end;

  TURNServer.Active := True;
end;
// uses: sgcP2P
TsgcTURNServer *TURNServer = new TsgcTURNServer(this);
TURNServer->Port  = 3478;
TURNServer->Realm = "turn.example.com";
TURNServer->Active = true;

내부 구성

자체 호스팅 중계 서버 — WebRTC 및 ICE 배포가 서드파티 TURN 공급자에 의존하지 않도록 해줘요.

Allocate / Refresh / Free

REQUESTED-TRANSPORT가 포함된 Allocate 요청을 처리하고 사용 가능한 중계 포트를 선택해 수명을 추적해요. Refresh는 할당을 연장하며, 만료 시 서버가 할당을 정리해요.

CreatePermission / ChannelBind

할당별 피어 권한과 채널 바인딩을 추적해요. RFC 8656 §9에 따라 권한이 부여되지 않은 피어의 Send/Data 프레임은 폐기해요.

Send / Data / ChannelData

36바이트 Send / Data 봉투와 4바이트 ChannelData 프레임을 모두 지원해요. 중계가 relayed-transport-address와 바인딩된 피어 사이에서 데이터그램을 전달해요.

장기 자격 증명

OnTURNAuthenticate가 사용자명을 제공하면 비밀번호를 반환하세요 — 서버가 MESSAGE-INTEGRITY를 검증하고 nonce를 자동으로 회전시켜요.

할당량

오용을 방지하려면 Quota.MaxAllocationsPerUser, Quota.MaxBandwidthKbps, Quota.AllocationLifetime을 설정하세요. OnQuotaExceeded가 거부 사항을 알려요.

TURN over TCP / TLS

하위 서버의 전송 계층을 전환할 수 있어요 — UDP, TCP, TLS over TCP를 모두 지원해요. WebRTC 클라이언트는 자신의 NAT를 통과할 수 있는 방식을 선택해요.

명세 및 참고 자료

이 컴포넌트가 구현하는 프로토콜의 공인 출처예요.

문서 및 데모

컴포넌트 레퍼런스로 바로 이동하고, 바로 실행할 수 있는 데모 프로젝트를 받아보고, 체험판을 다운로드하세요.

온라인 도움말 — TsgcTURNServer 이 컴포넌트의 전체 속성, 메서드, 이벤트 레퍼런스예요.
데모 프로젝트 — Demos\35.P2P\03.TURN 바로 실행할 수 있는 예제 프로젝트예요. sgcWebSockets 패키지에 포함되어 있으니 아래에서 체험판을 다운로드해 보세요.
기술 문서 (PDF) 이 컴포넌트의 기능, 빠른 시작, Delphi 및 C++ Builder 코드 샘플, 출처 참고 자료예요.
사용자 설명서 (PDF) 라이브러리의 모든 컴포넌트를 다루는 종합 설명서예요.

자체 TURN 서버를 운영할 준비가 되셨나요?

무료 체험판을 다운로드하고 Delphi에서 TURN 중계 서버를 띄워보세요.