较小的networking数据包vs较大的数据包 – 困惑

有人说,更大的数据更好,然后发送更小。

但在这个应用程序: http : //media.pearsoncmg.com/aw/aw_kurose_network_2/applets/message/messagesegmentation.html

数据包大小越小,到达目的地所需的时间越less。 所以我不明白为什么要更大的尺寸? 你能解释给我吗? 谢谢

有很多事情要考虑。 重要的是:

MTU

特定介质的MTU决定了可以向下发送的最大数据包的大小。 在互联网上,这通常是1500字节,尽pipe如果涉及其他技术(如PPPoA),这可能会有所不同。 如果数据大于MTU需要发送,数据将被分割成多个数据包 – 这需要时间。

高架

你传输的所有东西都有一个开销 – 通常是描述你发送的元数据。 一次发送更大量的数据可减less此开销,从而减less所需的networking带宽。

故障

根据您使用的协议,您可能会检测并弥补丢失的数据包。 如果一次发送更大量的数据,那么在发生故障时还有更多的数据需要重新发送。 同样,如果发送的数据量较小,那么失败的可能性就会增加。

需求

客户端应用程序可能需要快速或批量获取数据。 例如,videostream尽可能快地需要less量的数据来开始播放video。 消息系统(如IRC)在完全接收之前不能显示消息。 因此,videostream适合较小的分组,并且消息可以适合较大的分组。

协议

你使用的协议决定了要发送的数据的大小。 例如,对于TCP,如果你有一个小的窗口大小,你会有更多的确认开销。 如果窗口大小很大,则会遇到上述失败重新发送的问题。

一辆汽车可以比卡车快得多。 但如果你需要从纽约到洛杉矶两吨的南瓜,一辆卡车要比汽车快得多。 为什么? 因为卡车虽然速度较慢,但​​携带较多,因此需要较less的行程。

对于像voip电话和即时消息这样的东西,你需要更小的数据包。 他们旅行速度更快,但数据量更less。 你将需要更多,但每个单独的一块到达那里更快。

这可以优化延迟 – 单个单词或声音到达目的地需要多长时间。

较大的数据包针对吞吐量进行优化 – 整个信息集到达需要多长时间。 这对于诸如文件传输之类的文件是有用的,其中文件的一部分不好。 除非你拥有所有的东西,否则你什么也做不了。

VOIP尤其使用较小的分组。 如果你一直等到你有很多的数据发送,那么从你开始发送的时间到你完成的时间,转移的速度会更快 – 但是在你完成判决并开始发送之前,那个在另一端的人将听不到任何声音。

这很简单,每个数据包都有一些开销。 数据包传输的时间取决于数据包的大小和networking延迟。

所以,一个小包将会以最快的速度到达目的地。 但是,如果你有很多的数据发送许多小包的开销将加起来是显着的。 如果发送较less的数据包,则开销将保持较小,整体传输将更快。

总结:

  • 对于小数据量来说,小数据包是最快的
  • 对于大量的数据,大数据包是最快的