netperf

1.2性能测试工具iPerf和Netperf使用介绍 对比可以看出同一时间段内主机1与主机2、主机1与主机3的带宽接近,不过主机1与主机2、主机1与主机3之间的带宽都不稳定,不同时间段的带宽相差比较大。场景二 UDP测试。 阅读详情

  Netperf是一种网络性能的测量工具,主要针对基于TCP或UDP的传输。Netperf工具以client/server方式工作。server端是netserver,用来侦听来自client端的连接,client端是netperf,用来向server发起网络测试。测试过程中,在服务器上运行serverperf,同时在客户端上运行netperf。

   一 安装

   netperf官方下载地址:http://www.netperf.org/netperf/NetperfPage.html

   tar -xzvf netperf-2.4.5.tar.gz

   cd netperf-2.4.5

   ./configure

   make

   make install

 二 使用

    在服务器上执行同样操作,将netperf安装到服务器上,

    cd src 

    运行:./netserver

    在客户端上运行:./netperf -H 服务器IP

    关于netperf的具体使用及其各种参数,给大家介绍一个很好的网页:

    http://www.ibm.com/developerworks/cn/linux/l-netperf/ 上面说的很详细。

在构建或管理一个网络系统时,我们更多的是关心网络的可用性,即网络是否连通,而对于其整体的性能往往考虑不多,或者即使考虑到性能的问题,但是却发现没有合适的手段去测试网络的性能。

当开发出一个网络应用程序后,我们会发现,在实际的网络环境使用中,网络应用程序的使用效果不是很理想,问题可能出现在程序的开发上面,也有可能由于实际的网络环境中存在着瓶颈。面对这种问题,程序员一般会一筹莫展,原因就在于不掌握一些网络性能测量的工具。

在本文中,首先介绍网络性能测量的一些基本概念和方法,然后结合 netperf 工具的使用,具体的讨论如何测试不同情况下的网络性能。

网络性能测试概述

网络性能测量的五项指标

测量网络性能的五项指标是:

  • 可用性(availability)
  • 响应时间(response time)
  • 网络利用率(network utilization)
  • 网络吞吐量(network throughput)
  • 网络带宽容量(network bandwidth capacity)

1. 可用性

测试网络性能的第一步是确定网络是否正常工作,最简单的方法是使用 ping 命令。通过向远端的机器发送 icmp echo request,并等待接收 icmp echo reply 来判断远端的机器是否连通,网络是否正常工作。

Ping 命令有非常丰富的命令选项,比如 -c 可以指定发送 echo request 的个数,-s 可以指定每次发送的 ping 包大小。

网络设备内部一般有多个缓冲池,不同的缓冲池使用不同的缓冲区大小,分别用来处理不同大小的分组(packet)。例如交换机中通常具有三种类型的包缓冲:一类针对小的分组,一类针对中等大小的分组,还有一类针对大的分组。为了测试这样的网络设备,测试工具必须要具有发送不同大小分组的能力。Ping 命令的 -s 就可以使用在这种场合。

2. 响应时间

Ping 命令的 echo request/reply 一次往返所花费时间就是响应时间。有很多因素会影响到响应时间,如网段的负荷,网络主机的负荷,广播风暴,工作不正常的网络设备等等。

在网络工作正常时,记录下正常的响应时间。当用户抱怨网络的反应时间慢时,就可以将现在的响应时间与正常的响应时间对比,如果两者差值的波动很大,就能说明网络设备存在故障。

3. 网络利用率

网络利用率是指网络被使用的时间占总时间(即被使用的时间+空闲的时间)的比例。比如,Ethernet 虽然是共享的,但同时却只能有一个报文在传输。因此在任一时刻,Ethernet 或者是 100% 的利用率,或者是 0% 的利用率。

计算一个网段的网络利用率相对比较容易,但是确定一个网络的利用率就比较复杂。因此,网络测试工具一般使用网络吞吐量和网络带宽容量来确定网络中两个节点之间的性能。

4. 网络吞吐量

