I need a way to find out the Round trip time and the retransmission count (both packets and bytes) per socket. I can either obtain at the user level or in the filter driver. In linux, one can obtain this information by reading the sock info from tcp_ehash, and then obtain the tcp_sock using tcp_sk on struct sock*; but i couldnt find an equavalent in windows. I am not using the Winsock Kernel, all the connections are opened by a user process and in the filter driver I intercept the egress packets. There is a possibility getting this information by keeping per flow information and determining if the packet send down by the protocol driver was send earlier but I wish to avoid keeping this state.
Is there anyway to get this information from kernel in the driver, or is there anyway that the user mode process can query the socket to obtain these information.
I found this http://msdn.microsoft.com/en-us/libr...8VS.85%29.aspx
(GetPerTcpConnectionEStats)which has the information as tcp-ipv4 extended information, I dont know if there is any easier way to obtain this extented information from within the driver.
Unfortunately, this function is only supported starting from Vista. I wonder if there is equivalent available for windowxp (something which I need as well, and I cant seem to find it so far).