【发布时间】:2012-08-18 07:26:35
【问题描述】:
我有一个 IMAP 服务器 (Dovecot),我试图在其上创建 1,200 个邮箱(用于性能测试)。服务器成功创建邮箱。
在此操作之后,我想列出所有创建的文件夹。服务器发送一些数据,但是,在一段时间(近 1 秒)之后,客户端向服务器发送RST、ACK,以响应服务器响应 IMAP 协议关于创建文件夹列表的命令。
这是我的 Wireshark 转储 sn-p:
IMAP: Src Port: imap (143), Dst Port: 56794 (56794), Seq: 29186, Ack: 20533, Len: 24 IMAP: Src Port: 56794 (56794), Dst Port: imap (143), Seq: 20533, Ack: 29210, Len: 15 IMAP: Src Port: imap (143), Dst Port: 56794 (56794), Seq: 29210, Ack: 20548, Len: 16384 TCP: 56794 > imap [ACK] Seq=20548 Ack=45594 Win=49408 Len=0 TSV=3940902 TSER=3940902 IMAP: Src Port: imap (143), Dst Port: 56794 (56794), Seq: 45594, Ack: 20548, Len: 16384 TCP: 56794 > imap [RST, ACK] Seq=20548 Ack=61978 Win=49408 Len=0 TSV=3940902 TSER=3940902
编辑:好吧,我想我知道为什么客户端会发送 RST 标志了。原因是服务器超出了我的 loopback 接口的 MTU 值。我已经检查了示例 Mina 服务器的类似行为 - 那里一切正常,即 TCP/IP 协议抑制了巨大的数据包。所以 Dovecot 无法明智地管理数据包。但是我有自己的 IMAP 服务器(基于 MINA),问题仍然存在!
那么为什么 TCP/IP 协议只对某些应用程序而不是对所有应用程序明智地管理发送的数据包(根据 MTU 值拆分)?
【问题讨论】:
-
您能否分享 Wireshark 最后几行的更多详细信息?很难弄清楚为什么 RST 是根据迄今为止的信息生成的。
-
请看我的编辑。我只分享了来自 Wireshark 的有价值的信息 - 你需要什么信息?
标签: tcp imap reset wireshark mtu