2012-08-13 14 views
5

Chcę wiedzieć, ile energii generuje WebRTC podczas wysyłania danych przez kanały danych. Wiem, że Websockets mają 2 - 14 bajtów na każdą klatkę. Czy WebRTC wykorzystuje więcej kosztów ogólnych? Nie mogę znaleźć przydatnych informacji w Internecie. Jest dla mnie jasne, że datacanneli nie można na razie używać. Ile narzutów użyto w Mediastreams?Obciążenie WebRTC

Dzięki

Odpowiedz

2

WebRTC używa RTP do przesyłania swoich mediów. RTP działa na UDP.

Oprócz zwykłych nagłówków IP i UDP, istnieją dwa dodatkowe nagłówki:

  1. nagłówku RTP sama zaczyna się od 12 bajtów i może rosnąć stamtąd, w zależności od tego przyzwyczaja.
  2. Nagłówek ładunku - nagłówek używany dla każdego pakietu danych określonego używanego kodeka. Ten zależy od samego kodeka.

RTP został zaprojektowany tak, aby jak najmniej obciążać jego ładunek ze względu na podstawowe uzasadnienie, że chcesz osiągnąć lepszą jakość mediów, co oznacza przeznaczenie jak największej liczby bitów na same media.

+0

Dzięki, jak o Datachannels?Czytałem, że używają SCTP przez DTLS przez UDP, ale jaki jest protokół używany w warstwie aplikacji? – chaosbohne

+0

Zobacz draft-jesup-rtcweb-data-protocol - http://tools.ietf.org/html/draft-jesup-rtcweb-data-protocol – jesup

+1

W związku z tym WebRTC używa protokołu SRTP przez UDP dla głosu i wideo (po pewnym czasie minęło TCP, jeśli UDP nie działa). Ale kanał danych nie jest przesyłany przez to. Jest wysyłany przez SCTP nad DTLS. Tak więc powyższa odpowiedź jest nieco poza tematem pytania –

3

W warstwie aplikacji można myśleć o DataChannel jako wysyłającej i odbieranie przez SCTP. W polu PPID (Payload Protocol Identifier) ​​nagłówka SCTP , Datachannel ustawia wartość 0x51 dla wskazania, że ​​wysyła dane UTF-8 i 0x52 dla danych binarnych.

Tak, masz rację. RTCDataChannel używa SCTP przez DTLS i UDP. DTLS jest używany do ochrony . Jednak SCTP ma problemy z przechodzeniem przez większość konfiguracji NAT/Firewall. Dlatego też, aby temu zaradzić, SCTP jest tunelowany przez UDP. Więc ogólnie napowietrznych do wysyłania danych będzie narzut:

SCTP + DTLS + UDP + IP

a mianowicie:

28 bytes + 20-40 bytes + 8 bytes + 20 - 40 bytes

więc, narzut byłoby rougly o 120 bajtów. Maksymalny rozmiar pakietu SCTP , który może wysłać klient WebRTC, wynosi 1280 bajtów. Tak więc w max, można wysłać około 1160 bajtów danych na pakiet SCTP.

0

enter image description here

Oto zrzut ekranu z 2 peer.js przypadkach (babylon.js Front End) wysyłanie dokładnie 3 bajty co 16ms (~ 60 na sekundę).

Profiler pokazuje 30.000 bitów/s:

30.000 bitów/8 bitów na bajt/60 na sekundę = 62,5 bajty, więc po 3 bajty ja wysyłania to ~ 59,5 bajtów według profilera .

Nie jestem pewien, czy coś nie jest liczona na przychodzące, ponieważ jest profilowania tylko połowę tego, 15k bitów/sekundę