网络吞吐量是指在某个时刻,在网络中的两个节点之间,提供给网络应用的剩余带宽。

网络吞吐量可以帮组寻找网络路径中的瓶颈。比如,即使 client 和 server 都被分别连接到各自的 100M Ethernet 上,但是如果这两个 100M 的Ethernet 被 10M 的 Ethernet 连接起来,那么 10M 的 Ethernet 就是网络的瓶颈。

网络吞吐量非常依赖于当前的网络负载情况。因此,为了得到正确的网络吞吐量,最好在不同时间(一天中的不同时刻,或者一周中不同的天)分别进行测试,只有这样才能得到对网络吞吐量的全面认识。

有些网络应用程序在开发过程的测试中能够正常运行,但是到实际的网络环境中却无法正常工作(由于没有足够的网络吞吐量)。这是因为测试只是在空闲的网络环境中,没有考虑到实际的网络环境中还存在着其它的各种网络流量。所以,网络吞吐量定义为剩余带宽是有实际意义的。

5. 网络带宽容量

与网络吞吐量不同,网络带宽容量指的是在网络的两个节点之间的最大可用带宽。这是由组成网络的设备的能力所决定的。

测试网络带宽容量有两个困难之处:在网络存在其它网络流量的时候,如何得知网络的最大可用带宽;在测试过程中,如何对现有的网络流量不造成影响。网络测试工具一般采用 packet pairs 和 packet trains 技术来克服这样的困难。

收集网络性能数据的方式

当确定了网络性能的测试指标以后,就需要使用网络测试工具收集相应的性能数据,分别有三种从网络获取数据的方式:

1. 通过snmp协议直接到网络设备中获取,如net-snmp工具

2. 侦听相关的网络性能数据,典型的工具是tcpdump

3. 自行产生相应的测试数据,如本文中使用的netperf工具

Netperf

Netperf是一种网络性能的测量工具,主要针对基于TCP或UDP的传输。Netperf根据应用的不同,可以进行不同模式的网络性能测试,即批量数据传输(bulk data transfer)模式和请求/应答(request/reponse)模式。Netperf测试结果所反映的是一个系统能够以多快的速度向另外一个系统发送数据,以及另外一个系统能够以多块的速度接收数据。

Netperf工具以client/server方式工作。server端是netserver,用来侦听来自client端的连接,client端是netperf,用来向server发起网络测试。在client与server之间,首先建立一个控制连接,传递有关测试配置的信息,以及测试的结果;在控制连接建立并传递了测试配置信息以后,client与server之间会再建立一个测试连接,用来来回传递着特殊的流量模式,以测试网络的性能。

TCP网络性能

由于TCP协议能够提供端到端的可靠传输,因此被大量的网络应用程序使用。但是,可靠性的建立是要付出代价的。TCP协议保证可靠性的措施,如建立并维护连接、控制数据有序的传递等都会消耗一定的网络带宽。

Netperf可以模拟三种不同的TCP流量模式:

1) 单个TCP连接,批量(bulk)传输大量数据

2) 单个TCP连接,client请求/server应答的交易(transaction)方式

3) 多个TCP连接,每个连接中一对请求/应答的交易方式

UDP网络性能

UDP没有建立连接的负担,但是UDP不能保证传输的可靠性,所以使用UDP的应用程序需要自行跟踪每个发出的分组,并重发丢失的分组。

Netperf可以模拟两种UDP的流量模式:

1) 从client到server的单向批量传输

2) 请求/应答的交易方式

由于UDP传输的不可靠性,在使用netperf时要确保发送的缓冲区大小不大于接收缓冲区大小,否则数据会丢失,netperf将给出错误的结果。因此,对于接收到分组的统计不一定准确,需要结合发送分组的统计综合得出结论。

Netperf的命令行参数

在unix系统中,可以直接运行可执行程序来启动netserver,也可以让inetd或xinetd来自动启动netserver。

当netserver在server端启动以后,就可以在client端运行netperf来测试网络的性能。netperf通过命令行参数来控制测试的类型和具体的测试选项。根据作用范围的不同,netperf的命令行参数可以分为两大类:全局命令行参数、测试相关的局部参数,两者之间使用--分隔:

