-
Notifications
You must be signed in to change notification settings - Fork 2
DLTS와 Signaling
GWANGHYEON KIM edited this page Dec 3, 2024
·
1 revision
- UDP 통신에서 보안을 제공하는 프로토콜
- WebRTC 미디어 스트림의 안전한 전송을 보장
sequenceDiagram
participant Client as 방송자
participant Server as 미디어 서버
Note over Client,Server: DTLS Handshake 과정
Client->>Server: ClientHello (인증서, 암호화 방식 제안)
Server->>Client: ServerHello (서버 인증서, 선택된 암호화 방식)
Client->>Server: 인증서 확인 & 키 교환
Server->>Client: 완료 메시지
Note over Client,Server: 보안 연결 수립 완료
- WebRTC 연결 설정에 필요한 정보 교환 프로세스
- Socket.IO를 통한 실시간 통신 구현
- 정보 중계 역할 (실제 미디어 스트리밍은 WebRTC가 담당)
- 연결 협상: P2P 연결 정보 교환
- 미디어 정보: 코덱, 해상도 등 공유
- 네트워크 정보: ICE candidate 교환
- 보안 정보: DTLS 인증서 및 파라미터 공유
sequenceDiagram
participant Client as 방송자
participant Server as 시그널링 서버
Note over Client,Server: 시그널링 과정
Client->>Server: 1. createRoom
Server-->>Client: Room 생성 완료
Client->>Server: 2. createProducerTransport
Server-->>Client: Transport 정보 (ICE candidates, DTLS params)
Client->>Server: 3. connectProducerTransport
Server-->>Client: 연결 완료
Client->>Server: 4. produce (미디어 스트림 정보)
Server-->>Client: Producer ID
Note over Client,Server: WebRTC 연결 준비 완료
- Mediasoup 포트 매핑 문제
- swagger 같은 응답 코드에 다양한 응답 보여주기
- Sudo가 계속 비밀번호를 요청함
- Docker 이미지가 너무 크다
- Git action에서 도커 이미지 빌드 시간을 단축시켜보자
- Docker compose를 이용해서 메모리 사용률을 줄여보자
- 방송 녹화 시 CPU 과부하 문제를 해결해보자
- Release 브랜치? 너 필요해?
- 로딩이 너무 짧아…!
- NestJS ORM으로 무엇을 사용해야 할까?
- WebRTC를 이용한 1:N 스트리밍 서비스에서 시그널링 서버가 필요할까?
- 실시간 채팅 구현: 인메모리 방식을 선택한 이유
- MySQL 아키텍처 개선: DB 의존성 분리와 서버 역할 명확화
- 브라우저 창이 최소화되면 비디오 송출이 안된다…!
- Mediasoup 기본 개념
- DLTS와 Signaling
- Tell, Don't Ask (TDA) 원칙이란
- VPC(Virtual Private Cloud) 학습 정리
- 순환참조: A 서비스 ‐ B 서비스 vs. A 서비스 ‐ B 레포지토리
- Dto 메서드 전략
- WebRTC란?
- 자바스크립트 패키지 매니저(npm, yarn, pnpm)
- shadcn/ui을 이용해 UI 개발 생산성 높이기
- React 이벤트 핸들러 네이밍(on vs handle)
- React-router-dom의 createBrowserRouter을 사용해보기
- fetch vs axios