REȚELE DE CALCULATOARE -...

21
FACULATEA DE ELECTRONICĂ, TELECOMUNICAȚII ȘI TEHNOLOGIA INFORMAȚIEI REȚELE DE CALCULATOARE PROTOCOALE DE INTERNET ANCUȚA IONUȚ-ALEXANDRU CIUCĂ MARIA- MĂDALINA MILCA MIHAELA-ELENA PISTOL BOGDAN 441A 2014-2015

Transcript of REȚELE DE CALCULATOARE -...

FACULATEA DE ELECTRONICĂ, TELECOMUNICAȚII ȘI TEHNOLOGIA INFORMAȚIEI

REȚELE DE CALCULATOARE

PROTOCOALE DE INTERNET

ANCUȚA IONUȚ-ALEXANDRU

CIUCĂ MARIA- MĂDALINA

MILCA MIHAELA-ELENA

PISTOL BOGDAN

441A

2014-2015

1.Intrducere....................................................................pag.3

2.Relația cu alte protocoale............................................pag.4

3.Modele de operații.......................................................pag.6

4.Gateways.....................................................................pag.9

5.Formatul header-elor Internet.....................................pag.11

6.Interfețe.......................................................................pag.14

7.Concluzii și exemple...................................................pag.17

8.Bibliografie..................................................................pag.21

Protocolul internet a fost conceput pentru a fi folosit in retele de comunicatii interconetate,

bazate pe schimbul de pachete. Protocolul internet ofera posibilitatea de a transmite blocuri de

date, numite datagrame, de la sursa la destinatie, unde sursele si destinatiile sunt host-uri ce

pot fi identificate printr-o adresa de lungime fixa. De asemenea, protocolul internet permite

fragmentarea si realcatuirea a datagramelor mai mari, daca este necesar, pentru a fi transmise

prin retele cu “pachete mici”.

Scopul protocolului internet este limitat la a oferi functiile necesare cu care sa livreze pachete

de biti (datagrame) de la o sursa la o destinatie printr-un sistem interconectat de retele. Nu

exista un mecanism pentru a imbunatati calitatea transimisiunii end-to-end, controlul fluxului,

secventierea, sau alte servicii commune protocoalelor host-to-host. Protocolul internet se

bazeaza pe serviciile retelelor pentru a oferi diverse tipuri de calitate ale serviciului (QoS).

Acest protocol este apelat de protocoale host-to-host intr-un mediu internet. Acest protocol

apeleaza protocoale locale pentru a transmite datagramele la urmatoarea poarta (gateway) sau

host-ul destinatie.

De exemplu, un modul TCP ar apela modulul internet pentru a prelua un segment TCP

(incluzand antetul TCP si informatia) ca si portiunea de date dintr-o datagrama internet.

Modulul TCP ar furniza adresa si alti parametrii in antet, modulului internet ca argumente ale

apelului. Modulul internet, apoi creaza o datagrama si cheama interfata retelei locale pentru a

transimte datagrama.

Protocolul internet implementeaza doua functii de baza: adresare si fragmentarea.

Modulele internet folosesc adresele aflate in antetul internet pentru a transmite datagramele

catre destiantie. Selectia unei cai pentru transmitere se numese rutare (routing).

Modulele internet folosesc campuri din antet pentru a fragmenta si realcatui datagramele cand

este necesara transmisiunea prin retele cu “pachete mici”.

Modelul de operatiunea este acela ca modulul internet se regaseste in fiecare host participant

la comunicatii internet si in fiecare poarta care interconecteaza reteaua. Aceste module impart

reguli commune de interpretare a campurilor adresa si pentru fragmentare si realcatuire a

datagramelor. In plus, aceste module (in special portile) au proceduri pentru a lua decizii in

rutare si in alte functii.

Protocolul internet trateaza fiecare datagrama ca o entitate independent nelegata de orice alta

datagrama. Nu exista conexiuni sau circuite logice (virtuale sau de alt fel).

Tipul de serviciu (ToS – Type of Service) este folosit pentru a evidentia calitate serviciului

dorit. Tipul de serviciu este un set de parametrii abstract sau generalizat, care caracterizeaza

posibilitatile de servicii puse la dispozitie de retelele care alcatuiesc internetul. Aceasta

indicare a tipului de serviciu este folosit de catre porti pentru a alege parametrii de

transmisiune actuali pentru a retea anume, reteaua ce va fi folosita pentru urmatorul salt, sau

urmatoarea poarta pentru a ruta o datagrama.

