请教unix系统下高效数据传输的方法

qfxx 2006-01-11 04:23:12
unix系统进行大数据量的传输
有没有比socket更快的传输方法
前提保证数据的准确性
即数据不能出错
请教各位高手谢谢了
...全文
173 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
fierygnu 2006-01-12
  • 打赏
  • 举报
回复
要得到对方确认才会发送下一个数据包
----
错。TCP用窗口机制进行流控,在窗口未满之前可以持续发送。
建议再深入看看TCP。

如果一定要用UDP,需要自己解决确认、超时、重传、排序、重复等等问题。我记得UNIX Network Programming Vol1里好像有一个实现例子。
qfxx 2006-01-12
  • 打赏
  • 举报
回复
yjf7888(断刀)
你说的升级硬件
是要升级网卡还是什么其它的硬件
一般网络传输的瓶颈在什么地方
qfxx 2006-01-12
  • 打赏
  • 举报
回复
因为tcp是面向连接的可靠传输协议
要保证可靠的话在每次tcp传输数据包时
要得到对方确认才会发送下一个数据包
如果得不到确认或出现错误会重发
因此效率低是肯定的
fierygnu 2006-01-12
  • 打赏
  • 举报
回复
因为数据量太大用UDP是肯定的
----
为什么?
yjf7888 2006-01-12
  • 打赏
  • 举报
回复
1)udp
2)升级硬件
qfxx 2006-01-12
  • 打赏
  • 举报
回复
数据通信肯定会经过传输层
传输层上的两个主要协议tcp和UDP
因为数据量太大用UDP是肯定的
但是担心用socket的UDP传输仍然不够
想知道有没有效率更高的API库
或者有没有好的传输方案
qfxx 2006-01-12
  • 打赏
  • 举报
回复
回去看了一下unix网络编程第一卷
这里还是应该用TCP
书里说的很明白
UDP的使用主要在两个方面
1UDP支持组播多播,而TCP不支持,
因此对于有组播多播的应用必须用UDP如流媒体
2UDP没有连接建立和拆除,因此对于简单的请求应答程序
用UDP效率更高
特别明确的指出UDP不适用于海量数据传输

谢谢楼上两位仁兄
结帖!!!

fierygnu 2006-01-11
  • 打赏
  • 举报
回复
跟socket没关系,用什么协议的问题。
两个系统之间?按照你的要求,TCP最好。

18,773

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 专题技术讨论区
社区管理员
  • 专题技术讨论区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