OpenAI, ChatGPT 음성·Realtime API용 WebRTC 스택 재설계 공개… 주간 활성 9억 명 위한 트랜시버 모델·단일 UDP 포트 아키텍처
OpenAI 기술팀 멤버 Yi Zhang과 William McDonald이 ChatGPT 음성, Realtime API, 실시간 에이전트용 WebRTC 스택을 재설계한 과정을 공식 블로그에 공개했다. 음성 AI는 대화 속도로 흘러야 자연스럽게 느껴지는데, 네트워크가 끼어들면 어색한 침묵·끊김·끼어들기 지연으로 즉각 드러난다는 문제의식에서 출발했다.
OpenAI 규모에서 음성 AI는 세 가지 구체적 요구로 환산된다. 주간 활성 사용자 9억 명 이상에 대한 글로벌 도달, 세션을 시작하자마자 사용자가 말할 수 있도록 하는 빠른 연결 셋업, 그리고 낮고 안정적인 미디어 왕복 지연(RTT)·낮은 지터·패킷 손실로 깔끔한 발화 교대를 보장하는 것이다.
재설계는 규모에서 충돌하기 시작한 세 가지 제약을 겨냥했다. 세션당 포트 하나를 쓰는 미디어 종단 방식은 OpenAI 인프라에 잘 맞지 않고, 상태를 가지는 ICE(Interactive Connectivity Establishment)와 DTLS(Datagram Transport Layer Security) 세션은 안정적인 소유권이 필요하며, 글로벌 라우팅은 첫 홉 지연을 낮게 유지해야 한다. 팀은 클라이언트에는 표준 WebRTC 동작을 그대로 보존하면서 OpenAI 인프라 내부의 패킷 라우팅 방식만 바꾸는 'split relay + 트랜시버' 아키텍처를 구축했다.
WebRTC는 브라우저·모바일 앱·서버 간 저지연 오디오·비디오·데이터 전송을 위한 개방형 표준으로, ICE 연결 수립과 NAT(Network Address Translation) 통과, DTLS·SRTP(Secure Real-time Transport Protocol) 암호화 전송, 코덱 협상, RTCP(Real-time Transport Control Protocol) 품질 제어, 에코 소거·지터 버퍼링 같은 클라이언트 기능을 표준화한다. AI 제품에 이 표준화가 중요한 이유는 모든 클라이언트가 NAT 통과·미디어 암호화·코덱 협상·네트워크 변동 적응을 따로 답할 필요가 없어, 팀이 모델과 실시간 미디어를 잇는 인프라에만 집중할 수 있기 때문이다.
WebRTC 생태계 자체에도 의존한다. 원래의 WebRTC 설계자 중 한 명인 Justin Uberti와 Pion(오픈소스 Go WebRTC 구현)의 창시자·메인테이너 Sean DuBois의 작업 덕분에 저수준 전송·암호화·혼잡 제어를 다시 만들 필요가 없었고, 두 사람 모두 현재 OpenAI에 합류해 WebRTC와 실시간 AI를 가깝게 잇는 작업을 함께 이끌고 있다. AI에 가장 중요한 속성은 오디오가 연속 스트림으로 도착해, 사용자가 말하는 동안에도 에이전트가 전사·추론·도구 호출·음성 생성을 시작할 수 있다는 점이다.
WebRTC를 어디서 종단할지가 다음 질문이었다. SFU(Selective Forwarding Unit)는 참여자별 WebRTC 연결을 따로 종단하고 AI를 또 하나의 참여자로 합류시키는 방식으로, 그룹 통화·강의실·협업 회의처럼 본질적으로 다자(多者)인 제품에 잘 맞는다. 하지만 OpenAI의 트래픽은 대부분 1:1—사용자 한 명이 모델 하나와, 또는 애플리케이션 하나가 실시간 에이전트 하나와—이며 매 발화 교대가 지연에 민감하다. 이 트래픽 형태에 맞춰 팀은 트랜시버 모델을 택했다.
트랜시버 모델에서는 WebRTC 엣지 서비스가 클라이언트 연결을 종단한 뒤, 미디어와 이벤트를 모델 추론·전사·음성 생성·도구 사용·오케스트레이션을 위한 더 단순한 내부 프로토콜로 변환한다. 이 설계에서 트랜시버는 ICE 연결성 점검, DTLS 핸드셰이크, SRTP 암호화 키, 세션 라이프사이클까지 WebRTC 세션 상태를 소유하는 유일한 서비스가 된다. 상태를 한 곳에 모아 두면 세션 소유권을 추론하기 쉽고, 백엔드 서비스는 WebRTC 피어처럼 행동할 필요 없이 일반 서비스처럼 확장된다.
첫 구현은 Pion 위에 만든 단일 Go 서비스로, 시그널링과 미디어 종단을 모두 처리하며 ChatGPT 음성, Realtime API의 WebRTC 엔드포인트, 다수 연구 프로젝트를 구동한다. 운영상 트랜시버 서비스는 두 가지 일을 한다. 시그널링(SDP 협상, 코덱 선택, ICE 자격 증명, 세션 셋업)과 미디어(다운스트림 WebRTC 연결 종단, 추론·오케스트레이션을 위한 백엔드 서비스로의 업스트림 연결 유지)다.
팀은 이 서비스를 다른 인프라처럼 쿠버네티스에서 운영하려 했지만, 기존의 세션당 포트 하나 모델은 환경에 맞지 않았다. 클라우드 로드밸런서와 쿠버네티스 서비스는 서비스당 수만 개 공용 UDP 포트를 다루도록 설계되지 않았고, 큰 UDP 포트 범위는 보안 감사가 어려우며, 파드가 자주 추가·제거·재배치되는 오토스케일링과도 맞지 않는다. 그래서 많은 WebRTC 시스템처럼 서버당 단일 UDP 포트와 그 뒤의 애플리케이션 레벨 디멀티플렉싱으로 옮겨가는 흐름이 생겼다.
단일 포트 설계는 포트 수 문제를 풀지만, 두 번째 문제—플릿 전체에서 세션 소유권 보존—를 만든다. ICE와 DTLS는 상태 프로토콜이라, 세션을 만든 프로세스가 그 세션의 패킷을 계속 받아 연결성 점검을 검증하고 DTLS 핸드셰이크를 마치며 SRTP를 복호화하고 ICE 재시작 같은 후속 변경을 처리해야 한다. 같은 세션의 패킷이 다른 프로세스에 도달하면 셋업이 실패하거나 미디어가 깨진다. 팀은 이를 풀기 위해 공용 인터넷에는 작고 고정된 UDP 표면만 노출하면서도 모든 세션을 올바른 트랜시버로 라우팅하는 split relay 구조를 구상했다.
관련 기사
스프링거 네이처, ChatGPT 교육 효과 메타분석 논문 게재 약 1년 만에 철회… 51개 연구 종합 주장에 에든버러대 윌리엄슨 '저질 연구 혼합' 비판, 누적 504회 인용·조회 약 50만
구글, 4월 AI 발표 정리 공개… Cloud Next '26 32,000+명·260+ 발표, 8세대 TPU·Gemini Enterprise Agent Platform·Gemma 4·Deep Research Max
GitHub 'fspecii/ace-step-ui' 트렌딩… ACE-Step 1.5 기반 오픈소스 Suno 대안 UI, 4분+ 풀송·BPM 60-200·Demucs 스템 분리·로컬 NVIDIA 4GB+ GPU 지원