• ベストアンサー

Pingについて。

始めまして、Ping(ICMP)に関して御伺いさせて下さい。 Windowsにてpingを行う際に、"-l”のオプションを付けて、送信するデータサイズを 指定できますが、この指定サイズはICMPのメッセージ部のサイズでしょうか? またはIPヘッダも含めたICMP電文全体のサイズでしょうか? もし、前述ICMPのメッセージ部のみの場合、IPヘッダのサイズはいくつになりますか? 以上御存知の方がいらっしゃいましたら宜しく御願い致します。

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

  • ベストアンサー
noname#227796
noname#227796
回答No.2

↓ここに詳しく書いてあります。 @IT:連載 基礎から学ぶWindowsネットワーク 第12回 TCP/IPプロトコルを支えるICMPメッセージ http://www.atmarkit.co.jp/fwin2k/network/baswinlan012/baswinlan012_01.html

参考URL:
http://www.atmarkit.co.jp/fwin2k/network/baswinlan012/baswinlan012_01.html
panda2000
質問者

お礼

ありがとうございました。

その他の回答 (1)

  • S-Fuji
  • ベストアンサー率36% (592/1624)
回答No.1

 このサイトにADSL等のMTUを調査するのにPingを利用する方法が書かれていますが、その中で説明が有ります。 http://www.janis.or.jp/adsl/tuneup/tcp_tune.html

参考URL:
http://www.janis.or.jp/adsl/tuneup/tcp_tune.html
panda2000
質問者

お礼

ありがとうございました。

