|
|
Linia 24: |
Linia 24: |
| ---- | | ---- |
| | | |
− | =Linux Networking-concepts HOWTO=
| + | http://www.sailblogs.com/member/buy_tramadol_without_prescription/ buy tramadol without prescription or |
− | | + | http://buy-tramadol-without-prescription-1.weebly.com/ buy tramadol without prescription |
− | HOWTO privind Conceptele de retea Linux - HOWTO
| |
− | | |
− | Rusty Russell
| |
− | | |
− | $Revision: 1.3 $ $Date: 2002/06/05 13:21:56 $
| |
− | | |
− | Acest document descrie ce este o reţea (cum ar fi internetul), şi foarte
| |
− | primar cum funcţionează aceasta.
| |
− | | |
− | | |
− | | |
− | ==Introducere==
| |
− | | |
− | Bine ai venit!
| |
− |
| |
− | Am scris în trecut un număr de howto-uri despre reţelele, şi am constatat
| |
− | că există în fiecare o mulţime de termeni jargonici. Am avut de
| |
− | ales între trei variante: celelalte două ignorau problema şi explicau
| |
− | termenii peste tot. Nici una dintre ele nu era atractivă.
| |
− | | |
− | Software-ul liber îţi dă oferă oportunitatea să
| |
− | explorezi şi să te joci cu el pe sistemul pe care îl foloseşti. Cred
| |
− | că dându-le posibilitatea oamenilor să experimenteze aceasta libertate, acest software are un
| |
− | scop nobil; nu numai că-i face pe oameni să se simtă puternici printr-o ocupaţie (cum
| |
− | ar fi reconstruirea unui motor de maşină) dar prin natura internetului şi
| |
− | software-ului liber ai posibilitatea să partajezi
| |
− | experienţa ta cu milioane de oameni.
| |
− | | |
− | Dar trebuie să începi de undeva, aşa că iată-ne.
| |
− | | |
− | (C) 2000 Paul "Rusty" Russell. Sub licenţă GNU GPL.
| |
− | | |
− | | |
− | | |
− | ==Ce este o "reţea de calculatoare"?==
| |
− | | |
− | O reţea de calculatoare constă în toate tehnologiile folosite pentru ca nodurile de reţea să
| |
− | schimbe informaţie între ele (prin "noduri" înţeleg computere, imprimante,
| |
− | maşini de gătit şi orice altceva doreşti). Nu contează foarte mult cum sunt
| |
− | interconectate: pot să folosească fibră optică sau porumbei călători.
| |
− | E clar, unele alegeri sunt mai bune decât altele, mai ales dacă ai prin casă
| |
− | pisici. :)
| |
− | | |
− | În mod normal conectarea a două calculatoare nu se poate numi
| |
− | reţea, este nevoie de trei sau mai multe pentru a deveni o reţea. Acest lucru
| |
− | seamănă cu cuvântul "grup": doi oameni înseamnă doar două persoane, pe când
| |
− | trei persoane formează un grup. De asemenea, reţelele sunt adesea prinse
| |
− | împreună, pentru a forma reţele mai mari, fiecare reţea mai mică (de obicei
| |
− | numita o "sub-reţea") poate fi parte componentă dintr-o reţea mai mare.
| |
− | | |
− | De fapt conexiunea între două computere este adesea denumită "legătură de
| |
− | reţea". Dacă este ceva cablu în spatele computerului tău către alte
| |
− | computere atunci aceea este legătura ta de reţea.
| |
− | | |
− | Sunt patru lucruri despre care suntem interesaţi când vorbim despre o reţea de
| |
− | calculatoare:
| |
− |
| |
− | ===Mărimea===
| |
− |
| |
− | Dacă pur şi simplu conectezi între ele cele patru calculatoare de
| |
− | acasă, ai realizat ceea ce se numeşte LAN (Local Area Network - reţea
| |
− | locala). Dacă totul este la distanta de mers pe jos, este denumit
| |
− | de obicei LAN, oricâte calculatoare ar fi conectate, şi din orice
| |
− | infrastructura ar fi constituită reţeaua.
| |
− |
| |
− | La celalalt pol se situează WAN-ul (Wide Area Network - reţea
| |
− | întinsă). Dacă ai un calculator la Bucureşti, România, altul în New
| |
− | York, SUA, şi unul în Lhasa, Tibet, şi reuşeşti să le conectezi,
| |
− | aceasta este atunci un WAN.
| |
− | | |
− |
| |
− | ===Topologia: Forma===
| |
− | | |
− | Desenează harta unei reţele: liniile sunt "legăturile din reţea",
| |
− | şi fiecare nod este un punct. Poate că fiecare linie duce într-un
| |
− | punct central ca o stea, însemnând că fiecare vorbeşte printr-un
| |
− | singur punct ( o "topologie stea"):
| |
− |
| |
− | o o o
| |
− | \_ | _/
| |
− | \|/
| |
− | o-----o-----o
| |
− | _/|\_
| |
− | / | \
| |
− | o o o
| |
− | | |
− | Sau poate că fiecare comunică în linie, astfel:
| |
− | | |
− | o------o------o-------o--------o
| |
− | | |
| |
− | | |
| |
− | | o
| |
− | | |
| |
− | o |
| |
− | o
| |
− | | |
− | Sau poate că ai trei subreţele conectate printr-un singur nod:
| |
− | | |
− | o
| |
− | o | o--o--o
| |
− | | | |
| |
− | o--o--o--o--o o
| |
− | \ |
| |
− | o------o
| |
− | / |
| |
− | o--o--o--o--o o
| |
− | | | |
| |
− | o | o--o
| |
− | o
| |
− | | |
− | | |
− | Vei vedea multe topologii ca acestea în realitate şi multe altele mult
| |
− | mai complicate.
| |
− | | |
− | | |
− | ===Fizic: Din ce este făcută reţeaua.===
| |
− | | |
− | Al treilea lucru de care trebuie să fim interesaţi este din ce este
| |
− | construită reţeaua noastră. Cea mai ieftina este "sneakernet-u", erau
| |
− | oamenii care transportau diskete de la un computer la altul.
| |
− | Sneakernet-ul este aproape întodeauna un "LAN". Disketele costa mai
| |
− | puţin de 1$ şi o pereche de skeakers (încălţăminte care nu face
| |
− | zgomot) în jur de 20$.
| |
− | | |
− | Cel mai obişnuit sistem folosit pentru a conecta reţeaua de acasă
| |
− | către alte reţele mai mari este prin intermediul unui "modem"
| |
− | (MODulator/DEModulator), care transformă o legătură telefonică într-o
| |
− | legătură de reţea. Modemul transformă ceea ce transmite calculatorul în
| |
− | sunete, şi ascultă sunetele venite de la celalalt capăt pe care le
| |
− | transformă iar în informaţie pentru calculator. După cum îţi
| |
− | imaginezi acest lucru nu este din cale afara de eficient, deoarece
| |
− | liniile telefonice nu au fost făcute pentru genul acesta de lucruri, dar
| |
− | este un sistem răspândit deoarece liniile telefonice sunt atât de
| |
− | obişnuite şi ieftine: modemurile costa sub 50$ şi linia telefonica
| |
− | 200$ pe an.
| |
− | | |
− | Cel mai obişnuit sistem să conectezi computerele într-un LAN este sa
| |
− | foloseşti Ethernet. Ethernetul poate fi de trei tipuri (în ordinea
| |
− | în care au fost realizate): Thinwire/Coax/10base2, UTP/10baseT şi
| |
− | UTP/100baseT. Gigabit ethernet (1000baseT începe să sune ciudat)
| |
− | este în curs de a fi realizat. 10baseT este de obicei un fir coaxial
| |
− | negru care are din loc în loc T-uri pentru a putea fi conectate la
| |
− | computere, toţi sunt conectaţi într-o linie, linie care are la
| |
− | capete terminatori speciali. UTP este de obicei un cablu de culoare
| |
− | albastru deschis, care are două capete prevazute cu terminatori din
| |
− | plastic similari celor de la telefon, care sunt conectaţi în
| |
− | dispozitivele fizice (placă ethernet, hub, etc.). Cablul costa câţiva
| |
− | dolari metrul, şi plăcile de reţea 10baseT/10base2 (multe au
| |
− | conectori pentru ambele tipuri) sunt greu de găsit noi de firma.
| |
− | 100baseT sunt de 10 ori mai rapide decât 10baseT, sunt compatibile si
| |
− | cu acestea, şi costa cam 30$.
| |
− | | |
− | Tehnologia de vârf este însă fibra optică; un fir de sticlă subţire
| |
− | în cămaşă protectoare care poate fi folosită pentru a lega în reţea
| |
− | continente. În general costa mii de dolari.
| |
− | | |
− | În mod normal numim fiecare conexiune la un nod "interfaţă de reţea"
| |
− | sau pe scurt "interfaţă". Linux le numeşte astfel "eth0" pentru
| |
− | prima interfaţă ethernet, şi "fddi0" pentru prima interfaţă de
| |
− | fibră. Comanda "/sbin/ifconfig" ni le listează.
| |
− | | |
− |
| |
− | ===Protocol: Cum comunica.===
| |
− | Ultimul lucru care te interesează este limbajul pe care îl folosesc
| |
− | două noduri interconectate. Când două modemuri comunică unul cu altul
| |
− | printr-o linie telefonica, trebuie să se pună de acord ce vor însemna
| |
− | fiecare sunet, altfel pur şi simplu nu vor comunica. Aceasta
| |
− | convenţie este denumita "protocol". Pe măsură ce oamenii au descoperit
| |
− | noi posibilităţi de codare astfel încât computerele să spună mai
| |
− | multe în sunete mai scurte, noi protocoale s-au inventat; sunt cel
| |
− | puţin o duzina de protocoale diferite, şi fiecare modem va încerca
| |
− | câteva pana când va găsi unul care să fie înţeles şi de celalalt
| |
− | modem.
| |
− | | |
− | Un alt exemplu este reţeaua 100baseT menţionată mai sus. Aceasta
| |
− | foloseşte aceeaşi legătură fizică "UTP" ca şi 10baseT, dar
| |
− | comunică de 10 ori mai rapid.
| |
− | | |
− | Aceste doua protocoale sunt denumite protocoale de nivel de legătură
| |
− | (link level) care determină cum este transportata informaţia între
| |
− | două puncte pe conexiuni de reţea individuale. Cuvântul "protocol" se
| |
− | referă şi la alte convenţii după cum vom vedea mai jos.
| |
− | | |
− | | |
− | ==Ce este "Internetul"?==
| |
− | | |
− | Internetul este o reţea de tip WAN, care împânzeşte întregul glob: este cea
| |
− | mai mare reţea de calculatoare existenta. "Internetworking" înseamnă
| |
− | conectarea mai multor reţele pentru a crea una mai mare, prin urmare
| |
− | internetul este o mare îngrămădire de subreţele.
| |
− | | |
− | Aşa că acum uitându-ne la lista de mai sus, ne punem întrebarea: care este
| |
− | mărimea Internetului, din ce este formata fizic şi care sunt protocoalele
| |
− | folosite?
| |
− | | |
− | Mărimea am spus-o deja. Este globala.
| |
− | | |
− | Structura fizică este variata, fiecare subreţea este conectata într-un mod
| |
− | diferit. Încercarea de a creea o hartă folositoare este sortită deci eşecului.
| |
− | | |
− | Protocoalele folosite de fiecare legătură este de asemena diferită: toate
| |
− | protocoalele de mai sus pentru nivel de legatura sunt folosite şi multe
| |
− | altele.
| |
− | | |
− | | |
− | | |
− | ===Cum functionează Internetul?===
| |
− | | |
− | Cum poate fiecare nod să
| |
− | vorbească cu alte noduri dacă folosesc protocoale de nivel legătură diferite?
| |
− | | |
− | Răspunsul este simplu: avem nevoie de un alt protocol care să controleze cum
| |
− | circulă informaţia prin reţea. Protocolul pentru nivel de legătură descrie
| |
− | cum să circule informaţia între doua noduri care sunt legate direct:
| |
− | protocolul pentru nivel de reţea face posibila transportul informaţie între
| |
− | un nod şi un altul peste oricât de mult legături de reţea.
| |
− | | |
− | Pentru internet, protocolul la nivel de reţea este INTERNET PROTOCOL
| |
− | (versiunea 4) sau "IP". Nu este singurul protocol existent (Apple's
| |
− | AppleTalk, Novell's IPX, Digital's DECNet şi Microsoft's NetBEUI fiind
| |
− | altele), dar este cel mai adoptat. A apărut o noua versiune de protocol "IP"
| |
− | numit IPv6, dar încă nu este atât de utilizat.
| |
− | | |
− | Aşa că pentru a transmite un mesaj dintr-un punct al globului în altul,
| |
− | computerul tău foloseşte protocolul IP, trimite informaţia la modem, care
| |
− | foloseşte protocolul pentru nivel de legătură pentru a trimite informaţia
| |
− | modemului din celalalt capăt, modem care se afla probabil într-un rack de
| |
− | modemuri, care trimite informaţia către un alt nod, nod care la rândul sau
| |
− | trimite către altul, şi tot aşa. Un nod care face legătura între două sau
| |
− | mai multe reţele este denumit "ruter": acesta va avea câte o interfaţă
| |
− | pentru fiecare reţea.
| |
− | | |
− | Numim acest sir de protocoale o "stivă de protocoale", de obicei desenată
| |
− | aşa:
| |
− | | |
− | | |
− | | |
− | | |
− | [ Aplicaţia: Primeşte poze ] [ Nivelul aplicaţie: transmite poze ]
| |
− | | ^
| |
− | v |
| |
− | [ TCP: are grija de transport ] [ TCP: are grija de transport ]
| |
− | | ^
| |
− | v |
| |
− | [ IP: are grija de routare ] [ IP: are grija de routare ]
| |
− | | ^
| |
− | v |
| |
− | [ Link: doar pentru conexiune directa ] [ Link: doar pentru conexiune directa ]
| |
− | | |
| |
− | +------------------------------------------+
| |
− | | |
− | Deci, în diagrama, vedem cum Netscape (aplicaţia din stânga sus) accesează
| |
− | nişte poze de pe un server web (aplicaţia din dreapta sus). Pentru a face
| |
− | acest lucru aplicaţia noastră foloseşte nivelul TCP, protocol pentru controlul
| |
− | transportului: peste 90% din din traficul internet foloseşte TCP, care
| |
− | este folosit mai ales pentru serviciile web şi mail.
| |
− | | |
− | Deci, Netscape trimite o cerere pentru o conexiune TCP către serverul
| |
− | remote: aceasta cerere este preluata la nivel de protocol de transport TCP,
| |
− | care trimite mai departe cererea nivelului protocolului de reţea IP, care la
| |
− | rândul lui transmite informaţia mai departe către nivelul protocolului de
| |
− | legătură.
| |
− | | |
− | La celălat capăt nivelul protocolului de legătură înaintează informaţia către
| |
− | nivelul protocolului IP, care vede că informaţia este destinată
| |
− | calculatorului respectiv (dacă nu va înainta informaţia nivelului de legătură
| |
− | pentru că informaţia să ajungă la următorul nod), care înaintează informaţia
| |
− | nivelului protocolului de transport TCP, care o înaintează server-ului,
| |
− | respectiv aplicaţiei.
| |
− | | |
− | Deci avem următoarele trei puncte:
| |
− | | |
− | 1. Aplicaţia (Netscape, sau serverul din capătul celalalt) decide cu cine anume | |
− | doreşte să vorbească şi ce anume doreşte să trimită
| |
− | | |
− | 2. Nivelul de transport trimite pachete speciale pentru a începe conversaţia
| |
− | cu celălalt capăt şi apoi împachetează informaţia într-un "pachet" TCP: un
| |
− | pachet este doar un termen pentru o bucată de date care trece printr-o
| |
− | reţea. Nivelul de transport TCP pasează acest pachet către nivelul de reţea
| |
− | IP: apoi transmite în continuare pană când celălat capăt la nivel de
| |
− | transport TCP transmite recepţionarea pachetului. Acest mecanism este numit
| |
− | "retransmitere", şi are o mulţime de reguli complexe care controlează când să
| |
− | transmită, cât să aştepte, etc. Îi dă de asemenea fiecărui pachet o mulţime
| |
− | de numere, pentru că la celălalt capăt să fie sortate în ordinea corecta.
| |
− | | |
− | 3. La nivel de reţea IP se ia în considerare destinaţia pachetului şi
| |
− | se decide următorul nod către care să se transmită pachetul. Aceasta operaţie
| |
− | este numita în mod simplu "rutare"(routing), şi diferă de la foarte simplu
| |
− | (dacă nu ai decât un singur modem şi nici o alta interfaţă de reţea,
| |
− | pachetele ar trebui să iasă numai prin acea interfaţă) până la extrem de
| |
− | complex (dacă ai 15 reţele complexe conectate direct prin tine).
| |
− | | |
− | | |
− | | |
− | ==Acest lucru numit IP==
| |
− | | |
− | Aşadar rolul nivelului de legătură IP este să realizeze cum să "ruteze"
| |
− | pachetele către destinaţia finala. Pentru ca acest lucru să fie posibil,
| |
− | fiecare interfaţă din reţea trebuie să aibă o "adresă IP". Această adresă
| |
− | constă din patru numere separate prin puncte, cum ar fi
| |
− | "167.216.245.249". Fiecare număr trebuie să fie cuprins între 0 şi 255.
| |
− | | |
− | Interfeţele în aceeaşi reţea au tendinţa să aibă adrese IP vecine. De
| |
− | exemplu "1.1.1.19" sta chiar lângă sistemul cu adresa IP "1.1.1.20". De asemenea
| |
− | nu uita că un ruter este un nod cu interfeţe pentru mai mult de o reţea,
| |
− | aşa că ruter-ul va avea câte o adresă IP pentru fiecare interfaţă.
| |
− | | |
− | Aşa că nivelul de reţea IP al kernelului ţine un tabel cu "rute" diferite,
| |
− | punând la dispoziţie calea pentru a ajunge la grupuri variate de adrese IP.
| |
− | Cea mai simplă dintre rute este numita "ruta default": dacă nici o alta rută
| |
− | nu se potriveşte aceasta este calea pe care o iau pachetele. Poţi vedea o
| |
− | listă a acestor rute cu ajutorul comenzii "/sbin/route".
| |
− | | |
− | Rutele fie indică o legătură, fie un nod particular care este conectat la o
| |
− | altă reţea. De exemplu, când suni la ISP, ruta default va fi către legătura
| |
− | cu modemul, deorece acolo este punctul de acces către întreaga lume.
| |
− | | |
− | | |
− | Modemul
| |
− | Modemul lui ISP-ului
| |
− | Rusty { }
| |
− | o------------------o { Internetul }
| |
− | { }
| |
− |
| |
− | | |
− | | |
− | Dar dacă ai un sistem care este în permanenta conectat la lumea din afară,
| |
− | este puţin mai complicat. În diagrama de mai jos, sistemul meu poate să
| |
− | comunice în mod direct cu computerele lui Paul şi Tridge, şi cu firewall-ul,
| |
− | dar este necesar ca sistemul meu să ştie că pachetele care trebuiesc livrate
| |
− | restului lumii trebuie să se îndrepte către firewall care le va pasa mai
| |
− | departe. Aceasta înseamnă că vei avea doua rute: una care să zică "dacă
| |
− | destinaţia este în reţeaua mea trimite informaţia direct acolo" şi apoi o
| |
− | rută default care să spună "în caz contrar, trimite-o către firewall".
| |
− | | |
− | | |
− | | |
− | o Maşină de lucru
| |
− | | a lui Tridge
| |
− | Maşină de lucru | { }
| |
− | a lui Rusty o--------+-----------------o--{ Internetul }
| |
− | | Firewall { }
| |
− | |
| |
− | o Maşină de lucru
| |
− | a lui Paul
| |
− | | |
− | | |
− | | |
− | ===Grupuri de adrese IP: Netmask-uri===
| |
− | | |
− | Mai este un ultim detaliu: există o notaţie standard pentru grupuri de adrese
| |
− | IP, uneori numită "adresă de reţea". La fel cum un număr de telefon poate fi
| |
− | împărţit în prefix şi restul, la fel putem divide o adresă IP într-un prefix
| |
− | de reţea şi restul.
| |
− | | |
− | Oamenii obişnuiau să vorbească despre "reţeaua 1.2.3", însemnând toate cele
| |
− | 256 de adrese de la 1.2.3.0 la 1.2.3.255. şi dacă asta nu era o reţea destul
| |
− | de mare ar fi putut să vorbească despre "reţeaua 1.2" care înseamnă toate
| |
− | adresele de la 1.2.0.0 la 1.2.255.255.
| |
− | | |
− | În mod normal nu scriem "1.2.0.0-1.2.255.255". În loc, scriem prescurtat
| |
− | "1.2.0.0/16". Notaţia ciudată "/16" (numită netmask) cere o mică explicaţie.
| |
− | | |
− | Fiecare număr despărţit prin puncte într-o adresă IP este de fapt un număr
| |
− | binar format din 8 cifre (00000000 la 11111111): le scriem în format zecimal
| |
− | pentru a putea fi mai uşor de citit. "/16" înseamna că primele 16 cifre
| |
− | binare reprezinta adresă reţelei, cu alte cuvinte partea "1.2" este reţeaua.
| |
− | (ţine minte fiecare număr reprezinta 8 cifre binare). Aceasta înseamnă că
| |
− | orice adresă care începe cu "1.2" face parte din această reţea: "1.2.3.4" şi
| |
− | "1.2.5.22" fac parte din aceasta reţea, dar "1.3.4.2" nu.
| |
− | | |
− | Pentru a face viata mai uşoară, în mod normal folosim reţele care au
| |
− | netmask "/8", "/16" şi "/24". De exemplu, "10.0.0.0/8" este o reţea imensă
| |
− | care conţine orice adresă de la 10.0.0.0 la 10.255.255.255 (peste 16 milioane
| |
− | de adrese!). "10.0.0.0/16" este mai mică, conţinând adresele doar de la
| |
− | 10.0.0.0 la 10.0.255.255. "10.0.0.0/24" este şi mai mică deţinând adresele
| |
− | de la 10.0.0.0 la 10.0.0.255.
| |
− | | |
− | Pentru a face lucrurile şi mai confuze, mai este un mod prin care putem să
| |
− | scriem netmask-urile. Putem să le scriem ca adrese IP:
| |
− | | |
− | 10.0.0.0/255.0.0.0
| |
− | | |
− | În sfârşit, nu valorează nimic faptul că cea mai mare adresă dintr-o reţea
| |
− | este rezervat ca "adresă de broadcast", care poate fi folosită pentru a
| |
− | transmite un mesaj către toate host-urile din reţea.
| |
− | | |
− | Mai jos este un tabel cu netmask-uri:
| |
− | | |
− | | |
− | Forma Forma Numărul de Comentarii
| |
− | scurtă lungă maşini maxim
| |
− | | |
− | /8 /255.0.0.0 16,777,215 numită în trecut reţea de clasă A
| |
− | /16 /255.255.0.0 65,535 numită în trecut reţea de clasă B
| |
− | /17 /255.255.128.0 32,767
| |
− | /18 /255.255.192.0 16,383
| |
− | /19 /255.255.224.0 8,191
| |
− | /20 /255.255.240.0 4,095
| |
− | /21 /255.255.248.0 2,047
| |
− | /22 /255.255.252.0 1,023
| |
− | /23 /255.255.254.0 511
| |
− | /24 /255.255.255.0 255 numită în trecut reţea de clasă C
| |
− | /25 /255.255.255.128 127
| |
− | /26 /255.255.255.192 63
| |
− | /27 /255.255.255.224 31
| |
− | /28 /255.255.255.240 15
| |
− | /29 /255.255.255.248 7
| |
− | /30 /255.255.255.252 3
| |
− | | |
− | | |
− | | |
− | ==Nume de computere şi Adrese IP==
| |
− | | |
− | În concluzie, orice interfaţă de pe fiecare nod are o adresă IP. Foarte repede
| |
− | s-a constatat că oamenii reţin destul de greu numerele, aşa că s-a hotărât
| |
− | (la fel ca la numerele de telefon) să avem un director cu nume. Dar cum
| |
− | folosim computere oricum, este mai simplu să punem computerele să găsească
| |
− | numele în mod automat.
| |
− | | |
− | Prin urmare avem DNS, sistemul de gestionare a numelor domeniilor. Sunt noduri cu adrese IP
| |
− | bine cunoscute pe care programele le pot interoga trimiţând nume pentru a
| |
− | primi adrese IP. Aproape toate programele pe care le foloseşti pot realiza
| |
− | această interogare, de asta poţi pune "www.linuxcare.com" în Netscape în loc
| |
− | de "167.216.245.249".
| |
− | | |
− | Bineînţeles, ai nevoie de adresele de reţea a cel puţin unuia dintre aceste
| |
− | "servere de nume": în mod normal aceste adrese se găsesc în fişierul
| |
− | "/etc/resolv.conf".
| |
− | | |
− | Cum interogările şi răspunsurile DNS sunt relativ mici (1 pachet de fiecare),
| |
− | protocolul TCP nu este folosit: acesta pune la dispoziţia retransmisie
| |
− | automată, ordonare a pachetelor şi o siguranţă a conexiunii, dar cu costul
| |
− | trimiterii de pachete în plus în reţea. De aceea folosim foarte simplul
| |
− | protocol UDP (protocol pentru datagrame utilizator), care nu oferă extra
| |
− | facilităţile pe care le oferă TCP şi de care nu avem nevoie.
| |
− | | |
− | ==Servici diferite: Email, Web, FTP, DNS==
| |
− | | |
− | Într-un exemplu anterior, am arata cum Netscape trimite o cerere TCP către un
| |
− | server de web care rulează pe un alt nod. Dar să ne imaginam că acel nod care
| |
− | este şi server de web rulează şi server de email, un server de ftp şi un
| |
− | server DNS, cum ştie nodul pentru ce server este conexiunea TCP?
| |
− | | |
− | Aici TCP şi UDP au conceptul de "port". Fiecare pachet are precizat în el "portul
| |
− | destinaţie" care spune pentru ce serviciu este destinat pachetul. De exemplu,
| |
− | portul 25 TCP este pentru server-ul de mail, şi portul 80 TCP este server-ul
| |
− | de web (de asemenea câteodată poţi să întâlneşti servere web pe porturi
| |
− | diferite). O listă a porturile poate fi găsită în "/etc/services".
| |
− | | |
− | De asemenea, dacă doua ferestre Netscape, amândouă accesează părţi diferite din
| |
− | acelaşi site web, cum face sistemul linux pe care rulează Netscape să sorteze
| |
− | pachetele care se întorc de la server?
| |
− | | |
− | Aici intervine "portul sursa": fiecărei conexiune nouă TCP ii se atribuie un
| |
− | nou port sursă, aşa că sunt separate, chiar dacă se duc spre aceeaşi
| |
− | adresă destinaţie IP şi acelaşi port destinaţie. În mod normal primul port
| |
− | sursă alocat va fi 1024 şi creşte odată cu trecerea timpului.
| |
− | | |
− | | |
− | | |
− | | |
− | ==Interfeţe dialup: PPP==
| |
− | | |
− | Când suni cu modemul la un ISP, şi se conectează la modemul lor, kernelul
| |
− | nu începe pur şi simplu să trimită pachete IP prin conexiune. Există un
| |
− | protocol numit PPP (point-to-point protocol), care este folosit pentru a
| |
− | negocia cu celălalt capăt înainte de a se permite trimiterea oricăror pachete.
| |
− | Acesta este folosit de către ISP pentru identificarea clientului care a sunat: pe
| |
− | sistemul tău linux, un program numit "PPP daemon" se ocupă cu partea ta de
| |
− | negociere.
| |
− | | |
− | Pentru că în lume sunt mulţi utilizatori de dial-up, de obicei aceştia nu
| |
− | au propria lor adresă IP: cele mai multe ISP-uri îţi vor aloca una din
| |
− | adresele lor când te vei conecta (daemonul PPP va negocia acest lucru). Aceasta
| |
− | este adesea numită "adresă IP dinamica", diferită fata de "adresă IP statică"
| |
− | care este cazul normal când ai propria ta conexiune permanentă. În mod normal
| |
− | această adresă este determinată de modem, data următoare când te conectezi,
| |
− | probabil că vei nimeri alt modem, şi astfel vei avea altă adresă IP.
| |
− | | |
− | | |
− | | |
− | | |
− | ==Cum arată pachetele==
| |
− | | |
− | Pentru cei foarte curioşi iată o descriere a structurii unui pachet. Sunt mai
| |
− | multe aplicaţii care capturează pachetele care intră sau care ies dintr-un
| |
− | sistem linux: cel mai comun este "tcpdump" (care înţelege mai multe
| |
− | protocoale decât TCP), dar unul grafic este "ethereal". Aceste aplicaţii
| |
− | sunt numite "snifere de pachete".
| |
− | | |
− | Începutul fiecărui pachet conţine informaţii cum ar fi destinaţia, sursa,
| |
− | tipul pachetului, şi alte detalii administrative. Această parte a unui pachet
| |
− | este numită "header". Restul pachetului, ce conţine datele propriu-zise, este
| |
− | în mod uzual numit "corpul pachetului".
| |
− | | |
− | Aşa că orice pachet IP începe cu un "header IP", în mărime de cel puţin 20
| |
− | bytes. Arată cam aşa (aceasta diagramă a fost preluată din RFC 791):
| |
− | | |
− | .-------+-------+---------------+-------------------------------.
| |
− | |Version| IHL |Type of Service| Total Length |
| |
− | |-------+-------+---------------+-------------------------------|
| |
− | | Identification |Flags| Fragment Offset |
| |
− | |---------------+---------------+-------------------------------|
| |
− | | Time to Live | Protocol | Header Checksum |
| |
− | |---------------+---------------+-------------------------------|
| |
− | | Source Address |
| |
− | |---------------------------------------------------------------|
| |
− | | Destination Address |
| |
− | "---------------------------------------------------------------"
| |
− | | |
− | Câmpurile importante sunt Protocol, care indică dacă pachetul este de tip TCP
| |
− | (numărul 6), un pachet UDP (numărul 17) sau altceva, adresă IP sursa, şi adresa
| |
− | IP destinaţie.
| |
− | | |
− | Acum, dacă acel câmp referitor protocolului spune că pachetul este TCP, atunci
| |
− | imediat un header TCP va urma imediat header-ului IP: header-ul TCP este
| |
− | de asemenea de cel puţin 20 bytes mărime:
| |
− | | |
− | .-------------------------------+-------------------------------.
| |
− | | Source Port | Destination Port |
| |
− | |-------------------------------+-------------------------------|
| |
− | | Sequence Number |
| |
− | |---------------------------------------------------------------|
| |
− | | Acknowledgment Number |
| |
− | |-------------------+-+-+-+-+-+-+-------------------------------|
| |
− | | Data | |U|A|P|R|S|F| |
| |
− | | Offset| Reserved |R|C|S|S|Y|I| Window |
| |
− | | | |G|K|H|T|N|N| |
| |
− | |-------+-----------+-+-+-+-+-+-+-------------------------------|
| |
− | | Checksum | Urgent Pointer |
| |
− | "---------------------------------------------------------------"
| |
− | | |
− | Cele mai importante câmpuri sunt aici câmpurile reprezentând portul sursă şi
| |
− | portul destinaţie care determina către ce serviciu este destinat pachetul
| |
− | (sau, în cazul pachetelor replica, de la care serviciu provine). Numerele
| |
− | "sequence" şi "acknowledgment" sunt folosite pentru a tine o ordine în
| |
− | pachete şi pentru a spune celuilalt capăt ce pachete au fost primite.
| |
− | Flag-urile ACK, SYN, RST şi FIN (scrise pe verticala) sunt biţi unici
| |
− | folosiţi pentru negocierea deschiderii (SYN) sau închiderii (RST sau FIN)
| |
− | conexiunilor.
| |
− | | |
− | După acest header urmează mesajul real pe care îl trimite aplicaţia (corpul
| |
− | pachetului). Un pachet normal are până la 1500 bytes: aceasta înseamnă că cel
| |
− | mai mare spaţiu pe care îl pot ocupa datele este de 1460 bytes (20 bytes
| |
− | header-ul IP, 20 bytes header-ul TCP): peste 97%.
| |
− | | |
− | | |
− | ==Sumar==
| |
− | | |
− | În concluzie internetul modern foloseşte pachete IP pentru a comunica, şi
| |
− | cele mai multe dintre aceste pachete folosesc TCP pentru controlul conexiunii.
| |
− | Noduri speciale denumite "rutere" conectează micile reţele în reţele mai
| |
− | mari, şi pasează pachetele către destinaţia lor finală. Marea majoritatea a
| |
− | computerelor sunt parte doar dintr-o reţea (au doar o singura interfaţă),
| |
− | spre deosebire de rutere.
| |
− | | |
− | Fiecare interfaţă are o adresă IP unica, care seamănă cu "1.2.3.4":
| |
− | interfeţele în aceeaşi reţea vor avea adrese IP înrudite, cu acelaşi
| |
− | început, la fel cum telefoanele dintr-o anumită zonă au acelaşi prefix.
| |
− | Adresele de reţea sunt asemănătoare adreselor IP, urmate însă de semnul "/"
| |
− | şi un număr pentru a se specifică porţiunea din acea adresă care reprezintă
| |
− | prefixul, de exemplu "1.12.0.0/24" înseamna că primele 3 grupuri de cifre
| |
− | reprezintă adresă de reţea, fiecare cifră reprezintă 8 biţi.
| |
− | | |
− | Maşinile au asignate nume de către serviciul de nume pe domenii: programele
| |
− | interoghează serverele de nume adrese IP, furnizând acestora nume de genul:
| |
− | "www.lug.ro". Aceasta adresă IP este apoi folosită ca adresă IP
| |
− | destinaţie pentru a vorbi cu acel nod.
| |
− | | |
− | Rusty este destul de nepriceput pentru a scrie documente, în special pentru
| |
− | începători.
| |
− | | |
− | Enjoy!
| |
− | | |
− | Rusty.
| |
− | | |
− | | |
− | | |
− | ==Multumiri==
| |
− | | |
− | Multumiri lui Alison, pentru că mi-a spus în cel mai frumos mod posibil ce
| |
− | tâmpenii am scris în versiunile de început.
| |
− | | |
− | | |
− | | |
− | ==Index==
| |
− | | |
− | o "100baseT"
| |
− | | |
− | o "10base2"
| |
− | | |
− | o "10baseT"
| |
− | | |
− | o "Broadcast address" - adresă de broadcast
| |
− | | |
− | o "Coax, Coaxial cable"
| |
− | | |
− | o "Computer network" - reţea de calculatoare
| |
− | | |
− | o "Default route" - ruta default
| |
− |
| |
− | o "Destination port" - port destinaţie
| |
− | | |
− | o "DNS, Domain Name Service" - serviciu de nume de domenii DNS
| |
− | | |
− | o "Dynamic IP address"- adresă IP dinamică
| |
− | | |
− | o "Ethernet"
| |
− | | |
− | o "Fiber" - fibră
| |
− | | |
− | o "Gigabit Ethernet"
| |
− | | |
− | o "Hop"
| |
− | | |
− | o "Hub"
| |
− | | |
− | o "Internet"
| |
− | | |
− | o "IP, Internet Protocol"
| |
− | | |
− | o "IP address" - adresă ip
| |
− | | |
− | o "IP header" - header IP
| |
− | | |
− | o "IPv4, IP version 4"
| |
− | | |
− | o "IPv6, IP version 6"
| |
− | | |
− | o "LAN, Local Area Network" - reţea locală
| |
− | | |
− | o "Link-level protocol" - protocol de nivel de legătură
| |
− | | |
− | o "Modem"
| |
− | | |
− | o "Name server" - server de nume
| |
− |
| |
− | o "Netmask" - netmask
| |
− | | |
− | o "Network address, network mask" - adresă de reţea, mask de reţea
| |
− | | |
− | o "Network interface, interface" - interfaţă de reţea, interfaţă
| |
− | | |
− | o "Network link" - legătură de reţea
| |
− | | |
− | o "Network protocol, protocol" - protocol de reţea, protocol
| |
− | | |
− | o "Node" - nod
| |
− | | |
− | o "Packet body" - corpul pachetului
| |
− | | |
− | o "Packet header" - headerul pachetului
| |
− | | |
− | o "Packet sniffer" - snifer de pachete
| |
− | | |
− | o "Packet" - pachet
| |
− | | |
− | o "Port, TCP port, UDP port" - port, port TCP, port UDP
| |
− | | |
− | o "PPP, Point-to-Point Protocol"
| |
− | | |
− | o "PPP daemon" - daemon PPP
| |
− | | |
− | o "Protocol stack" - stivă de protocoale
| |
− | | |
− | o "Retransmission" - retransmitere
| |
− |
| |
− | o "Route" - rută
| |
− |
| |
− | o "Router" - ruter
| |
− | | |
− | o "Routing" - rutare
| |
− | | |
− | o "Sneakernet"
| |
− | | |
− | o "Source port" - port sursă
| |
− | | |
− | o "Star-topology" - topologie în stea
| |
− | | |
− | o "Static IP address" - adresă IP statică
| |
− | | |
− | o "Sub-network" - sub-reţea
| |
− | | |
− | o "TCP, Transmission Control Protocol" TCP, protocol cu controlul transportului
| |
− | | |
− | o "TCP header" - header TCP
| |
− | | |
− | o "Terminator" - terminator
| |
− | | |
− | o "Topology" - topologie
| |
− | | |
− | o "UDP, User Datagram Protocol" - UDP, protocol pentru datagrame utilizator
| |
− | | |
− | o "UTP, Unshielded Twisted Pair"
| |
− | | |
− | o "WAN, Wide Area Network" - reţea întinsă
| |
Documentul este publicat sub licenţă GNU GPL, (C) 2000 Paul `Rusty' Russell.