Timpul de viata (TTL – Time to Live) este o indicare a limitei superioare a duratei de viata a

unei datagrame. Este setat de catre emitatorul datagramei si este redus in punctele din ruta

unde este procesata. Daca timpul de viata ajunge la zero inainte ca datagrama sa ajunga la

destinatie, aceasta este distrusa. Timpul de viata poate fi gandit ca o limita de timp de

autodistrugere.

Optiunile ofera functiile de control necesare sau folositoare in unele situatii dar optionale

pentru majoritate comunicatiilor comune. Optiunile includ posibilitatea unor timestamp-uri,

securitate si rutare speciala.

Antetul de control (Header Checksum) verifica informatia folosita in procesarea

datagramelor, ca a fost transmita correct. Informatia poate contine erori. Daca antetul de

control sugereaza o eroare, datagrama este respinsa de entitatea care a detectat eroarea.

Protocolul internet nu faciliteaza o comunicare sigura. Nu sunt confirmari nici end-to-end si

nici salt-cu-salt (hop-by-hop). Nu exista control al informatiei, numai un antet de control. Nu

exista retransmisiuni. Nu exista un control al fluxului.

Erorile detectate pot fi transmise prin ICMP (Internet Protocol Control Message) care este

implementat in modulul IP.

Urmatoarea diagrama ilustraza pozitia protocolului internet in striva TCP/IP.

. . .

. . .

Telnet FTP TFTP . . .

TCP Telnet . . .

Protocolul Internet & ICMP

Protocolul Retelei Locale

APLICATIE

TRANSPORT

INTERNET

RETEA

Protocolul internet se leaga pe de o parte cu protocoalele de nivel mai inalt host-to host si pe

de alta parte cu protocolul retelelor locale.

Nivelul aplicatie este unde aplicatiile creaza informatia si comunica aceasta informatie cu

alte aplicatii din acceasi gazda sau alta. Aplicatiile, sau procesele, se folosesc de servicii

oferite de nivelele inferioare, in special de niveul Transport, care furnizeaza legaturi sigure

sau nesigure cu alte procese. Partenerii implicati in comunicare sunt caracterizati de

arhitectura aplicatie, cum ar fi client-server sau peer-to-peer. Acesta este nivelul in care

opereaza toate protocoalele de nivel inalt. Cum ar fi FTP, SSH, Telent, HTTP. Procesele sunt

adresate prin port-uri care in esenta reprezinta servicii.

Nivelul transport realizeaza comunicare host-to-host fie pe acelasi host sau host-uri diferite

sau pe retele locale sau retele separate prin routere. Acesta ofera un canal pentru nevoile de

comunicare ale aplicatiilor. UPD este protocolul nivelului de transport, de baza, oferind un

serviciu baza pe datagrame nesigur. TCP ofera un control al fluxului si o comunicare bazata

pe conexiune, si o transmisiune sigura.

Nivelul internet are rolul de a face schimb de datagrame intre limitele retelei. Ofera o

interefata uniforma de comunicare ce ascunde topologia actuala a retelei. Este astfel

considerat nivelul care realaizeaza interconectare. Principalul protocol este protocolul Internet

(IP).

Nivelul retea defineste metodele de comunicare in reteaua locala in care host-ul comunica

fara rutere. Aceste nivel include protocoale folosite pentru a descrie topologia retelei si

interfetele necesare pentru a transmite datagramele nivelului internet.

Modelele de operații folosite pentru transmiterea diagramelor de la o aplicație de program la

alta este ilustrată de parcurgerea următorilor pași:

-Presupunem că transmiterea implică doar o singura poartă de ieșire(gateway) intermediară.

-Aplicația de program care transmite informația pregătește datele și solicită prin modul

internet local trimiterea acestor date ca o datagramă și pasează adresa de destinație și alți

parametri ca argumente ale apelului.

-Modulul internet pregătește un antet al datagramei și atașează datele la acesta. Modulul

internet determină o adresă de rețea locală pentru adresa de internet, în acest caz, este adresa

de gateway.

-Acesta trimite datagrama și adresa de rețea locală către interfața de rețea locală.

-Interfața de rețea locală creează antetul (header-ul) de rețea și atașează datagrama la acesta

iar apoi trimite rezultatul prin intermediul local.

-Datagrama ajunge la o poartă gazdă inscrisă în antetul rețelei locale, interfața de rețea locală

împarte acest antet și apoi întoarce datagrama la modulul internet. Modulul internet determină

