当前位置: 技术问答>linux和unix
linux 超时重传
来源: 互联网 发布时间:2016-08-22
本文导语: 将所要发送的tcp包放在发送队列中,如果在15秒内没收到ACK,就重发,想请问大家,这样是不是要对每个TCP包加定时器阿,除了用alarm,还能用什么了? | TCP还是要对包进行确认,因为路由的过...
将所要发送的tcp包放在发送队列中,如果在15秒内没收到ACK,就重发,想请问大家,这样是不是要对每个TCP包加定时器阿,除了用alarm,还能用什么了?
|
TCP还是要对包进行确认,因为路由的过程通过很多路由器,也许回复帧的只是某个路由器,而不能保证对方已经收到数据; 不可能给所有的包加定时器,只能给包加时间戳,用一个单独的线程来判断是否超时
|
为每个包加定时器.....这个很要命的.....既然你是一个队列,可以给每个包加时间戳,然后定时检查队首就可以了
tcp我觉的基本没这个必要.......如果包丢了,会重发的。 如果包发不过去,就算应用层重发也还是发不过去呀
tcp我觉的基本没这个必要.......如果包丢了,会重发的。 如果包发不过去,就算应用层重发也还是发不过去呀
|
这个取决于你的需要和程序是如何设计的
一般来说等待的时候是阻塞的,单独用个线程是可以的