小编tom*_*szu的帖子

Python中的QUIC流量生成,低吞吐量

我正在编写一个简单的速度测试程序,该程序应该测量两个设备之间的快速吞吐量。有一个 python 脚本可以启动客户端或服务器端。客户端产生流量,服务器测量它接收到的流量。就如此容易。但不知何故,即使我在同一台机器上运行服务器和客户端,它的上限也为 ca。115 MB/秒。在同一台机器上,当我生成 TCP 或 UDP 流量时,其流量约为 30 Gb/s,因此带宽不是问题。我使用的库是 aioquic,不幸的是它几乎没有文档记录。问题是如何提高吞吐量?我主要担心 #HERE 注释周围的一些代码。看起来 Transmission() 是一个阻塞函数,但是当我没有暂停/继续机制或某种粗略的 sleep() 时,程序就会挂起,甚至产生低流量。

from connector import * #my base class
import asyncio as asc
import aioquic.asyncio
from aioquic.quic.configuration import QuicConfiguration
import ssl

class QUIC_client(client):
    def __init__(self, host, port, use_json):
        super().__init__(host, port, use_json)
        self.traffic_type = 'quic'
        self.payload = b'p'*(self.quic_payload_size-1)+b'\n'

        self.config = QuicConfiguration(
            is_client = True,
            verify_mode = ssl.CERT_NONE
            )

    async def _maintask(self, time):
        self._infomessage(f'connecting to server {self.host}:{self.port}')
        async with aioquic.asyncio.connect(host=self.host, port=self.port, configuration=self.config) as client:
            await client.wait_connected() …
Run Code Online (Sandbox Code Playgroud)

python asynchronous quic

5
推荐指数
0
解决办法
2596
查看次数

标签 统计

asynchronous ×1

python ×1

quic ×1