STUN Client (TsgcSTUNClient) — sgcWebSockets | eSeGeCe

STUN Client

타입이 지정된 STUN(RFC 8489) 클라이언트로 NAT 뒤의 리플렉시브 엔드포인트를 탐색하세요. ICE 후보 수집과 WebRTC의 부트스트랩 단계로 사용됩니다.

TsgcSTUNClient

STUN 클라이언트 — 바인딩 요청, XOR-MAPPED-ADDRESS 추출, MESSAGE-INTEGRITY / FINGERPRINT 지원, RFC 8489에 따른 재전송 타이머.

컴포넌트 클래스

TsgcSTUNClient

프로토콜

STUN (RFC 8489)

플랫폼

Windows, macOS, Linux, iOS, Android

에디션

Standard / Professional / Enterprise

컴포넌트를 추가하고 리플렉시브 주소를 요청하세요

STUN 서버 호스트/포트를 설정하고 SendBindingRequest를 호출한 뒤, OnSTUNMappedAddress에서 MappedAddress / MappedPort를 읽으세요.

uses
  sgcP2P;

var
  STUN: TsgcSTUNClient;
begin
  STUN := TsgcSTUNClient.Create(nil);
  STUN.Host := 'stun.l.google.com';
  STUN.Port := 19302;

  STUN.OnSTUNMappedAddress := procedure(Sender: TObject;
    const aMappedAddress, aMappedPort: string)
  begin
    Memo1.Lines.Add('public: ' + aMappedAddress + ':' + aMappedPort);
  end;

  STUN.SendBindingRequest;
end;
// uses: sgcP2P
TsgcSTUNClient *STUN = new TsgcSTUNClient(this);
STUN->Host = "stun.l.google.com";
STUN->Port = 19302;
STUN->SendBindingRequest();

내부 구성

ICE에서 사용하는 메시지 무결성 및 지문 확장 기능을 갖춘 타입 지정 RFC 8489 STUN 클라이언트입니다.

바인딩 요청 / 응답

SendBindingRequest는 STUN 0x0001 메시지를 전송하고, 응답은 파싱된 XOR-MAPPED-ADDRESS 속성과 함께 OnSTUNMappedAddress에 나타납니다.

인증 (장기 / 단기)

Authentication.UserName / Password를 설정하면 컴포넌트가 MESSAGE-INTEGRITY(HMAC-SHA1 / HMAC-SHA256)를 계산합니다. 렐름과 논스는 401 챌린지 응답에서 추출됩니다.

재전송

UDP를 통한 STUN은 애플리케이션 계층 재전송이 필요합니다. 컴포넌트는 RFC 8489 §6.2.1에 따른 표준 백오프(RTO / Rc / Rm)를 구현합니다.

IPv4 / IPv6

XOR-MAPPED-ADDRESS는 두 패밀리 중 하나로 반환됩니다 — 컴포넌트는 두 가지를 모두 디코딩하고 정규 텍스트 형식을 MappedAddress에 저장합니다.

ICE 호스트 수집기로 사용

여러 STUN 서버에 여러 TsgcSTUNClient 인스턴스를 사용하여 서버 리플렉시브 ICE 후보를 수집하세요 — 로컬 인터페이스당 하나씩입니다.

기본 소켓

내부적으로 TsgcUDPClient를 사용합니다. 로컬 포트 바인딩을 구성할 수 있어 필요 시 STUN, ICE 및 데이터 경로가 엔드포인트를 공유할 수 있어요.

사양 및 참고문헌

이 컴포넌트가 구현하는 프로토콜의 공식 출처입니다.

문서 및 데모

컴포넌트 레퍼런스로 바로 이동하고, 실행 가능한 데모 프로젝트를 받아보세요.

온라인 도움말 — TsgcSTUNClient 이 컴포넌트의 전체 속성, 메서드 및 이벤트 레퍼런스입니다.
데모 프로젝트 — Demos\35.P2P\02.STUN 실행 가능한 예제 프로젝트입니다. sgcWebSockets 패키지에 포함되어 있습니다.
기술 문서 (PDF) Delphi 및 C++ Builder용 코드 샘플과 기능 설명이 포함된 기술 문서입니다.
사용자 매뉴얼 (PDF) 라이브러리의 모든 컴포넌트를 다루는 종합 매뉴얼입니다.
최고의 가성비: All-Access모든 eSeGeCe 제품과 프리미엄 지원이 포함되어 연 €1,059부터 이용할 수 있어요.
All-Access 가격 보기

NAT 매핑을 탐색할 준비가 되셨나요?

무료 체험판을 다운로드하고 Delphi 애플리케이션에 STUN 기반 NAT 탐색을 추가해 보세요.