netperf [global options]-- [test-specific options]

这里我们只解释那些常用的命令行参数,其它的参数读者可以查询netperf的man手册。

-H host :指定远端运行netserver的server IP地址。

-l testlen:指定测试的时间长度(秒)

-t testname:指定进行的测试类型,包括TCP_STREAM,UDP_STREAM,TCP_RR,TCP_CRR,UDP_RR,在下文中分别对它们说明。

在后面的测试中,netserver运行在192.168.0.28,server与client通过局域网连接(100M Hub)。

Netperf测试网络性能

测试批量(bulk)网络流量的性能

批量数据传输典型的例子有ftp和其它类似的网络应用(即一次传输整个文件)。根据使用传输协议的不同,批量数据传输又分为TCP批量传输和UDP批量传输。

1. TCP_STREAM

Netperf缺省情况下进行TCP批量传输,即-t TCP_STREAM。测试过程中,netperf向netserver发送批量的TCP数据分组,以确定数据传输过程中的吞吐量:

 ./netperf -H 192.168.0.28 -l 60
TCP STREAM TEST to 192.168.0.28
Recv   Send    Send
Socket Socket  Message  Elapsed
Size   Size    Size     Time     Throughput
bytes  bytes   bytes    secs.    10^6bits/sec
 
 87380  16384  16384    60.00      88.00
 

从netperf的结果输出中,我们可以知道以下的一些信息:

1) 远端系统(即server)使用大小为87380字节的socket接收缓冲

2) 本地系统(即client)使用大小为16384字节的socket发送缓冲

3) 向远端系统发送的测试分组大小为16384字节

4) 测试经历的时间为60秒

5) 吞吐量的测试结果为88Mbits/秒

在缺省情况下,netperf向发送的测试分组大小设置为本地系统所使用的socket发送缓冲大小。

TCP_STREAM方式下与测试相关的局部参数如下表所示:

参数 说明
-s size 设置本地系统的socket发送与接收缓冲大小
-S size 设置远端系统的socket发送与接收缓冲大小
-m size 设置本地系统发送测试分组的大小
-M size 设置远端系统接收测试分组的大小
-D 对本地与远端系统的socket设置TCP_NODELAY选项

通过修改以上的参数,并观察结果的变化,我们可以确定是什么因素影响了连接的吞吐量。例如,如果怀疑路由器由于缺乏足够的缓冲区空间,使得转发大的分组时存在问题,就可以增加测试分组(-m)的大小,以观察吞吐量的变化:

 ./netperf -H 192.168.0.28 -l 60 -- -m 2048
TCP STREAM TEST to 192.168.0.28
Recv   Send    Send
Socket Socket  Message  Elapsed
Size   Size    Size     Time     Throughput
bytes  bytes   bytes    secs.    10^6bits/sec
 
 87380  16384   2048    60.00      87.62
 

在这里,测试分组的大小减少到2048字节,而吞吐量却没有很大的变化(与前面例子中测试分组大小为16K字节相比)。相反,如果吞吐量有了较大的提升,则说明在网络中间的路由器确实存在缓冲区的问题。

2. UDP_STREAM

UDP_STREAM用来测试进行UDP批量传输时的网络性能。需要特别注意的是,此时测试分组的大小不得大于socket的发送与接收缓冲大小,否则netperf会报出错提示:

./netperf -t UDP_STREAM -H 192.168.0.28 -l 60
UDP UNIDIRECTIONAL SEND TEST to 192.168.0.28
udp_send: data send error: Message too long

为了避免这样的情况,可以通过命令行参数限定测试分组的大小,或者增加socket的发送/接收缓冲大小。UDP_STREAM方式使用与TCP_STREAM方式相同的局部命令行参数,因此,这里可以使用-m来修改测试中使用分组的大小:

 ./netperf -t UDP_STREAM -H 192.168.0.28 -- -m 1024
