• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ICMPエコー要求のデータ部分の長さ)

ICMPエコー要求のデータ部分の長さについて教えてください

このQ&Aのポイント
  • ICMPエコーリクエストのデータ部分の長さについて疑問があります。RFC792には具体的な長さの決まりがないと書かれていますが、実際に試してみると32バイト以上でないと応答が返ってきません。
  • データ部分が32バイト以上ないとICMPエコーリクエストへの応答がない理由を教えてください。イーサネットフレームの長さの決まりから、18バイト以上は必要と思われますが、正確な情報を知りたいです。
  • ICMPエコーリクエストにおけるデータ部分の長さについての疑問です。試しに作成したスクリプトでLAN内のwindowsやgoogle.comに対してエコーリクエストを送信していますが、データ部分が32バイト以上でないと応答が返ってきません。具体的な長さの決まりやその理由について知りたいです。

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

  • ベストアンサー
  • junkUser
  • ベストアンサー率56% (218/384)
回答No.1

Windows Vista で試しました。 ping -l 1 www.google.com でも応答してもらえていますが・・・

xsperl
質問者

お礼

ありがとうございます。 よく見るとデータの長さが16ビット で割り切れないときのチェックサムの 計算が間違っていました。 考え直してみます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • TCPとEthernetのデータの分割の役割

    TCPのウィンドウ/フロー制御とethernetのフレームの分割についてご質問です。 書籍を読んでいると TCPはウィンドウ/フロー制御で、一度に送るセグメントサイズを調整しているとあります。 しかしEthernetもフレーム分割を行うとあります。 そうなると、どちらのプロコトルが主体的にデータを分割するのか本を読んでもいまいちわかりません。 例えば、TCPがウィンドウサイズを4500byteにして一度にデータを送信すると データリンク層のEthernetで、4500byteを1500byteずつに三分割するんでしょうか? だとすると、4500byteのデータを送った場合、TCP上では1つのセグメントを送信したことになり Ethernet上だと3つのフレームを送信したことになります。 それとも、TCPが4500byteのデータを送る場合 TCPがデータリンク層で一度に送信できるフレーム長を判断して TCP上で4500byteを一度に送信せずに、1500byteに分割してEthernetに送り Ethernetはその1500byteのデータを三回送信することになるんでしょうか? わかりにくい質問で申し訳ありません。

  • TCPスリーウェイハンドシェイク時の転送データについて

    タイトルにもありますように、TCPを使用した通信ではスリーウェイハンドシェイクを行って通信路を確認した後にデータ転送を行うと思うのですが、スリーウェイハンドシェイク時に送りあうデータとはTCPヘッダだけなのでしょうか? TCPヘッダだけを送るのであればTCPヘッダは約20バイトで、イーサネットで送るのであれば46バイト以下は破棄されて送れないのではないでしょうか? またTCPヘッダ+データを送るのであればデータの部分は何を送るのでしょう? 当方ネットワークを勉強中の初心者です。説明が分かりづらく申し訳ありませんが、ご教授ねがいます。

  • Linuxからネットワークの全ホストを検索する方法を教えてください

    ネットワーク上に接続しているホスト一覧を Linux上から効率的に取得する方法を教えてください。 LinuxのバージョンはRedhat linux 9.0 です。 ネットワーク上に存在するホストを探すため、 全IPアドレスへPINGを飛ばしエコー応答<ICMP(TYPE 0)>を返した クライントを有効と判断することで実現できますが、 それでは判断に時間がかかります。 もう効率的に探す方法はないでしょうか。

  • Ethernet Frame CRC演算について

    はじめまして。 質問なのですが、イーサネットフレームは最後に 4バイトのCRC演算結果が付加されて伝達されますが、 そのCRC演算の方法がわかりません。 正確には、こうではないか?と試して演算を行って いるのですが、正しいのかどうかがわかりません。 そこで、 *正確なCRC演算結果(元のフレームも)    もしくは、 *正しい演算方法を示したWEBページへのポインタなど。 知っておられる方、教えて下さい。 #32bitのCRCを生成する方法。。。 #RFC1662のFCSの生成方とは、違うんですよね?

  • ISDNなどのWANでのフレームについて

    現在ネットワークの勉強をしているものです。 その中のWANとLANのフレームについて分からないことがあります。 ISDNなどの回線を使用する際、 例えばPC-ルータ-ISDN回線というシンプルな接続方式があったとして、 ・PC-ルータ間のデータリンク層は、イーサネットフレームを使用。 ・ルータ-ISDN間(正確にはルータ-ルータ間?)は、PPPやLDAPを使用。 までは分かるのですが、 このルータは、イーサネットフレームをPPPやLDAPフレームに 書き換えて転送するのか、それともイーサネットフレームを更に PPPやLDAPフレームでカプセリングするのか、どちらでしょうか? ご回答よろしくお願いします。

  • 最長の共通部分

    はじめて質問させていただきます。 二つのデータの最大長の共通部分を求めるための、 なるだけ高速なアルゴリズムを探しています。 たとえば、 データ1:『EFGABCDEFGABCDEFGHAABCDEFG』 データ2:『EFGHABCDEFGABCDEFGAABCDEFG』 ですと データ1の4バイト目のAから始まる14バイトと データ2の5バイト目のAから始まる14バイトが一致。 が求めたい答えです。 細かい条件をならべると、 1) 文字列ではなくバイナリデータである。 2) データサイズは、最大で数MB程度を想定。 3) 同じ並びの繰り返しなどを多く含んでいる可能性を否定できない。 4) 連続した1つのバイト列で最長なものが知りたい。 5) まれに最長ではなく、最長から二番目が出力されてしまう程度の、 誤差はあってもよい。 6) 一定長(例えば全体の10%)以下の共通部分であれば、無視してもよい。 といった感じなのですが。 ソートを使う、ハッシュを使う、飛び飛びに探索する等、 いろいろアルゴリズムを考えてみましたが、どれもパッとしません。 先ほどグーグルで検索していて、どうやらかなり難しいらしい ということに気づきました。 なにか、ご存知の方いらっしゃいましたら、 アドバイスをお願いいたします。

  • データ送信には何ビットかかるか。

    質問です。書籍やWEBで検索しても一向に分かりませんでした。 問題 MTUが1500バイトの通信回線システムにおいて、300KBのデータを送信することを考える。このとき下記の問いに答えなさい。ただし、1KB=1024Bとして計算しなさい。 (2)イーサネットフレーム(ヘッダー+FCS)にプリアンブルを付け送るとき、すべてのデータを送るのに何ビット送ればよいか。 (3) (2)で計算した総ビットを、回線速度が1Mbps回線で送るのに必要な時間を計算しなさい。 申し訳ありませんがよろしくお願いします。

  • データ送信に何ビットかかるか

    質問です。書籍やWEBで検索しても一向に分かりませんでした。 問題 MTUが1500バイトの通信回線システムにおいて、300KBのデータを送信することを考える。このとき下記の問いに答えなさい。ただし、1KB=1024Bとして計算しなさい。 (2)イーサネットフレーム(ヘッダー+FCS)にプリアンブルを付け送るとき、すべてのデータを送るのに何ビット送ればよいか。 (3) (2)で計算した総ビットを、回線速度が1Mbps回線で送るのに必要な時間を計算しなさい。 申し訳ありませんがよろしくお願いします。

  • Ethernetにおける情報の構成

    Ethernetにおいては、1単位の情報は次のような構成になっていると聞きました。 (1)プリアンプル  8バイト (2)Ethernetフレームヘッダー  (a)宛先MACアドレス 6バイト  (b)送信元MACアドレス 6バイト  (c)フレームタイプ  2バイト (3)IPヘッダー (4)TCPヘッダー (5)HTTPヘッダー (6)データ 42~1,497バイト (7)Ethernetトレイラー4バイト また、データ42~1,497バイトの前に、次の(a)~(c)があると聞きました。 (a)DSAP 1バイト (b)SSAP 1バイト (c)制御 1バイト これらを合わせると、次の(ア)~(ウ)のように思えるのですが、このように考えて正しいでしょうか。 (ア)IPヘッダーは、DSAP1バイトである。 (イ)TCPヘッダーは、SSAP1バイトである。 (ウ)HTTPヘッダーは、制御1バイトである。

  • ping の TTL について

    ネットワークの勉強をしております。 3ヶ所に対して ping を行ったところ、 ping -c 1 www.google.com PING www.l.google.com (72.14.235.99) 56(84) bytes of data. 64 bytes from www.google.com (72.14.235.99): icmp_seq=1 ttl=243 time=40.9 ms ping -c 1 www.ericson.com PING www.ericson.com (72.3.222.14) 56(84) bytes of data. 64 bytes from www.ericson.com (72.3.222.14): icmp_seq=1 ttl=113 time=196 ms ping -c 1 www.yahoo.com PING www.yahoo-ht3.akadns.net (209.131.36.158) 56(84) bytes of data. 64 bytes from www.yahoo.com (209.131.36.158): icmp_seq=1 ttl=52 time=125 ms となりました。 google に対して TTL の初期値は , google : 255 , ericson : 128 , yahoo : 64 となっていると思いますが, どうやってこの初期値は決まるのでしょうか?() 色々調べてみましたが, わからなかったので, こちらに投稿しました.