2012-02-24 19 views
5

So che SSL ha un impatto sulle prestazioni della comunicazione HTTP in termini di velocità, ma c'è una grande differenza nella quantità di dati trasferiti?L'SSL causa molta più larghezza di banda?

ie, Se un dispositivo mobile paga molto per kb, c'è un'enorme differenza? Qualcuno ha una stima di quanta differenza?

Grazie per l'aiuto!

Matt

+1

Si può anche essere interessati a implementare alcune delle strategie descritte [qui] (http://stackoverflow.com/a/9250423/372643) (caching, se del caso, falsa partenza, la ripresa della sessione, ...) – Bruno

risposta

9

No, non c'è molta differenza, né in termini di "performance", né in termini di larghezza di banda.

According to Google, un'azienda che si spera sia una fonte affidabile di reti su larga scala, l'overhead della larghezza di banda della rete è inferiore al 2%.

5

Come indicato da Borealid, l'overhead è piccolo. Generalmente. Per una richiesta media (che si estende a file multimegabyte).

Tuttavia, se si dispone di qualcosa come API RESTful da chiamare, è necessario assicurarsi che venga utilizzata la connessione permanente, altrimenti con gli enti di richiesta ridotta SSL aggiungerà un sovraccarico significativo. Non posso dirti ora i numeri esatti (semplicemente perché variano a seconda delle dimensioni del certificato e del numero di certificati nella catena) ma se devi stabilire una sessione SSL per inviare una richiesta di 200 byte e ricevere una risposta di 2 Kb, SSL l'handshake può aggiungere facilmente un altro 5-7 Kb, così puoi vedere il sovraccarico.

+1

Concordato , lo scenario peggiore che ho visto è quando si richiede l'autenticazione del certificato client con un truststore Java predefinito: il messaggio 'CertificateRequest' contiene un elenco di DN di CA che può aggiungere fino a circa 20 KB in base a quanti certificati CA sono raggruppati (fino al punto i buffer potrebbero non essere abbastanza grandi in alcune implementazioni). Naturalmente, in pratica, l'elenco CA per i certificati client dovrebbe essere limitato solo a quelli realmente necessari. – Bruno

5

Ho appena eseguito un test utilizzando wireshark, scaricando un file di 5 byte da Amazon S3 su http e https su un iPad utilizzando una semplice richiesta NSURLConnection.

Per http, il traffico totale era di 1310 byte.

Per https, il traffico totale era 7099 byte.

Questo era solo per un singolo download in ogni caso e include tutto il traffico avanti/indietro sul filo della richiesta, inclusi DNS (circa 200 byte) e TCP handshaking (circa 400 byte per caso http).

Ovviamente i totali effettivi cambierebbero in base alla lunghezza dell'URL e al particolare certificato SSL; si potrebbe certamente avere intestazioni più snelle di S3 consegna.

In teoria, l'overhead della larghezza di banda SSL per un file da 1 MB dovrebbe essere circa lo stesso di un file da 1 byte, ovvero circa 5800 byte nell'esempio precedente, poiché la crittografia non dovrebbe aumentare la dimensione dei dati trasmessi oltre il certificato iniziale e scambio di chiavi. Quindi per i file di grandi dimensioni è trascurabile, ma per i file di piccole dimensioni può essere significativo, come sottolineato da Eugene.

Problemi correlati