Internet Control Message Protocol

Од Википедија — слободната енциклопедија
Прејди на: содржини, барај

ICMP (англ. Internet Control Messageing Protocol) e еден од главните протоколи од мрежниот слој од OSI референтниот модел кој обезбедува механизам за рекламирање.Во суштина, овој протокол се користи од мрежните уреди,како рутерите за да се испратат пораки кои индицираат на пример, дека бараната услуга не е достапна или дека неможе да се стигне до домаќин или рутер .[1] It is assigned protocol number 1.[2]ICMP протоколот исто така може да се користи и за препраќање на пораки за пребарување.ICMP[3] се разликува од транспортните протоколи како што се TCP и UDP во тоа што не се користи вообичаено за размена на податоци меѓу системи ниту пак е користен од страна на кориснички мрежни апликации(со исклучок на некои дијагностички алатки како ping или treceroute ) ICMP за Internet Protocol верзија 4 е познат како ICMPv4. IPv6 слично има протокол ICMPv6.

Петте нивоа на TCP/IP моделот
5. Апликациско ниво (Application layer)

DHCP • FTP • IMAP4 • POP3 • SIP • SMTP • SSH • BGP •

4. Транспортно ниво (Transport layer)

UDP • TCP • DCCP • SCTP • RSVP • ECN

3. Мрежно ниво (Network layer)

IP (IPv4 • IPv6) • ICMP • IGMP • RSVP • IPsec

2. Податочно ниво (Data Link Layer)

ATM • DTM • Ethernet • FDDI • Frame Relay • GPRS • PPP • ARP • RARP • L2TP • PPTP

1. Физичко ниво (Physical layer)

Етернет • ISDN • Модеми • PLC • SONET/SDH • G.709 • Wi-Fi •

Технички детали[уреди | уреди извор]

ICMP протоколот е дел од TCP/IP,како што е дефинирано во RFC 792.ICMP пораките обично се користат за дијагностички цели или се генерирани од како одговор на грешки во извршување на IP операции.ICMP пораките се насочуваат кон изворната IP адреса на оригиналниот пакет. На пример, секој уред (како еден просечен рутер ) препраќајќи еден IP датаграм прво го декреметнира time to leave полето ( ТТL ) во IP заглавјето за еден.Ако резултантната вредност во полето TTL е 0 пакетот се отфрла и ICMP Time To Live exceeded in transit порака се испраќа до изворната адреса. Иако ICMP пораките се содржани во стандардните IP пакети ,ICMP пораките обично се процесирани како посебен случај ,различно од нормалното IP процесирање.Во многу случаи потребно е да се изврши увид во содржината на ICMP пораката и да се достави соодветната порака( error-message ) до апликацијата која го генерирала оригиналниот IP пакет,односно таа апликација која го пратила пакетот што поттикнал испраќање на ICMP порака. Многу често користени мрежни услуги се базирани на ICMP пораки.Тraceroute командата е имплементирана преку пренесување на IP датаграм со специјално поставени IP TTL полиња од заглавјето, и чекање ICMP Time to live exceeded in transit и "Destination unreachable" пораки генерирани како одговор.Слично и ping услугата е имплементирана преку ICMP "Echo request" и "Echo reply" пораки.[1]

ICMP структура на сегмент[уреди | уреди извор]

Заглавје[уреди | уреди извор]

ICMP заглавјето започнува по IPv4 заглавјето и се идентификува како протокол број ‘1’.Сите ICMP пакети 8-бајтно заглавје.Првите 4 бајти од заглавјето се конзистентни.Првиот бајт е за типот на ICMP.Вториот бајт е за ICMP кодот.Третиот и чевртиот бајт се проверка(checksum) на целата ICMP порака.Содржината во останатите 4 бајти од заглавјето е различна и зависи од ICMP типот и кодот. ICMP пораките за грешка (error message) содржат податочна секција што вклучува цело IP заглавје плус првите 8 бајти податоци од IP пакетот што генерирал ICMP порака.Така ICMP пакетот се енкапсулира во нов IP пакет.

Bits 0–7 8–15 16–23 24–31
0 Type Code Checksum
32 Rest of Header


  • Type поле – ICMP тип.
  • Code поле – Подтип од дадениот тип.
  • Checksum поле– Податоци за проверка на грешка
  • Останат дел од заглавјето – 4-бајтно поле кое зависи од типот и подтипот на ICMP.

Контролни пораки[уреди | уреди извор]

Позначајни контролни пораки[4][5]
Type Code Description
0 – Echo Reply[3]:14 0 Echo reply (used to ping)
1 and 2 Reserved
3 – Destination Unreachable[3]:4 0 Destination network unreachable
1 Destination host unreachable
2 Destination protocol unreachable
3 Destination port unreachable
4 Fragmentation required, and DF flag set
5 Source route failed
6 Destination network unknown
7 Destination host unknown
8 Source host isolated
9 Network administratively prohibited
10 Host administratively prohibited
11 Network unreachable for TOS
12 Host unreachable for TOS
13 Communication administratively prohibited
14 Host Precedence Violation
15 Precedence cutoff in effect
4 – Source Quench 0 Source quench (congestion control)
5 – Redirect Message 0 Redirect Datagram for the Network
1 Redirect Datagram for the Host
2 Redirect Datagram for the TOS & network
3 Redirect Datagram for the TOS & host
6 Alternate Host Address
7 Reserved
8 – Echo Request 0 Echo request (used to ping)
9 – Router Advertisement 0 Router Advertisement
10 – Router Solicitation 0 Router discovery/selection/solicitation
11 – Time Exceeded[3]:6 0 TTL expired in transit
1 Fragment reassembly time exceeded
12 – Parameter Problem: Bad IP header 0 Pointer indicates the error
1 Missing a required option
2 Bad length
13 – Timestamp 0 Timestamp
14 – Timestamp Reply 0 Timestamp reply
15 – Information Request 0 Information Request
16 – Information Reply 0 Information Reply
17 – Address Mask Request 0 Address Mask Request
18 – Address Mask Reply 0 Address Mask Reply
19 Reserved for security
20 through 29 Reserved for robustness experiment
30 – Traceroute 0 Information Request
31 Datagram Conversion Error
32 Mobile Host Redirect
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 through 255 Reserved

