こんにちは。
現在、専用線にて他社とEDIを行っています。
こちらからデータを全銀TCP/IPにて送信しています。
まれに通信障害が発生し、先方からはパケットがドロップしている
と回答がありました。
提示された通信トレースをみると、確かにTCPでフラグメントされた
最後の数バイトが欠けていました。
こうした障害はどのような場合に起こるのでしょうか?
通信途中に壊れてしまったり、形を変えてしまったりして、正しく
ないパケットになってしまうことがあることは認識しておりますが、
定期的に発生するわけではなく、月に2、3度です。
まず、何を疑い、どのような改善を施せばよいのでしょうか?
原因を追究できる良い手段はありますか?
情報有りましたら、よろしくお願いします。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
> 先方も私もOSがMTUに合わせて複数のパケットに分けることを
> フラグメントと誤って解釈して、話が進んでいたようです。
フラグメントパケットがドロップされた通信障害だと思いこんでいましたが、これだと調べる範囲が変わってきますね。
根本に立ち返りますが・・・通信障害はどのように発見されたでしょうか?
タイムアウト・・・TCPに問題
データ異常・・・ソフトウェアに問題
アプリケーション、ネットワークドライバなどOSより上の領域で不具合
TCP のレイヤーで異常があれば、再送リクエストが送られます。
再送リクエストでもパケットを受け取ることができなければ、タイムアウトします。
アプリケーション側から見れば、TCP 異常は通信タイムアウトとして処理されます。
逆に、再送リクエストが無いのであれば、TCP に異常は無いと解釈できます。
> ウインドウサイズの影響で、パケット1から4までが途中で異常となら
> ず送信されていると考えられるでしょうか?
その通りです。
この回答への補足
どうもありがとうございます。
エラーの発生は、通信時、アプリケーションが通信エラーコード
を返したことで判明しました。
(相手から強制的に切断された)
このエラーがTCPタイムアウトだったかどうかは、残念ながら不明
です。
そして、先方から前述の回答がありました。
先方からは「パケット1から4までの長さと、アプリケーションの制御
ヘッダ部分に格納されている、全体のレコード長と差異があるため
にエラーとなった」とのことでした。
どこでパケットが欠けてしまったかは、原点に戻り、TCPなのかアプリ
なのか、それぞれのトレースを双方で確認したいと思っています。
No.3
- 回答日時:
●回答の前提条件
フラグメントの後ろのパケットが先に届いてドロップするのは、通信障害の原因として考えられる1つではありますが、今回の件もこれが原因と確定したわけではありません。
原因調査は別途行う必要があります。
●本題
> 現在、アプリ側で設定しているテキスト長がイーサネット標準MTU
> の1500を上回っています。(実際は5000以上)
えーと・・・テキスト長が 5000 で、MTUを上回っていた場合、OS自身が複数のパケットに分けるので問題ありませんよ。(これはフラグメントではありません。)
OSの送信したMTU 1500 のパケットが通信経路を通過する過程で分割されるのがフラグメントです。
>>「フラグメント化した後ろのパケットのほうが先に届いている」
> この件について、下記のサイトでは、到着順が前後しても相手先の
> コンピュータで再構成される(「IPパケットの再構成」)ようなこと
> が書かれていますが、どうなのでしょうか?
たとえば、フラグメント パケットを許容しないルーターが経路中にあったり、数年前の Firewall-1 のようにパケットを再構成させずに打ち落とす間抜けなファイアウォールであれば、フラグメント パケットの後部が打ち落とされます。したがって「必ず再構成される保障は無い」と思っていたほうがいいです。
送信元が Windows Server 2003 ならば MTU の変更は簡単ですね。
具体的な値については環境によるとしか言えませんが、たとえばですが、Googleでは通信障害を起こさないようにするため、MTU 値を 1400 に設定しています。なので、Microsoft にはつながらないのに Google だけは表示されるといった現象がまま発生します。
この回答への補足
どうもありがとうございます。
先方から提示されたトレースでは、
当方から約4500バイトのデータを送信し、
パケット1 約1400バイト受信
パケット2 約1400バイト受信
パケット3 約1400バイト受信
パケット4 約300バイト受信
このうちパケット1とパケット2が数バイト欠けているというものでした。
先方も私もOSがMTUに合わせて複数のパケットに分けることを
フラグメントと誤って解釈して、話が進んでいたようです。
そうですね、原因調査はいずれ時間を絞ってやらなければならないと
思います。
最後の質問となりますが、
先方にはパケット1から4まで届いています。
ですが、パケット1で全てのデータが届かなかったということならば
そこでTCPのエラーとなり、通信が異常終了する気がします。
正確にはパケットトレースを見ない限り分からないと思いますが、
ウインドウサイズの影響で、パケット1から4までが途中で異常となら
ず送信されていると考えられるでしょうか?
よろしくお願いいたします。
No.2
- 回答日時:
> フラグメントが発生することで、通信エラーが起こりやすくなることはあるのでしょうか?
よくあります。
No.1 で例示した、「フラグメント化した後ろのパケットのほうが先に届いている」がそれです。
フラグメント化した後ろのパケットの方が先に届いてもOSは処理できないので無視しますし、ファイアウォールでも遮断してしまいます。
余談ですが、フラグメントの仕様は1990年代から問題視されており、IPv6からはフラグメントを廃止し、初めから最適なパケットサイズで送信するよう仕様が変更されました。したがって、IPv6ではこのような通信障害が起きません。
> フラグメントが発生しないように適切なパケットサイズとするよう、アプリで制御した方が良いような内容のものを見つけました。
MTU 調整、やMTU 変更で検索してみてください。
MTUを調整することでフラグメント化しないパケットサイズにすることができます。
OSが何か分からないので回答はできませんが、どんなOSでも設定方法があるはずです。
この回答への補足
どうもありがとうございます。
受け側はWindows 2003 Serverです。
現在、アプリ側で設定しているテキスト長がイーサネット標準MTU
の1500を上回っています。(実際は5000以上)
ですのでTCPフラグメントが確実に発生している状況です。
このあたりも見直す必要がありそうです。
今まで同一LAN上のPCとのEDIがメインでした。
TCPフラグメントは基本的にルータが行うということのようですので、
テキスト長を大きくしても問題にならなかったのかもしれません。
>「フラグメント化した後ろのパケットのほうが先に届いている」
この件について、下記のサイトでは、到着順が前後しても相手先の
コンピュータで再構成される(「IPパケットの再構成」)ようなこと
が書かれていますが、どうなのでしょうか?
もし、補足等あればお願いします。
http://www.atmarkit.co.jp/fwin2k/network/baswinl …
よろしくお願いいたします。
No.1
- 回答日時:
地道に問題の通信経路を絞り込んでいくしかないでしょう。
最低2地点を同時にモニターして、どこまでは通った・通っていないを抑えていきます。
月に2,3度しか無いので時間がかかりそうです。
後は、本当に「月に2,3度しか無いのか?」という点です。
問題が顕在化したのが2,3度ということではないでしょうか?
TCP/IPは通信に異常があれば数回再送リクエストをおくるため
多少遅くなっても正常に通信できる仕様になっています。
つまり、数回の再送リクエストを超えて失敗していると考えることができるため、パケットのドロップはもっと頻繁にあるのではないかと思われます。
>こうした障害はどのような場合に起こるのでしょうか?
羅列すると
・フラグメント化した後ろのパケットのほうが先に届いている
ネットワークの負荷が上がると回復するという事象が起きます。
・コンピュータ自身のドライバーに問題がある
・経路中のケーブル、HUBに問題がある
ケーブルに問題があったら、フラグメントに関係なく発生しそうですが・・・
・ルーターのファームウェアに問題がある
たとえば、Yamaha RT 1000 の一時期のファームで、通信が輻輳するとキューに溜め込みすぎてドロップしてしまう不具合がありました。
ファームウェアのアップデートで解決しました。
とりあえず、フラグメントパケットが発生しないように、送信元のコンピュータでMTUを調整してみてはいかがでしょうか。
この回答への補足
どうもありがとうございます。
双方でトレースを仕掛ける必要があるということで、合意はしている
のですが、時間帯などが絞りきれず、なかなか実現できていません。
ところで、フラグメントが発生することで、通信エラーが起こりやす
くなることはあるのでしょうか?
ネットで情報を集めていると、フラグメントが発生しないように
適切なパケットサイズとするよう、アプリで制御した方が良いような
内容のものを見つけました。
もし、情報がありましたらよろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MACアドレスが知られた場合の危...
-
IPフラグメントの結合について
-
PADについての質問です。
-
スイッチングハブとNICの相性
-
ICMP Echo Message はtcp,udp...
-
FWの設定について(片方向のル...
-
TCP12080の設定について
-
MACアドレスの情報はどこに保存...
-
tcp/ip通信で特定のデータが送...
-
UDPのデータの信頼性
-
IPアドレスの呼び方
-
「Windowsサービスのホスト プ...
-
ホスト狂いは多いのに、キャバ...
-
ホストとホステスの違い
-
パソコン 無線繋がらない
-
YAMAHAルータ
-
会社で私用メールがバレるから...
-
ルータのconfigとは・・・
-
「OS/DB/DC」の「DC」って何?
-
彼氏がホストやろうかな、と言...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
MACアドレスが知られた場合の危...
-
tcp/ip通信で特定のデータが送...
-
デフォルトルート(ゲートウェ...
-
FWの設定について(片方向のル...
-
通信用語 FR・CR接続って...
-
MACアドレスの情報はどこに保存...
-
UDPパケットの分割について
-
NAT配下のDNSどうやって外から...
-
TCP12080の設定について
-
pingが通る理由
-
sftpとインターネットVPN
-
HUBの台数制限について詳しい方
-
ICMP Echo Message はtcp,udp...
-
ブロードキャスト転送できるか...
-
ネットワーク接続動作状況のパ...
-
異常パケット
-
通信速度
-
UDPのデータの信頼性
-
パケットドロップの発生について
-
PADについての質問です。
おすすめ情報