ping
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/06/23 04:34 UTC 版)
Ping ipv6
現在主流のipv4のPingとは違って、ipv6の場合はInternet Control Message Protocol for IPv6 を使用し、IPv4で使われていたICMPのエラー通知(詳細はエラー表示の欄を参照)などの機能に加えて、ARPに相当するアドレス解決の機能もあわせ持つようになった。
エラー表示
宛先のホストからの応答がない場合、ほとんどの実装では単にタイムアウトを表示するだけだが、一部の実装では、タイムアウトに関する以下のようなエラー通知を定期的に出力する。
- H – ホストにアクセスできない
- !N – ネットワークにアクセスできない
- !P – プロトコルにアクセスできない
- S – 送信元ルートが失敗した
- F – フラグメントが必要
- U – 宛先ネットワークが不明
- !W – 宛先ホストが不明
- I – 送信元ホストが孤立している
- A – 宛先ネットワークとの通信が管理上禁止されている
- Z – 宛先ホストとの通信が管理上禁止されている
- Q – このToSでは、宛先ネットワークに到達できない
- T – このToSでは、宛先ホストに到達できない
- X – 通信が管理上禁止されている
- V – ホスト優先順位違反
- C – 優先順位カットオフが有効
エラーが発生した場合、宛先ホストや中間ルータは、"host unreachable"や"TTL exceeded in transit"などのICMPエラーメッセージを返信する。このメッセージには、元のメッセージの最初の8バイト(この場合はICMP echo requestのヘッダ)が含まれているため、pingユーティリティは応答を発信元のクエリーと照合できる[9]。
メッセージのフォーマット
ICMPパケット
Bits 0–7 | Bits 8–15 | Bits 16–23 | Bits 24–31 | |
---|---|---|---|---|
ヘッダ (20 bytes) |
バージョン/IHL | サービスの種類 | 長さ | |
識別子 | フラグとオフセット | |||
Time To Live (TTL) | Protocol | ヘッダのチェックサム | ||
送信元IPアドレス | ||||
宛先IPアドレス | ||||
ICMPヘッダ (8バイト) |
メッセージの種類 | コード | チェックサム | |
ヘッダデータ | ||||
ICMPペイロード (オプション) |
ペイロードデータ |
Bits 0–3 | Bits 4–7 | Bits 8–11 | Bits 12–15 | Bits 16–23 | Bits 24–31 | |
---|---|---|---|---|---|---|
ヘッダ (40バイト) |
バージョン | トラフィッククラス | フローラベル | |||
ペイロード長 | 次のヘッダ | ホップリミット | ||||
送信元アドレス | ||||||
宛先アドレス | ||||||
ICMP6ヘッダ (8バイト) |
メッセージの種類 | コード | チェックサム | |||
ヘッダデータ | ||||||
ICMP6ペイロード (オプション) |
ペイロードデータ |
ICMPパケットの一般的な構成:[10]
- IPv4ヘッダ(青): プロトコルは1(ICMP)、サービスタイプは0が設定される。
- IPv6ヘッダ(青): 次のヘッダは58(ICMP6)が設定される。
- ICMPヘッダ(赤):
- ICMPメッセージの種類(8ビット)
- コード(8ビット)
- チェックサム(16ビット)。パケットのICMP部分で計算される(IPヘッダは使用されない)。Typeフィールドで始まるICMPメッセージの1の補数和の16ビットの1の補数である[11]。
- ヘッダデータ(32ビット)。echo request, replyでは、識別子(16ビット)とシーケンス番号(16ビット)で構成される。
- ICMPペイロード:様々な種類の回答のペイロード。実装の詳細により任意の長さにすることができる。ただし、IPヘッダとICMPヘッダを含むパケットは、ネットワークのmaximum transmission unit(MTU)より小さくなければならない。MTUより大きくなると、フラグメントされる危険性がある。
echo request
echo request(エコー要求)は、ICMP/ICMP6のメッセージである。
00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Type = 8(IPv4, ICMP) 128(IPv6,ICMP6) | Code = 0 | ヘッダチェックサム | |||||||||||||||||||||||||||||
識別子 | シーケンス番号 | ||||||||||||||||||||||||||||||
ペイロード |
クライアントは、識別子とシーケンス番号を使用して、応答を要求と一致させることができる。実際には、ほとんどのLinuxシステムはpingプロセスごとに異なる識別子を使用しており、シーケンス番号はそのプロセス内で増加する番号である。Windowsは、Windowsのバージョンによって異なる固定識別子と、起動時にのみリセットされるシーケンス番号を使用する。
echo reply
echo reply(エコー応答)は、echo requestの応答として生成されるICMPメッセージである。規定では、エコー要求を受信した場合は必ずエコー応答を返信しなければならず、エコー応答にはエコー要求に含まれるペイロードをそのまま含まなければならない。
00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Type = 0(IPv4,ICMP) 129(IPv6,ICMP6) | Code = 0 | ヘッダチェックサム | |||||||||||||||||||||||||||||
識別子 | シーケンス番号 | ||||||||||||||||||||||||||||||
ペイロード |
識別子とシーケンス番号は、エコー要求と応答を関連付けるためにクライアントで使用される。
ペイロード
パケットのペイロードは一般にASCII文字で埋められている。以下に、ICMP echo requestの最後の32バイトのtcpdumpユーティリティによる出力の例を示す(echo requestパケットは0x0800から始まり、ICMPヘッダの後にペイロードがある)。
16:24:47.966461 IP (tos 0x0, ttl 128, id 15103, offset 0, flags [none], proto: ICMP (1), length: 60) 192.168.146.22 > 192.168.144.5: ICMP echo request, id 1, seq 38, length 40 0x0000: 4500 003c 3aff 0000 8001 5c55 c0a8 9216 E..<:.....\U.... 0x0010: c0a8 9005 0800 4d35 0001 0026 6162 6364 ......M5...&abcd 0x0020: 6566 6768 696a 6b6c 6d6e 6f70 7172 7374 efghijklmnopqrst 0x0030: 7576 7761 6263 6465 6667 6869 uvwabcdefghi
ペイロードには、送信の時間を示すタイムスタンプやシーケンス番号(上記の例では含まれていない)を含むことができる。これにより、pingは各パケットの送信時刻を記録することなく、ステートレスな方法でラウンドトリップタイムを計算できる。
注釈
出典
- ^ [1]
- ^ a b Mike Muuss. “The Story of the PING Program”. U.S. Army Research Laboratory. 2010年9月8日時点のオリジナルよりアーカイブ。2010年9月8日閲覧。 “I named it after the sound that a sonar makes, inspired by the whole principle of echo-location.”
- ^ "The Story of the PING Program", Mike Muuss
- ^ Salus, Peter (1994). A Quarter Century of UNIX. Addison-Wesley. ISBN 978-0-201-54777-1
- ^ Mills, D.L. (1983). Internet Delay Experiments (英語). IETF. p. 1. doi:10.17487/RFC0889. STD 8. RFC 889. 2015年6月26日閲覧。
- ^ http://www.manpagez.com/man/8/ping/
- ^ “RFC 1122 - Requirements for Internet Hosts -- Communication Layers”. p. 42. 2012年3月19日閲覧。 “Every host MUST implement an ICMP Echo server function that receives Echo Requests and sends corresponding Echo Replies.”
- ^ a b “Windows firewall: how block ICMP (echo response)”. 2019年2月27日閲覧。
- ^ “ICMP: Internet Control Message Protocol”. repo.hackerzvoice.net (2000年1月13日). 2014年12月4日閲覧。
- ^ “RFC 792 - Internet Control Message Protocol”. Tools.ietf.org. 2014年2月2日閲覧。
- ^ “RFC Sourcebook's page on ICMP”. 2010年12月20日閲覧。
- ^ “redhat linux /proc/sys/net/ipv4 parameters”. 2019年2月27日閲覧。
- ^ Abdou, AbdelRahman; Matrawy, Ashraf; van Oorschot, Paul (April 2017). Accurate Manipulation of Delay-based Internet Geolocation. ACM AsiaCCS. doi:10.1145/3052973.3052993。
- 1 pingとは
- 2 pingの概要
- 3 pingの出力例
- 4 Ping ipv6
- 5 セキュリティ上の考慮事項
固有名詞の分類
- pingのページへのリンク