Per rispondere correttamente a questa domanda, sento che alcuni dei concetti chiave del VoIP devono essere spiegati.
Per risolvere questo problema viene utilizzato UDP. UDP è un protocollo inaffidabile e senza connessione. Anche se UDP perderà i pacchetti, l'audio vocale può ancora essere compreso, il cervello compenserà efficacemente gli errori. Ecco perché è ancora possibile parlare con qualcuno su un telefono con 3 barre di segnale.
perdita di pacchetti e Burst Lunghezze
perdita di pacchetti si verifica spesso a causa di congestione, quindi la quantità di perdita di pacchetti dipenderà da quanto bene attrezzata la rete è. La perdita di pacchetti in VoIP utilizzando UDP si verifica più spesso nelle lunghezze di burst . A lunghezza burst è un numero di pacchetti persi in successione nella trasmissione, quindi una lunghezza di burst di 3 significa che 3 pacchetti di una riga sono stati persi.
compensazione delle perdite di pacchetti
Dove si verifica la perdita di pacchetti semplici tecniche di compensazione perdita di pacchetti saranno Surfice e la qualità del servizio non saranno seriamente effettuato, il discorso può ancora essere compreso, anche nei casi in cui il 20-30% dei pacchetti sono persi. I metodi includono:
Ripetere l'ultimo successo ricevuto pacchetto.
Completa - Gioca silenzio nello spazio.
Splicing - Effettivamente questo può essere pensiero di prendere rimozione il divario causato dalla durata scoppio spingendo l'inizio e la fine del gap insieme.
- interpolazione - Uso conoscenza discorso prima e dopo di interpolazione pacchetti persi all'interno del gap esempio media tra i pacchetti ricevuti con successo prima e dopo la durata del burst.
Un buon metodo per ridurre le dimensioni delle lunghezze di burst è noto come interleaving e aumentando quindi QoS è interleaving. Una funzione di interleave a blocchi prende il discorso e lo divide in un insieme di pacchetti. Questi pacchetti vengono caricati in un buffer della forma di una matrice (ad esempio 4 per 4), una funzione viene utilizzata per ruotare o trasporre il buffer in modo che i pacchetti non siano in ordine. Sul lato ricevitore, l'inverso di questa funzione viene utilizzato per riordinare i pacchetti. Questo metodo è semplice ed efficace, Vedere la figura seguente:
alt text http://img688.imageshack.us/img688/3962/capturevnk.png
Recentemente ho creato una piccola applicazione VoIP. su una LAN wireless usando UDP. Io non sono davvero sicuro delle specifiche esigenze della vostra applicazione, ma in generale le applicazioni VoIP (tra due host) può implementato come segue:
alt text http://img338.imageshack.us/img338/6566/captureec.png
Nel diagramma l'applicazione definisce il proprio disegno di pacchetto. L'intestazione potrebbe essere solo il numero del pacchetto (utilizzando 1 byte) e il carico utile i dati audio (n byte, dimensione del carico utile). Definire ciò consente migliori tecniche di compensazione dei pacchetti e consente un flusso logico per la programmazione.
TCP è una scelta errata per VoIP per diversi motivi. Un rapido google di "TCP VoIP" rivela perché il primo risultato a sostegno di questo view.
TCP è un protocollo affidabile, orientato alla connessione, ciò significa che i pacchetti che vengono persi nella trasmissione verranno a un certo punto inviati nuovamente dall'altro host. Questa ritrasmissione non è pratica per i servizi in tempo reale e aumenterà il jitter, la latenza e probabilmente aumenterà la perdita di pacchetti (in alcuni casi).
risposte alle tue domande
quello che ottengo è fondamentalmente solo rumore. Il 20% di esso è il suono registrato e il resto è solo rumore strano.
TCP non dovrebbe introdurre rumore, dovrebbe introdurre jitter e latenza. Gli zoccoli tendono ad avere un tempo di attesa definito automaticamente, si definisce il tempo di timeout? In caso contrario, cosa succede perché non si riceve il pacchetto corretto in tempo prima della riproduzione?
Sono sulla buona strada? È anche consigliabile utilizzare il protocollo TCP/IP per questo tipo di applicazione (chiamate vocali di tipo)?
No do NON utilizzare TCP/IP non è una buona idea. Sembra che il tuo manager abbia assunto erroneamente che qualsiasi perdita di pacchetti sia una cosa terribile.
Sommario
alcuni concetti chiave generali hanno dimostrato qui per cercare di aiutare il più possibile per questo problema specifico, ma questo non dovrebbe essere considerato esaustivo. Assicurati che il sistema VoIP utilizzi anche alcuni principi di base per la codifica del parlato/tecniche di elaborazione del segnale.
I punti chiave da ricordare sono:
utilizzare UDP per il VoIP.
Implementare la compensazione perdita pacchetto
tecniche.
Un blocco interleaver è un metodo semplice e
efficace per aumentare QoS.
Spero che questo aiuti.
Sicuramente non la sua lingua specifica .. sono sicuro .. –
In origine non erano le domande :) Il post è stato modificato dal moderatore in questo modo. – Micha
a meno che il vostro capo è un programmatore di reti ex specialista/anziano, solo dirgli di continuare a fare quello che è presumibilmente bravo a: rendere powerpoints e lasciare la programmazione ai suoi programmatori. – Toad