Networking 将数据从一台机器发送到多台机器,如何找到拥塞因素?

Networking 将数据从一台机器发送到多台机器,如何找到拥塞因素?,networking,network-programming,Networking,Network Programming,我不是一个网络人,所以不会使用网络术语来保证安全。我有一台带有相当现代的以太网卡(100Mbps?)的机器,我正在将数据从这台机器发送到许多具有类似网络容量的机器(50-500)。为此,我的程序使用多个TCP通道。没有其他有趣的TCP优化,只是简单的多个TCP通道。我想确定,在我可以向这些机器发送多少数据方面,有哪些限制因素 我能想到的一个因素就是主机上的拥塞。但到底有多拥挤?决定交通拥堵的因素有哪些?我在这里做的任何其他假设或错误假设 编辑:以下是我对网络体系结构的了解: 源计算机是大学网络的

我不是一个网络人,所以不会使用网络术语来保证安全。我有一台带有相当现代的以太网卡(100Mbps?)的机器,我正在将数据从这台机器发送到许多具有类似网络容量的机器(50-500)。为此,我的程序使用多个TCP通道。没有其他有趣的TCP优化,只是简单的多个TCP通道。我想确定,在我可以向这些机器发送多少数据方面,有哪些限制因素

我能想到的一个因素就是主机上的拥塞。但到底有多拥挤?决定交通拥堵的因素有哪些?我在这里做的任何其他假设或错误假设

编辑:以下是我对网络体系结构的了解:
源计算机是大学网络的一部分。有一个防火墙,但传输通过的端口是开放的。我不完全确定我的数据将通过哪种交换机或路由器到达最终目的地。说到目的地,这些机器在地理上分布到不同的大学,因此它们也在大学基础设施之下。我知道我上面提供的信息没有具体内容,但这是我目前所知道的全部。在我的主机(linux机器)上是否有任何特定的命令可以用来获取更多信息?谢谢。

一般来说,任何网络路径的速度都将限制在该路径中最慢的元素。这包括CPU、路由器、硬盘驱动器、防火墙以及来自其他流量的竞争。在任何网络路径中都有几十到几百个组件。它们的可用容量可以而且将迅速变化(以毫秒为单位),因此没有一个答案

您可以通过确定每条路径中最慢的链路速度来猜测上限。例如,如果给定网络具有每秒10兆比特的上行链路,那么您知道,无论任何其他硬件的速度有多快,任何通过该上行链路的路径都将低于每秒10兆比特。如果有多个会话共享一条链路,它们的总速度不能超过该链路,但它们可能无法平均共享带宽

因为变量太多,其中许多取决于应用程序的特定行为,所以了解其行为的唯一方法是对其进行测试,并记住许多变量将超出您的控制范围

这是一个我经常听到的问题,所以我写了几篇关于这个问题的文章

描述大多数网络路径上常见的性能限制设备。这可能会帮助您找出需要在哪里查找信息


描述如何收集和解释有关特定路径的统计信息,以诊断其性能特征。这可能有助于您选择性能度量工具并解释其结果。

一般来说,任何网络路径的速度都将限制在该路径中最慢的元素。这包括CPU、路由器、硬盘驱动器、防火墙以及来自其他流量的竞争。在任何网络路径中都有几十到几百个组件。它们的可用容量可以而且将迅速变化(以毫秒为单位),因此没有一个答案

您可以通过确定每条路径中最慢的链路速度来猜测上限。例如,如果给定网络具有每秒10兆比特的上行链路,那么您知道,无论任何其他硬件的速度有多快,任何通过该上行链路的路径都将低于每秒10兆比特。如果有多个会话共享一条链路,它们的总速度不能超过该链路,但它们可能无法平均共享带宽

因为变量太多,其中许多取决于应用程序的特定行为,所以了解其行为的唯一方法是对其进行测试,并记住许多变量将超出您的控制范围

这是一个我经常听到的问题,所以我写了几篇关于这个问题的文章

描述大多数网络路径上常见的性能限制设备。这可能会帮助您找出需要在哪里查找信息


描述如何收集和解释有关特定路径的统计信息,以诊断其性能特征。这可能有助于您选择性能度量工具并解释其结果。

请更详细地描述网络体系结构。它是一个所有节点都位于同一局域网上的交换网络吗?如果没有,它们是如何连接的,例如,通过内部网络中的路由器,通过限制为X Mbps的互联网上行链路,等等。感谢您的查看和评论,我编辑了我的问题。您最好使用bmon之类的带宽计工具进行一些测量。在不同的时间重复几次。请更详细地描述网络架构。它是一个所有节点都位于同一局域网上的交换网络吗?如果没有,它们是如何连接的,例如,通过内部网络中的路由器,通过限制为X Mbps的互联网上行链路,等等。感谢您的查看和评论,我编辑了我的问题。您最好使用bmon之类的带宽计工具进行一些测量。在不同的时间重复几次。