(Translated by https://www.hiragana.jp/)
互联网控制消息协议 - 维基百科,自由的百科全书

互联网控せい消息しょうそく协议

互联网协议族てき核心かくしん协议いち主要しゅようよう于IPv4网络,以指示しじ网络操作そうさちゅうてき错误消息しょうそく

互联网控せい消息しょうそく协议英語えいごInternet Control Message Protocol,缩写:ICMPこれ互联网协议ぞくてき核心かくしん协议いち。它用于网际协议(IP)ちゅう发送ひかえせい消息しょうそく提供ていきょう可能かのう发生ざい通信つうしん环境ちゅうてきかく种问题反馈。つう过这些信いき使つかい管理かんりしゃ以对しょ发生てき问题作出さくしゅつ诊断,しかきさきさい适当てき措施かい决。

ICMP [1]もたれIPらい完成かんせい它的にん务,它是IPてき主要しゅよう部分ぶぶん。它与传输协议(如TCPUDP)显著不同ふどう:它一般不用于在两点间传输数据。它通常つうじょうよし网络ほどじょ直接ちょくせつ使用しようじょりょう ping traceroute 这两个特べつてきれいIPv4なかてきICMPしょうさくICMPv4,IPv6なかてきICMP则被しょうさくICMPv6

技術ぎじゅつほそぶし

编辑

ICMPざい RFC 792 ちゅうてい义的互联网协议族いち通常つうじょうよう于返かいてき错误しんいきある分析ぶんせきよし。ICMP错误消息しょうそく总是包括ほうかつりょうげんすうすえ并返かい给发送しゃ。 ICMP错误消息しょうそくてきれいいちTTL值过まい个路よしざい转发すうすえ报的时候都会とかいIPつつみ头中てきTTL值减1。如果TTL值为0,“TTLざい传输ちゅう过期”てき消息しょうそくしょうかいかい报给げんまい个ICMP消息しょうそく直接ちょくせつふうそうざいいち个IPすうすえつつみちゅうてきいん此,UDPいち样,ICMP不可ふかもたれてき

虽然ICMP包含ほうがんざいIPすうすえつつみちゅうてきただし对ICMP消息通しょうそくつう常会じょうかい特殊とくしゅ处理,かい一般いっぱんIPすうよりどころつつみてき處理しょり不同ふどう,而不作為さくいIPてきいち協議きょうぎらい處理しょりざい很多時候じこう需要じゅよう查看ICMP消息しょうそくてき內容,しかこう發送はっそう適當てきとうてき錯誤さくご消息しょうそくいたばららいさんせいIPすうよりどころつつみてきほどじょそくしるべ致ICMP訊息傳送でんそうてきIPすうよりどころつつみ

很多常用じょうようてき工具こうぐもと於ICMP消息しょうそくてきtraceroute 通過つうか發送はっそうつつみ含有がんゆう特殊とくしゅてきTTLてきつつみしかこう接收せっしゅうICMPちょう消息しょうそく目標もくひょう不可ふかたち消息しょうそくらい實現じつげんてきping のりようICMPてき"Echo request"(类别だい码:8)かず"Echo reply"(类别だい码:0)消息しょうそくらい實現じつげんてき

ICMP报文結構けっこう

编辑

むくいあたま

编辑

ICMPほうあたましたがえIPほうあたまてきだい160開始かいし(IP首部しゅぶ20节)(じょ使用しようりょうIPほうあたまてきせん部分ぶぶん)。

Bits 160-167 168-175 176-183 184-191
160 Type Code こうけん碼(checksum)
192 Rest of Header
  • Type - ICMPてき類型るいけい,标识生成せいせいてき错误报文;
  • Code - 進一しんいち劃分ICMPてき類型るいけい,该字だんようらい查找产生错误てき原因げんいん.;れい如,ICMPてき目標もくひょう不可ふかたち類型るいけい以把這個しつらえため1いたり15とうらい表示ひょうじ不同ふどうてき意思いし
  • Checksum - InternetこうけんRFC 1071),よう進行しんこう錯誤さくごけん查,該校けんしたがえICMPあたま以該だんかえかわため0てきすうよりどころ計算けいさんとくてき
  • Rest of Header - むくいあたまてき其餘部分ぶぶんよんぶしだん,內容根據こんきょICMP類型るいけい和代かずよ碼而ゆうしょ不同ふどう

はまたかしすうよりどころ

编辑

