* Take rate input as bits/s
* Update README.md
* Fix throttling to be as precise as possible.
* Minor doc fix.
* Update README.md
* Add support for title, improve handshake code.
* Update README.md
* Intermediate checkin
* Last check-in before deleting ACK message in Ethr.
* Support for client port, throttling and tos almost working.
* Most functionality working as expected with code all cleaned up.
* Linux/OSX Fixes.
* Fix handshake mechanism.
* Minor cleanup.
* More improvements for external mode.
* Improve admin-mode, root user permission checking.
* Improve detection of IP version for ICMP.
* Update README.md
* Simpler single port version of Ethr working now.
* More simplification to use single port
* Minor changes
* More fixes to enable single port and no control channel sync.
* Further improve code, merge client & xclient, add conn latency for both, pretty print.
* Intermediate change
* Initial traceRoute is working.
* Cleanup MTR functionality.
* Organize help better and add validations.
* Update README.md
* Update README.md
* Make ICMP ping and traceRoute working.
* Update README.md
Co-authored-by: Pankaj Garg <pankaj@intellectualheaven.com>
Initial version of -r for TCP bandwidth tests + few other enhancements:
- Add timestamp in log messages.
- Handle the case where timer tick is delayed on client side. Server side still
needs work.
- Use high value of GOMAXPROCS to fix starvation of some goroutines.
- Support option to disable per connection statistics. If large number
of sessions are used, then per connection stats were making it hard
to read the results on console.
- Synchronize stats timer between client/server. This makes server and
client print similar test results. Earlier, under varying TCP throuhgput,
results in server and client side were different due to different time
periods for calculating throughput.
* Fix command line arguments to enable supporting external server mode.
* Initial version of external mode server. This can work behind a load
balancer.
* Intermediate changes for xserver/xclient.
* Few fixes for external mode. Add support for 'g' for gap in connection
latency test.
Initial version of HTTPS support. This uses a dynamically generated self-signed certificate. The main use case is to measure performance of middle boxes like firewalls and proxies.
Initial version of TCP ping.
This needs enhancements listed below, but is a workable solution (for now):
- Better goroutine synchronization for exit tracking
- Code cleanup for handling of warmup run
- Support for custom number of warmup connections
- Support for custom sleep between successive connections
- Option to select -4 or -6 to force IP version
- Logging the results in json format
* Intermediate changes for Connected UDP.
* Add more changes to support connected UDP.
There is an issue with this approach, as multiple sockets are not able
to listen on connected UDP. We need to add SO_REUSEPORT to make this a
viable solution. This would be done in a later commit but before this
change is merged into master.
* Minor code cleanup.
Ethr is a network performance measurement tool. It allows measurements
of bandwidth, latency, packets/s, connections/s for multiple protocols
such as TCP, UDP, HTTP, HTTPS and ICMP.