0

IMAPサーバー(Dovecot)があり、その上に1,200のメールボックスを作成しようとしています(パフォーマンステスト用)。サーバーはメールボックスを正常に作成します。

この操作の後、作成したすべてのフォルダーを一覧表示します。サーバーはいくつかのデータを送信しますが、しばらくすると(1秒近く)、作成されたフォルダーのリストに関するIMAPプロトコルのコマンドでサーバーが応答したことに応答してRST、 CLIENTがサーバーにを送信します。ACK

これが私のWiresharkダンプスニペットです:

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フラグがクライアントによって送信されるのか理解したと思います。その理由は、サーバーがループバックインターフェイスのMTU値を超えているためです。サンプルのMinaサーバーで同様の動作を確認しましたが、すべて問題ありません。つまり、巨大なパケットがTCP/IPプロトコルによって吐き出されます。そのため、Dovecotはパケットを適切に管理できませんしかし、私は(MINAに基づく)独自のIMAPサーバーを持っており、問題はまだそこにあります!

では、なぜTCP / IPプロトコルは、送信されたパケットを一部のアプリに対してのみ賢明に管理する(MTU値に従って分割する)のでしょうか。

4

1 に答える 1

2

TCP リセットが送信される原因についてのあなたの仮定は正しくありません。MTU を超えた場合、それは TCP によって管理されません。これは IP レイヤーで管理され、ICMP の「フラグメンテーションが必要です」というメッセージがクライアントに送信されます。このようなメッセージにより、クライアントは IP 層でパケットをフラグメント化する必要があります。あなたが共有した情報に基づいて、これはあなたのケースでは起こっていません。

ループバック インターフェースに関して、このトラフィックはループバック インターフェースの近くには行きません。2 つの別々のデバイスではありませんか?

悲しいことに、トレース ファイルには、このパケットの理由についての洞察がまだありません。

IMAP: Src Port: imap (143), Dst Port: 56794 (56794), Seq: 45594, Ack: 20548, Len: 16384

TCP リセットを引き起こします。この情報から推測できることは、これ以上ありません。

TCP にはMaximum Segment sizeと呼ばれるオプションがあり、これは似ていますが異なります:) TCP/IP スタックはアプリケーションから独立しており、各アプリケーションに異なる設定を適用するのではなく、システム全体です。

編集: パケット キャプチャを見ると、MTU の問題を示すものは何もありません。ICMP トラフィックはどこにもないので、問題ではないと思います。MTU の問題がある場合は、IMAP サーバーからの両方の LIST 応答が同じサイズであり、ウィンドウ サイズに問題がないため、前の応答で発生しているはずです。

私が確認できる唯一のことは、最終応答の最初の要素 (RST の前) に関連しており、応答の一部が不正な形式になっているように見えます (添付ファイルを参照)。IMAP アプリケーションで問題が発生しており、応答するデータの形式が正しくありません。imap 応答- pcap の他のすべての LIST 応答と一致する、下の 2 つの応答との違いを確認してください。

于 2012-08-23T13:10:04.220 に答える