TCP的超时重传

TCP连接建立后, 如果网络状态不稳定, 所发送的包无法得到反馈, 则会产生重传.

重传的时候, 有以下几点值得关注:

1. 重传次数

重传次数的限制. 说白了就是如果一个包传输失败了, 不会让它无止境地重传下去, 需要对重传的次数作限制. 在Linux环境下, 这个次数是由以下文件内容决定的:

a. 放弃连接前最少执行的重传次数: /proc/sys/net/ipv4/tcp_retries1(默认值是3)

b. 放弃连接前最多执行的重传次数: /proc/sys/net/ipv4/tcp_retries2(默认值是15)

2. 重传时间

 触发后一次重传的间隔时间, 是前一次的2倍(或者拗口一点说, 触 发第N次重传的间隔时间, 是触发第1次重传的间隔时间的2的N-1次方倍). 有点类似于CSMA/CD中的"指数退避"机制.

猜你喜欢

转载自oliveexcel.iteye.com/blog/1976700