Web Real-Time Communication
in a nutshell
WebRTC is a free, open project that provides browsers and mobile applications with Real-Time Communications (RTC) capabilities via simple APIs. The WebRTC components have been optimized to best serve this purpose.
Our mission: To enable rich, high-quality RTC applications to be developed for the browser, mobile platforms, and IoT devices, and allow them all to communicate via a common set of protocols.
Source: caniuse.com
Phet stringifies the offer and uses a signaling mechanism to send it to Luong.
Phet sets Luong's answer as the remote session description using setRemoteDescription().
Signaling is the process of coordinating communication
SDP = Session Description Protocol format
Limit the number of public IP
Về cơ bản là framework giúp Phet va Luong tìm ra cách ngắn nhất để thiết lập kết nội Peer-to-peer với nhau
ICE tìm cách kết nối trực tiếp bằng cách thông tin có được tư OS và network card. Nếu không được, ICE sẽ dùng đến STUN server. Nếu tiếp tục thất bại thì nó sẽ sử dụng TURN relay framework
Khi 1 server nào dùng NAT thì STUN sẽ giúp cho client đó biết được địa chỉ IP và Port mà thiết bị NAT sử dụng. Và từ đó giúp cho các peer có thể lấy được địa chỉ của peer khác (IP nào, cổng mấy, NAT loại gì) để mà vượt rào đến với nhau.
Tương tự như STUN nhưng sử dung TCP là giao thức.