Source quench[уреди | уреди извор]

Со ''source quench'' се испраќа барање до испраќачот да ја намали ратата на пораки пратени до некој рутер или домаќин.Ваков тип на порака може да биде генерирана од некој рутер или домаќин(хост) доколку нема доволно простор во баферот за да се процесираат сите пораки, или доколку баферот а рутерот или хостот се доближува до својот лимит. Податоците од еден домаќин до некој рутер на мрежата се праќаат со големи брзини.Иако рутерот има можност за баферирање на податоците, баферирањето е лимитирано до одреден степен.Рутерот неможе да прими повеќе податоци отколку што има место во баферот и затоа ги отфрла сите пакети што доаѓаат во моментот кога баферот е исполнет,се додека не се ослободи место во баферот да се примат истите.Но бидејќи не постои механизам за потврдување на примените пакети (acknowledgement) испраќачот нема да знае дали податоците се примени успешно.Затоа со source quench механизмот се овозможува рутерот да увиди поголема рата на примени пакети од изворот од онаа која што е граница на баферот , и се испраќа ICMP порака до испраќачот да ја намали ратата на испраќање. Source quench ICMP пораката ја има улогата на контрола на проток на мрежно ниво.

Source quench порака[3]:9
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 Header checksum
unused
IP header and first 8 bytes of original datagram's data

Каде:

Type полето мора да биде поставено на 4.
Code полето мора да биде поставено на 0.

Redirect[уреди | уреди извор]

Со redirect request пораката се побарува податочните пакети да бидат испраќани по алтернативна патека.ICMP redirect е механизам за рутерите да пренесуваат рутирачки информации до хостовите.ICMP redirect пораката ги информира хостовите(домаќините) да ги ажурираат своите рутирачки информации(да испраќаат на алтернативни патеки).

Redirect порака[3]: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 Header checksum
IP address
IP header and first 8 bytes of original datagram's data

Каде:

Type полето мора да биде поставено на 4.
Code полето специфицира причина за промена на рутирачките информации.

Time exceed[уреди | уреди извор]

Time exceed е порака генерирана да го извести изворот за отфрлениот пакет од причини што ТТL полето достигнало вредност нула.

Time exceeded порака[3]: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 Header checksum
unused
IP header and first 8 bytes of original datagram's data


Каде:

Type полето мора да биде поставено на 11.
Code полето специфицира причина за отфрлањето на пакетот.

Timestamp[уреди | уреди извор]

Тimestamp пораката се користи за синхронизација.

Timestamp порака[3]: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 Header checksum
Identifier Sequence number
Originate timestamp

Kaде:

Type полето мора да биде поставено на 13.
Code полето мора да биде поставено на 0.

Destination unreachable[уреди | уреди извор]

Destination unreachable порака се користи за да го информира клиентот дека дестинацијата е недостапна од некоја причина.Како причини за генерирање на оваа порака се јавуваат: не постои физичка конекција до дестинациската адреса ( растојанието е бесконечно(анг. infinity.) ), протоколот или портата не се активни од некоја причина,податоците мораат да се фрагметираат а вклучено е полето “don’t fragment”.

Destination unreachable порака[3]: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 Header checksum
unused Next-hop MTU
IP header and first 8 bytes of original datagram's data

Kaде:

Type полето мора да биде поставено на 3.
Code полето специфицира типот на грешка која настанала,и може да биде едно од следните:
Code Description
0 Network unreachable error.
1 Host unreachable error.
2 Protocol unreachable error (the designated transport protocol is not supported).
3 Port unreachable error (the designated protocol is unable to inform the host of the incoming message).
4 The datagram is too big. Packet fragmentation is required but the 'don't fragment' (DF) flag is on.
5 Source route failed error.
6 Destination network unknown error.
7 Destination host unknown error.
8 Source host isolated error.
9 The destination network is administratively prohibited.
10 The destination host is administratively prohibited.
11 The network is unreachable for Type Of Service.
12 The host is unreachable for Type Of Service.
13 Communication administratively prohibited (administrative filtering prevents packet from being forwarded).
14 Host precedence violation (indicates the requested precedence is not permitted for the combination of host or network and port).
15 Precedence cutoff in effect (precedence of datagram is below the level set by the network administrators).

See also[уреди | уреди извор]


External links[уреди | уреди извор]


References[уреди | уреди извор]

  1. 1,0 1,1 Forouzan, Behrouz A. (2007). Data Communications And Networking (Fourth издание). Boston: McGraw-Hill. стр. 621–630. ISBN 0-07-296775-7. 
  2. „Protocol Numbers“. Internet Assigned Numbers Authority. http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xml. конс. 23 јуни 2011 г. 
  3. 3,0 3,1 3,2 3,3 3,4 3,5 3,6 3,7 3,8 Шаблон:Cite rfc
  4. „IANA ICMP Parameters“. Iana.org. 21 септември 2012. http://www.iana.org/assignments/icmp-parameters. конс. 7 јануари 2013 г. 
  5. Computer Networking – A Top-Down Approach by Kurose and Ross