de la adresa de internet ca datagrama trebuie să fie transmisă la o altă gazdă într-o a doua

rețea. Modulul internet determină o adresă local pentru gazda destinație. Acesta solicită pe

interfața de rețea locală să se trimită datagrama.

-Această interfață de rețea locală creează un antet al rețelei locale și atașează datagrama

transmitând rezultatul la destinația gazdă.

-În acestă gazdă destinație, datagrama este preluată de pe antetul local de interfața rețelei

locale și transmisă la modulul internet.

-Modulul internet determină faptul că datagrama este pentru o anumită aplicație din acestă

gazdă. Ea transmite datele la aplicația de program ca răspuns la un apel de sistem, indicând

adresa sursă și alți parametri ca rezultate ale apelului.

Scopul protocoalelor de internet este de a muta datagrame printr-un set de rețele

interconectate. Acest lucru se face prin trecerea datagramelor de la un modul internet la altul

până se ajunge la destinație. Modulele de internet se găsesc în gazdele și porțile din sistemul

internet. Datagramele sunt rutate de la un modul internet la altul prin intermediul rețelelor

individuale, pe baza interpretării unei adrese de internet. Astfel, un element important al

protocoalelor de internet este adresa de internet.

În transmiterea mesajelor de la un modul internet la altul, datagramele pot avea nevoie să

traverseze o rețea al cărei dimensiune maximă a pachetului este mai mică decât dimensiunea

datagramei. Pentru a depăși această dificultate, un mecanism fragmentare este prevăzut în

protocol internet.

Adresarea

Trebuie să se facă o distincție între nume, adrese și rute. Un nume indică ceea ce căutăm. O

adresă indică unde se afla ceea ce cătăm. O ruta indică cum să se ajung acolo. Protocol

internet se ocupă prima dată de adrese, aceasta fiind sarcina de nivel superior pentru a se face

maparea de la nume la adrese. Modulul internet mapează adresele de internet la adresele

locale,astfel fiind sarcina de nivel inferior a procedurilor pentru a face maparea de la adrese

locale la rute.

Adresele au o lungime de fix patru octeți (32 biți). O adresă începe cu un număr de rețea,

urmat de adresa locală. Există trei formate sau clase de adrese internet: în clasa A,cel mai

mare bit de comandă începe cu zero, următorii 7 biți sunt ai rețelei, iar ultimii 24 de biti sunt

ai adresei locală; în clasa B, primul bit este 1, următorul începe de la 0, ceilalți 14 biți sunt biți

de retea și ultimii 16 biți sunt ai adresei locale; în clasa C,primii doi biți sunt 1 iar al treilea

începe de la 0, următorii 21 de biți sunt de rețea și ultimii 8 biți sunt ai adresei locale. Pe

lângă aceste trei tipuri de adrese mai există și adresele clasei D care sunt rezervate pentru

multicasting iar cele ale clasei E sunt rezervate pentru o utilizare viitoare,sunt experimentale;

acestea nu trebuie să fie folosite ca şi adrese de host.

[1]

Trebuie să avem grijă la maparea adreselor de internet la adresele locale; o singură gazdă

fizică trebuie să fie în măsură să acționeze ca și cum ar fi mai multe gazde distincte în măsura

să folosească mai multe adrese de internet distincte. Unele gazde vor avea, de asemenea, mai

multe interfețe fizice(multi-homing) . Adică, trebuie să se prevadă ca o gazdă să aibă mai

multe interfețe fizice la rețea iar fiecare sa aibă câteva adrese internet logice.

Fragmentarea

Fragmentarea unei datagrame internet este necesară atunci când provine dintr-o rețea locală

care permite o dimensiune mare a pachetelor și trebuie să o traverseze, dar aceasta limitează

pachetele la o dimensiune mai mică pentru a putea ajunge la destinație. O datagramă internet

poate fi marcată cu "nu se fragmentează." Orice datagramă internet astfel marcată nu trebuie

fragmentată fara niciodată. Dacă datagrama internet marcată cu „nu se fragmentează” nu

poate fi livrată la destinație fără fragmentarea ei, ea va fi aruncată.

Fragmentarea, transmiterea și reasamblarea într-o rețea locală sunt invizibile pentru modulul

de protocol internet și poartă denumirea de fragmentare intranet. Fragmentarea internet și

procedura de reasamblare trebuie să fie în măsură să spargă o datagramă într-un număr

aproape arbitrar de piese care pot fi reasamblate mai târziu. Receptorul fragmentelor

