ndt-project / ndt

Network Diagnostic Tool
Other
178 stars 45 forks source link

Expose more web100 variables to the client? #195

Open collina opened 9 years ago

collina commented 9 years ago

When a client finishes a test, it receives through the control socket a subset of the web100 variables, the below parameters. However, NDT should have access to additional information such as LocalAddress, RemAddress, etc. Access to these values would help with tracking the results locally and other forms of retention of the measurements (e.g. the client posts its own copy to another database). Could more of the variables collected by web100 and NDT be sent to the client?

Current sent variables: c2sRate s2cRate receivedBytes CurMSS X_Rcvbuf X_Sndbuf AckPktsIn AckPktsOut BytesRetrans CongAvoid CongestionOverCount CongestionSignals CountRTT CurCwnd CurRTO CurRwinRcvd CurRwinSent CurSsthresh DSACKDups DataBytesIn DataBytesOut DataPktsIn DataPktsOut DupAcksIn ECNEnabled FastRetran MaxCwnd MaxMSS MaxRTO MaxRTT MaxRwinRcvd MaxRwinSent MaxSsthresh MinMSS MinRTO MinRTT MinRwinRcvd MinRwinSent NagleEnabled OtherReductions PktsIn PktsOut PktsRetrans RcvWinScale SACKEnabled SACKsRcvd SendStall SlowStart SampleRTT SmoothedRTT SndWinScale SndLimTimeRwin SndLimTimeCwnd SndLimTimeSender SndLimTransRwin SndLimTransCwnd SndLimTransSender SndLimBytesRwin SndLimBytesCwnd SndLimBytesSender SubsequentTimeouts SumRTT Timeouts TimestampsEnabled WinScaleRcvd WinScaleSent DupAcksOut StartTimeUsec Duration c2sData c2sAck s2cData s2cAck half_duplex link congestion bad_cable mismatch spd bw loss avgrtt waitsec timesec order rwintime sendtime cwndtime rwin swin cwin rttsec Sndbuf aspd CWND-Limited minCWNDpeak maxCWNDpeak CWNDpeaks

bchase78 commented 8 years ago

Hi, I am the author of the original Websocket client implementation for NDT. I am really not sure what you are getting at. All of the web100 variables are supplied to the client. Only the Server and Client are invovled in the transaction, so that it should always be apparent who is involved. Further, on the server side the logging can be enabled to collect all of this data. What is your use case? How exactly are the supplied results innsuffcient?

EDIT: I just read your comment again, and this time I think I understood it a little better. You want the client to store results for historical reference, and possibly do other types of processing on them. Well actually we had a student working on this, but unfortunately he didn't finish. Perhaps we will find someone new to take over this task, but that is somewhat uncertain at this point in time.