我正在开发一个应用程序,将几个大文件从家庭网络上传到服务器。
我可以选择以下任何策略:
- 按顺序上传每个文件。
- 并行上传所有这些内容。
哪一个更快,注意到瓶颈是家庭网络。
我正在开发一个应用程序,将几个大文件从家庭网络上传到服务器。
我可以选择以下任何策略:
哪一个更快,注意到瓶颈是家庭网络。
Answers:
在您的情况下,可能需要按顺序上传。
消费者硬件并不总是能够运行许多并发连接,并且可能会停止/崩溃。如果限制同时文件的数量,那么上传并行将始终更快。
原因如下:
使用TCP / IP进行传输时,会发生以下情况:
第一个数据包被发送到目的地,连接等待确认包在发送下一个数据包之前返回。
然后它发送2个数据包并等待确认。然后它发送3,然后是4,然后是5等...它会不断增加数据包的数量,直到返回的确认数据包显示并非所有数据包都已收到。当发生这种情况时,速度会降低并再次尝试。
过去,当上述情况发生时,它将再次从1开始并加快速度。较新的技术首先将数据包的数量减半并再次尝试,逐渐提高速度。
考虑到额外的流量,可以减少这种传输的带宽,很可能在整个时间内不能保持全速。
如果同时传输2个或更多文件,则可以更有效地利用可用带宽。如果单个传输停止,并且速度显着降低,则存在释放带宽的时刻,该传输不使用该带宽。其他进程可能会占用带宽,从而使传输速度变慢。但是如果传输了2个或更多文件,则组合速度或多或少保持相同的可能性更大,这意味着即使其中一个传输速度变慢,另一个传输也可能获得剩余带宽。