はまたかしてきすうよりどころ緊接ざいICMPほうあたまてきめん(以8ためいちくみ):

  • Linuxてき"ping"工具こうぐはまたかしてきICMPじょりょう88もとぐみてきほうあたま以外いがいだま认情况下かえ另外はまたかしすうよりどころ使そう大小だいしょうため64ぶし
  • Windowsてき"ping.exe"はまたかしてきICMPじょりょう88もとぐみてきほうあたま以外いがいだま认情况下かえ另外はまたかしすうよりどころ使そう大小だいしょうため40ぶし

报文类型

编辑
类型 だい じょう 描述 查询
0 - 响应かい 0 Echo响应 (ほどじょping使用しよう
1 and 2 分配ぶんぱい 保留ほりゅう
3 - 目的もくてき不可ふかたち 0 标网络不可ふか
1 标主つくえ不可ふか
2 标协议不可ふか
3 标端こう不可ふか
4 要求ようきゅう分段ぶんだん并设おけDF flag标志
5 みなもとよししつ
6 知的ちてき标网络
7 知的ちてき标主つくえ
8 みなもとしゅつくえへだた离(さく废不よう
9 禁止きんし访问てき网络
10 禁止きんし访问てきしゅつくえ
11 特定とくていてきTOS 网络不可ふか
12 特定とくていてきTOS ぬしつくえ不可ふか
13 よし于过滤 网络流量りゅうりょう禁止きんし
14 しゅつくええつ
15 优先权终とめせいこう
4 - みなもとはし关闭 0 弃用 みなもとはし关闭(拥塞ひかえせい
5 - 重定しげさだむかい 0 重定しげさだこう网络
1 重定しげさだこうしゅつくえ
2 もと于TOS てき网络重定しげさだむかい
3 もと于TOS てきしゅつくえ重定しげさだむかい
6 弃用 备用ぬしつくえ
7 分配ぶんぱい 保留ほりゅう
8 - 请求かい 0 Echo请求
9 - みちよし通告つうこく 0 みちよし通告つうこく
10 - みちよし请求 0 みちよしてき发现/选择/请求
11 - ICMP ちょう 0 TTL ちょう
1 ぶんかたじゅう组超时
12 - まいりすう问题:错误IP头部 0 IP 报首さんすう错误
1 丢失必要ひつよう选项
2 支持しじてき长度
13 - 时间戳请もとむ 0 时间戳请もとむ
14 - 时间戳应こたえ 0 时间戳应こたえ
15 - しんいき请求 0 弃用 しんいき请求
16 - しんいき应答 0 弃用 しんいき应答
17 - 掩码请求 0 弃用 掩码请求
18 - 掩码应答 0 弃用 掩码应答
19 保留ほりゅう いん安全あんぜん原因げんいん保留ほりゅう
20 いたり 29 保留ほりゅう Reserved for robustness experiment
30 - Traceroute 0 弃用 しんいき请求
31 弃用 かずすえ报转换出错
32 弃用 つくえ网络重定しげさだむかい
33 弃用 Where-Are-You(originally meant for IPv6
34 弃用 Here-I-Am(originally meant for IPv6)
35 弃用 Mobile Registration Request
36 弃用 Mobile Registration Reply
37 弃用 Domain Name Request
38 弃用 Domain Name Reply
39 弃用 SKIP Algorithm Discovery Protocol, Simple Key-Management for Internet Protocol
40 Photuris, Security failures
41 实验せいてき ICMP for experimental mobility protocols such as Seamoby [RFC4065]
42 いた 255 保留ほりゅう 保留ほりゅう
235 实验せいてき RFC3692( RFC 4727
254 实验せいてき RFC3692( RFC 4727
255 保留ほりゅう 保留ほりゅう

みなもと抑制よくせい

编辑

みなもと抑制よくせい报文むねざい请求发送かたくだてい发往よしあるしゅつくえてき报文发送そくりつざい接收せっしゅうてき过程ちゅうとう接收せっしゅうかたぼつゆうあし够的接收せっしゅう缓冲らい处理接收せっしゅういたてき报文,あるもの接收せっしゅう这个报文かい导致临近其本身ほんみてき缓冲げんせい时,就会さわ发源站抑制よくせい报文。

かずすえ从一个或一群主机高速地发往网络上的一个路由器,虽然よしゆう缓冲つくえせいただしよしてき缓冲大小だいしょう通常つうじょうゆかり物理ぶつりないそん有限ゆうげんてき原因げんいんきりせいよし此,如果よしてき通信つうしんりょう过大,みちよしさい终会(ゆかり于内そん耗尽,导致必须丢弃掉接收せっしゅういたてきすうすえ报)无法继续处理ちょう过输にゅう缓冲げんせいてき部分ぶぶんすうすえちょくいたみちよし缓冲队列ゆうそらあまりそら间可以存しんまとすうすえ报。ただしよし网络层(Network Layer)缺乏けつぼう確認かくにん訊息(ACK)つくえせいいん此客户端无法获知すうすえ成功せいこう抵达接收せっしゅうかた所以ゆえん研究けんきゅうしゃ提出ていしゅつりょうげん抑制よくせい这一补救措施来解决这一问题:当路とうろよし发现流入りゅうにゅうすうすえそくりつ远远だか流出りゅうしゅつすうすえそくりつ时,かい发送ICMPげん抑制よくせい报文给源站,通知つうちげん站应该降てい其数すえ传输速度そくどあるとうまち一定时间后再尝试发送更多数据。とうみなもと接收せっしゅういたICMPげん抑制よくせい报文时会减慢すうすえ发送てき速度そくどあるものざいさいつぎ尝试发送すうすえぜんとうまち一定いっていてき时间,使つかいとくよしのう够(ざい处理かんとうぜん接收せっしゅういたてきすうすえきさききよしそら输入缓冲队列。

ただしいん为有研究けんきゅう表明ひょうめいみなもと抑制よくせいいち种无こうてき不公平ふこうへいてき)补救措施“,所以ゆえんよしてきげん抑制よくせい报文やめざい1995ねんかむRFC 1812页面そん档备份そん互联网档あん)弃用。此外,(みちよし)转发かい应任なん形式けいしきてきげん抑制よくせい报文やめざい2012ねんかむRFC 6633页面そん档备份そん互联网档あん)弃用

みなもと抑制よくせい报文[1]
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) = 4 だい码(Code) = 0 检验(Checksum)
使用しよう
IPすうすえ报头げんすうすえ报数すえてきまえ8个字节

其中:

类型(Type) 必须设置为4
だい码(Code) 必须设置为0
IPすうすえ报头 かず附加ふかてきすうすえよう于发送はしすえかい应报ぶんひきはい对应てき请求报文

重定しげさだむかい

编辑
 
关于ICMPv4 重定しげさだこう报文如何いか工作こうさくてきしめせれい

重定しげさだむかい 报文网关发出てきよう要求ようきゅうぬしつくえあるみちよしあらため变数すえ报的传输みちてきICMP报文。ICMP 重定しげさだむかいただしみちよししょうよししんいき传达给主つくえてきつくえせい。这种类型てき报文通知つうちぬしつくえ更新こうしん它的よししんいき(请求ぬしつくえあらため变其ゆかり)。如果一个主机在通信时将数据报发送给了みちよしR1,而R1しょう这个すうすえ报转发给りょう另一个路よしR2,且主つくえいたみちよしR2これ间有一条直连的路径(也就说,此主つくえよしR2处于どう一以太网段上),么路よしR1かい发送一条重定向报文给主机,らい通知つうち它到よしR2可用かようみちさとゆういちじょうさらたんさら优化てきみち。这个ぬしつくえざい接收せっしゅういた这个重定しげさだこう报文きさき应该あらため变其よしいたり这个优化版本はんぽんてきよししんいきらいしょう抵达这个目的もくてきてきすうすえ直接ちょくせつ发送いたみちよしR2,并且よし仍将原始げんしすうすえ报发おくいた预期目的もくてき[2]ただし,如果一个数据报携带有路由信息,么即使ゆうさら优化てきみちみちよし也不かい发送重定しげさだこう报文。并且,RFC 1122 指出さしで重定しげさだこう报文应该ただよし网关发送,而不应该よし互联网主つくえ发送。[3]

重定しげさだこう报文[1]:11
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) = 5 だい码(Code) 检验(Checksum)
みちよしてきIP
げき发重ていこう报文てきすうすえ报IP首部しゅぶ及其すうすえてきまえ8

其中:

类型(Type) 必须设置为 5.
だい码(Code) 指定してい重定しげさだむこうてき原因げんいん,见下ひょう
だい码(Code) 描述
0 针对网络てき重定しげさだこう报文
1 针对ぬしつくえてき重定しげさだこう报文
2 针对网络和服わふく务类がたてき重定しげさだこう报文
3 针对ぬしつくえ和服わふく务类がたてき重定しげさだこう报文
みちよしてきIP (IP address) いち个32てき网关IP,该地ゆびあきらりょう该数すえ报应该被重定しげさだこういたてきよし
げき发重ていこう报文てきすうすえ报IP首部しゅぶ及其すうすえてきまえ8节(IP header) よう于收いた重定しげさだこう报文てきしゅつくえすえかい应报ぶんひきはい对应てき请求报文,らい确定该数すえ报的目的もくてき站地

ちょう

编辑

ちょう 报文网关产生并发送给源站的ICMP报文,よう通知つうちげん站有すうすえ报因为そんかつ時間じかん递减いたり0而被此网关丢弃。当主とうしゅつくえとうまちすうすえ报分へんてき过程ちゅうちょう时而无法おもしん组装すうすえ报分へん时也かい产生该报ぶん

ちょう时报文也ふみやようtraceroute工具こうぐらい识别两个ぬしつくえ间的みちじょうてき网关。

ちょう时报ぶん[1]:5
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) = 11 だい码(Code) こう验和(Checksum)
みちよしてきIP
げき发超时报ぶんてきすうすえ报IP首部しゅぶ及其すうすえてきまえ8

其中:

类型(Type) 必须设置为 11
だい码(Code) 指定していおもちょう时的原因げんいん,见下ひょう
Code Description
0 そんかつ時間じかん计数ちょう
1 ぶんかたじゅうそうちょう
げき发超时报ぶんてきすうすえ报IP首部しゅぶ及其すうすえてきまえ8 这些しんいきよう于源站根すえおさむいたてきちょう时报ぶんらい确定具体ぐたい哪个すうすえ报已丢弃。对于だか层协议,よう户数すえ报协议 传输ひかえせい协议而言,额外てき8节数すえゆびあきらりょうやめ丢弃てきすうすえ报中てきげんはしこうあずか目的もくてきはしこう

时间戳请もとむ

编辑

时间戳请もとむ 报文主要しゅようよう于互联网つくえ包括ほうかつよしぬしつくえ间同时钟。おこりはじめ时间戳是发送はしさいきさき一次改动该数据报的时间戳(为世界せかい标准时うまよる开始计算てき毫秒すう)。ざい该类がたてき报文ちゅう接收せっしゅう时间戳和传输时间戳未使用しよう

时间戳请もとめ报文[1]:15
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) = 13 だい码(Code) = 0 检验(Checksum)
标识(Identifier) じょごう(Sequence number)
おこりはじめ时间戳(Originate timestamp)
接收せっしゅう时间戳(Receive timestamp)
传输时间戳(Transmit timestamp)

