{"id":501,"date":"2012-05-05T14:04:57","date_gmt":"2012-05-05T18:04:57","guid":{"rendered":"http:\/\/www.rfdm.com\/blog\/?p=501"},"modified":"2013-04-20T10:59:34","modified_gmt":"2013-04-20T14:59:34","slug":"measuring-tcp-round-trip-times-part-3-data-storage-classes","status":"publish","type":"post","link":"https:\/\/www.rfdm.com\/blog\/?p=501","title":{"rendered":"Measuring TCP round-trip times, part 3: data storage classes"},"content":{"rendered":"<p>I&#8217;ve completed the design and initial implementation of some C++ classes for storage of TCP round trip data.  These classes are simple, especially since I&#8217;m leveraging functionality from the <tt>Dwm::IO<\/tt> namespace in my <tt>libDwm<\/tt> library.<\/p>\n<p>The <tt>Dwm::WWW::TCPRoundTrips<\/tt> class is used to encapsulate  a <code>std::vector<\/code> of round trip times.  Each round trip time is represented by a <code>Dwm::TimeValue<\/code> (class from <code>libDwm<\/code>).  I don&#8217;t really care about the order of the entries in the vector, since a higher-level container holds the time interval in which the measurements were taken.  Since I don&#8217;t care about the order of entries in the vector, I can use mutating algorithms on the vector when desired.<\/p>\n<p>The <code>Dwm::WWW::TCPHostRoundTrips<\/code> class contains a <code>std::map<\/code> of the aforementioned <code>Dwm::WWW::TCPRoundTrips<\/code> objects, keyed by the remote host IP address (represented by <code>Dwm::Ipv4Address<\/code> from <code>libDwm<\/code>).  An instance of this class is used to store all round trip data during a given interval.  This class also contains a <code>Dwm::TimeInterval<\/code> (from my <code>libDwm<\/code> library) representing the measurement interval in which the round trip times were collected.<\/p>\n<p>both of these classes have <tt>OrderStats()<\/tt> members which will fetch order statistics from the encapsulated data.  I&#8217;m hoping to develop a box plot class for Wt in order to display the order statistics.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;ve completed the design and initial implementation of some C++ classes for storage of TCP round trip data. These classes are simple, especially since I&#8217;m leveraging functionality from the Dwm::IO namespace in my libDwm library. The Dwm::WWW::TCPRoundTrips class is used to encapsulate a std::vector of round trip times. Each round trip time is represented by &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.rfdm.com\/blog\/?p=501\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Measuring TCP round-trip times, part 3: data storage classes&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[29,12,13],"tags":[],"class_list":["post-501","post","type-post","status-publish","format-standard","hentry","category-freebsd","category-software-development","category-web-development"],"_links":{"self":[{"href":"https:\/\/www.rfdm.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/501","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rfdm.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rfdm.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rfdm.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rfdm.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=501"}],"version-history":[{"count":8,"href":"https:\/\/www.rfdm.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/501\/revisions"}],"predecessor-version":[{"id":626,"href":"https:\/\/www.rfdm.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/501\/revisions\/626"}],"wp:attachment":[{"href":"https:\/\/www.rfdm.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=501"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rfdm.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=501"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rfdm.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=501"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}