Networking 如何模拟网络问题,如数据包丢失、音频流传输时的延迟?

Networking 如何模拟网络问题,如数据包丢失、音频流传输时的延迟?,networking,video-streaming,audio-streaming,Networking,Video Streaming,Audio Streaming,我有音频文件,我想对其应用一些网络问题,如数据包丢失、抖动、延迟。。 我需要emulator在我的音频文件上应用此网络条件。。请选择最适合我工作的模拟器,并将其安装在windows上…假设您正在研究如何实现这一点,正如标题所示,并且不想在此处启动模拟器/模拟器仇恨战。我建议你看看 它有一个用于简单任务的命令行界面和一个python API,可以让您自定义网络的大部分方面(如带宽容量、延迟、丢失率等)。 您只需设置两个(或更多)主机,使用链接连接它们并配置链接属性。这是一种根据您的要求获得不同延迟

我有音频文件,我想对其应用一些网络问题,如数据包丢失、抖动、延迟。。
我需要emulator在我的音频文件上应用此网络条件。。请选择最适合我工作的模拟器,并将其安装在windows上…

假设您正在研究如何实现这一点,正如标题所示,并且不想在此处启动模拟器/模拟器仇恨战。我建议你看看

它有一个用于简单任务的命令行界面和一个python API,可以让您自定义网络的大部分方面(如带宽容量、延迟、丢失率等)。 您只需设置两个(或更多)主机,使用链接连接它们并配置链接属性。这是一种根据您的要求获得不同延迟的简单方法。此外,您可以将链路丢失百分比设置为0-100%。但是,如果您正在考虑删除一个特定的数据包,那么您必须在传输协议的帮助下在主机本身进行删除,或者创建一个自定义控制器(交换机实现)

下面是一个使用python API的代码片段,可能会帮助您入门:

从mininet.topo导入topo
从mininet.net导入mininet
从mininet.node导入CPULimitedHost
从mininet.link导入TCLink
从mininet.util导入irange
类别MySingleSwitchTopo(Topo):
“连接到k台主机的单个交换机。”
def构建(自,k=2,***选择):
“k:主机数”
self.k=k
switch=self.addSwitch('s1')
对于irange(1,k)中的h:
host=self.addHost('h%s'%h]
self.addLink(主机、交换机、丢失=0.1、延迟=20、bw=5)#创建延迟为20ms、丢失率为0.1%、带宽容量为5Mb的链路
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
topo=MySingleSwitchTopo()
net=Mininet(topo=topo,host=CPULimitedHost,link=TCLink)
net.start()
h1,h2=net.get('h1','h2')
h1.cmd('iperf-s&')#替换为您的音频服务器应用程序
out=h2.cmd('iperf-c'+h1.IP())#替换为您的音频客户端应用程序
打印(输出)#客户端应用程序的输出
net.stop()

StackOverflow的主题与询问工具建议无关。也许可以看看。