其中:

类型(Type) 必须设置为 13
だい码(Code) 必须设置为 0
标识(Identifier) and じょごう(Sequence) よう于在时间戳请もとめ报文时间戳回答かいとう报文建立こんりゅう关联
おこりはじめ时间戳(Originate timestamp)世界せかい标准时うまよる开始计算てき毫秒すう。 如果ぼつゆう可用かようてき世界せかい标准时参考さんこう,则可以将最高さいこう有效ゆうこう设置为1以指示しじ这是一个非标准时间值。

时间戳回答かいとう

编辑

时间戳回答かいとう 报文对时间戳请求报文てき回答かいとう报文。 时间戳回答かいとう报文よし接收せっしゅういたてき时间戳请もとめ报文其中てきおこりはじめ时间戳和接收せっしゅう时间戳(かい应端ぬしつくえ接收せっしゅういた请求报文并创けん时间戳回应报ぶんてき时间,单位为毫びょう)、传输时间戳(时间戳回答かいとう报文发送てき时间,单位为毫びょう)组成。

时间戳回答かいとう报文[1]:15
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) = 14 だい码(Code) = 0 检验(Checksum)
标识(Identifier) じょごう(Sequence number)
おこりはじめ时间戳(Originate timestamp)
接收せっしゅう时间戳(Receive timestamp)
传输时间戳(Transmit timestamp)