utilizează un câmp de identificare pentru a se asigura că fragmentele diferitelor datagrame nu

sunt amestecate. Câmpul fragmentului ,,offset” spune receptorului poziția fragmentului din

datagrama originală. Fragmentul ,,offset” si lungime determină porțiunea din datagrama

originală reglementată de acest fragment. Indicatorul de „more-fragment” etichetează (prin

resetare) ultimul fragment. Aceste câmpuri oferă suficiente informații pentru a reasambla

datagrama.

Câmpul de identificare este utilizat pentru a distinge fragmentele unei datagramă de cele ale

unei alte datagrame. Modulul de protocol original dintr-o datagramă internet setează câmpul

de identificare la o valoare care trebuie să fie unică pentru fiecare pereche sursă-destinație și

protocol atât timp cât datagrama va fi activă în sistemul internet. Modul de protocol original

dintr-o datagramă completă setează „more-fragment” la zero și ,,offset-ul’’ la zero.

Pentru a fragmenta o datagramă internet lunga, un modul de protocol internet creează două

noi datagrame internet și copiază conținutul câmpurilor de antet internet din datagrama de

dimensiune mare în cele doua noi antete de internet. Datele din datagrama mare sunt împărțit

în două porțiuni pe 8 octeți (64 biți) (a doua porțiune s-ar putea să nu fie un multiplu întreg

de 8 octeți, dar prima trebuie să fie). Prima parte din date sunt incluse în prima nouă

datagramă și câmpul lungime totală este setat la lungimea primei datagrame. Indicatorul

„more-fragment” este setat la valoarea 1. Cea de a doua parte din date este plasată în a doua

noua datagramă și câmpul lungimea totală este setat la lungimea celei de a doua datagrame.

Indicatorul „more-frgment” are aceeași valoare ca și indicatorul datagramei de dimensiune

mare. Indicatorul „offset” a celei de-a doua datagrame internet este setat la valoarea din

datagrama mare plus NFB(numărul blocurilor de fragmente).

Pentru a asambla fragmentele unei datagrame internet, un modul de protocol internet (de

exemplu, la destinație) combină datagramele internet care au toate aceeași valoare pentru cele

patru domenii: identificare, sursă, destinație și protocol. Combinația se face prin plasarea

porțiunii de date a fiecărui fragment în poziția indicată de etichta „offset” prezentă.Primul

fragment va avea „offset-ul”zero, iar ultimul fragment va avea eticheta „more-fragment”

resetata la zero.

Dacă o gazdă trimite pachete unui dispozitiv în aceeași rețea, pachetul va fi trimis mai departe

pe interfața gazdei expeditor către destinatar. Dacă, în schimb, este necesar să se trimită

pachete către o altă rețea, pachetul va fi direcționat către poarta de ieșire implicită(default

gateway) care va ruta traficul mai departe spre rețele diferite de rețeaua locală. Default-

gateway-ul este necesar mai ales apentru a avea conexiune din rețeaua locala în Internet.

Figura următoare ilustrează roulul pe care îl joacă default gateway-ul pentru două rețele:

Rețeaua 1 și Rețeaua 2:

[2]

Pentru ca gazda A din rețeaua 1 să poată comunica cu gazda B din rețeaua 2, prima dată gazda

A iși va verifica tabela de rutare să vadă dacă există o rută specifică a gazdei B. Dacă nu

există așa ceva în tabela ei de rutare, gazda A trimite traficul TCP/IP pentru gazda B către

propria poartă de ieșire implicită(default gateway), IP Router 1. Același principiu se

urmărește și atunci când gazda B trimite pachete către gazda A. Neavând o rută specifică

pentru gazda A, B-ul va trimite traficul TCP/IP destinat gazdei A către propriul default

gateway, IP Router 2.

Porțile de ieșire implicite(default gateway) sunt importante pentru a face munca de rutare IP

eficientă. În cele mai multe cazuri, ruterele care acționează ca gateway-ul implicit pentru

gazde TCP / IP (fie un router dedicat sau un calculator care conectează două sau mai multe

segmente de rețea) dețin cunoștințe de alte rețele din rețeaua mare și stiu cum să ajungă la ele.

Gazdele TCP / IP se bazează pe gateway-uri implicite pentru cele mai multe dintre nevoile lor

de comunicare cu gazdele de pe segmentele de rețea de la distanță. În acest fel, gazdele

