Ethr:一款TCP、UDP和HTTP网络性能测量工具

news2024/10/5 0:27:27

Ethr

Ethr是一个用golang编写的跨平台网络性能测量工具。该项目的目标是提供本机工具,用于跨多种协议(如TCP,UDP,HTTP,HTTPS和跨多个平台)对带宽,连接,数据包,延迟,丢失进行全面的网络性能测量。


 

49815752-506f0000-fd21-11e8-954e-d587e79c5d85.png


Ethr从现有的开源网络性能工具中获取灵感,并以这些想法为基础。对于带宽测量,它类似于iPerf3,用于TCP和UDP流量。 iPerf3有更多选项可用于执行限制测试,更丰富的功能集,而Ethr支持多线程,允许它扩展到1024甚至更高数量的连接,多个客户端与单个服务器通信等。用于延迟测量,它类似于Windows上的latte或Linux上的sockperf。与其他工具相比,Ethr提供了更多的测试测量,例如它在单个工具中提供带宽,连接,数据包,延迟和TCP连接设置延迟的测量。在未来,计划增加更多功能(希望其他人贡献)以及更多协议支持,使其成为网络性能测量的综合工具。与通过像cygwin这样可能限制功能的抽象层进行编译相比,由于golang,Ethr本身就是跨平台的。它希望通过结合iPerf3,ntttcp,psping,sockperf和latte等工具的功能统一性能测量,并提供跨多个平台和多种协议的单一工具。

下载

For Windows 10: https://github.com/Microsoft/Ethr/files/2640289/ethr.zip
For Ubuntu: https://github.com/Microsoft/Ethr/files/2640288/ethr.gz
For ArchLinux: https://aur.archlinux.org/packages/ethr

安装

注意:需要从源代码构建版本1.10或更高版本。

从源码安装

git clone https://github.com/Microsoft/ethr.git
cd ethr
dep ensure -v
go build

Docker

docker build -t microsoft/ethr .

Linux

docker run -e GOOS=linux -v $(pwd):/out microsoft/ethr make build-docker

Windows

docker run -e BINARY_NAME=ethr.exe -e GOOS=windows -v $(pwd):/out microsoft/ethr make build-docker

OSX

docker run -e BINARY_NAME=ethr -e GOOS=darwin -v $(pwd):/out microsoft/ethr make build-docker

go get用法

go get github.com/Microsoft/ethr

ArchLinux安装

如果你使用 yay (GitHub - Jguer/yay: Yet another Yogurt - An AUR Helper written in Go):yay -S ethr

用法

简单用法

帮助:ethr -h服务器:

ethr -s

带文本UI的服务器:

ethr -s -ui

客户端:

ethr -c <server ip>

例:

// 开始服务
ethr -s
// 使用1个线程启动客户端以进行默认(带宽)测试测量
ethr -c localhost
// 使用64个线程启动连接/测试
ethr -c localhost -t c -n 64

完整的命令行

常用参数:

-h                        帮助
-no                       禁用日志记录到文件
-o <filename>             记录到filename指定的文件
                          缺省值:服务器的ethrs.log,客户端的ethrc.log,外部客户端模式的ethrxc.log
-debug                    记录调试输出
-ports <string>           使用自定义端口号而不是默认端口号
                          格式:“Key1 = Value,Key2 = value,......”
                          默认值:“control = 8888,tcp = 9999,udp = 9999,http = 9899,https = 9799”
                          控制用于ethr的控制信道通信。
                          对于协议,基本端口由值指定,并计算其他端口。
                          示例:tcp = 9999表示带宽端口:9999,CPS:9998,PPS:9997,延迟:9996
                          注意:必须在客户端和服务器上使用相同的端口
                          注意:此选项对外部客户端模式无效
-4                        仅使用IP v4版本
-6                        仅使用IP v6版本

服务器参数

-s                      服务器模式
-ui                     显示文本UI

客户端参数

-c <server>客户端模式,连接到服务器指定的名称或IP
-t <b | c | p | l>测试完成,b:带宽,c: connections/s, p: packets/s,l:延迟
                               默认是带宽测试
-p <tcp | udp | http | https | icmp>要使用的协议,默认为TCP
-n <number>要使用的会话/线程数
-l <number>用于每个请求的缓冲区大小
-i <number>延迟测试的迭代次数
-d <duration>测试运行的持续时间,例如,10s,4m,5h等.0  - 永远,默认值:10s

外部服务器参数

-m x                       外部服务器模式 - 在此模式下,Ethr仅支持TCP,侦听9999
                           任何客户端都可以在此模式下连接到Ethr。 Ethr还可以在此模式下接收数据
                           此模式对于在负载均衡器后面的多个实例上运行Ethr服务器非常有用,
                           来自客户端的流量由负载均衡器分配给这些实例
-s                         服务器模式
-ui                        显示文本UI

外部客户端模式