其中:

类型(Type) 必须设置为 14
だい码(Code) 必须设置为 0
标识(Identifier) じょごう(Sequence number) よう于在时间戳请もとめ报文时间戳回答かいとう报文建立こんりゅう关联。
おこりはじめ时间戳(Originate timestamp) 发送はしさいきさき一次改动该数据报的时间戳。
接收せっしゅう时间戳(Receive timestamp) これかい应端ぬしつくえ接收せっしゅういた请求报文并创けん时间戳回应报ぶんてき时间,单位为毫びょう
传输时间戳(Transmit timestamp) さいきさき一次修改回应报文并将其发送出去的时间,单位为毫びょう
所有しょゆうてき时间戳都世界せかい标准时午よるおこりはじめてき毫秒すう。如果这个时间不能ふのう表示ひょうじ为毫びょうあるものぼつゆう可用かようてき世界せかい标准时参考さんこう值,则可以使用しようにんなん格式かくしきてき时间值并はた最高さいこう有效ゆうこう设置为1以指示しじ这是一个非标准时间值。

掩码请求

编辑

掩码请求 报文ぬしつくえ为了いたいち个合适的掩码而发おくいたみちよしてき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) = 17 だい码(Code) = 0 检验(Checksum)
标识(Identifier) じょごう(Sequence number)
掩码(Address mask)

