performance - How to measure the TCP/IP overhead without sniffing? -


I am thinking that there is a programmatic way of getting a full bandwidth measurement when a TCP stream is available. Because I can not know how the network stack will split the stream into the pack, or when it sends you TCP SNN or ACK or many things in the background, then I can get only one estimate for it. / P>

The only solution I can think is to actually sniff the interface, but I think the stack can already collect these figures for me.

This is going on in Java either Windows or Linux (of course, a portable solution will be given priority), but I can give a C / C ++ reply to JNI-ejet so that (and OS API call) is also a good answer. You are welcome!

[Windows specific answer]

On ETW (Event Tracing for Windows) Normal As such, ETW is a technology used to provide tracing / logging information on Windows, and most Microsoft software is already eclocked with ETW providers that you can use. In your case, I think the Microsoft-Windows-TCPIP provider has information (like local / remote addresses and ports, operations, send / receive bytes, etc.) that may be helpful to you

example For, I was able to collect TCPIP events in a file:

LogMan start MyTcpipLog -pMicrosoft-Windows-TCPIP -set

And

LogMan stops with MyTcpipLog -ets

Then a MyTcipipLog.etl files can be opened using a number of different tools (eg Exper), but the API that you can use to parse own this file.

If you want to do it on runtime, you can make it to process the event when you arrive. inside.

If you are new to ETW, then I use it.


Comments

Popular posts from this blog

sql - dynamically varied number of conditions in the 'where' statement using LINQ -

asp.net mvc - Dynamically Generated Ajax.BeginForm -

Debug on symbian -