UDP UNIDIRECTIONAL SEND TEST to 192.168.0.28
Socket  Message  Elapsed      Messages
Size    Size     Time         Okay Errors   Throughput
bytes   bytes    secs            #      #   10^6bits/sec
 
 65535    1024   9.99       114127      0      93.55
 65535           9.99       114122             93.54
 

UDP_STREAM方式的结果中有两行测试数据,第一行显示的是本地系统的发送统计,这里的吞吐量表示netperf向本地socket发送分组的能力。但是,我们知道,UDP是不可靠的传输协议,发送出去的分组数量不一定等于接收到的分组数量。

第二行显示的就是远端系统接收的情况,由于client与server直接连接在一起,而且网络中没有其它的流量,所以本地系统发送过去的分组几乎都被远端系统正确的接收了,远端系统的吞吐量也几乎等于本地系统的发送吞吐量。但是,在实际环境中,一般远端系统的socket缓冲大小不同于本地系统的socket缓冲区大小,而且由于UDP协议的不可靠性,远端系统的接收吞吐量要远远小于发送出去的吞吐量。

测试请求/应答(request/response)网络流量的性能

另一类常见的网络流量类型是应用在client/server结构中的request/response模式。在每次交易(transaction)中,client向server发出小的查询分组,server接收到请求,经处理后返回大的结果数据。如下图所示:


 

1. TCP_RR

TCP_RR方式的测试对象是多次TCP request和response的交易过程,但是它们发生在同一个TCP连接中,这种模式常常出现在数据库应用中。数据库的client程序与server程序建立一个TCP连接以后,就在这个连接中传送数据库的多次交易过程。

./netperf -t TCP_RR -H 192.168.0.28
TCP REQUEST/RESPONSE TEST to 192.168.0.28
Local /Remote
Socket Size   Request  Resp.   Elapsed  Trans.
Send   Recv   Size     Size    Time     Rate
bytes  Bytes  bytes    bytes   secs.    per sec
 
16384  87380  1        1       10.00    9502.73
16384  87380

Netperf输出的结果也是由两行组成。第一行显示本地系统的情况,第二行显示的是远端系统的信息。平均的交易率(transaction rate)为9502.73次/秒。注意到这里每次交易中的request和response分组的大小都为1个字节,不具有很大的实际意义。用户可以通过测试相关的参数来改变request和response分组的大小,TCP_RR方式下的参数如下表所示:

参数 说明
-r req,resp 设置request和reponse分组的大小
-s size 设置本地系统的socket发送与接收缓冲大小
-S size 设置远端系统的socket发送与接收缓冲大小
-D 对本地与远端系统的socket设置TCP_NODELAY选项

通过使用-r参数,我们可以进行更有实际意义的测试:

./netperf -t TCP_RR -H 192.168.0.28 -- -r 32,1024
TCP REQUEST/RESPONSE TEST to 192.168.0.28
Local /Remote
Socket Size   Request  Resp.   Elapsed  Trans.
Send   Recv   Size     Size    Time     Rate
bytes  Bytes  bytes    bytes   secs.    per sec
 
16384  87380  32       1024    10.00    4945.97
16384  87380

从结果中可以看出,由于request/reponse分组的大小增加了,导致了交易率明显的下降。 注:相对于实际的系统,这里交易率的计算没有充分考虑到交易过程中的应用程序处理时延,因此结果往往会高于实际情况。

2. TCP_CRR

与TCP_RR不同,TCP_CRR为每次交易建立一个新的TCP连接。最典型的应用就是HTTP,每次HTTP交易是在一条单独的TCP连接中进行的。因此,由于需要不停地建立新的TCP连接,并且在交易结束后拆除TCP连接,交易率一定会受到很大的影响。

./netperf -t TCP_CRR -H 192.168.0.28 
TCP Connect/Request/Response TEST to 192.168.0.28
Local /Remote
Socket Size   Request  Resp.   Elapsed  Trans.
Send   Recv   Size     Size    Time     Rate
bytes  Bytes  bytes    bytes   secs.    per sec
 
