
Linux-PCと組み込みボード間でTCP/IP(Ethernetで)で通信を行ったときの
なぜ?な現象について質問です。
Linux上のプログラムでボードに対して1300バイトのデータを送信(write)
しているのですがTCPDUMPでモニタしたところ1024/276バイトに分割されて
送信されています。Linux側のMTUが1500になっているのになぜパケットが
分割されてしまうのでしょうか?
ちなみにCygwin上でテストしたときには1つのパケットで送信されていま
した。
No.3ベストアンサー
- 回答日時:
TCPのスロースタートかも?
3.2 TCPDUMP
の例示でも1回目は540バイトしか送っていないようです。
参考URL:http://www.qos.tu.chiba-u.jp/thesis/2003_b4_taka …
この回答への補足
>TCPのスロースタートかも?
スロースタートって転送するwindowサイズを徐々に大きくしていく
ということだと思うのですが。最初は1セグメントから始まって
段々と1回で転送するセグメント数を大きくしていくってことですよね。
a) LinuxPC(server) <-> 組み込みボード(client)
b) Cygwin(server) <-> 組み込みボード(client)
c) LinuxPC(server) <-> Cygwin(client)
疑問)
上記a)でserver -> clientに1300バイトのデータを送信したときに
1024/276に分割されたパケットで転送されるのはなぜ?
このときetherrealでキャプチャするとmss=1460になっているので
分割されないはずなのですが。
上記b,c)では1つのパケットで送信されます。
調査)
上記a,c)のキャプチャを比べたところclientのSYNパケットの
TCPオプションに違いがありました。
a,b):MSS=1460
c):MSS=1460/nop/nop/SAC Permitted/
の違いがあります。
組み込みボード側でオプションを変更して再テストをやってみます。
自己レスです
a,bとcに違いがもう1点ありました。
a,b)ではwindowサイズ=2048にしていました。
cでは16Kくらいに大きくなっていました。
(普通PCだとこれくらなのでしょう)
組み込みボード上のメモリの関係上2048にしていましたがこれを
とりあえず16Kくらいにしたら上記の現象がなくなりました。
結果Windowサイズを2600未満(MSSの2倍未満)にすると上記の現象に
なるようです。
No.2
- 回答日時:
相手をCygwinではなく、Cygwin -->組込みボードの場合にOKということだったんですね。
原因はわかりませんが、TCPDUMPでMSSの手順でどうMSSが決定されるか調べて
みてはいかがですか?
#EthrealならGUIで見やすいと思いますが。
No.1
- 回答日時:
TCP/IPはうまくできていて、メモリの少ないマシンの場合に
MTU(MSS)をこのサイズにしてという手順があり、たぶん組み込みボード側
がそのサイズでないと受けられないのでしょう。全く正常な動作です。
参考URL:http://www.fuwafuwa.org/Lecture/learn/network_ne …
この回答への補足
>MTU(MSS)をこのサイズにしてという手順があり、たぶん組み込みボード側
>がそのサイズでないと受けられないのでしょう
上記の場合はMSS=1024等ボード側のMSSが1300未満の場合ですよね?
組み込みボード側のMSSは1300より大きい数字になっていますので
ボード側のメモリ問題とは少々違うと思うのですが。実際同じプログラム
のボードとCygwin(winXP)間の通信時は1回で転送されていましたので
Linuxのなにか設定の問題なのかなと思いまして。
Linux側のMSS=1460で1300より大きいです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
インストールできないですどう...
-
LinuxでWine使うとどのくらいWi...
-
Core 2 Duo の古いパソコンに最...
-
「トゥ]の出し方
-
ubuntuのシャットダウンが進ま...
-
ubuntu(linux)のシャットダウン...
-
VirtualBox 6.1 → 7.1 でUbuntu...
-
ubuntu proのデスクトップ版は...
-
LinuxのPCは基本不要PC中古を使...
-
ubuntu 24 へのCanon 複合機ス...
-
Linux のシェルスクリプトの強...
-
Fedoraのupgradeで、libruby.so...
-
Lubuntuでとにかく軽量のバージ...
-
Ubuntu の LibreOffice について
-
Ubuntu on Xorgのログインについて
-
bashでシングルクォート内の変...
-
Linuxでブートディスクの交換後...
-
ubuntu が起動しない。
-
Ububtuでファイル共有できない...
-
Windowsのローカルディレクトリ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CrystalDiskInfoでHDDが表示さ...
-
壁のプラスターボードは一度水...
-
LEDが目障り
-
システムボードとマザーボード
-
こたつヒーター上部のハードボード
-
スチレンボードの紙をきれいに...
-
壁の補修(GL工法)について...
-
有孔ボードの強度/購入について
-
玄人志向 SATA3+USB3.0-PCIE2 ...
-
エアコンの室内化粧カバーの取...
-
石膏耐火ボードの修理法を教え...
-
キャプチャーボードについて
-
パソコンにUSBデバイスのふりを...
-
パワーボードとスーパーボード...
-
AOpen s661FXm-USのBIOS設定に...
-
サーフボードのボトム面のステ...
-
タイガーシャッターのCM
-
テニプリの立海の部室の・・・
-
ハンマーで叩いて鐘がなるイベ...
-
ウインドサーフィン用具の処分
おすすめ情報