06. ICMP - Interneta vadības ziņojumu protokols

Pēdējais mainījis Administrator 2011-06-06 17:16

06. ICMP - Interneta vadības ziņojumu protokols

#term("ICMP", "Internet_Control_Message_Protocol") bieži uzskata par IP slāņa sastāvdaļu. Tas apmaina kļūdu ziņojumus un citus ziņojumus, kuri pelna uzmanību. Uz ICMP ziņojumiem parasti reaģē vai nu pats IP slānis, vai kāds no augstāka līmeņa protokoliem (TCP vai UDP). Daži ICMP ziņojumi izraisa kļūdas, kas tiek atgrieztas lietotāja procesiem.

ICMP ziņojumus pārraida IP datagramma ar saturu, kā parādīts 6.1.attēlā:

#pic("f_6_1.gif", "300")
6.1.attēls: ICMP ziņojums iekapsulēts IP datagrammā

ICMP oficiālā specifikācija ir RFC 792 [Postel 1981b].

6.2.attēls parāda ICMP ziņojuma formātu. Pirmajiem 4 baitiem visiem ziņojumiem ir tas pats formāts, bet atlikums dažādu veidu ziņojumiem atšķiras. Mēs parādīsim katra ziņojuma formātu, kad to aprakstīsim.

Ir 15 dažādas vērtības tipa laukam, kas konkretizē ICMP ziņojuma jēgu. Daži ICMP ziņojumu tipi vēl izmanto dažādas #term("koda lauka", "code field") vērtības, lai vēl tālāk specializētu ziņojumu. Kontrolsummas lauks ir aprēķināts visam ICMP ziņojumam. Lietotais algoritms ir tas pats, ko aprakstījām IP hedera kontrolsummai 3.2.nodaļā. ICMP protokolam kontrolsumma ir obligāta.

#pic("f_6_2.gif", "500")
6.2.attēls: ICMP ziņojums

Šajā nodaļā runāsim par ICMP ziņojumiem vispārīgi un arī par dažiem atsevišķi: #term("adresses maskas", "address_mask") pieprasījumu un atbildi, #term("laikspiedoga pieprasījumu", "timestamp_request") un atbildi kā arī nesasniedzamo portu. #term("Atbalss pieprasījuma", "echo_request") ziņojumus mēs detalizēti apspriedīsim kopā ar ping programmu 7.nodaļā, un apspriedīsim ar IP maršrutēšanu saistītos ICMP ziņojumus 9.nodaļā.

Vingrinājumi

  • 6.1 6.2.nodaļas beigās uzskaitījām piecus īpašus nosacījumus pie kuriem nenosūta ICMP kļūdas ziņojumu. Kas notiktu, ja šos piecus nosacījumus neievērotu un mēs nosūtītu apraides UDP datagrammu uz neaizņemtu portu lokālajā tīklā?
  • 6.2 Izlasiet mītņu prasību RFC [Braden 1989a], lai noskaidrotu, vai ICMP nesasniedzamā porta ziņojuma ģenerācija ir obligāta, vēlama vai atļauta ("must", "should," vai "may"). Kurā nodaļā un lappusē par to ir rakstīts?
  • 6.3 Izlasiet RFC 1349 [Almquist 1992], lai noskaidrotu kā IP servisa tipa (type-of-service) lauks (#picref("f_3_2.gif", "3.2.attēls")) tiek uzstādīts ICMP.
  • 6.4 Ja jūsu sistēmā ir netstat komanda, lietojiet to, lai redzētu kādi ICMP ziņojumu tipi tiek saņemti un sūtīti.
Tagi:
Izveidojis Kalvis Apsītis 2008-03-21 00:15
    
This wiki is licensed under a Creative Commons 2.0 license
XWiki Enterprise 6.4 - Documentation