131070 131070 1        1       9.99     2662.20
16384  87380

即使是使用一个字节的request/response分组,交易率也明显的降低了,只有2662.20次/秒。TCP_CRR使用与TCP_RR相同的局部参数。

3. UDP_RR

UDP_RR方式使用UDP分组进行request/response的交易过程。由于没有TCP连接所带来的负担,所以我们推测交易率一定会有相应的提升。

./netperf -t UDP_RR -H 192.168.0.28 
UDP REQUEST/RESPONSE TEST to 192.168.0.28
Local /Remote
Socket Size   Request  Resp.   Elapsed  Trans.
Send   Recv   Size     Size    Time     Rate
bytes  Bytes  bytes    bytes   secs.    per sec
 
65535  65535  1        1       9.99     10141.16
65535  65535

结果证实了我们的推测,交易率为10141.16次/秒,高过TCP_RR的数值。不过,如果出现了相反的结果,即交易率反而降低了,也不需要担心,因为这说明了在网络中,路由器或其它的网络设备对UDP采用了与TCP不同的缓冲区空间和处理技术。

结束语

除了netperf以外,还有很多其它的网络性能测试工具,如dbs, iperf, pathrate, nettest, netlogger, tcptrace, ntop等。这些工具有其各自的特色和不同的侧重点,我们可以根据具体的应用环境,有选择的使用它们,这样就可以使这些工具发挥出最大的功效。虽然都是开放源代码的软件,但是这些工具的功能与商业的网络测试工具同样强大,而且也得到了广泛的应用,熟悉这些工具对我们的实际工作一定会有很大的帮助。


参考资料

  1. Network Performance Open Source Toolkit, Richard Blum, Wiley Publishing, Inc.
  2. netperf website, http://www.netperf.org

netperf的时间测量值得分析 最近载一个项目中发现用netperf测试的网络延时波动较大,于是分析原因, 阅读详情

相关推荐

【山外笔记-工具框架】Netperf网络性能测试工具详解教程

本文下载链接: 【学习笔记】Netperf网络性能测试工具.pdf 一、Netperf工具简介 1、什么是Netperf ? (1)Netperf是由惠普公司开发的一种网络性能测量工具,主要针对基于TCP或UDP的传输。 (2)Netperf根据应用的不同,可以进行不同模式的网络性能测试,即批量数据传输(bulk data transfer)模式和请求/应答(request/reponse)模式。...

山外Sundal的博客 3031

netperf的安装、性能测试、参数、启动报错的坑、实例

netperf介绍 netperf是一个基于client-server模式的网络测试工具,可以测量TCP和UDP传输的吞吐量、时延、CPU占用率等性能参数。 它可以测试以下几种模式的TCP核UDP网络性能: TCP_STREAM:client端向server端发送批量TCP数据 UDP_STREAM:client端向server端发送批量UDP数据 TCP_RR和TCP_CRR:前者是在同一个连接中进行多次request和response请求(并发),后者(新建)是每次请求新建一个连接(HTTP) UDP

仙女肖消乐的博客 2万+

Netperf网络性能测试:从原理到实战的完整指南

网络性能测试是评估和优化网络基础设施的关键环节,它通过量化带宽、延迟、吞吐量等核心指标,帮助工程师诊断瓶颈、验证配置和规划容量。其原理基于客户端-服务器模型,通过模拟真实的数据流模式来测量网络链路的极限性能。这项技术的价值在于为网络优化、硬件选型和故障排查提供客观、可重复的数据依据,广泛应用于数据中心、云计算、金融交易和高性能计算等场景。本文以经典的Netperf工具为例,深入解析其TCP_STREAM和TCP_RR测试模型,并通过实战演示如何部署、调优及解读结果,其中涉及**TCP窗口**调整和**缓冲区

weixin_30781107的博客 402

[转贴]网络性能测试

网络性能测量的五项指标测量网络性能的五项指标是:可用性(availability) 响应时间(response time) 网络利用率(network utilization) 网络吞吐量(network throughput)...

cuiyingchan0663的博客 498