individuale sunt eliberate de povara de a menține cunoștințe vaste și actualizate în permanență

cu privire la segmentele individuale de rețea de la distanță. Numai ruterele care acționează ca

gateway implicit trebuie să mențină acest nivel de cunoștițe de rutare pentru a ajunge la alte

segmente de rețea situate la distanță mare.

Dacă gateway-ul implicit nu funcționează, comunicarea dincolo de segmentul de rețea locală

poate fi afectată. Pentru a evita acest lucru se pot adăuga manual rute în tabela de rutare

pentru gazde sau rețele puternic utilizate.

Dacă există mai multe interfețe și trebuie configurat un gateway implicit pentru fiecare

interfață, TCP / IP calculează automat o metrică a interfeței care se bazează pe viteza

interfeței. Metrica interfaței devine metrica rutei default în tabela de rutare pentru gateway-ul

implicit configurat. Interfața cu cea mai mare viteză are cea mai mică metrică pentru traseul

implicit. Rezultatul este că ori de câte ori mai multe gateway-uri implicite sunt configurate pe

mai multe interfețe, cea mai rapidă interfața va fi folosită pentru a transmite trafic pentru

gateway-ul implicit. Dacă mai multe interfețe de aceeași viteză au aceeași interfață metrică

minimă, atunci, pe baza ordinului de legare, este utilizat gateway-ul implicit al primului

adaptor de rețea. Gateway-ul implicit pentru cel de-al doilea adaptor de rețea este utilizat

atunci când primul este indisponibil.

În versiunile anterioare ale TCP / IP, gateway-urile multiple implicite aveau toate metrica

implicită a rutei, adica 1, iar gateway-ul implicit utilizat depindea de ordinea de interfețelor.

Acest lucru a cauzat dificultăți în a determina care gateway implicit folosea protocolul TCP /

IP.

Un rezumat al conținutului antetului internet este prezentat in schema ce urmează:

Diagrama antetului

În continuare vom prezenta pe scurt fiecare câmp al diagramei:

Version(4 biți):indică formatul antetului;

IHL(4 biți)(Internet Header Length):lungimea antetului în cuvinte de 32 de biți.Valoarea

minimă pentru un antet corect este 5

Type of Service(8 biți):oferă indicații ale parametrilor de calitate ai serviciului dorit.Acești

parametri vor fi folosiți la ghidarea selecției parametrilor serviciului actual când se transmite o

datagramă printr-o anumită rețea.O alegere majoră este compromisul dintre un delay scăzut o

fiabilitate mare și un transfer ridicat.

Formatul său este:

0 1 2 3 4 5 6 7

+-----+-----+-----+-----+-----+-----+-----+-----+

| | | | | | |

| PRECEDENCE | D | T | R | 0 | 0 |

| | | | | | |

+-----+-----+-----+-----+-----+-----+-----+-----+

Unde PRECEDENCE reprezintă prioritatea și este format din primii 3 biți,urmat de

Delay,Transfer și Reliability(siguranță) fiecare de câte un bit,iar ultimii doi biți au fost păstrați

pentru o posibilă utilizare ulterioară.Cele 3 câmpuri DTR pot duce la creșterea costurilor

serviciului,iar în multe rețele performanțele bune ale unui parametru pot duce la performanțe

scăzute ale altui parametru.

Total length(16 biți):lungimea datagramei,în octeți,incluzând și antetul și datele.Acest câmp

permite ca lungimea datagramei să ajungă până la 65.535 de octeți.Datagrame așa de mari

sunt nepracticabile pentru rețele și gazde.Toate hosturile trebuie să fie pregătite să accepte

datagrame de până la 576 de octeți.

Lungimea maximă a antetului este de 60 de octeți și un antet normal are o lungime de 20 de

octeți permițând o margine pentru antetele protocoalelor de nivel superior .

Identification(16 biți):O valoare de identificare atribuită de către expeditor pentru a ajuta la

asamblarea fragmentelor unei datagrame.

Flags(3 biți):avem diverse steaguri de control.

Primul bit este rezervat și trebuie să fie 0.Al doilea este DF și are valoarea 0 dacă se poate

fragmenta și 1 dacă nu,iar al treilea MF este 0 dacă am ajuns la ultimul fragment sau 1 dacă

mai sunt fragmente de sosit.

Fragment Offset(13 biți):Acest câmp indică unde în datagramă aparține fragmentul.Acest

câmp este măsurat în unități de 8 octeți(64 biți).Primul fragment are offsetul 0.

