虽然也有类似的问题,但我未能找到一个问题来总结数据传输协议的不同选择及其在速度、安全性和可靠性方面的优缺点。
作为一名开发人员,我创建了一个web服务,在服务器端生成一个文件,大小从500 5Gb到5GB不等。我正在研究将文件传输到客户端的不同选项。
据我所知,传输层中最突出的两种解决方案是TCP和UDP,TCP提供了更可靠的传输,并在时间上付出了代价,而UDP牺牲了可靠性以保证速度。
在应用层,我知道UDP的实现,提供可靠的传输,如RUDP和UDT。
非常重要的是要提到可以使用的协议,而无需客户端进行安装或特殊配置,以便从服务器端获取数据。
我的问题是:
目标是
对于实现,我目前使用JAX和Glassfish作为应用服务器。
发布于 2013-10-29 11:56:02
您的整个问题似乎已经决定TCP“太慢”,而UDP是您的救星。你的问题缺少重要的细节:
至于1,如果是,那就忘了UDP吧。TCP的速度相对较慢,因为它保证按顺序(只要存在连接)进行数据传递,这是您永远无法使用UDP的。请参阅哪个套接字编程最好(TCP/UDP)?
对于2和3,一些问题可能通过应用不同的序列化程序、格式化程序或传输来解决,但这完全取决于您如何实现服务和客户端。
对于4,我不认为TCP太慢。一旦窗口足够大,并且达到了速度,当输入适当大小的数据时,它将使用所有可用的带宽。例如,参见UDP和TCP相比,速度有多快?。
现在请回答你们的问题:
是否有任何基于UDP的应用层协议在客户端开箱即用,如HTTP或FTP?
取决于你的盒子。
是否有任何基于TCP的协议与UDP协议提供类似的速度?
是的,例如视频流协议,那里的损失是可控的。
UDP协议提供了像Https这样的数据传输的安全方式吗?
TCP和UDP是传输,他们不在乎你传输什么。安全性是层次分明的,例如,请参见数据报传输层安全性。
https://stackoverflow.com/questions/19657035
复制相似问题