RTCPeerConnection P2P

· Sürümler

sgcWebSockets 2022.8.0 sürümünden itibaren sgcWebSockets kütüphanesine yeni bir bileşen eklendi: TsgcRTCPeerConnection.

TsgcRTCPeerConnection, UDP üzerinden P2P kullanarak eşleri bağlamanıza olanak tanıyan bir istemci bileşenidir. Akış 4 adıma ayrılabilir:




Bu adımları uygulamak için istemci aşağıdaki protokolleri kullanır:

Signaling (Sinyalleşme) 

İstemci başladığında kiminle ve ne hakkında iletişim kuracağı hakkında hiçbir bilgisi yoktur. Sinyalleşme, aşağıdaki gibi ayrıntıları içeren SDP (Session Description Protocol) değerini kullanır:

Sinyalleşme, verileri değiş tokuş etmek için WebSocket protokolünü kullanır; bir alt protokol aracılığıyla çalışır ve sunucu tarafında TsgcWSPServer_RTCPeerConnection bileşeninde uygulanır.

TsgcRTCPeerConnection, TsgcWSPClient_RTCPeerConnection eklenmiş bir websocket istemcisini zaten dahili olarak oluşturur.

IP'leri ve Bağlantı Noktalarını elde etmek için istemci, bu bilgiyi almak üzere STUN/TURN protokollerini kullanır. Bu nedenle bir STUN/TURN sunucusu da gereklidir.

Bağlantılar:

Connecting (Bağlanma) 

2 eş artık adayları ve SDP'leri öğrendikten sonra, istemci ICE adlı başka bir standart protokol kullanır.

ICE (Interactive Connection Establishment), 2 eş arasında bir bağlantı kurulmasına olanak tanır. Eşler aynı ağda olabilir veya bir NAT'ın arkasında bulunabilir... ICE, merkezi bir sunucu olmadan doğrudan bağlantı kurmaya yönelik bir çözümdür. Bağlantı P2P olamazsa, ICE verileri bir TURN sunucusu kullanarak aktarmak için TURN'ü kullanır.

ICE, 2 eş arasında bağlantı kurabilecek geçerli bir aday bulduğunda, bir sonraki adım iletişimi şifrelemektir

Bağlantılar:

Securing (Güvenli hale getirme) 

 Eşler bağlandıktan sonra iletişim güvenli olmalıdır. Bu, UDP üzerindeki iletişimi güvenli hale getirmek için kullanılan kriptografik bir protokol olan DTLS kullanılarak yapılır.

DTLS el sıkışması başarıyla işlendikten sonra başka bir protokol kullanılır: SRTP (Secure Real-Time Transport Protocol); şu anda SRTP uygulanmamıştır.

Bağlantılar:

Communicating (İletişim) 

2 eş güvenli bir protokol kullanmaya başladığında, iletişim 2 protokol kullanılarak gerçekleştirilir:

Şu anda bu protokoller uygulanmamıştır, ancak UDP üzerinden DTLS kullanarak veri gönderebilir/alabilirsiniz.