Time to live(8 biți):Acest câmp indică timpul maxim care îi este permis diagramei să rămână

în sistem.Dacă valoarea sa este 0 atunci diagrama trebuie distrusă.Acest câmp este modificat

în procesarea antetului.

Protocol(8 biți):Acest câmp indică protocolul următorului nivel utilizat în porțiunea de date a

datagramei.Valorile pentru diferite protocoale sunt specificate în “Assigned Numbers”.

Header Checksum(16 biți):Un control doar al antetului.Din moment ce unele câmpuri ale

antetului se schimbă acesta este recalculat si verificat de fiecare dată când antetul este

modificat.

Source adress(32 biți) şi destination adress(32biţi) vor fi descrise la adresare.

Opțiunile pot apărea sau nu într-o datagramă.Ele trebuie să fie implementate de toate

modulele IP,dar ceea ce este opțional este transmisia lor în orice datagramă particulară și nu

implementarea.În unele medii opțiunea de securitate poate fi necesară în toate datagramele.

Lungimea câmpului este variabilă datorită faptului că pot fi 0 sau mai multe opțiuni.Formatul

opțiunii poate avea două forme:

-un singur octet pentru tipul opțiunii

-un octet pentru tip,unul pentru lungime și octeții de date actuali.

Opțiunea de securitate oferă o modalitate pentru gazde de a trimite parametrii de

securitate,compartimentare,manipulare a restricțiilor și a parametrilor TCC.Formatul opțiunii

este următorul:

+--------+--------+---//---+---//---+---//---+---//---+

|10000010|00001011|SSS SSS|CCC CCC|HHH HHH| TCC |

+--------+--------+---//---+---//---+---//---+---//---+

Tip=130 Lungime=11

Câmpul S(securitate):are 16 biți și specifică unul din cele 16 nivele de securitate,nivele dintre

care 8 sunt rezervate pentru o posibilă utilizare în viitor.

Câmpul C(Compartimente):Când informația transimsă nu este compartimentată se folosește

valoarea 0 peste tot.Alte valori pentru acest câmp pot fi obținute din Defense Intelligence

Agency.

Câmpul H(restricții de manipulare):Valorile pentru marcajele de control și de eliberare sunt

digrafuri alfanumerice și sunt definite in manualul Defense Intelligence Agency .

Câmpul TCC(codul de control al transmisiei): Oferă un mijloc de a separa traficul și de a

defini comunități controlate de interes în rândul abonaților .

Trebuie să fie copiate pe fragmentare . Această opțiune apare cel mult o dată într- o

datagramă.

Loose Source și Record Route(LSRR)

+--------+--------+--------+---------//--------+

|10000011| length | pointer| route data |

+--------+--------+--------+---------//--------+

Tip=131

Această opțiune oferă un mod pentru sursa unei datagrame de a furniza informații de rutare

pentru a fi utilizate de gateway-uri în transmiterea datagramei la destinație,precum și a

înregistra informațiile de pe traseu.

Opțiunea începe cu tipul codului.Al doilea octet este lungimea opțiunii care include tipul

codului si octetul de lungime,octetul pointer si 3 octeti pentru traseul datelor.Al treilea octet

este octetul care indică octetul cu care incepe adresa următoarei surse ce va fi

procesată.Indicatorul este relativ acestei opțiuni și cea mai mică valoare pentru acesta este 4.

Record Route

+--------+--------+--------+---------//--------+

|00000111| length | pointer| route data |

+--------+--------+--------+---------//--------+

Tip=7

Această opțiune furnizează un mijloc de a înregistra traseul unei datagrame.

Un traseu înregistrat este compus dintr-o serie de adrese IP.Fiecare adresă are 32 de biți sau 4

octeți.Dacă indicatorul este mai mare ca lungimea atunci zona de date este plină.Gazda de

origine trebuie sa compună această opțiune cu destul spațiu de date pentru a ține toate

adresele așteptate.Mărimea opțiunii nu se modifică din cauza adăugării adreselor.

Nu este copiată la fragmentare și apare doar in primul fragment.În datagramă este prezentă cel

mult o dată.

Padding(variabil):acesta este practic o umplere a antetului pentru a se asigura că acesta se

încheie pe o graniță de 32 de biți.

Discuție

Implementarea unui protocol trebuie să fie robustă și să poată interacționa cu altele create de

persoane diferite.În timp ce scopul acestei descrieri este de a fi explicită în legătură cu

protocolul există posibilitatea unor interpretări diferite.În general o implementare trebuie să

