Uygulama katmanında DataChannel'i gönderen ve 'u SCTP üzerinden alma düşünebilirsiniz. SCTP üstbilgisinin PPID (Yük Kapasitesi Protokolü Tanımlayıcısı) alanında, Datachannel, 0xF değerini, veri için UTF-8 veri ve ikili veri için 0x52 gönderdiği belirtmek üzere ayarlar.
Evet, haklısınız. RTCDataChannel, DTLS ve UDP üzerinden SCTP kullanır. DTLS, güvenliği için kullanılır. Ancak, SCTP'nin çoğu NAT/Güvenlik duvarı kurulumlarını geçme sorunları vardır. Bundan dolayı, bunun üstesinden gelmek için, SCTP UDP'den geçilir. Yani veri göndermek için genel havai yükünü olacaktır:
SCTP + DTLS + UDP + IP
ve şudur:
28 bytes + 20-40 bytes + 8 bytes + 20 - 40 bytes
Yani, havai rougly yaklaşık 120 bayt olurdu. Bir WebRTC istemcisinin gönderebileceği SCTP paketinin maksimum boyutu 1280 bayttır. Bu yüzden, max, SCTP paketi başına kabaca 1160 bayt veri gönderebilirsiniz.
sayesinde nasıl DataChannel'lar hakkında?UDP üzerinden DTLS üzerinden SCTP kullandıklarını okudum, ancak uygulama katmanında kullanılan protokol nedir? – chaosbohne
Bkz. Taslak-jesup-rtcweb-veri protokolü - http://tools.ietf.org/html/draft-jesup-rtcweb-data-protocol – jesup
Bu yüzden WebRTC, ses ve video için UDP üzerinden SRTP kullanır (bir süre biter UDP çalışmazsa TCP). Ancak veri kanalı bunun üzerinden gönderilmez. DTLS'nin üstüne SCTP üzerinden gönderilir. Yani yukarıdaki cevap, sorunun konusunu biraz kapalı –