在线等待,如何减小TCP的传输延迟?
在线等待,如何减小TCP的传输延迟?
一个建议20分。
问题点数:100、回复次数:9Top
1 楼redby(红孩)回复于 2003-09-04 18:07:04 得分 20
哦,我遇到过这样的问题,我在做VOD视频点播的时候遇到同样的问题,(在子线程里发送数据延时较长)。因为的数据量很大(达到960K/S);
所以如果的传输数据量很大,建议你使用UDP。一个好的解决方案是:命令采用TCP,数据采用UDP。也就是说TCP与UDP 同时存在Top
2 楼redby(红孩)回复于 2003-09-04 18:08:22 得分 0
如果需要,我可以给你UDP的源吗Top
3 楼mixtrue(忽报人间曾伏虎,泪飞顿作倾盆雨。)回复于 2003-09-04 18:36:15 得分 40
楼上的兄弟,人家说的是减少tcp传输的延迟,不是该协议阿。
对于tcp的传输延迟可以分为以下几个:
1:网络负载比较重,错误数据比较多,丢包严重时,这样造成tcp进行数据校验,数据报从发现象比较严重,这样就严重印象了网络的传输数据,当然也影响了tcp的传输速率。
2:搂住发送数据报的大小没有设置正确,在 网络编程中有明确的解答,关于发送数据报的大小,因为你发送的数据报首先保存在socket的缓存中,她并不是立刻发送的。当你的数据报文过大时,系统需要一定的时间对你的报文进行分包发送这样就影响了发送的速度。只有合适的报文大小才可是系统达到最佳状态。在网络编程中已经说明了怎样计算机的最佳报文大小。
3:网络的不稳定。时常发送网络断掉的现象。在tcp建立的过程中系统需要经过三次的握手才能建立一个tcp网络连接,当网络不稳定是,系统的大量时间都花费在系统的建立连接上(虽然tcp连接可以在网络断掉一段时间内存在)这部分的时间是非常昂贵的。希望楼主引起注意。
如何减少tcp 传输延迟
1: 网络方面:建立稳定,快速的网络
2: 设置合理的socket buffer 大小,计算合理的数据报的大小。
3: 你可以尝试建立tcp连接池。
4: 最快的我想使通过socket32.dll 自己编写发送接受程序。
当然你也可以使用 udp 方式发送数据报。
这些就是我所能过想到的影响tcp 传输延迟的原因,及解决办法。
Top
4 楼howtotell(从何谈起)回复于 2003-09-04 20:55:52 得分 20
可以用rtp协议。
http://www.ietf.org/rfc/rfc1889.txtTop
5 楼awnucel(西大耻犹未雪,南京恨何时灭&抵制日货)回复于 2003-09-05 01:03:33 得分 20
1: 网络方面:建立稳定,快速的网络
2: 设置合理的socket buffer 大小,计算合理的数据报的大小。
3: 你可以尝试建立tcp连接池。
4: 最快的我想使通过socket32.dll 自己编写发送接受程序。
Top
6 楼bb123456789(bbb)回复于 2003-09-05 08:38:47 得分 0
改用UDP!Top
7 楼redby(红孩)回复于 2003-09-05 08:44:20 得分 0
如果非得需要用TCP的话,减少延时时间需要设置合适的数据包,每次发送的数据报最好在1K左右。
这样发送速度可以达到最佳Top
8 楼ppchen(韦古)回复于 2003-09-05 09:16:13 得分 0
我只是要减少TCP的传输延迟,大家不要揣测我的异图。
比如可以:
1)发送NODELAY
2)接收方尽早PUSH
……Top
9 楼mixtrue(忽报人间曾伏虎,泪飞顿作倾盆雨。)回复于 2003-09-05 18:14:52 得分 0
楼主 我说的非常明白了。我所说的是我在实际编程中的经验总结阿。Top




