有人说,更大的数据包更好,然后发送更小。
但在这个应用程序: 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的数据包,则开销将保持较小,整体传输将更快。
总结: