linux 超时重传 - Linux/Unix社区 / 程序开发区
将所要发送的tcp包放在发送队列中,如果在15秒内没收到ACK,就重发,想请问大家,这样是不是要对每个TCP包加定时器阿,除了用alarm,还能用什么了?
你搞应用的话不需要关心tcp协议栈是怎么处理的啊
tcp协议栈有重发机制
我是想在应用层上也有个超时重传
滑窗协议,针对滑窗内的数据包(里面有纪录OS TICK)进行检查。
只有一个定时器,好像是200MS(不确定),到时候就去比较当前时间和每个未确认的包的时间戳,只要超过一定阈值,就开始重传。
为每个包加定时器.....这个很要命的.....既然你是一个队列,可以给每个包加时间戳,然后定时检查队首就可以了
tcp我觉的基本没这个必要.......如果包丢了,会重发的。 如果包发不过去,就算应用层重发也还是发不过去呀
那要多久检测这个未收到确认包?是创建一个线程只用来检测的吗?
这个取决于你的需要和程序是如何设计的
一般来说等待的时候是阻塞的,单独用个线程是可以的
{{
相关问答:
写了个测试程序如下
struct hostent *hp;
char AlarmDevIP[20];
int x2;
hp = gethostbyname("www.google.com");
if (hp)
{
......
有什么好的Linux教程吗?
小弟谢过~
[问题点数:0分]
google
据说鸟哥的私房菜不错。
鸟哥的Linux私房菜
更多的再这上面去搜索一下很LIUNX书籍还不错
引用
google
正解
鸟哥的Linux私房菜 ......
linux 下usb设备,在root权限下,设备可以正常找到驱动,
但在普通用户下找不到设备驱动,不知道是什么原因?请高手指教
应该是root为了防止普通用户破坏吧,所以加个权限。。。我的就是
权限问题 root是超级用 ......
各位老师好:小弟有一点问题 琢磨了好久想请教大师们:
我在安装mysql的时候 安装到
./configure \
--prefix=/usr/local/mysql \
--with-extra-charsets=all
这步的时候出现:
configure: unknown option --p ......
rt,我试了网上直连Acces数据库的方法,windows下没有问题,但是在linux下不行,谁能给点提示?谢谢
你怎么连的?
Acces数据库..
你怎么练的呢?
Java code:
static String DBDRIVER = "sun.jd ......