1. webRTC 기초 정리

2024. 9. 19. 10:40·CS/짤막지식

WebRTC의 주요 개념을 쉽게 설명하자면

  1. Peer-to-Peer 연결: 두 디바이스가 서버 없이 직접 통신할 수 있게 해준다. 음성, 영상, 데이터 등을 주고받을 수 있다.
  2. ICE (Interactive Connectivity Establishment): 최적의 경로를 찾기 위한 프로토콜이다. 디바이스가 서로 연결될 수 있도록 공유 가능한 네트워크 경로를 탐색한다.
  3. SDP (Session Description Protocol): 두 디바이스가 어떤 미디어를 주고받을지 약속하는 정보다. 연결 세부 정보(코덱, 포트 등)를 담고 있다.
  4. Signaling (시그널링): 서로 연결하기 전에 SDP와 ICE 정보를 교환하는 단계다. WebRTC는 시그널링 서버를 통해 이 데이터를 주고받는다.
  5. STUN/TURN 서버: 네트워크 환경에 따라 직접 연결이 어려울 때 사용하는 서버다. STUN 서버는 외부 IP를 확인하고, TURN 서버는 중계 역할을 한다.

나는 웹 소켓 서버를 구현하기 어려워 파이어베이스를 사용한다.

 

Firebase는 WebRTC에서 시그널링 서버 역할을 할 수 있다. WebRTC 연결을 위해 디바이스 간에 SDP와 ICE 후보자 정보를 주고받아야 하는데, 이를 처리하는 것이 시그널링 서버의 역할이다.Firebase의 Firestore나 Realtime Database를 사용해 WebRTC 연결에 필요한 시그널링 데이터(SDP와 ICE 정보)를 주고받을 수 있다. 이로써 두 디바이스가 직접 연결할 수 있게 도와주는 것이다.

 

WebRTC에서 시그널링 서버로 더 적합한 옵션은 WebSocket 서버나 Socket.io 서버다. WebSocket은 양방향 실시간 통신을 가능하게 해주며, WebRTC에서 필요한 SDP와 ICE 후보자 정보를 빠르게 주고받기에 적합하다.

 

Firebase는 편리하지만 실시간 업데이트 속도 면에서 WebSocket 서버보다 느릴 수 있다. WebRTC는 빠른 시그널링을 요구하기 때문에 WebSocket 기반 서버가 더 적합할 수 있다.

'CS > 짤막지식' 카테고리의 다른 글

2. 자료구조 / 알고리즘 - 코드  (1) 2024.10.28
WebRTC with ChatGPT  (2) 2024.10.02
restful API vs websocket  (0) 2024.09.25
2. webRTC의 SDP, ICE, 시그널링에 대해서  (0) 2024.09.20
변수 쓸 때 숫자는 Int, Double로 다양하게 받으면서, 왜 문자는 String으로 퉁치죠?  (0) 2024.07.30
'CS/짤막지식' 카테고리의 다른 글
  • WebRTC with ChatGPT
  • restful API vs websocket
  • 2. webRTC의 SDP, ICE, 시그널링에 대해서
  • 변수 쓸 때 숫자는 Int, Double로 다양하게 받으면서, 왜 문자는 String으로 퉁치죠?
복복씨
복복씨
개발자여, 사고하라 !
  • 복복씨
    정리노트
    복복씨
  • 전체
    오늘
    어제
    • 분류 전체보기 (118)
      • 개발새발자 (21)
        • 의 삶 (7)
        • 의 회고 (9)
        • 의 낙서장 (5)
        • 영어 (0)
      • FrontEnd (1)
        • React (1)
      • Flutter (38)
        • 새싹 (5)
        • Dart (8)
        • Flutter (14)
        • iOS 에서 Flutter 로 전환하며 (2)
        • 챗지피티랑놀.기 (3)
        • 하루 한 입 플러터 (2)
      • CS (7)
        • 짤막지식 (6)
      • IOS (6)
        • Swift (0)
        • UIKit (1)
        • SwitUI (4)
      • 머신러닝-딥러닝 (28)
        • 논문리뷰 (3)
        • study (16)
        • Kaggle (9)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    코드 결합도
    initState()
    플러터 di
    용산캠
    새싹 플러터
    깊은참조
    한주 회고
    멋쟁이 사자처럼
    flutter 애니메이션
    핫 리로드
    Flutter Lifecycle
    사그널링서버
    시그널링데이터
    runzonedguarded
    새싹 용산
    부트캠프
    schedulemicrotask
    unawaited
    flutter lottie
    swiftui 플러터
    FLUTTER
    테킷 앱스쿨
    플러터 새싹
    futurerecord2
    IOS
    expando
    새싹
    getit
    플러터
    dart
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
복복씨
1. webRTC 기초 정리
상단으로

티스토리툴바