¿Cómo calcular el número de bytes enviados / recibidos, incluida la sobrecarga de TCP / IP en una connection HTTP de iOS?

Estoy usando NSURLConnection para realizar la comunicación HTTP con un server. Deseo saber el número exacto de bytes enviados / recibidos por mi aplicación, incluida la sobrecarga de TCP / IP. No he encontrado ninguna información útil sobre cómo lograr esto después de mucha investigación.

Estoy dispuesto a cambiar a CFStream si está usando eso me ayudará con este problema. Gracias por adelantado.

En mi .h del controller declaro dos vars:

NSMutableData *_data; float downloadSize; 

Tampoco se olvide de los delegates en el .h

 @interface SomeViewController : UIViewController <NSURLConnectionDataDelegate, NSURLConnectionDelegate> 

Entonces en mi .m:

 - (void)connection: (NSURLConnection*) connection didReceiveResponse: (NSHTTPURLResponse*) response { NSInteger statusCode_ = [response statusCode]; if (statusCode_ == 200) { downloadSize = [response expectedContentLength]; } } - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { if(!_data) _data = [[NSMutableData data]init]; [_data appendData:data]; progressView.progress = ((float) [_data length] / (float) downloadSize); } - (void)connectionDidFinishLoading:(NSURLConnection *)connection { unsigned char byteBuffer[[_data length]]; [_data getBytes:byteBuffer]; [_data writeToFile:pdfPath atomically:YES]; } 

Este es mi controller para download un file pdf. Pero podría ser cualquier cosa en realidad. Cuando tiene una respuesta, obtiene la longitud esperada, luego cada vez que recibe datos, la agrega a mis datos mutables y luego la compara con el tamaño esperado.

Espero que esto ayude: D