fie conservatoare în comportamentul său de origine și liberală în cel de primire.Trebuie să

trimită datagrame bine formate ,dar trebuie să accepte orice datagramă pe care o poate

interpreta.

Adresele de internet disting sursele și destinațiile la nivelul gazdei și oferă un câmp de

protocol de aseamenea.Se presupune că fiecare protocol va oferi pentru orice multiplexare

este necesară o gazdă.

Descriere functională a unui utilizator de interfață prin IP este , într-un mod fictiv ,

cea mai bună , întrucât fiecare sistem de operare va avea facilități diferite. Prin urmare ,

trebuie să subliniem că diferite implementări IP pot avea interfețe diferite. Cu toate acestea ,

toate ip-urile trebuie să furnizeze un set minim de servicii pentru a garanta că toate

implementările IP suportă aceeași ierarhie de protocol. Interfețele de protocol internet sunt pe

de o parte la rețeaua locală și pe de altă parte fie la un protocol de nivel înalt fie la un program

de aplicație.

In cele ce urmează , protocolul de nivel înalt sau aplicația de program se va numi

„utilizator ” deoarece acesta folosește modulul internet. Deoarece protocolul de internet este

un protocol datagrame există un minim de memorie între transmisia datagrame și fiecare apel

de pe modulul de protocol de internet , care oferă informațiile necesare pentru a efectua

serviciul solicitat.

Un exemplu pentru nivel superior de interfață :

Următoarele două exemple de apelulri satisfac condițiile pentru o comunicare intre

utilizator si modulul de protocol de internet („=> inseamna intoarce”):

SEND (src, dst, prot, TOS, TTL, BufPTR, len, Id, DF, opt => result)

where:

src = source address

dst = destination address

prot = protocol

TOS = type of service

TTL = time to live

BufPTR = buffer pointer

len = length of buffer

Id = Identifier

DF = Don't Fragment

opt = option data

result = response

OK = datagram sent ok

Error = error in arguments or local network error

De reținut că prioritatea este trecută in TOS si securitatea este trecută ca o obțiune

RECV (BufPTR, prot, => result, src, dst, TOS, len, opt)

where:

BufPTR = buffer pointer

prot = protocol

result = response

OK = datagram received ok

Error = error in arguments

len = length of buffer

src = source address

dst = destination address

TOS = type of service

opt = option data

Când un utilizator trimite o datagramă , acesta execută apelul SEND care furnizează

toate argumentele .Modulul de protocol internet , verifică argumentele si pregatește și trimite

mesajul. Dacă argumentele sunt bune și datagrama este acceptată de rețeaua locală , apelul se

efectuează cu succes.

În cazul în care argumentele nu sunt bune , sau datagrama nu este acceptată de rețeaua locala ,

apelul nu se efectuează .

Pe întoarcerea nereusită , un raport rezonabil trebuie să conțină detalii până la implementările

individuale.

Când o datagramă ajunge la modulul de protocol internet din rețeaua locală , fie există un

apel RECV în asteptare adresat de utilizator fie nu . In primul caz , apelul în asteptare este

îndeplinit prin transferul de informație de la datagramă la utilizator. În al 2lea caz utilizatorul

adresat este notificat de o datagramă in asteptare. In cazul in care utilizatorul adresat nu

există, un mesaj de eroare ICMP este returnat expeditorului , iar datele sunt eliminate.

Notificarea unui utilizator poate fi printr-o pseudo-întrerupere sau un mecanism similar , după

caz , în funcție de sistemul de operare al implementării. Un apel RECV al utilizatorului poate

fi imediat indeplinit de o datagramă în asteptare sau poate fi suspendat pâna la sosirea unei

datagrame.

Adresa sursă este inclusă în apelul de trimitere în cazul în care gazda care trimite are mai

multe adrese (mai multe conexiuni fizice sau adrese.)Modulul de internet trebuie verificat

pentru a vedea dacă adresa sursă este una dintre adresele valide alea gazdei.

O implementare poate permite sau cere un apel către modulul internet pentru a indica

interesul sau rezervarea pentru utilizarea exculsivă a unei clase .(De exemplu toate cele care

au o anumită valoare în campul protocol).

Aceasta secțiune caracterizează funcțional un utilizator/ Interfata IP. Notația folosită este

similară cu cele mai multe apeluri ale funcțiilor în limbaj de nivel înalt , dar aceasta utilizare

