Passa al contenuto principale

4. Requisiti

Questa sezione elenca i requisiti per data channel Peer-to-Peer (P2P) tra due browser. Si noti che questa sezione e solo informativa.

Req. 1: Devono essere supportati piu data channel simultanei. Si noti che nella stessa PeerConnection possono esserci zero o piu stream media SRTP in parallelo ai data channel, e il numero e lo stato (attivo/inattivo) di questi stream media SRTP possono cambiare in qualsiasi momento.

Req. 2: Devono essere supportati data channel sia affidabili sia inaffidabili.

Req. 3: I data channel di una PeerConnection devono essere soggetti a controllo di congestione, individualmente, come classe, oppure insieme agli stream media SRTP della PeerConnection. Questo assicura che i data channel non causino problemi di congestione per tali stream media SRTP e che la WebRTC PeerConnection non causi problemi eccessivi quando funziona in parallelo con connessioni TCP.

Req. 4: L'applicazione dovrebbe poter fornire indicazioni sulla priorita relativa di ciascun data channel rispetto agli altri e rispetto agli stream media SRTP. Questo interagira con gli algoritmi di controllo della congestione.

Req. 5: I data channel devono essere protetti, consentendo riservatezza, integrita e autenticazione della sorgente. Vedere [RFC8826] e [RFC8827] per informazioni dettagliate.

Req. 6: I data channel devono fornire supporto alla frammentazione dei messaggi in modo che la frammentazione a livello IP possa essere evitata indipendentemente dalla dimensione del messaggio passato dall'applicazione JavaScript per l'invio. Devono inoltre garantire che trasferimenti di grandi dimensioni su un data channel non ritardino indebitamente il traffico su altri data channel.

Req. 7: Il protocollo di trasporto dei data channel non deve codificare indirizzi IP locali nei propri campi di protocollo; farlo rivela informazioni potenzialmente private e porta a errori se si dipende da quell'indirizzo.

Req. 8: Il protocollo di trasporto dei data channel dovrebbe supportare a livello applicativo "messaggi" di lunghezza illimitata (cioe uno stream di socket virtuale) per usi come il trasferimento di file immagine; le implementazioni potrebbero imporre un limite ragionevole alla dimensione dei messaggi.

Req. 9: Il protocollo di trasporto dei data channel dovrebbe evitare la frammentazione IP. Deve supportare la scoperta della Path MTU (PMTU) e non deve fare affidamento sulla generazione o sul ritorno di ICMP o ICMPv6, specialmente per la scoperta PMTU.

Req. 10: Deve essere possibile implementare lo stack di protocollo nello spazio dell'applicazione utente.