Language agnostic TCP慢启动、拥塞避免和;确定带宽

Language agnostic TCP慢启动、拥塞避免和;确定带宽,language-agnostic,tcp,network-programming,network-protocols,Language Agnostic,Tcp,Network Programming,Network Protocols,是否有一个公式可用于确定需要通过TCP连接传输的最小段/字节数,以确定其带宽,并考虑慢启动和拥塞避免?我知道,但如果可能的话,我想在应用程序中加入一些简单的东西,以获得大致的下降数字。一个使用示例是从Web服务器下载一些数据,以确定自动下载一堆小文件的最佳线程数。这与我之前发布的一个问题有关:我不认为需要发送固定数量的字节来确定带宽。这个数字取决于网络类型和速度 是对某个时间间隔内传输的某些资源的度量。为了得到真实的数据,你需要测量它。以下是如何做到这一点我不认为需要发送固定数量的字节来确定带宽

是否有一个公式可用于确定需要通过TCP连接传输的最小段/字节数,以确定其带宽,并考虑慢启动和拥塞避免?我知道,但如果可能的话,我想在应用程序中加入一些简单的东西,以获得大致的下降数字。一个使用示例是从Web服务器下载一些数据,以确定自动下载一堆小文件的最佳线程数。这与我之前发布的一个问题有关:

我不认为需要发送固定数量的字节来确定带宽。这个数字取决于网络类型和速度


是对某个时间间隔内传输的某些资源的度量。为了得到真实的数据,你需要测量它。以下是如何做到这一点

我不认为需要发送固定数量的字节来确定带宽。这个数字取决于网络类型和速度


是对某个时间间隔内传输的某些资源的度量。为了得到真实的数据,你需要测量它。下面是如何做到这一点的

你可以启动scholar.google.com并搜索“TCP chirp”。然而,这需要雇佣定时器,如果您不编写内核tcp拥塞控制算法,您就必须在用户空间中重新实现tcp。而这本身可能不会带来好的结果(通用操作系统在实时雇佣定时器相关的东西方面不是很好,在用户空间中运行)

从理论上讲,使用TCP啁啾,您只需要4-5段(通常,您可以通过更长的段序列获得更好的分辨率)来确定“最佳”带宽


在任何情况下,由于您不知道使用了哪条路径(即卫星链路或正向电视广播),您可能需要大量数据(10+MB,甚至1GB)才能在任意路径上获得适当的测量。(卫星可以有很多dozend MB/s带宽,但也有1000-3000 ms范围内的延迟;TCP需要几次往返时间才能打开cwnd(我想在开始测量之前大约需要10个RTT)。

你可以启动scholar.google.com并搜索“TCP chirp”但是,这需要雇佣定时器,如果你不编写内核tcp拥塞控制算法,你就必须在用户空间中重新实现tcp。而这本身可能不会带来好的结果(通用操作系统不太擅长实时雇佣定时器相关的东西,在用户空间中运行)

从理论上讲,使用TCP啁啾,您只需要4-5段(通常,您可以通过更长的段序列获得更好的分辨率)来确定“最佳”带宽


在任何情况下,由于您不知道使用了哪条路径(即卫星链路或正向电视广播),您可能需要大量数据(10+MB,甚至1GB)才能在任意路径上获得适当的测量。(卫星可以有很多dozend MB/s带宽,但也有1000-3000 ms范围内的延迟;TCP需要几次往返时间才能打开cwnd(我想在开始测量之前大约需要10个RTT)…

外观非常有趣。我不是在尝试做一些通用的事情,在任何可能的情况下都能工作,比如说在80%最常见的情况下,通过地面网络的标准有线或无线连接。外观非常有趣。我不是在尝试做一些通用的事情,在任何情况下都能工作可能的情况,比如说80%最常见的情况,通过地面网络的标准有线或无线连接。