在vxworks上移植netperf工具

最近需要测一下vxworks上的网络性能,在网上搜了一下,发现iperf支持vxworks,但是并没有找到对应的源码,加了一个vxworks的QQ群,里面有人提到自己就是用netperf在vxworks上测试网络性能的,因此决定将netperf移植到vxworks上。 手头上仅有vxworks镜像,且不支持wdb任务,因此没有办法在tornado上直接调试,只能利用tornado生成相关可执行程

benbendlianlian的博客 2615

嵌入式 netperf2交叉编译

1、下载netperf2.5.0.tar.gz,解压缩到/opt/netperf2.5.0 2、cd /opt/netperf2.5.0 ./configure CC=arm-linux-gcc --host=arm-linux --prefix=/usr/local/netperf2 出现如下错误: checking types of arguments for select... int,f

skdkjxy的专栏 2881

netperf使用笔记

一、netperf是什么 netperf是一个基于client-server模式的网络测试工具,可以测量TCP和UDP传输的吞吐量、时延、CPU占用率等性能参数。它可以测试以下几种模式的TCP核UDP网络性能: TCP_STREAM:client端向server端发送批量TCP数据 UDP_STREAM:client端向server端发送批量UDP数据 TCP_RR和TCP_CRR:前者是在同一个...

知识就是生产力 6673

别光看原理图了!手把手教你用Altium Designer搞定STM32F411最小系统的PCB布局(附电源/晶振/复位电路实战)

本文详细介绍了使用Altium Designer进行STM32F411最小系统PCB布局的实战技巧,涵盖电源分配网络优化、高速信号布线及系统级布局策略。通过规范的工程结构建立、关键设计规则预设和核心电路模块布局,帮助工程师提升PCB设计效率与信号完整性。特别针对STM32最小系统的电源、晶振和复位电路提供了专业解决方案。

weixin_42653691的博客 168

netperf使用指南

netperf使用笔记 netperf 是一种非常常见的测量网络带宽的工具,其安装非常简单: 1. 下载netperf包 2. 进入netperf目录,./configure 3. make 4. make install netperf是一个C/S软件,进行test的时候画风是这样的: netperf -H 172.18.11.203 -t TCP_STREAM -

didi8206050的博客 1万+

路径规划:D*Lite寻路算法详解

D*Lite详解目录

mkr67n的博客 2万+

Arduino平台软硬件原理及使用——Arduino Uno板卡的使用

Arduino Uno板卡的基本使用

洪博hopes的博客 4173

netperf的安装与使用

netperf是用来测试网络性能的 带有服务器(netserver)和客户端(netperf)两个命令 安装 1. 前往https://centos.pkgs.org/7/lux/netperf-2.7.0-1.el7.lux.x86_64.rpm.html,复制二进制文件的链接。 2. 打开CentOS的终端,输入 wget http://repo.iotti.biz/Cent...

一个幽灵 1万+

oracle两节点RAC,由于gipc导致某节点crs无法启动问题分析

两节点RAC,其中1 节点集群CRS无法启动。经过分析原因为2节点gipcd进程异常,导致节点之间无法正常通信,重启2节点gipcd.bin后问题得以恢复。 从现象来看,是 ora.crsd...

cuibaye0692的博客 4534

linux的netperf测试,linux下Netperf使用详解

转载自:http://blog.sina.com.cn/s/blog_6b1ccd6501013119.html首先下载 http://www.netperf.org/netperf/DownloadNetperf.html安装:tar zxf … && cd xxx./configure –prefix=/tools/netperf-2.4.1&& make&am...

weixin_33856202的博客 1681

【Ubuntu】SMBus Host controller not enabled(虚拟机进入不了图形界面)

SMBus Host controller not enabled(虚拟机进入不了图形界面)

Cappuccino Blog 4万+

YOLOv11 改进入门篇 | 轻量级涨点技巧:GhostConv 替代普通卷积的实战指南

