首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TCP建立延迟3秒

TCP建立延迟3秒
EN

Stack Overflow用户
提问于 2014-12-23 14:34:29
回答 1查看 1.3K关注 0票数 0

大多数情况下,我的rsh循环是通用的,我们可以从rshd获得以下日志:

代码语言:javascript
复制
Aug 19 04:36:34 shmm500 authpriv.info in.rshd[21343]: connect from 172.17.0.40 (172.17.0.40)
Aug 19 04:36:34 shmm500 auth.info rshd[21344]: root@172.17.0.40 as root: cmd='echo 481'

对于某些错误情况,rsh可能会成功,但是会有几秒的延迟,请参见以下时间戳:

代码语言:javascript
复制
Aug 19 04:12:24 shmm500 authpriv.info in.rshd[17968]: connect from 172.17.0.40 (172.17.0.40) 
Aug 19 04:12:27 shmm500 auth.info rshd[17972]: root@172.17.0.40 as root: cmd='echo 18'

我还发现,在大多数正常情况下,PID增加了1,而在大多数错误情况下,PID增加了4,参见上述日志中的PID,似乎rshd分叉了一些进程。那么,您能解释一下为什么rshd占用了这几秒和PID增加。

我们的rsh是旧的rsh,不是ssh,我不确定,但似乎rsh是来自netkit。这是一个嵌入式的板,里面有百事箱,没有strace/p堆栈。对于客户端,我只是'rsh 172.17.0.8 pwd',没有使用主机名。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-06 01:36:20

我自己回答这个问题:

这个问题是由帧丢失引起的。由于某种原因,3路握手中的SYN或SYN+ACK都以罕见的速度下降,无论如何,客户端在3秒内没有在超时时间内获得SYN+ACK (这个超时是在Linux内核中硬编码的),然后connect()再次对SYN表示不满,并且通常在第二次尝试中成功。

从应用的角度来看,我们有3秒的延迟,甚至6秒,如果它在第二次尝试失败。

其他有关资料:

第一个日志来自tcpd(也称为tcp包装器)。

Aug 19 04:36:34 shmm500 authpriv.info in.rshd[21343]: connect from 172.17.0.40 (172.17.0.40)

第二个日志来自netkit 0.17中的rshd

Aug 19 04:36:34 shmm500 auth.info rshd[21344]: root@172.17.0.40 as root: cmd='echo 481'

rsh需要两个tcp连接,第一个是从rsh客户端到rshd,第二个tcp连接是从rshd到rsh客户端,这意味着rshd是tcp客户端。我的问题是第二个tcp连接的帧丢失。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27622453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档