Commit graph

23 commits

Author SHA1 Message Date
Pankaj Garg
aa636603a7
Improve throttling and add Title support (#141) 2020-12-04 16:02:14 -08:00
Pankaj Garg
46d0e6286c
Support for title in test results and improvement to handshake code. (#137)
* 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
2020-12-02 02:08:55 -08:00
Pankaj Garg
8f994d1400
Improve throttling and take input as bits/s instead of bytes/s (#136)
* Take rate input as bits/s

* Update README.md

* Fix throttling to be as precise as possible.

* Minor doc fix.

* Update README.md
2020-11-30 21:44:25 -08:00
Pankaj Garg
945d59c33b
Add support for throttling in Bandwidth tests, ToS and improved external mode. (#135)
* 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
2020-11-30 18:20:57 -08:00
Pankaj Garg
d81e3edd4f
Fix the override of port for ethr mode. (#133)
Co-authored-by: Pankaj Garg <pankaj@intellectualheaven.com>
2020-11-24 18:09:31 -08:00
Pankaj Garg
05f36c63fb
Add IPv6 support for TraceRoute and MyTraceRoute. (#132)
* Add IPv6 support for TraceRoute and MyTraceRoute.

Co-authored-by: Pankaj Garg <pankaj@intellectualheaven.com>
Co-authored-by: Pankaj Garg <ipankajg@l0n3c0d3r.com>
2020-11-24 00:06:46 -08:00
Pankaj Garg
b8f0005dd9
Add TraceRoute and MyTraceRoute functionality for ICMP & TCP. (#131)
Tested on both Windows and Linux and fixed bugs related to handling on Linux.
2020-11-23 18:55:20 -08:00
Pankaj Garg
8de3b2e88a
Merge client & external client mode code. Add ICMP support and many other fixes. (#130)
* 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>
2020-11-10 05:37:52 -08:00
subham sarkar
233968d71d
Fix handling of interrupts (#125) 2020-09-22 16:28:41 -07:00
scrollins
fe09eed5fb Remove hardcoded buffer of 1 from latency test on server and client(#1) (#103)
* Remove hardcoded buffer of 1 from latency test  on server and client(#1)

* Remove hardcoded buffer of 1 from latency test on server and client

* Default latency test (#2)

* Default latency test so we dont introduce regression
2019-10-18 19:41:46 -07:00
Boyan Soubachov
f94ebb5224 Fixed /proc/net/snmp parsing bug (#97)
* Fixed /proc/net/snmp parsing bug

* Fixed a bug when parsing /proc/net/snmp for Linux machines
* Removed unused, commented code
* Changed error messages to Go best practices (wrapping-friendly)

* * Upgrade Dockerfile
* Upgrade to Go 1.13
2019-09-30 05:43:51 -07:00
Yoshiyuki Kurauchi
90c8f2467c fix error handling in establishSession (#85) 2019-06-05 00:47:51 -07:00
Deepak Thukral
f5c8cd843e Added support for HTTP latency testing (#81)
* Add support for HTTP latency testing
2019-02-04 09:39:02 -08:00
Pankaj Garg
e87aa83cdc Add support for ignore certificate. (#82)
* Add support for ignore certificate.

Also enhance validaiton for reverse mode.

* Go Fmt
2019-02-03 07:53:54 -08:00
Pankaj Garg
7f38d662d2 Add support for reverse mode (for TCP). Fixes (#71) (#73)
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.
2019-01-20 09:13:47 -08:00
Pankaj Garg
443da18e43
Add support for HTTPS (#68)
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.
2019-01-07 09:15:09 -08:00
Pankaj Garg
36c1bbdf3c
Add support for -4 or -6 as parameter. (#65)
This allows using specific IP version for running a test.
2019-01-03 17:25:00 -08:00
Pankaj Garg
33238ab976
Add support for TCP ping (#61)
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
2019-01-01 21:12:26 -08:00
Pankaj Garg
a8971d9b50
Add support for UDP bandwidth testing (#20) (#38)
* Add support for UDP based bandwidth tests.

Also did some code cleanup and removed stale code.

* Fix gitignore as it was not ignoring temp VIM files.
2018-12-11 08:35:20 -08:00
lylex
aecdaf9239 Add lint target and fix its warnings. (#37) 2018-12-11 07:28:33 -08:00
Pankaj Garg
0c9674d15d
Misc/codecleanup (#29)
* 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.
2018-12-10 08:06:37 -08:00
Pankaj Garg
6ea7c76e3b Fix for connection leak.
Earlier code was not breaking out of nested loops correctly.
2018-12-04 14:59:49 +00:00
Pankaj Garg
80c99bdab1 First version of Ethr
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.
2018-12-02 12:39:13 -08:00