
웹 애플리케이션 및 네트워크 통신을 위한 프로토콜 및 기술
WebSocket: 클라이언트가 서버에게 요청을 보내면 모든 다른 소켓에게 전송하는 방식 => 서버의 부하 및 비용 관리가 필요함
webRTC: 서버를 빼고 클라이언트가 서로 통신(p2p), ICE를 활용하여 case에 따른 서버 사용
양방향 통신을 지원하는 프로토콜
클라이언트와 서버 간 실시간 데이터를 교환하는데 사용
WebSocket은 서버를 중심으로 request와 response로 정보전달이 이루어져 서버에서 사용자 간 통신의 부하를 받음
=> 메모리문제, 전달속도 비용 문제
WebSocket 기반 라이브러리
WebSocket의 기능을 향상시키고 실시간 양방향 통신을 쉽게 구현할 수 있도록 도와줌
웹 브라우저 간에 플로그인없이 통신 가능한 실시간 커뮤니티 서비스
브라우저 간의 실시간 음성, 비디오 및 데이터 통신을 위한 오픈 소스 프로젝트
음성, 영상, p2p(peer to peer) 파일공유 기능을 이용할 수 있음
Signaling Server를 통해서 자신의 IP 주소를 상대방과 교환
public ip 공유기에는 여러개의 private IP 주소가 내부적으로 라우팅되어 있음
이 private IP를 할당받은 디바이스의 경우 자신의 public IP 주소를 모름
따라서 Stun Server를 통해 자신의 public IP 주소를 알아냄
connection 연결이 제대로 되지 않았을때를 대비한 서버
Session의 Description을 담당하는 프로토콜
생성할 세션의 타입 정보를 전송
offer: 통신 종류, 인코딩 방식, ip주소값 등의 정보를 가지고 통신 요청
answer: offer를 제공받은 후 응답
peer connection을 담당하는 framework(아래 세 가지의 통신을 지원)
동일한 라우터를 공유하는 경우
서로 다른 라우터를 가지고 있는 경우(stun 서버를 통해 public IP로 통신)
P2P 통신이 불가능한 경우(turn 서버가 연결을 중재)
미디어, 오디오, screen sharing할 때만 적용 가능한 통신 프로토콜
전송되는 데이터 패킷의 format
RTP의 통계값을 확인해 active call인지 체크하여 대역폭을 낭비하지 않도록 조절하는 것
File sharing, text message, game 관련 등 비디오나 오디오를 제외한 나머지 데이터의 경우
데이터를 small chunk로 분리한 뒤, 채널을 통해 전송하는 방식
ex. Real-time network games, Game player action events, Asset exchange, Text chat
Signaling 과정에서 하나의 certificate를 생성하고, 서로 교환함
서로 교환한 certificate로 데이터를 복호화해서 데이터를 확인
해커가 데이터를 가로채더라도 북호화는 불가능하도록 만듦
RTP 데이터를 암호화하는 프로토콜, RTP에서 사용하는 데이터인 미디어, 오디오, sharing screen에 사용
RTP를 제외한 나머지 데이터의 통신 과정에서 사용
https://post.naver.com/viewer/postView.nhn?volumeNo=30734315&memberNo=33264526&vType=VERTICAL