• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:tcp/ip通信で特定のデータが送れない)

tcp/ip通信で特定のデータが送れない

このQ&Aのポイント
  • tcp/ip通信で特定のデータを送信する際にエラーが発生しています。
  • Wiresharkで取り込んだデータの一部分を掲載します。
  • 問題のデータは0x02のバイトデータで、送信できない状況です。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.1

>又、エラーとして[Expert Info (Error/Malformed): Malformed Packet (Exception occurred)]と >表示されていますが、実際何が原因でエラーに成っているのかが判りません。 ざっと見た程度ですが……。 >0010 00 29 fc d7 40 00 80 06 3d ac ac 14 64 00 ac 14 >0010 00 29 fc d7 40 00 80 06 3d ac ac 14 64 00 ac 14 IPヘッダのIdentificationが同じ値(0xd7fc)のIPパケットで問題ないのですか? 手元のSSHサーバに接続したときのモノ(SSHサーバからのもののみ)では… Identification: 0x0000 (0) =>3WayハンドシェークのSYNパケットの返答 Identification: 0xdb28 (56104) =>ハンドシェーク完了後、SSHサーバが送信してきたウェルカムメッセージ Identification: 0xdb29 (56105) =>クライアントからのパケットに対するACK応答パケット Identification: 0xdb2a (56106) =>SSHサーバからのオプションなどのクライアントへの通知 というように値が更新されていってますが。 パケットがMTUなどによって分割された場合にIdentificationが同じ値になることはあるようですが、その場合はFlagsとFlagment Offsetで制御されるハズです。 が…Flags(ダンプだと0x0014の場所の上位3ビット)のビット1が1となっていますので「分割を許可していない」状態ですし、Flagment Offsetは同値の0番となっています。 よって受信側では「不正なIPパケット」として破棄しますから、その次のTCP処理まで進まないかと思われますが…そこのところどうでしょうか?

参考URL:
http://www.itbook.info/study/p89.html
zoro81
質問者

お礼

Wr5 様 有難うございました。 自己解決しました。 サーバー側からの送信信号しか見ていませんでしたが、クライアント側(Windows)から接続を確立し、その後0x02を送信させると同じ現象が発生しました。 その後リトライで再度0x02を送信するのですが、そのときにクライアントがkeepalive状態に成っていて、同じデータを送信していました。 この時には0x02をデータとして表示しています。 この事から、単独で0x02の1バイトを送信出来ないと判断しました。 参考文献を読まないといけないと思いますが、Windowsパソコンから送信して同じ結果に成っているので そういうものだと判断しておきます。 今回は有難うございました。

zoro81
質問者

補足

Wr5 様 ご丁寧な回答有難うございます。 Identificationに関しては、プログラムでデータを増えるようにしましたが、やはり0x02の1バイトだけが送れません。 おそらく、お知らせ頂いた部分に何らかの不具合が有るだろうとは思いますので、もうしばらくプログラムの見直し等して見ます。 又なにか判りましたらお知らせ頂けると大変有りがたいです。 以上宜しくお願いします。

関連するQ&A