티스토리 뷰
728x90
회사에서 사용하고 있는 WebRTC에 대한 개념을 공부하기 위해 블로깅 해봅니다.
WebRTC ?
Web RealTime Communication 의 약자로 플러그인 설치없이 실시간 소통(비디오, 오디오)이 가능하도록 만들어주는 기술입니다.
WebRTC를 사용하는 서비스
Google Meet, Zoom 등
별다른 프로그램 설치없이도 실시간 소통을 할 수 있는것!
통신원리
일반적으로 P2P(Peer to Peer)를 사용하며,
P2P란, 두개의 단말이 서로 1:1 통신을 한다는 뜻으로,
서버의 개념없이 동등한 노드들로 구성되어 데이터를 주고받는 형식으로 되어있습니다.
RTCPeerConnection
WebRTC 컴포넌트로, peer들간의 데이터를 안정적이고 효율적으로 통신하게 도와줍니다.
커넥션이 이루어지고 열리면, MediaStream과 RTCDataChannel들을 커넥션에 연결할 수 있습니다.
ICE(Interactive Connectivity Establishment)
두 단말이 서로 통신할 수 있는 최적의 경로를 찾을 수 있도록 도와주는 프레임워크 입니다.
단말 간에 연결을 해도 정상 작동하지 않는 이유가 있습니다.
- 방화벽 통과 문제
- 단말에 퍼블릭 IP가 없을 경우, 유일한 주소값을 할당 해야하는 문제
- 라우터가 단말간의 직접연결을 허용하지 않을때, 데이터를 릴레이(질문) 해야하는 문제
이를 해결하기 위해 STUN과 TURN 서버를 활용합니다.
ICE Candidate
STUN과 TURN서버를 활용해 찾아낸 연결가능한 네트워크 주소들.
- Local Address: 단말 Private IP 주소와 포트번호
- Server Reflexive Address: 단말의 Public IP 주소와 포트번호
- Relayed Address: TURN서버의 IP주소와 포트번호
참고
https://brunch.co.kr/@linecard/156
https://developer.mozilla.org/ko/docs/Web/API/WebRTC_API/Protocols
https://temasys.io/guides/developers/webrtc-ice-sorcery/
다음주 스터디
- NAT
- ✩SDP
- ✩STUN - 해당 단말의 퍼블릭IP주소를 보내는 역할을 함(두 단말이 같은 NAT 환경에 있거나, NAT의 보안정책이 엄격할 경우 연결되지않음)
- ✩TURN - STUN에서 연결에 실패할경우 최후 수단으로 이 서버를 사용 (리소스 낭비가 심하다는 단점)
- ✩Signaling
개인공부
- UDP/ TCP
- SFU/ MFU - (여러유저와 통신할경우)
728x90
'ETC' 카테고리의 다른 글
[SourceTree] Invalid username or password (0) | 2023.07.08 |
---|---|
WebRTC 키워드 정리 - NAT, SDP, STUN, TURN, Signaling (0) | 2023.01.30 |
[배포] 앱스토어 스크린샷 미리보기 (사이즈 변환해주는 사이트) (0) | 2022.04.10 |
[배포] 개인정보 처리방침 (0) | 2022.04.10 |
[CS] 컴파일 타임, 런타임 (Compile time, Run time) (0) | 2022.04.03 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- Swift Leetcode
- swift programmers
- swift reduce
- Swift init
- RTCCameraVideoCapturer
- removeLast()
- Combine: Asynchronous Programming with Swift
- Swift 프로그래머스
- Swift 프로퍼티
- Swift 알고리즘
- iOS error
- Swift 내림차순
- swift property
- Swift
- Swift ModernRIBs
- Swift final
- CS 네트워크
- Swift joined
- Swift RIBs
- swift protocol
- Swift inout
- 2023년 회고
- Swift Error Handling
- 원티드 프리온보딩
- swift (programmers)
- Class
- ios
- RIBs tutorial
- swift 고차함수
- Swift joined()
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함