nu este menită să excludă apeluri de tip capcana (de exemplu SVCs , UUOs , EMTs) , sau

orce altă formă de comunicare între procese.

Acesta este un exemplu al datelor minimale transportate de datagramă:

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

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|Ver= 4 |IHL= 5 |Type of Service| Total Length = 21 |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Identification = 111 |Flg=0| Fragment Offset = 0 |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Time = 123 | Protocol = 1 | header checksum |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| source address |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| destination address |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| data |

+-+-+-+-+-+-+-+-+

De reținut că fiecare bifă reprezintă o poziți de bit .

Aceasta este o datagramă de internet în versiunea 4 a protocolului de internet.

Antetul internet este format din 5 cuvinte pe 32 de biți , iar lungimea totală a datagramei este

de 21 de octeți . Această datagramă este o datagramă completă (nu un fragment).

Exemplul 2:

In acest exemplu , vom prezenta mai întai o datagramă de dimensiuni moderate (452 octeți de

date) , apoi două fragmente care ar fi putut rezulta prin fragmentarea datagramei dacă

dimensiunea maximă de transmisie permisă era 280 octeti:

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

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|Ver= 4 |IHL= 5 |Type of Service| Total Length = 472 |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Identification = 111 |Flg=0| Fragment Offset = 0 |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Time = 123 | Protocol = 6 | header checksum |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| source address |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| destination address |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| data |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| data |

\ \

\ \

| data |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| data |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Acum , primul fragment care rezultă din împarțirea datagramei dupa 256 de octeti de date.

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

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|Ver= 4 |IHL= 5 |Type of Service| Total Length = 276 |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Identification = 111 |Flg=1| Fragment Offset = 0 |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Time = 119 | Protocol = 6 | Header Checksum |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| source address |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| destination address |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| data |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| data |

\ \

\ \

| data |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| data |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Si al doilea fragment:

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

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|Ver= 4 |IHL= 5 |Type of Service| Total Length = 216 |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Identification = 111 |Flg=0| Fragment Offset = 32 |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Time = 119 | Protocol = 6 | Header Checksum |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| source address |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| destination address |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| data |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| data |

\ \

\ \

| data |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| data |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Exemplul 3 :

Acesta este un exemplu al unei datagrame care conține opțiuni:

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

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|Ver= 4 |IHL= 8 |Type of Service| Total Length = 576 |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Identification = 111 |Flg=0| Fragment Offset = 0 |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Time = 123 | Protocol = 6 | Header Checksum |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| source address |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| destination address |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Opt. Code = x | Opt. Len.= 3 | option value | Opt. Code = x |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Opt. Len. = 4 | option value | Opt. Code = 1 |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Opt. Code = y | Opt. Len. = 3 | option value | Opt. Code = 0 |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| data |

\ \

\ \

| data |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| data |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Exemplu 4 :

Ordinea de transmitere a antetului și a datelor descrise în acest document se rezolvă la nivel

de octet. Ori de cate ori o datagramă arată un grup de octeți , ordinea de transmisie a acestor

octeți este ordinea normală în care acestea sunt citite in limba engleză .

De exemplu în urmatoarea diagramă octeții sunt transmiși în ordinea în care sunt numarotați.

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

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| 1 | 2 | 3 | 4 |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| 5 | 6 | 7 | 8 |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| 9 | 10 | 11 | 12 |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Ori de cate ori un octet reprezintă o cantitate numerică , cel mai din stânga bit este

bitul cel mai semnificativ , etichetat cu 0 .

De exemplu , urmatoare diagrama reprezinta valoarea 170 in deciaml

0 1 2 3 4 5 6 7

+-+-+-+-+-+-+-+-+

|1 0 1 0 1 0 1 0|

+-+-+-+-+-+-+-+-+

Bibliografie:

1. https://technet.microsoft.com/en-us/library/cc779696%28v=ws.10%29.aspx [2]

2. http://ro.wikipedia.org/wiki/Adres%C4%83_IP [1]

3. http://www.inforetele.com/ccna/ip-uri-clase-re%C8%9Bele-subnetizare/

4. http://profs.info.uaic.ro/~busaco/teach/courses/net/presentations/net3b.pdf

5. http://en.wikipedia.org/wiki/Internet_protocol_suite

6. Andrew S. Tanenbaum. Computer Networks.

7. http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.88.7505&rep=rep1&type=p

df

8. http://calin.comm.pub.ro/Didactice/ARI/Notite%20curs/Prez/Ro/ARI_R_c8-9_IP.pdf