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.
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
Zobacz draft-jesup-rtcweb-data-protocol - http://tools.ietf.org/html/draft-jesup-rtcweb-data-protocol – jesup
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 –