摘要: 本文介绍如何通过GhostConv改进YOLOv11,实现轻量化涨点。YOLOv11深度增加导致参数量、延迟和内存占用上升,GhostConv通过“本征特征+线性变换”策略,在精度几乎无损的情况下降低30%-50%计算量。文章详细解析GhostConv原理,对比普通卷积的参数量和FLOPs优势,并提供完整的代码级改造流程,包括模块实现、注册及网络配置。实验表明,该方法有效提升边缘端推理效率,适用于移动端等资源受限场景。

shrgegrb的博客 1655

Netperf网络测试

Netperf网络测试

教Linux的李老师 5419

用miniconda建立PyTorch、Keras、TensorFlow三个环境

如果还没有安装Miniconda,请从[Miniconda官网](https://docs.conda.io/en/latest/miniconda.html)下载合适的版本并进行安装。如果遇到问题,可以通过编辑`~/.condarc`文件来临时禁用某个源,或者通过`conda config --remove channels`命令来移除配置的镜像源。要切换到不同的环境,先使用`conda deactivate`命令退出当前环境,再用`conda activate 环境名称`命令激活另一个环境。

数字人生 2464

使用netperf测试网络性能

使用netperf测试网络性能      有时候需要测试两台机器之间的网络性能怎样,包括带宽,延迟等参数。如果每次都写一个程序去测试,还是有点麻烦的,而且不同的人写出的程序性能可能差别比较大,导致测试结果的差别也比较大。好在早就已经有人写好了一个功能和性能都非常好的程序来测试网络性能:netperf,netperf的主页见在这里。具体实现等见文档。     下载安装等就不累述了,在

chenglinhust的专栏 1万+

如何使用tinyalas接口从usb录音的同时从扬声器播放

3、 以上步骤确认完后,就可以修改tinyhostless.c程序,tinyhostless的本质就是边pcm_read(),边pcm_write();但原本tinyhostless只支持对同一声卡进行操作,所有需要修改其代码,改成录音和播放可支持不同声卡,如果是模拟声卡,有回环测试,可以实现边录边播放,但涉及USB声卡时,就没有现场的类似功能,有时候客户因为硬件特殊性,会有从USB录音的同时从扬声器播放出来的需求,本文简要描述如何使用tinyalsa接口实现该需求;

sdrgtywretyeruet的专栏 971

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

linux netperf,linux netperf的安装

[root@server2 opt]#wget ftp://ftp.netperf.org/netperf/netperf-2.4.5.tar.gz[root@server2 opt]# tar xzvf netperf-2.4.5.tar.gz[root@server2 opt]# make && make install按照以上方法分别在两台linux服务器上安装;分为服务端和...

weixin_39823299的博客 607

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

netperf mips 移植

步骤 1. 在ftp://ftp.netperf.org/netperf/ 上下载2.6.0版本,解压 2. mkdir out 3. ./configure --host=mips-linux CC=/usr/local/mipsel-linux/usr/bin/mipsel-linux-gcc --prefix=`pwd`/out 会提示checking whether setpg

铁匠的七寸宫 1433

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

网络性能测试Netperf

网络性能测试Netperf1、Netperf原理2、Netperf安装3、物理专线网络性能测试方法 1、Netperf原理 网络性能测试工具,基于TCP或UDP传输。 Netperf不通模式网络性能测试:(1)批量数据传输模式 (2)请求/应答模式 Netperf工作方式:client/server server端是netserver,用来侦听来自client端的连接,client端是netper...

Mr_XiangShuai的博客 2953

Netperf使用总结

Netperf是由惠普公司开发的一种网络性能测量工具,主要针对基于TCP或UDP的传输。Netperf根据应用的不同,可以进行不同模式的网络性能测试,即批量数据传输(bulk data transfer)模式和请求/应答(request/reponse)模式。Netperf测试结果所反映的是一个系统能够以多快的速度向另外一个系统发送数据,以及另外一个系统能够以多块的速度接收数据。

流水灯 1629
上一篇: Open vswitch 之Qos rate-limiting 原理
下一篇: pcap_loop
HeyITMan
博客等级 码龄14年 5粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值