有些人说,发送较大的数据包比发送较小的数据包更好。
但在这个应用程序中:http://media.pearsoncmg.com/aw/aw_kurose_network_2/applets/message/messagesegmentation.html
数据包大小越小,到达目的地所需的时间就越短。所以我不明白为什么更喜欢更大的尺寸?你能给我解释一下吗?谢谢
有很多事情需要考虑。重要的是:
最大传输单元
特定介质的 MTU 决定了可以通过该介质发送的最大数据包的大小。在 Internet 上,该值通常为 1500 字节,但如果涉及 PPPoA 等其他技术,该值可能会有所不同。如果需要发送大于MTU的数据,数据将被分成多个数据包——这需要时间。
高架
您传输的所有内容都有开销 - 通常是描述您发送的内容的元数据。一次发送大量数据可以减少这种开销,从而减少所需的网络带宽。
失败
根据您使用的协议,您可以检测并补偿丢失的数据包。如果一次发送大量数据,则在失败时需要重新发送更多数据。同样,如果发送的数据量较小,则失败的可能性就会增加。
要求
客户端应用程序可能需要快速或批量获取数据。例如,视频流需要尽快提供少量数据才能开始播放视频。IRC 等消息传递系统在完全接收消息之前无法显示消息。因此,视频流适合较小的数据包,而消息传递可能适合较大的数据包。
协议
您使用的协议决定了要发送的数据大小。例如,对于 TCP,如果窗口尺寸较小,则确认的开销会更大。如果您的窗口尺寸较大,则会遇到上述重新发送失败的问题。