问题标签 [qos]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2532 浏览

c++ - 在Linux中寻找流量控制函数(即QOS)库

我尝试将一些 C++ 代码从 Windows 移植到 Linux,但在 Linux 中找不到用于流量控制功能的类似 API。

我需要这些功能。如果您知道我在哪里可以找到这样的 API,请帮忙?

感谢您的时间。

0 投票
0 回答
831 浏览

sockets - 用于多播奇怪行为的 Qos(qWAVE API)

在 Windows7 64 位操作系统中,我使用 qWAVE api 为具有正常流量 udp 的传出数据包设置 DSCP 值,它工作正常。

但是,我正在尝试对多播流量做同样的事情,但它看起来很奇怪!

代码逻辑流程如下:

  1. 创建套接字并加入多播组
  2. 再创建一个socket,添加socket时qWAVE报错

在一台 PC 上,运行第 1 步将使第 2 步在 10~20 秒内失败。我猜这个问题是由于 qWAVE 的实施,我不确定。如果有任何提示,谢谢。

下面是我的代码:

0 投票
1 回答
533 浏览

c++ - 通过 UPnP 提高 QoS 以提高无线局域网上的 VoIP 质量

我正在开发一个同时进行 VoIP、Cam-streaming 和文件传输的应用程序。目前它在 Windows、OS X、Android 和 iPhone/iPad 下运行。正如您可能理解的那样,这会产生相当多的网络流量,特别是如果同一 LAN 上的几个人同时进行此操作。结果,VoIP 质量受到影响。

我认为最好的理论解决方案是礼貌地询问本地 wi-fi 路由器是否可以优先处理 VoIP 流量。不幸的是,大多数流量流,包括用于 VoIP 和视频的 SIP,都经过加密并通过 TCP 发送。所以路由器无法弄清楚 TCP/UDP 流做什么。

我已经简要介绍了 UPnP QoS。从规格来看,这正是我所需要的。但我不知道它是否广泛适用于当今的家用路由器。我也不知道它是否真的按我想要的方式工作。简单地说:对于 VoIP,我想通过它的端点指定一个流,并告诉 wi-fi 路由器/家庭网络给它最小的延迟。

所以我的问题真的是:

  • 是否值得进一步深入研究 UPnP QoS?
  • 这是否被现代家庭 LAN 硬件(wi-fi 路由器)广泛采用?
  • 有没有更好的方法可以考虑?

我还注意到三星为此申请了一项专利,我对此表示担忧。

我还没有为 UPnP 和 QoS 找到任何非常好的 API,但我想可以用 curl 或 boost::asio 来做一些事情。如果我这样做了,是否有兴趣为此目的使用 C++ 开源库?

0 投票
1 回答
4205 浏览

node.js - mqtt.js 节点 - 使用消息传递 qos

我正在使用 MQTT.js 为我的新应用程序创建代理。在过去的几个小时里,我一直在努力传递 QoS 标志。我可以轻松传递 messageId、dup、保留标志,但不能传递 QoS。我的代码相当简单,在客户端(使用 MQTT.js 创建)我这样做:

在服务器上,我正在执行以下操作:

无论我在客户端上设置什么 QoS,我总是在服务器上得到 0。我期待这能开箱即用。有人有这方面的经验吗?

谢谢你。

0 投票
0 回答
162 浏览

voip - 使用 prio qdisc 进行 voip

我的家庭网络上有一个Ooma VoIP 设备。我不希望它充当互联网的路由器,因为我已经有一个运行良好的双 nic linux 盒子。我确实想开始使用优先级 qdisc 将来自 ooma 设备的所有流量设为高优先级,将种子设为低优先级,并将其他一切设为正常优先级。我尝试了各种设置,但我一定做得不太对,因为我尝试的所有操作都将几乎所有的数据包都转储到了中等优先级。在我的 linux 机器(CentOS 6)上,eth1 是内部网络,eth0 连接到互联网。

谢谢!

0 投票
1 回答
11352 浏览

rabbitmq - Pika + RabbitMQ:将 basic_qos 设置为 prefetch=1 似乎仍然会消耗队列中的所有消息

我有一个 python 工作程序客户端,它启动了 10 个工作程序,每个工作程序连接到一个 RabbitMQ 队列。有点像这样:

