1)我要写一个局域网内传输文件的系统,文件4k左右,又要保证速度和可靠性,局域网内机子也不是很多,30或40多台,想问一下用udp好还是tcp好?
2)udp是不可靠的传输但可以自己在应用层加上可靠传输机制,tcp就是速度可能慢点。不知道udp加上可靠传输机制是不是速度和tcp也就差不多了?
3)还有tcp保持长连接是不是很耗系统资源?如果链路中长时间没有数据,tcp链路会自动断掉吗?是不是每两个小时,tcp自动探测一次,发现对方关闭,则断开连接?还要自己在应用层写heartbeat主动检测?谢谢各位大虾~~(^_^)
2)udp是不可靠的传输但可以自己在应用层加上可靠传输机制,tcp就是速度可能慢点。不知道udp加上可靠传输机制是不是速度和tcp也就差不多了?
3)还有tcp保持长连接是不是很耗系统资源?如果链路中长时间没有数据,tcp链路会自动断掉吗?是不是每两个小时,tcp自动探测一次,发现对方关闭,则断开连接?还要自己在应用层写heartbeat主动检测?谢谢各位大虾~~(^_^)
不过局域网下的TCP速度也不慢,可以把缓冲区设置的大点,几乎可以接近网卡速度
文件一般都是tcp,虽说是局域网
如果LZ是频繁的发送文件的话
建议用UDP
对于TCP的长连接,最好还是互发心跳包
这个也不难实现吧~~
udp,不可靠,自己处理tcp窗口,重发,问题是,这些都实现了,能保证比tcp还快吗?无论从开发效率还是运行效率都是tcp最好
所以速度问题几乎上可以无视之。
你要可靠性,UDP当然保证不了。如果UDP能保证可靠性,速度又快那还要TCP做什么?
但是也要做一些保护