其中:

类型(Type) 必须设置为 17
だい码(Code) 必须设置为 0
掩码(Address mask) 以为0

よし于ICMP 掩码请求可能かのうかいよう嗅探おさむらい收集しゅうしゅう特定とくてい网络てきしんいきいん此该报文だま认情况下Cisco IOSきんよう[4]

掩码回答かいとう

编辑

掩码回答かいとう 报文携带ゆう掩码しんいきよう回答かいとう掩码请求报文。

掩码回答かいとう报文
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) = 18 だい码(Code) = 0 こう验和(Checksum)
标识(Identifier) じょごう(Sequence number)
掩码(Address mask)

其中:

类型(Type) 必须设置为 18
だい码(Code) 必须设置为 0
掩码(Address mask) 为待回答かいとうてき掩码

みなもと不可ふか

编辑

みなもと不可ふか 报文ゆかりしゅつくえあるにゅう站网关用于通知つうちきゃく户端目的もくてき站无ほう连接てき报文。这些原因げんいん可能かのう包括ほうかつ物理ぶつり连接失效しっこう(也即网络距离无限だい),ある指定していてきあるはしこう处于げきかつじょう态,あるものすうすえ报长过长而导致必须分へんただしIP首部しゅぶ指定していりょうぶんへん”选项导致无法ぶんへん。如果TCPはしこう不可ふか达,则会かえしかいTCP RST,而不かいかえしかい此报ぶん。如果IP播的じょう况,也不かいかえしかい此报ぶん

みなもと不可ふか达报ぶん[1]:3
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) = 3 だい码(Code) 检验(Checksum)
使用しよう したいちとべてきMTU
げき发ICMP不可ふか达报ぶんてきすうすえ报IP首部しゅぶ及其すうすえてきまえ8

其中:

类型(Type) 必须设置为 3
だい码(Code) だんよう指示しじ具体ぐたい导致げん不可ふか达的原因げんいん。见下ひょう
だい码(Code) かい释(Description)
0 网络不可ふか
1 しゅつくえ不可ふか
2 协议不可ふか
3 はしこう不可ふか
4 需要じゅようぶんへんただしDF(Do not Fragment)おけ
5 みなもとよししつ
6 目的もくてき网络未知みち
7 目的もくてきぬしつくえ未知みち
8 みなもとしゅつくえへだた
9 あずか受到管理かんりきんひかえてき目的もくてき网络通信つうしん
10 あずか受到管理かんりきんひかえてき目的もくてきぬしつくえ通信つうしん
11 对于ゆびあかりてきふく务类がた,网络不可ふか
12 对于ゆびあかりてきふく务类がたしゅつくえ不可ふか
13 管理かんり目的もくてき禁止きんし通信つうしん
14 しゅつくええつ权.
15 优先权剥夺生こう
Next-hop MTU とう需要じゅようぶんへんただしDF(Do not Fragment)おけてき错误发生时,包含ほうがんりょういちとべ网络てきMTUてき值。
IP header よう于源站根すえおさむいたてきげん不可ふか达报ぶんらい确定具体ぐたい哪个すうすえ报引おこりりょうげん不可ふか达错误。

參考さんこう

编辑
  1. ^ 1.0 1.1 1.2 1.3 1.4 1.5 1.6 RFC 792 INTERNET CONTROL MESSAGE PROTOCOL; DARPA INTERNET PROGRAM; PROTOCOL SPECIFICATION; Introduction. J. Postel (Internet RFC/STD/FYI/BCP Archives). 1981-09-01 [2008-05-16]. (原始げんし内容ないようそん于2009-03-16). 
  2. ^ When Are ICMP Redirects Sent?. Cisco Systems. 2008-06-28 [2013-08-15]. (原始げんし内容ないようそん档于2014-01-12). 
  3. ^ Requirements for Internet Hosts -- Communication Layers. RFC. [2021-01-12]. (原始げんし内容ないようそん于2011-05-23). 
  4. ^ Cisco IOS IP Command Reference, Volume 1 of 4: Addressing and Services, Release 12.3 - IP Addressing and Services Commands: ip mask-reply through ip web-cache. Cisco Systems. [2013-01-07]. (原始げんし内容ないようそん于2013-01-02). 

外部がいぶ連結れんけつ

编辑