-m x将模式设置为外部客户端模式
-c <目标>外部客户端模式中,连接到由主机指定的目的:端口
                               示例:-x www.microsoft.com:443或-x 10.1.0.4:22等
-t <b | cl>测试完成,b:带宽,cl:连接延迟
-d <duration>测试运行的持续时间,例如,10s,4m,5h等.0  - 永远,默认值:10s
-g <duration>连续建立连接之间的间隙(或间隔)(用于连接延迟测试)

状态

Protocol BandwidthConnections/sPackets/sLatency
TCP YesYesNoYes
UDP YesNAYesNo
HTTPYesNoNoNo
HTTPSYesNoNoNo
ICMPNoNANoNo

平台支持

Windows经测试:Windows 10,Windows 7 SP1

未经测试:其他Windows版本

Linux测试:

Ubuntu Linux 18.04.1 LTS,OpenSuse Leap 15

未经测试:其他Linux版本

OSX测试:

OSX由贡献者测试

其他目前尚未测试其他平台

网络安全学习资源分享:

给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

因篇幅有限,仅展示部分资料,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,需要点击下方链接即可前往获取 

读者福利 | CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享(安全链接,放心点击)

同时每个成长路线对应的板块都有配套的视频提供: 

 大厂面试题

 

视频配套资料&国内外网安书籍、文档

当然除了有配套的视频,同时也为大家整理了各种文档和书籍资料

所有资料共282G,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,可以扫描下方二维码或链接免费领取~ 

读者福利 | CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享(安全链接,放心点击) 

特别声明:

此教程为纯技术分享!本教程的目的决不是为那些怀有不良动机的人提供及技术支持!也不承担因为技术被滥用所产生的连带责任!本教程的目的在于最大限度地唤醒大家对网络安全的重视,并采取相应的安全措施,从而减少由网络安全而带来的经济损失。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1705476.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软件测试经理工作日常随记【6】-利用python连接禅道数据库并自动统计bug数据到钉钉群

测试管理_利用python连接禅道数据库并统计bug数据到钉钉 这篇不多赘述&#xff0c;直接上代码文件。 另文章基础参考博文&#xff1a;参考博文 加以我自己的需求优化而成。 统计的前提 以下代码统计的前提是禅道的提bug流程应规范化 bug未解决不删除bug未关闭不删除 db_…

解锁 AI 潜力:香橙派 AIpro 评测与实操指南

解锁 AI 潜力&#xff1a;香橙派 AIpro 评测与实操指南 引言 在智能科技飞速发展的今天&#xff0c;AI 技术正逐渐改变我们的生活方式。作为开发者&#xff0c;找到一款高性能、易用且经济实惠的开发板至关重要。香橙派 AIpro&#xff08;OrangePi AIpro&#xff09;凭借其卓越…

云下到云上,丽迅物流如何实现数据库降本50% | OceanBase案例

在2024年3月20日的首场OceanBase数据库城市行活动中&#xff0c;专注于物流及供应链解决方案的丽迅物流的架构师阳磊&#xff0c;围绕“OB Cloud在丽迅物流的实践”这一主题&#xff0c;进行了精彩的演讲。本文为此次演讲的内容回顾。 在丽迅物流&#xff08;Lesoon Logistics…

triton之paged attention

一 原理 图解大模型计算加速系列之&#xff1a;vLLM核心技术PagedAttention原理 - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/691038809 二 源码分析 1 测试参数设置 test_paged_attention(num_seqs32,num_heads(64, 64),head_size64,block_size16,dtypetorch.float16,…

java的变量关系~使用和扩展

一、变量的概述 1、什么是变量 白话:变量就是一个装东西的盒子。 通俗:变量是用于存放数据的容器。我们通过变量名 获取数据&#xff0c;甚至数据可以修改。 2、变量在内存中的存储 本质:变量是程序在内存中申请的一块用来存放数据的空间&#xff0c;类似我们酒店的房间&a…

[数据集][目标检测]喝水检测数据集VOC+YOLO格式995张3类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;995 标注数量(xml文件个数)&#xff1a;995 标注数量(txt文件个数)&#xff1a;995 标注类别…

抖音本地生活服务商入驻指南分享!

当前&#xff0c;各大平台的团购外卖业务持续火爆&#xff0c;并逐渐成为众多创业赛道中的大热门。其中&#xff0c;本地生活服务更是在短时间内杀出重围&#xff0c;成为创业者们的首选。 根据抖音生活服务近日发布的《2023年度数据报告》&#xff0c;2023年&#xff0c;抖音生…

谷歌地图 | Google I/O ‘24 重磅发布助力企业拓展海外市场的新功能!

编者按&#xff1a;本文是 Google I/O 2024 系列的一部分&#xff0c;该系列分享了Google 年度开发者大会上最新的 Google Maps Platform 新闻。 距全球首个 Google Maps API 问世已近 20 年。它引领了网络和移动端地理空间体验的革命。从那时起&#xff0c;Google Maps Platf…

