PROROCOLUL DE CONTROL AL MESAJELOR PE INTERNET (ICMP - INTERNET CONTROL MESSAGE PROTOCOL) PROGRAMUL DARPA INTERNET SPECIFICATIA PROTOCOLULUI Introducere Protocolul Internet (IP) [1] este utilizat pentru serviciul datagrame gazda catre gazda intr-un sistem de retele interconectate numite catanet [2]. Dispozitivele de conectare a retelei sunt numite Porti (Gateways). Aceste porti comunica intre ele din motive de control prin intermediul protocolului Poarta catre Poarta (GGP - Gateway to Gateway Protocol). Ocazional, o poarta sau gazda destinatie vor interopera cu o gazda sursa, de exemplu, pentru a raporta o eroare in procesarea datagramei. Pentru astfel de scopuri este folosit ICPM-ul. ICMP foloseste la baza suportul IP ca si cum ar fi un protocol de nivel mai inalt, cu toate ca, ICMP este in prezent parte integrata a IP-ului si trebuie sa fie implementat de catre fiecare modul IP. Mesajele ICMP sunt trimise in diferite situatii: de exemplu, cand o datagrama nu-si poate atinge destinatia, cand poarta nu are capacitatea zonei tampon de a trimite mai departe o datagrama si cand poarta poate directiona gazda sa redirectioneze traficul pe o ruta mai scurta. Protoculul Internet (Internet Protocol - IP) nu este proiectat pentru a fi pe deplin de incredere. Scopul acestor mesaje de control este de a trimite inapoi reactii despre problemele din mediul de comunicatie, nu de a face IP-ul de incredere (robust). Inca nu exista garantii ca o datagrama va fi livrata sau un mesaj de control va fi intors. Unele datagrame pot fi nelivrate fara a avea un control al pierderii lor. Protocoalele de nivel inalt care utilizeaza IP-ul trebuie sa implementeze propriile lor proceduri de siguranta daca este necesara o comunicatie de incredere. Mesajele ICMP raporteaza de obicei erorile din procesarea datagramelor. Pentru a evita reintoarcerea mesajelor despre alte mesaje, nici un mesaj ICMP nu este trimis despre alte mesaje ICMP. De asemenea, mesajele ICMP sunt trimise numai in legatura cu erorile in tratarea primului fragment (fragment zero) al datagramelor fragmentate. (Fragmentul zero este fragmentul cu deplasamentul zero). Formatul Mesajelor Mesajele ICMP sunt trimise folosind antetul IP de baza. Primul octet al sectiunii de date a datagramei este un camp ICMP; valoarea acestui camp determina formatul restului datelor. Orice camp denumit "unused" (nefolosit) este rezervat pentru extensii ulterioare si trebuie setat pe zero la trimitere, dar primitorii ar trebui sa nu utilizeze aceste campuri (cu exceptia includerii lor in suma de control). In afara de cazul cand se afla in descrieri cu format individual, valorile campurilor antetului internet sunt dupa cum urmeaza: Version (Versiune) 4 IHL Lungimea antetului Internet in cuvinte de 32 de biti. Type of Service (Tipul serviciului) 0 Total Length (Lungimea totala) Lungimea antetului internet si a datelor in octeti. Identification, Flags, Fragment Offset (Identificator, marcaje, deplasamentul fragmentului) Utilizate in fragmentare, vezi [1]. Time to Live (Timpul de viata) Timpul de viata in secunde; cum acest camp este decrementat la fiecare masina in care datagrama este procesata, valoarea acestui camp ar trebui sa fie cel putin la fel de mare pe cat numarul de porti pe care le va traversa datagrama. Protocol ICMP = 1 Header Checksum (Suma de control a antetului) Complementul pe 16 biti al a sumei complementului tuturo cuvintelor pe 16 biti din antet. Pentru calcularea sumei de control, campul sumei de control trebuie sa fie zero. Aceasta suma de control poate fi inlocuita in viitor. Source Address (Adresa sursa) Adresa portii sau gazdei care compune mesajul ICMP. In afara de cazul cand este specificat, aceasta poate fi oricare dintre adresele portilor. Destination Address (Adresa destinatie) Adresa portii sau gazdei spre care trebuie trimis mesajul. Mesajul destinatie inaccesibila 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Code | Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | unused | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Internet Header + 64 bits of Original Data Datagram | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Campurile IP: Destination Address (Adresa destinatie) Reteaua sursa si adresa din informatiile datagramei originale. Campurile ICMP: Type (Tipul) 3 Code (Codul) 0 = retea inaccesibila; 1 = gazda inaccesibila; 2 = protocol inaccesibila; 3 = port inaccesibila; 4 = fragmentare necesara si setarea DF; 5 = ruta sursa esuata. Checksum (Suma de control) Acest camp este complementarul pe 16 biti al celui care complementa suma din mesajul ICMP incepand cu tipul ICMP ("Type"). Pentru a o calcula, campul sumei de control trebie sa fie zero. Aceasta poate fi inlocuita in viitor. Internet Header + 64 bits of Data Datagram (Antetul Inernet = 64 de biti ai informatiei datagramei) Antetul internet plus primii 64 biti ai originalului din informatiile datagramei. Aceste informatii sunt folosite de catre gazda pentru a trimite mesajul procesului potrivit. Daca un protocol de nivel mai inalt foloseste numere de port, se presupune ca acestea se afla in primii 64 de biti din informatia datagramei originale. Descriere: Daca, in conformitate cu informatiile din tabelele de rutare ale portii, reteaua specificata in campul destinatie internet a unei datagrame este inaccesibila, cum ar fi din cauza ca distanta pana la retea este infinita, poarta va trimite un mesaj de tipul destinatie inaccesibila spre reteaua sursa a datagramei. Mai mult, in anumite retele, poarta ar putea chiar determina daca destinatia internet este inaccesibila. Portile din aceste retele trimit mesaje de tip destinatie inaccesibila gazdelor-sursa in aceste cazuri. Daca pe gazda destinatie modulul IP nu poate livra datagrama pentru ca modulul protocolului sau al procesului specificat nu este activ, gazda destinatie trimite un mesaj tip destinatie inaccesibila sursei. Un alt caz este cel in care o datagrama trebuie fragmentata pentru a fi trimisa mai departe de catre poarta, insa este setat indicatorul "Don't Fragment". In acest caz poarta respinge datagrama si intoarce un mesaj de destinatie inaccesibila. Codurile 0, 1, 4 si 5 sunt primite de la o poarta, iar codurile 2 si 3 de la o gazda. Mesajul "Time Exceeded " (timpul expirat) 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Code | Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | unused | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Internet Header + 64 bits of Original Data Datagram | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Campurile IP : Destination Address (Adresa destinatie) Reteaua sursa si adresa din informatia datagramei originale. Campurile ICMP : Type (Tipul) 11 Code (Codul) 0 = timpul de viata depasit in decursul transportului; 1 = timpul de reasamblarea a fragmentelor depasit; Checksum (Suma de control) Acest camp este complementarul pe 16 biti al celui complementar sumei din mesajul ICMP incepand cu tipul ICMP ("Type"). Pentru a o calcula, campul sumei de control trebie sa fie zero. Aceasta poate fi inlocuita in viitor. Internet Header + 64 bits of Data Datagram (Antetul Internet si 64 de biti de informatie ai datagramei) Aceasta informatie este folosita de catre gazda pentru a trimite mesajul procesului vizat. Daca un protol de nivel mai inalt foloseste numere de port, vor fi regasite in primii 64 de biti de informatie ai datagramei originale. Descrierea Daca poarta care proceseaza datagrama gaseste ca valoarea campului timp de viata este zero, va distruge datagrama. Poarta va informa sursa printr-un mesaj de expirare a timpului. Daca o gazda care reasambleaza o datagrama fragmentata nu poate incheia acest proces din cauza lipsei unor fragmente in limita timpului de viata, va distruge datagrama, si va trimite un mesaj de tip timp de viata expirat. Daca fragmetul zero nu este disponibil, atunci nu mai trebuie trimis mesajul despre timpul expirat. Codul 0 poate fi primit de la o poarta, pe cand codul 1 va fi primit de la o gazda. Mesajul parametrilor unei probleme 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Code | Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Pointer | unused | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Internet Header + 64 bits of Original Data Datagram | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Campurile IP: Destination Address Reteaua sursa si adresa din informatia datagramei originale. Campurile ICMP: Type (Tipul) 12 Code (codul) 0 = pointerul care indica eroarea . Checksum (Suma de comtrol) Acest camp este complementarul pe 16 biti al celui complementar sumei din mesajul ICMP incepand cu tipul ICMP ("Type"). Pentru a o calcula, campul sumei de control trebie sa fie zero. Aceasta poate fi inlocuita in viitor. Pointer In cazul in care codul = 0, identifica octetul la care s-a produs eroarea. Internet Header + 64 bits of Data Datagram (Antetul Internet si 64 de biti de informatie ai datagramei) Aceasta informatie este folosita de catre gazda pentru a trimite mesajul procesului vizat. Daca un protol de nivel mai inalt foloseste numere de port, vor fi regasite in primii 64 de biti de informatie ai datagramei originale. Descrierea Daca gazda sau poarta care proceseaza datagrama gaseste o problema cu parametrii antetului, cum ar fi ca nu pot incheia procesarea datagramei, aceasta este distrusa. O posibila sursa a acestei probleme ar fi argumente incorecte intr-o optiune. Poarta sau gazda pot de asemenea anunta gazda sursa printr-un mesaj de eroare a parametrilor. Acest mesaj este trimis doar daca eroarea a determinat distrugerea datagramei. Pointerul indica octetul antetului datagramei originale in care s-a depistat eroarea (ar putea fi in interiorul unei optiuni). De exemplu, 1 indica faptul ca ceva e in neregula cu tipul serviciului si (daca exista optiuni) 20 indica ceva in neregula cu tipul codului primei otiuni. Codul 0 poate fi primit de la o poarta sau de la o gazda. Mesajul de respingere a sursei 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Code | Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | unused | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Internet Header + 64 bits of Original Data Datagram | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Campurile IP: Destination Address (Adresa destinatie) Reteaua sursa si adresa din informatia datagramei originale. Campurile ICMP: Type (Tipul) 4 Code (codul) 0 Checksum (Suma de comtrol) Acest camp este complementarul pe 16 biti al celui complementar sumei din mesajul ICMP incepand cu tipul ICMP ("Type"). Pentru a o calcula, campul sumei de control trebie sa fie zero. Aceasta poate fi inlocuita in viitor. Internet Header + 64 bits of Data Datagram (Antetul Internet si 64 de biti de informatie ai datagramei) Aceasta informatie este folosita de catre gazda pentru a trimite mesajul procesului vizat. Daca un protol de nivel mai inalt foloseste numere de port, vor fi regasite in primii 64 de biti de informatie ai datagramei originale. Descrierea O poarta va distruge datagramele internet pentru care nu are suficient spatiu in coada zonei tampon pentru ca de acolo sa le trimita mai departe urmatoarei retele pe ruta spre reteaua destinatie. Daca o poarta distruge o datagrama, va trimite un mesaj de respingere a sursei catre gazda internet a expeditorului datagramei. O gazda destinatie poate de asemenea sa trimita un mesaj de respingere a sursei daca datagramele ajung prea repede pentru a fi procesate. Mesajul de respingere a sursei este o cerere catre gazda de a micsora rata la care trimite trafic spre destinatia internet. Gazda va trimite un mesaj de respingere a gazdei pentru fiecare mesaj pe care il distruge. La primirea unui astfel de mesaj, gazda expeditoare ar trebui sa reduca rata la care trimite trafic spre destinatia specificatapana cand nu mai primeste mesaje de respingere a sursei de la poarta. Gazda sursa va putea apoi sa creasca treptat aceasta rata pana cand va incepe din nou sa primeasca aceste mesaje de respingere a sursei. Poarta sau sursa vor trimite mesajul de refuz al sursei cand sunt aproape de a-si atinge limita capacitatilor sale, si nu abia cand capacitatea a fost deja depasita. Aceasta inseamana ca informatiile din datagrama care a provocat trimiterea mesajului de refuz al sursei va putea fi trimisa destinatiei. Codul 0 poate fi primit de la o poarta sau de la o gazda. Mesajul de redirectare 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Code | Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Gateway Internet Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Internet Header + 64 bits of Original Data Datagram | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Campurile IP: Destination Address (Adresa destinatie) Reteaua sursa si adresa din informatia datagramei originale. Campurile ICMP: Type (Tipul) 5 Code (codul) 0 = Redirectarea datagramei pentru retea. 1 = Redirectarea datagramei pentru gazda. 2 = Redirectarea datagramei pentru tipul serviciului si retea. 3 = Redirectarea datagramei pentru tipul serviciului si gazda. Checksum (Suma de comtrol) Acest camp este complementarul pe 16 biti al celui complementar sumei din mesajul ICMP incepand cu tipul ICMP ("Type"). Pentru a o calcula, campul sumei de control trebie sa fie zero. Aceasta poate fi inlocuita in viitor. Gateway Internet Address (Adresa internet a portii) Adresa portii catre care trebuie trimis trafic pentru reteaua specificata in campul retea destiatie a datagramei originale. Internet Header + 64 bits of Data Datagram (Antetul Internet si 64 de biti de informatie ai datagramei) Aceasta informatie este folosita de catre gazda pentru a trimite mesajul procesului vizat. Daca un protol de nivel mai inalt foloseste numere de port, vor fi regasite in primii 64 de biti de informatie ai datagramei originale. Descrierea Poarta trimite un mesaj de redirectare spre o gazda in urmatoarea situatie. O poarta, G1, primeste o datagrama internet de la o gazda printr-o retea la care este conectata acea poarta. G1 isi verifica tabela de rutare si obtine adresa urmatoarei porti, G2, de pe ruta catre reteaua destinatie a datagramei, X. Daca G2 si gazda identificata de adresa internet a sursei datagramei se afla in aceeasi retea, gazdei ii este trimis un mesaj de redirectare. Acest mesaj atentioneaza gazda sa trimita traficul spre reteaua X direct prin poarta G2 deoarece aceasta ar fi o cale mai scurta spre destinatie. Poarta trimite mai departe informatia din datagrama originala spre destinatia sa internet. Pentru datagramele cu optiunile rutare ale sursei si cu adresa portii setata in campul adresa destinatie, un mesaj de redirectare nu este trimis chiar daca exista o ruta mai buna spre destinatie decat cea prin urmatoarea adresa a rutei sursa. Codurile 0, 1, 2 pot fi primite de la o poarta. Mesajul de ecou sau raspuns la ecou 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Code | Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identifier | Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data ... +-+-+-+-+- Campuri IP: Adresele Adresea sursei intrun mesaj de ecou va fi destinatia mesajului de raspuns la ecou. Pentru a forma un mesaj de raspuns la ecou, adresele sursa si destinatie sunt pur si simplu memorate, codul tipului este schimbat in 0, iar suma de control este recalculata. Campuri IP: Type (Tipul) 8 pentru mesajele de ecou; 0 pentru mesajele de raspuns la ecou. Code 0 Checksum (Suma de control) Acest camp este complementarul pe 16 biti al celui complementar sumei din mesajul ICMP incepand cu tipul ICMP ("Type"). Pentru a o calcula, campul sumei de control trebie sa fie zero. Daca suma totala este impara, informatiei primite i se adauga un octet de zerouri pentru a calcula suma. Aceasta poate fi inlocuita in viitor. Identifier (Identificatorul) In cazul inc are codul = 0, un identificator pentru a ajuta la asocierea ecourilor cu raspunsurile poate fi zero. Sequence Number (Numarul de secventa) Cand codul = 0, o secventa de numere care sa ajute la potrivirea ecourilor si raspunsurilor poate fi zero. Descrierea Informatia primita in mesajul de ecou trebuie continuta in mesajul ecou de raspuns. Identificatorul si numarul de secventa pot fi folosite de expeditorul ecoului pentru a ajuta la asocierea raspunsurilor cu cererile ecou. De exemplu, identificatorul poate fi folosit ca un port in in TCP sau UDP pentru a identifica o sesiune, iar numarul de secventa poate fi incrementat la fiecare cerere de ecou trimisa. Cel care intoarce ecoul returneaza aceleasi valori in raspunsul ecou. Codul 0 poate fi primit de la o poarta sau o gazda. Mesajul amprentei de timp ("timestamp") sau mesajul raspuns al amprentei de timp 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Code | Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identifier | Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Originate Timestamp | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Receive Timestamp | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Transmit Timestamp | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Campuri IP: Adresele: Adresa sursei intr-un mesaj timestamp va fi destinatia mesajului timestamp de raspuns. Pentru alcatuirea unui mesaj timestamp de raspuns, se inverseaza intre ele adresele sursa si destinatie, codul tipului ia valoarea 14, si se recalculeaza suma de control. Campuri IP: Tipul 13 pentru mesajul timestamp; 14 pentru mesajul timestamp de raspuns. Code 0 Checksum (Suma de control) Acest camp este complementarul pe 16 biti al celui complementar sumei din mesajul ICMP incepand cu tipul ICMP ("Type"). Pentru a o calcula, campul sumei de control trebie sa fie zero. Daca suma totala este impara, informatiei primite i se adauga un octet de zerouri pentru a calcula suma. Aceasta poate fi inlocuita in viitor. Identifier (Identificatorul) Cand codul = 0, un identificator care sa ajute la potrivirea mesajelor timestamp si a celor de raspuns poate fi zero. Sequence Number (Numarul de secventa) Cand codul = 0, un numar de secventa care sa ajute la potrivirea mesajelor timestamp si a celor de raspuns poate fi zero. Descriere Informatia primita (amprenta de timp) in mesaj este intoarsa in mesajul raspuns impreuna cu o alta amprenta suplimentara. Aceasta este o informatie pe 32 de biti numarand milisecundele trtecute de la miezul noptii UT. Una dintre aceste amprente de timp sunt descrise in Mills[5]. Campul Amprenta de timp ooriginala este momentul in care expeditorul a prelucrat pentru ultima oara mesajul inainte de a-l trimite, campul Amprenta de timp la primire este momentul can mesajul a ajuns la expenditor, iar Timpul de transmitere este momentul la care cel care face ecoul a modificat pentru ultima oara mesajul inainte de a-l trimite. Daca timpul nu este disponibil in milisecunde sau nu poate fi aflat, atunci mesajul timestamp poate avea orice timp inserat, cu conditia ca bitul primar este de asemenea setat incat sa indice aceasta valoare non-standard. Identificatorul si numarul de secventa pot fi folosite de catre cel care trimite ecoul pentru a ajuta la potrivirea raspunsurilor cu cererile. De exemplu, identificatorul poate fi folosit ca port in TCP sau UDP pentru identificarea unei sesiuni, iar numarul de secventa va fi incrementat la fiecare cerere trimisa. Destinatia va trimite aceleasi informatii in raspuns. Codul 0 poate fi primit de la o poarta sau de la o gazda. Mesajul cerere de informatie sau raspuns la cerere de informatie. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Code | Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identifier | Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Campuri IP: Adresele: Adresa sursei intr-un mesaj cerere de informatii va fi destinatia in mesajul de raspuns. Pentru a forma un mesaj raspuns de informatie se vor interschimba adresele sursa si destinatie, codul setat pe 16 si suma recalculata. Campuri IP: Type (Tipul) 15 pentru mesajul cerere de informatii 16 pentru mesajul raspuns de informatii Code (Codul) 0 Checksum (Suma de control) Acest camp este complementarul pe 16 biti al celui complementar sumei din mesajul ICMP incepand cu tipul ICMP ("Type"). Pentru a o calcula, campul sumei de control trebie sa fie zero. Daca suma totala este impara, informatiei primite i se adauga un octet de zerouri pentru a calcula suma. Aceasta poate fi inlocuita in viitor. Identifier (Identificatorul) Cand codul = 0, un identificator care sa ajute la potrivirea cererilor si a raspunsurilor poate fi zero. Sequence Number (Numarul de secventa) Cand codul = 0, un numar de secventa care sa ajute la potrivirea cererilor si a raspunsurilor poate fi zero. Descrierea: Acest mesaj poate fi trimis impreuna cu reteaua sursa in antetul IP cu campurile adresa sursa si destinatie setate pe zero (ceea ce inseamna " reteaua locala"). Modulul IP de raspuns ar trebui sa trimita replica cu adresa in intregime specfificata. Acest mesaj este o modalitate ca o gazda sa afle numarul retelei din care face parte. Identificatorul si numarul de secventa pot fi folosite de expeditorul mesajelor ecou pentru a ajuta la potrivirea raspunsurilor cu cererile. De exemplu, identificatorul poate fi folosit ca port in TCP si UDP pentru a identifica o sesiune, iar numarul de secventa poate fi incrementat la fiecare cerere facuta. Destinatia intoarce aceleasi valori in raspunsul sau. Codul 0 poate fi primit de la o poarta sau de la o gazda. Enumerarea tipurolior de mesaje 0 Raspunsul la ecou 3 Destinatie inaccesibila 4 Respingerea sursei 5 Redirectare 8 Ecou 11 Timp Expirat 12 Problema a parametrilor 13 Amprenta de timp 14 Replica amprenta de timp 15 Cerere de informatie 16 Replica de informatie Referinte: [1] Postel, J. (ed.), "Internet Protocol - DARPA Internet Program Protocol Specification," RFC 791, USC/Information Sciences Institute, September 1981. [2] Cerf, V., "The Catenet Model for Internetworking," IEN 48, Information Processing Techniques Office, Defense Advanced Research Projects Agency, July 1978. [3] Strazisar, V., "Gateway Routing: An Implementation Specification", IEN 30, Bolt Beranek and Newman, April 1979. [4] Strazisar, V., "How to Build a Gateway", IEN 109, Bolt Beranek and Newman, August 1979. [5] Mills, D., "DCNET Internet Clock Service," RFC 778, COMSAT Laboratories, April 1981.