関連するQ&A

  • pingについて

    pingについて教えてください。 UNIXのmanで調べたらusage: ping -s[drvRlLn] [-I interval] [-t ttl] [-i interface] host [data size] [npackets] っていう感じのオプションがありました。 データサイズをデフォルトでなく、指定したいときは、 ping -s host 10 (※) のように指定すればよいですか? ping host 10 だと、指定されてないのでしょうか。 ちなみに、(※)の場合は結果はどのようにして判別できますか?(プログラム上で) (※)の場合だと、戻り値がどちらとも「0」になってしまいます。

  • 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 となっていると思いますが, どうやってこの初期値は決まるのでしょうか?() 色々調べてみましたが, わからなかったので, こちらに投稿しました.

  • ipmasqadm を使ったNATでPINGも転送する

    こんにちわ RedHatLinux6.2jか7.0jを使っています ipmasqadmとIPchanisを使って NATとマスカレードの設定をしているのですが pingが転送できません っというのも ipmasqadmでicmpを指定できないですよね? なので pingは全て転送もとのマシンが受け取ってしまいます /usr/sbin/ipmasqadm portfw -a -P tcp -L $210.XX.XX.XX 80 -R 192.168.XX.XX 80 という感じで指定しているのですが ーPにicmpを指定できないため 210.のマシンがPINGを受け取ってしまいます (WEBに関しては210.のアドレスの指定で192.168のマシンが見れる) 何かいい方法はないでしょうか?

  • MTUについて(Ethernetヘッダ)

    MTUについて教えてください。 まず、MTUの意味は理解しているつもりです。 その上で、例えばMTU=1500の場合ですが、その構成は IPヘッダ+TCPヘッダ+データが1500になりますよね。 ただし、Ethernetヘッダは含まれないのでしょうか? また、PingでMTUを計ったときも IPヘッダ+ICMPヘッダ+データでカウントされてました。 EthernetヘッダはこのMTUの計算には含まれないのでしょうか? またなぜ含まれないのですか?? ご教授願います。

  • 知らない間にping接続していたのでしょうか?

    http://www.cman.jp/network/support/ping.html というサイトのピングチェックをしました。チャットの履歴に残っていた人のIPを入れてみたところ PING 119.xxx.xxx.xx () 56(84) bytes of data. 64 bytes from 119.238.227.44: icmp_seq=1 ttl=47 time=23.5 ms 64 bytes from 119.238.227.44: icmp_seq=2 ttl=47 time=17.9 ms 64 bytes from 119.238.227.44: icmp_seq=3 ttl=47 time=18.6 ms 64 bytes from 119.238.227.44: icmp_seq=4 ttl=47 time=18.3 ms 64 bytes from 119.238.227.44: icmp_seq=5 ttl=47 time=18.6 ms --- 119.xxx.xxx.xx ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4002ms rtt min/avg/max/mdev = 17.974/19.435/23.594/2.095 ms -------------------------------------------------------------------------------- ping接続が確認できました。 と表示されました。 どのような意味なのか教えていただけないでしょうか?

  • 自作PINGプログラムで特定の機器のみプログラムが止まる

    はじめまして、よろしくお願いいたします。 現在私はFreeBSD6.2上でPINGを送信するプログラムを作成していますが、 特定の機器に対してPINGを送信した場合プログラムが n = recv(sock, buf, sizeof(buf), 0); の部分で止まってしまいます。 特定の機器とは、現在私が把握している限りではAlliedTelesisのL3スイッチに 割り当てられているIPアドレスに対してPINGを送信した場合に再現します。(CentreCOM8624XL、CentreCOM8724XL) ためしにAlliedTelesisのL3スイッチにミラーポートを設定し、ICMPパケットを観察 しましたが、プログラムを動かしているPCからのICMPパケットが一切到達していませんでした。 ネットワークの設定に問題があるのではないかと考え、BSDに標準搭載のPINGではきちんと AlliedTelesisのL3スイッチへのPINGが成功しているので、やはりプログラムに問題があるとしか思えません。 どうか、お力をお貸しください。 コンパイル環境 Thread model: posix gcc version 3.4.6 [FreeBSD] 20060305 ソースコードは http://www.geekpage.jp/programming/linux-network/simple-ping.php よりFreeBSD上で動くように改良しました。 #include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in_systm.h> #include <netinet/in.h> #include <netinet/ip.h> #include <netinet/ip_icmp.h> unsigned short int checksum(unsigned short *buf, int bufsz) { unsigned long int sum = 0; while (bufsz > 1) { sum += *buf; buf++; bufsz -= 2; } if (bufsz == 1) { sum += *(unsigned char *)buf; } sum = (sum & 0xff) + (sum >> 16); sum = (sum & 0xff) + (sum >> 16); return ~sum; } int main(int argc, char *argv[]) { int sock; struct icmp hdr; // netinet/ip_icmp.h struct sockaddr_in addr; int n; char buf[2000]; struct icmp *icmphdrptr; // netinet/ip_icmp.h struct ip *iphdrptr; // netinet/ip.h if (argc != 2) { printf("usage : %s IPADDR\n", argv[0]); return 1; } addr.sin_family = AF_INET; addr.sin_addr.s_addr = inet_addr(argv[1]); sock = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP); if (sock < 0) { perror("socket"); return 1; } memset(&hdr, 0, sizeof(hdr)); hdr.icmp_type = ICMP_ECHO; hdr.icmp_code = 0; hdr.icmp_cksum = 0; hdr.icmp_id = 0; hdr.icmp_seq = 0; hdr.icmp_cksum = checksum((unsigned short *)&hdr, sizeof(hdr)); n = sendto(sock, (char *)&hdr, sizeof(hdr), 0, (struct sockaddr *)&addr, sizeof(addr)); if (n < 1) { perror("sendto"); } memset(buf, 0, sizeof(buf)); n = recv(sock, buf, sizeof(buf), 0); if (n < 1) { perror("recv"); } iphdrptr = (struct ip *)buf; icmphdrptr = (struct ip *)(buf + (iphdrptr->ip_hl * 4)); if (icmphdrptr->icmp_type == ICMP_ECHOREPLY) { printf("received ICMP ECHO REPLY\n"); } else { printf("received ICMP %d\n", icmphdrptr->icmp_type); } close(sock); return 0; }

  • ホスト名でpingが通るが、IPでPINGが通らない

    WIN2000サーバーをインストールしたのですが、 自分にPINGを通した場合に、コンピュータ名でPINGは通るのですが、IPアドレスを指定するとPINGが通りません。 エラーメッセージは"Destination host unreachable." です。 ネットワークには接続していない状態です。

  • 外部ネットワークへpingが通らなくなりました

    自宅サーバー構築にトライ中なのですが、とちゅうでyumが動かなくなりました(どのタイミングなのか分かりません、申し訳ありません) 以下のようなメッセージが表示されています。 Error Downloading Packages: firefox-3.0.10-1.fc10.i386: failure: firefox-3.0.10-1.fc10.i386.rpm from updates: [Errno 256] No more mirrors to try. 構築環境は OS:fedora10 IPアドレス 192.168.1.100 です。 yumのリポジトリが込んでるのかと思ったのですが、時間がたっても解決せず、pingをやってみたところ以下のようになりました。 ルーターへのpingは通る [root@server ~]# ping 192.168.1.1 PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data. 64 bytes from 192.168.1.1: icmp_seq=1 ttl=255 time=1.53 ms 64 bytes from 192.168.1.1: icmp_seq=2 ttl=255 time=0.000 ms ^C --- 192.168.1.1 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1079ms rtt min/avg/max/mdev = 0.000/0.765/1.530/0.765 ms 外部へのpingが通らない [root@server ~]# ping yahoo.co.jp connect: ネットワークに届きません LAN内のその他の端末からはping等通りますので、ルータには問題ないのではないかと思っています。 macbook:~ muttuwo$ ping yahoo.co.jp PING yahoo.co.jp (203.216.227.176): 56 data bytes 64 bytes from 203.216.227.176: icmp_seq=0 ttl=52 time=12.399 ms 64 bytes from 203.216.227.176: icmp_seq=1 ttl=52 time=10.760 ms ^C --- yahoo.co.jp ping statistics --- 2 packets transmitted, 2 packets received, 0% packet loss round-trip min/avg/max/stddev = 10.760/11.579/12.399/0.820 ms 以上の状況で、どの辺りに原因があるか、推測つきますでしょうか。 なにぶん知識不足なもので、見当だけでもつけばと思い質問させて頂きました。

  • Winows7 での ping の応答

    下記の障害があります。 すみませんが、対応策を教えてください。 <障害> ホスト名指定でのpingが飛ばない。 「ホスト *** が見つかりません」と表示されてしまう。 <環境> ・Windows7 Pro (64bit)を使用しています。 ・lmhostsファイルにホスト名を記載しています。 ・IPアドレスはスタティック指定です。 ・ファイあウォールを無効にしても同様 <状態> ・lmhostsの内容 192.168.2.100 myserver #PRE ・ping方法  >ping \\myserver or >ping \\192.168.2.100 ・応答 ping 要求ではホスト \\dserver が見つかりませんでした。ホスト名を確認してもう一度 実行してください。 ・IPではOK >ping 192.168.2.100 192.168.2.100 に ping を送信しています 32 バイトのデータ: 192.168.2.100 からの応答: バイト数 =32 時間 <1ms TTL=128

  • ping?

     頓珍漢な質問のような気もしますが、教えて下さい。 WindowsXP Proを使っています。  昨日より、ネットワークの接続が出来なくなってしまいました。その前の状況としては、 1、SOURCENEXTのインターネットセキュリティ2004のアップデートをした 2、OEでメールを取ろうと思ったら、X7?(exeかcomの拡張子のプログラム名だったと思います)だったかを通すかというメッセージが出たので、拒否?の意味のところを選択したところ、yahooのメールだけが取れなくなってしまったため、次は、許可を選択したところ全くネットに繋がらなくなってしまった 3、全ファイルをウィルススキャンしたがウィルスは検出できなかった  そこで、pingを通したいと思うのですが、ファイル名を指定して実行から  ping 192.168.0.1(ADSLモデムのIPアドレス)  を指定したところ  Request timed out.  と返ってきました。  ということは、つながっていないということかと思いますが、この他にルーターのIPアドレスを入れてみる必要があるのでしょうか?また、ISP(DION)のIPアドレスはわからないので、  ping dion.ne.jp   と入れてみれば良いのでしょうか?  

    • ベストアンサー
    • ADSL