我遇到的问题是,尽管在通道上设置了 basic_qos,但第一个启动的工作人员接受了队列外的所有消息,而其他工作人员则坐在那里闲置。我可以在 rabbitmq 界面中看到这一点,即使我设置worker_count为 1 并将 50 条消息转储到队列中,所有 50 条消息都进入“未确认”存储桶,而我希望 1 变为未确认,而其他 49 条消息准备好。

为什么这不起作用?

0 投票
0 回答
375 浏览

flash - 优化 Flash/RTMFP 中可用带宽的质量

我正在使用 ActionScript 开发一个简单的一对一 P2P 视频聊天,并且我想确保在给定带宽的情况下为同行提供最佳视频质量。这表示:

  1. 在聊天开始时根据可用带宽设置最佳质量
  2. 通过降低质量来应对聊天期间的网络拥塞。

该任务类似于动态流切换,但 P2P 有其特点,使动态流方法不起作用。例如,在动态流切换中监控的 maxBytesPerSecond 指标在 P2P 中非常无用,其中接收 NetStream 的缓冲区大小设置为 0 以最小化延迟。

到目前为止,看起来 P2P 最可靠的 QoS 指标是 SRTT。在我在本地网络上进行的模拟测试中,当引入带宽限制时,带宽拥塞会使其达到 500 毫秒甚至更多。但是,它没有提示如何最好地调整 in 的值bandwidthCamera.setQuality(0, bandwidth)响应拥塞。

我做了很多实验,但我仍然没有看到一个清晰简单的解决问题的方法。我还想知道如何在其他 RTMFP 聊天解决方案中解决这个问题(如果有的话)。

0 投票
1 回答
1964 浏览

networking - 在 Linux 中禁用流量控制

我已经读过 Linux 中的流量控制功能将尝试调整出口流量以消除突发,并具有自己的队列机制。

我试图以更高的速率产生流量,因此在我的情况下,流量控制将是一个瓶颈。

我怎样才能禁用它,以便 linux 中的流量控制不进行排队?

0 投票
1 回答
2602 浏览

python - scapy接收等待2个数据包

我正在尝试使用 scapy 执行 http QoS。对于扫描仪,我需要获取连接时间、我的 GET 之间的时间、发送数据的开始(来自服务器的 ACK)和最后:数据的结束。

我写的是:

在wireshark中,我可以在我的GET之后看到一个ACK数据包(由“reply = sr(request,verbose = 0)”捕获)和一个必须是响应结束的HTTP数据包(如HTTP /1.0 200 OK)之后。

我的问题是,有时,这个 HTTP 数据包在解释嗅探行之前出现(http_fin = sniff(filter="tcp and host 88.191.132.65", count=1),所以这些命令什么都没有等待。

我想也许我可以用 sr 命令捕获 2 个数据包,但我不确定。有人看到另一种方式吗?

0 投票
2 回答
2238 浏览

python - Scapy 等待多个数据包

为了执行 HTTP GET,我需要发送一个数据包(GET / HTTP/1.0\n\n)并等待 3 个数据包:

我的 GET 的 ACK

GET 答案:HTTP/1.0 200 OK

和传输的 FIN ACK

我找到了两种方法:

=> 将 sr() 与多选项一起使用

=> 在发送我的 GET 请求后使用嗅探

  • 对于 sr() 函数,问题是停止嗅探,唯一的选择是设置超时,但我的脚本将测试许多不同的站点,因此时间的答案有很多不同,可能很难选择静态超时值,其中我敢肯定,任何时候都没有网站超过它。

  • 对于嗅探,没有同样的问题,因为我可以设置“计数”参数只接收 3 个数据包。但是很难使过滤器足够好以确保记录的 3 个数据包是我想要的 3 个(并且没有 ARP、DNS 或其他任何东西)。但主要问题有时是第一个应答数据包出现在“嗅探”启动之前(在 send(GET_PACKET) 和 answers=sniff(...) 之间)。在这种情况下,我丢失了一些信息,我的所有后处理都被破坏了。

完美的方法是使用带有“count=3”选项的 sr() 函数来仅获取 3 个数据包,但 sr() 不存在该选项。

有人有想法吗?

非常感谢

对不起我的语言,我是法国人