Postgresql源码(132)分布式行锁的原理分析

相关 《Postgresql源码&#xff08;131&#xff09;行锁的原理分析》 1 分布式行锁 PG中的行锁在上一片中做了分析《Postgresql源码&#xff08;131&#xff09;行锁的原理分析》&#xff0c;本篇对分布式PG&#xff08;PGXL&#xff09;中的行锁做一些分析。&#xff08;版本…

CDGA|像治理空气和水一样来治理数据:构建数字时代的新秩序

在数字时代&#xff0c;数据已经渗透到我们生活的方方面面&#xff0c;成为推动社会发展的重要引擎。然而&#xff0c;随着数据的爆炸式增长&#xff0c;如何有效治理数据&#xff0c;确保其安全、可靠和合规&#xff0c;成为摆在我们面前的一大挑战。为了应对这一挑战&#xf…

期望薪资26K,北京疯狂游戏golang一面

北京疯狂游戏一面 1、自我介绍 2、财务业务中&#xff0c;你做了哪些设计来保证金额数据的准确性&#xff1f;&#xff08;例如&#xff0c;业务涉及多步骤&#xff0c;某一步出了问题怎么解决&#xff09; 3、如何解决单个业务直接报错的数据准确性问题 4、分布式场景下&a…

Springboot事务控制中A方法调用B方法@Transactional生效与不生效情况实战总结

介绍 本篇对Springboot事务控制中A方法调用B方法Transactional生效与不生效情况进行实战总结&#xff0c;让容易忘记或者困扰初学者甚至老鸟的开发者&#xff0c;只需要看这一篇文章即可立马找到解决方案&#xff0c;这就是干货的价值。喜欢的朋友别忘记来个一键三连哈&#x…

如何简化不同网间文件摆渡的操作流程,降低IT人员工作量?

为了保护内部核心数据不被泄露&#xff0c;同时有效屏蔽外部网络攻击的风险&#xff0c;企业大多会选择实施网络隔离。将“自己人”与“外人”隔离&#xff0c;具有较强的安全敏感性。有些企业还会在内部网络中进一步划分&#xff0c;比如划分为研发网、办公网、生产网等&#…

【基于 PyTorch 的 Python 深度学习】9 目标检测与语义分割(2)

前言 文章性质&#xff1a;学习笔记 &#x1f4d6; 学习资料&#xff1a;吴茂贵《 Python 深度学习基于 PyTorch ( 第 2 版 ) 》【ISBN】978-7-111-71880-2 主要内容&#xff1a;根据学习资料撰写的学习笔记&#xff0c;该篇主要介绍了优化候选框的几种方法。 一、优化候选框的…

Java 面向对象编程(OOP)

面向对象编程&#xff08;Object-Oriented Programming&#xff0c;OOP&#xff09;是Java编程语言的核心思想之一。通过OOP&#xff0c;Java提供了一种结构化的编程方式&#xff0c;使代码更易于维护和扩展。 一、类和对象 1. 类的定义 类是对象的蓝图或模板&#xff0c;定…

回收站删掉的照片还能找回来吗?掌握这5个方法,很简单!

“我一不小心在回收站中误删了一些照片&#xff0c;这些照片对我来说是比较重要的&#xff0c;不知道这些还有机会将它们找回来吗&#xff1f;” 当我们不小心将珍贵的照片从计算机的回收站中误删时&#xff0c;那种瞬间的心痛和焦虑难以言表。这些照片可能记录了我们生活中的重…

大数据开发面试题【Kafka篇】

83、介绍下Kafka&#xff0c;Kafka的作用?Kafka的组件?适用场景? kafka是一个高吞吐量、可扩展的分布式消息传递系统&#xff0c;在处理实时流式数据&#xff0c;并能够保证持久性和容错性 可用于数据管道、流分析和数据继承和关键任务应用&#xff08;发布/订阅模式&#…

雷达基数据绘制成雷达图

x波段雷达基数据绘制成雷达图 1.雷达基数据格式Z_RADR_I_ZR001_20240521020002_O_DOR_YLD2-D_CAP_FMT.bin.bz2 2.基数据读取 python f StandardData(i) # 新版本标准数据radarTime f.scantime # 获取雷达时次date_str radarTime.strftime(%Y-%m-%d %H:%M:%S)date_str d…

盘点10大灵动惊艳小演员❗谁是你的心头好?

盘点国内影视那些惊艳观众的小演员们无疑为影视作品注入了新的活力。以下是10个备受赞誉的小演员&#xff1a; 1.韩昊霖&#xff1a;凭借在《我和我的祖国》和《庆余年》中的出色表现 韩昊霖的演技赢得了观众和业界的广泛认可 他能够准确地把握角色的情感和细节&#xff0c;展…