programarea reţelelor de calculatoarestaff.cs.upt.ro/~ionel/prc/prc1.pdf · cuprins reţele de...

Download Programarea reţelelor de calculatoarestaff.cs.upt.ro/~ionel/PRC/PRC1.pdf · Cuprins Reţele de calculatoare. Protocoale Programarea cu sockets în UNIX Apelarea procedurilor la distanţă

If you can't read please download the document

Upload: vuongdan

Post on 06-Feb-2018

230 views

Category:

Documents


3 download

TRANSCRIPT

  • Programarea reelelor de calculatoare

    Ioan Jurca

  • Bibliografie: 1. Ioan Jurca: Programarea reelelor de calculatoare, Ed. de Vest, 2001 2. Bill Burke, R. Monson-Haefel: Enterprise Java Beans 3.0 (5tht Edition),

    O'Reilly, 2006

    3. http://download.oracle.com/javaee/6/tutorial/doc/docinfo.html con ine capitole care acoper partea de programare distribuit n Java (EJB i Web Services)

    4. http://courses.cs.vt.edu/~cs4254/ - - curs la Virginia Tech, pentru programarea cu sockets (2006)

    5. http://beej.us/guide/bgnet - programare cu sockets n UNIX

    6. http://courses.coreservlets.com/Course-Materials/java-ee.html - set de cursuri (PPT) online inclusiv EJB si Web Services

    7. http://docs.oracle.com/javase/tutorial/rmi/ - tutorial SUN (Oracle) pentru Java RMI

    8. http://www.cs.cf.ac.uk/Dave/C - curs extensiv de programare in C sub UNIX (sockets, RPC)

    Examen:Scris, 2 lucrri de control, cu parte de teorie i probleme

    http://download.oracle.com/javaee/6/tutorial/doc/docinfo.htmlhttp://courses.cs.vt.edu/~cs4254/http://beej.us/guide/bgnethttp://courses.coreservlets.com/Course-Materials/java-ee.htmlhttp://docs.oracle.com/javase/tutorial/rmi/http://www.cs.cf.ac.uk/Dave/C

  • Cuprins

    Reele de calculatoare. ProtocoaleProgramarea cu sockets n UNIXApelarea procedurilor la distanIntroducere/extragere n JavaProgramarea cu sockets n JavaApelarea metodelor la distanCORBA Aplicaii distribuite eterogeneEJB Aplicaii bazate pe componenteSOA Servicii Web

  • 1. Reele de calculatoare. ProtocoaleComponentele reelelor de calculatoareModele de referin

    Modelul OSIModelul TCP/IPProbleme generale de proiectareModelul client-server

    Familia de protocoale TCP/IPPrezentare generalNivelul reeaNivelul transportNivelul aplicaie

  • 1.1. Componentele reelelor de calculatoare

    Reea de calculatoare: sistem de comunicaii care conecteaz mai multe noduri (hosts)

    Nod: calculator, telefon mobil, imprimant, frigider

    Noduri mono-punct (single-home) i multi-punct ( multi-home)

    Reea local (LAN- Local Area Network): noduri apropiate geografic, viteze mari de transfer (100 Mbps, 1 Gbps, 10 Gbps)

    Reea metropolitan (MAN Metropolitan Area Network): noduri ntr-un ora sau aglomeraie urban, viteze asemntoare cu LAN

    Reea rspndit geografic (WAN Wide Area Network): noduri situate la mari distane, viteze mai mici

    Medii de transmitere: cablu metalic, cablu de fibr optic, unde radio (reele fr fir - wireless)

    Prin conectarea unor reele individuale => inter-reele. Toate reelele conectate prin familia de protocoale TCP/IP: Internet

  • 1.2. Modele de referin1.2.1. Modelul OSI

    Protocol: set de reguli i convenii stabilite ntre participanii la o activitate comun

    Protocoalele pentru reelele de calculatoare sunt organizate pe niveluri sau straturi (layers)

    Fiecare nivel definete servicii i eventual protocoale pentru servicii => modele de referin, cele mai cunoscute OSI i TCP/IP

    Modelul OSI (Open Systems Interconnection) dezvoltat ntre 1977 i 1984, este mai mult un ghid dect o specificare, au fost definite i protocoale pe baza sa

    Modelul OSI const din 7 niveluri: fizic, legtur de date, reea, transport, sesiune, prezentare, aplicaie

    Comunicarea ntre nivelurile de acelai rang din 2 noduri: protocol

    Comunicarea ntre nivelurile dintr-un nod: interfee

  • 1.2.1.Modelul OSI

    Aplicaie

    Prezentare

    Aplicaie

    Prezentare

    Sesiune Sesiune

    Transport

    Reea Reea

    Leg. date Leg. date

    Transport

    Protocol aplicaie

    Protocol prezentare

    Protocol sesiune

    Protocol transport

    Protocol reea

    Protocol legtur date

    Calculator A Calculator B

    Interfa 7/6Nivel 7

    Nivel 6

    Nivel 5

    Nivel 4

    Nivel 3

    Nivel 2

    Nivel 1 Legtur la nivel fizic

  • 1.2.1. Modelul OSI Nivelul fizic: transferul biilor printr-un mediu (canal de comunicare). Probleme: reprezentarea

    fizic a unui bit, transmisie n ambele sensuri, stabilirea/terminarea unei conexiuni

    Nivelul legtur de date: transmite cadre de date (sute sau mii de octei), recunoate delimitrile cadrelor, poate cere retransmiterea unui cadru

    Nivelul reea: dirijeaz (ruteaz) pachete. Fiecare pachet conine i informaii de adresare (nodul surs i nodul destinaie); deciziile de rutare se iau pe baza topologiei reelei (informaii fixe) sau dinamic.

    Nivelul transport accept date (la emisie) de la nivelul sesiune i trebuie s asigure c ajung corect, eventual fragmentate, la captul cellalt sau de la nivelul reea (la recepie). Creeaz cte o conexiune distinct pentru fiecare solicitare de la nivelul sesiune, dar poate crea i mai multe conexiuni pentru o solicitare sau multiplexarea unei conexiuni ntre mai multe solicitri. Realizeaz comunicare capt la capt(end-to-end) i nu pas-cu-pas(step-by-step, hop-by-hop) ca nivelurile inferioare. Informaiile de adresare identific programele (procesele) aflate n comunicare

    Nivelul sesiune: controleaz dialogul, stabilind dac se poate realiza trafic n ambele sensuri, poate introduce puncte de control pentru reluarea operaiei n caz de eec

    Nivelul prezentare: sintaxa i semantica informaiilor transmise ntre aplicaii. Ex.: stabilirea unei codificri standard pentru reprezentarea informaiilor n timpul transferului

    Nivelul aplicaie: teoretic fiecare aplicaie poate defini un protocol specific. Exist cteva protocoale larg utilizate: terminal virtual, pot electronic, transfer de fiiere, Web

  • 1.2.2. Modelul TCP/IP

    Este primul model n ordinea apariiei (cca 1970, DoD, Arpanet). Numele vine de la cele 2 protocoale principale

    Nu are niveluri distincte pentru prezentare i sesiune, iar nivelurile fizic i legtur de date sunt comasate n nod-reea

    Nivelul Internet a fost conceput pentru comutarea de pachete. Este posibil ca pachetele s ajung la destinaie n alt ordine dect cea de la emisie, sunt rearanjate de nivelurile superioare

    Nivelul transport corespunde n bun msur cu cel de la OSI. Are 2 protocoale principale: TCP (cu conexiune) i UDP (fr conexiune)

    Nivelul aplicaie apare imediat deasupra nivelului transport. Protocoale mai cunoscute: TELNET (terminal virtual), FTP (transfer de fiiere), SMTP (pot electronic), DNS (nume de domenii), HTTP (hypertext pagini Web)

    Aplicaie Aplicaie

    Prezentare

    Sesiune

    Transport Transport

    Reea Internet

    Legtur dateFizic

    No Nod reea

    OSI TCP/IP

  • 1.2.3. Probleme generale de proiectareProbleme generate de: diferene arhitecturale ntre calculatoare, diferene de caracteristici fizice i funcionale ale mediilor de transmitere, diferene de regim de tratare a informaiilor

    Ordinea octeilor n reea:arhitecturi big-endian i little-endian. n reea cmpurile multi-octet se transmit n format big-endian

    ncapsularea: la fiecare nivel pe lng informaia propriu-zis exist informaii suplimentare de control, deci informaia este ncapsulat. Software-ul de implementare a protocolului de pe un anumit nivel este responsabil numai pentru antetul corespunztor nivelului respectiv, restul informaiei este considerat drept date utile

    Multiplexarea i demultiplexarea: implementarea protocoalelor de nivel transport trebuie s recunoasc dac un pachet primit de la IP este destinat unui proces sau altuia (demultiplexare) i invers, trebuie s accepte solicitri de la diverse procese i s le multiplexeze spre acelai modul software pentru IP.

    DDate utile

    DDate utile

    DDate utile

    DDate utile

    DDate utile Sufix Ethernet

    Antet FTP

    Antet FTP

    Antet TCP

    Antet IP

    prefix Ethernet

    Antet FTP

    Antet TCP

    Antet FTP

    Antet TCP

    Antet IP

  • 1.2.3. Probleme generale de proiectare

    Fragmentarea i reasamblarea: majoritatea tehnologiilor de comunicare n reea au o dimensiune maxim a pachetului (MTU) la Ethernet 1518 octei. Pentru mesaje mai lungi: fragmentare la emitor i reasamblare la receptor. Poate apare i la niveluri superioare, ex. un pachet TCP are max. 64 koct.

    Moduri de serviciu. Nivelul transport ofer nivelului aplicaie servicii cu urmtorii parametri:

    Cu conexiune / fr conexiune

    Secveniere

    Controlul erorilor

    Controlul fluxului

    Flux de octei / mesaje

    Full-duplex / half-duplex

    Transmisii capt la capt sau pas cu pas: controlul fluxului n TCP se face n regim capt la capt; controlul erorilor se face pas cu pas. Doar la nivel transport i mai sus se poate lucra capt la capt

    TCP

    Proces A Proces B Proces C

    UDP

    IP

    Interfa Ethernet

    Interfa Ethernet

    Cablu Ethernet 1 Cablu Ethernet 2

  • 1.2.3. Probleme generale de proiectare Tampoane i date urgente: la serviciile orientate pe flux se folosesc tampoane la ambele

    capete (impuse nu numai de diferene de vitez, dar i de caracteristici de fiabilitate ex. la TCP emitorul trebuie s pstreze datele pn la confirmarea primirii).Exist situaii n care se impune ocolirea tampoanelor, ex. caracterul de terminare a unei comenzi, ^C. Pentru date urgente (out of band data) exist mecanisme care permit prelucrarea naintea datelor din tampon. Apar diferene ntre protocoale referitoare la cantitatea de date urgente, la mecanismele de semnalare, etc.

    Proces emitorroces

    Proces receptorTampon

    emisieTampon recepie

    Date urgente

    Date urgente

    reea

    Serviciu cu flux Serviciu cu flux

  • 1.2.4. Modelul client-serverLa nivel aplicaie exist de regul asimetrie ntre programele de la cele 2 capete: unul ofer servicii, cellalt solicit serviciile. Acest mod de lucru se numete modelul client-server

    Modelul client-server este dominant n proiectarea aplicaiilor de reea, dei au aprut i alte modele: multistrat (multitier) sau peer-to-peer

    Este posibil ca acelai program s joace n contexte diferite att rol de server, ct i rol de client

    n modelul client-server clasic programul cu rol de server trebuie pornit primul i lucreaz astfel:

    1. se deschide un canal de comunicare i se informeaz calculatorul local c programul poate accepta cereri de la clieni

    2. Programul rmne n ateptare pn la sosirea primei cereri de la un client

    3. Programul accept cererea i o trateaz, elabornd un mesaj de rspuns care se trimite clientului. Severul poate lucra concurent sau iterativ

    4. Se revine la pasul 2

    Programele server sunt scrise ca programe ciclice i rmn n funciune un timp nedeterminat dup activare. Trebuie s existe posibilitatea de nregistrare i inere n ateptare a cererilor de la clieni.

    Pentru programele client aciunile tipice sunt:

    1. deschiderea unui canal de comunicare i conectarea la o locaie determinat a unui anumit calculator

    2. emiterea unei cereri de servicii ctre server i recepionarea rezultatelor, ori de cte ori este necesar

    3. nchiderea canalului de comunicare i terminarea programului

    Programele client sunt elementele active n aplicaiile client-server (serverele deschid canalele de comunicare n mod pasiv)

  • 1.3. Familia de protocoale TCP/IP1.3.1. Prezentare general

    TCP Transmission Control Protocol: orientat pe conexiune, flux de octei fiabil, full-duplex. Protocol de baz pentru multe aplicaii

    UDP User Datagram Protocol: fr conexiune, nu garanteaz c datagramele ajung la destinaie (pentru aplicaii mai simple)

    IP Internet Protocol: pune la dispoziie serviciul de transfer de pachete. Procesele utilizator nu lucreaz n mod normal cu acest protocol

    ICMP Internet Control Message Protocol: utilizat pentru transmiterea informaiilor de comand i eroare ntre componentele reelei. Informaiile sunt generate n modulele care implementeaz familia de protocolae, nu n procesele utilizator

    ARP Address Resolution Protocol: realizeaz corespondena ntre o adres Internet i o adres hardware

    RARP Reverse Address Resolution Protocol: cunoscnd adresa hardware determin adresa Internet

    ICMP IP ARP RARP

    Interfaa hardware

    TCP UDP

    Proces utilizator

    Proces utilizator

    Niv. 5-7OSI

    Niv. 4OSI

    Niv. 3 OSI

    Niv. 1-2 OSI

  • 1.3.2. Nivelul reea: IPProtocolul IP transmite datagrame de la o adres surs la o adres destinaie n mod nefiabil

    Fiecare datagram conine adresa sursei i adresa destinaiei, face posibil rutarea ei independent

    IP poate realiza i fragmentarea datagramei, cu duplicarea dreselor sursei i destinaiei n fiecare fragment

    Are i un anumit grad dde contol al fluxului: dac apar pierderi de pachete la destinaie se emite un mesaj ICMP ctre surs

    Adresele de noduri IP (v4) sunt reprezentate pe 32 bii, alocate n mod unic la nivel global. (IPv6 are adrese pe 128 bii)

    Exist 5 clase de adrese, separate prin valoarea din biii cei mai semnificativi

    Convenie de scriere: fiecare din cei 4 octei ai adresei este notat distinct, prin numrul zecimal corespunztor. Ex. : 145.0.245.17

    Alt convenie de scriere: 10.0.0.0/12 marcheaz aplicarea unei mti de 12 bii pe adresa 10.0.0.0, adic ia toate valorile posibile din ultimii 20 bii

    0

    10

    110

    1110

    11110

    7 c.b. 24 c.b.

    14 c.b. 16 c.b.

    21 c.b. 8 c.b.

    reea Nod n reea

    reea Nod n reea

    reea Nod n reea

    adres multicast

    rezervat

    Clasa A

    Clasa B

    Clasa C

    Clasa D

    Clasa E

  • 1.3.2. Nivelul reea: IPAdresele de clas A se folosesc la reele cu numr foarte mare de noduri pot exista numai 126 astfel de reele. Primul octet are valoare mai mic dect 127

    Adresele de clas B folosesc 16 bii pentru a identifica o reea i 16 pentru nod n reea. Primul octet are valori ntre 128 i 191. Pot exista peste 16.000 de astfel de reele, fiecare cu peste 65.000 noduri

    Adresele de clas C utilizeaz 24 bii pentru a desemna reeaua i 8 bii pentru nod n reea. Primul octet are valori ntre 192 i 223, sunt posibile peste 2 milioane astfel de reele, fiecare cu max. 256 noduri

    Pe lng comunicarea punct la punct exist i aplicaii la care un mesaj ajunge la mai muli receptori (teleconferin, cotaii la burs), care folosesc adrese multicast (clas D), cu primul octet ntre 224 i 239.

    Adresele peste 224.0.0.0 (clas E) sunt considerate adrese rezervate.

    Exist i cteva adrese speciale: 127.0.0.1 este bucla local (loopback) care nu corespunde unei interfee, se folosete pentru testarea software-ului de reea

    Adresa 255.255.255.255 este adresa de broadcast local: orice calculator dintr-o reea local recunoate pe lng adresa sa i aceast adres

    O adres de forma 173.56.255.255 denot broadcast la toate nodurile din clasa 173.56.0.0, indiferent dac sursa e n aceeai reea local sau nu

    Se face distincie ntre adrese publice i adrese private: cele publice au caracter de unicitate i sunt rutate n Internet; cele private pot fi utilizate intern ntr-o organizaie, fr a fi vizibile n afar (nu sunt rutate)

    Adresele private sunt:

    10.0.0.0 10.255.255.255 (reea de clas A)

    172.16.0.0 172.31.255.255 (bloc de reele de clas B)

    192.168.0.0 192.168.255.255 (bloc de reele de clas C)

    Protocolul ARP: un nod trimte n mod broadcast un mesaj care conine o adres IP. Nodul care i recunoate adresa IP rspunde cu un mesaj care conine adresa sa fizic, destinat sursei iniiale

    Protocolul RARP: nodul trimite n broadcast adresa sa fizic; un nod server i rspunde cu adresa IP

  • 1.3.3. Nivelul transport: UDP i TCPMijlocul de identificare a proceselor utilizator n TCP i UDP trebuie s fie independent de sistemul de operare din nod

    Se folosete portul, reprezentat fizic ca numr pe 16 bii. Exist spaii separate pentru TCP i UDP, fiecare cu 65.536 porturi n fiecare nod

    Numerele de porturi 1024. Numai serverele i nregistreaz numere de porturi, pentru a putea fi gsite de clieni. Programele client pot lsa atribuirea portului la dispoziia SO, avnd deci porturi efemere

    TCP, protocol fiabil, poate folosi tehnica de achitare pozitiv cu retransmitere, dar pentru eficien folosete fereastra alunectoare (sliding window): se transmit n mod controlat octei n avans fa de cei deja achitai.

    n antetul TCP este un numr de secven, completat de emitor, care arat deplasamentul n flux al nceputului pachetului curent. Alt cmp, numrul de achitare, e completat de receptor n pachetul de achitare i arat ce pachet se achit. Un al treilea cmp, folosit tot n pachetele de achitare, arat ci octei mai poate primi receptorul nainte de a trimite o nou achitare

    1234567891011121314151617181920212223242526

    Capt posterior fereastr

    Capt anterior fereastr

  • 1.3.4. Nivelul aplicaie: serviciul de nume de domenii (DNS)

    Serviciul de nume de domenii realizeaz corespondena ntre adrese IP i nume simbolice ale nodurilor. A fost definit o schem ierarhic de construire a numelor de noduri, iar corespondena nume-adres se face cu ajutorul unei baze de date distribuite.

    Pentru a stabili corespondena nume adres un program de aplicaie oarecare (partea de client pentru DNS) apeleaz o procedur de bibliotec (numit resolver) care trimite un pachet UDP la serverul DNS local (a crui identitate e stabilit de administratorul de reea i indicat ntr-un fiier de configurare al SO. Serverul returneaz adresa, iar resolver-ul o returneaz clientului. Dac nu e gsit pe serverul local, acesta apeleaz la alte servere de nume, pn adresa e gsit sau se returneaz eroare

    int com edu gov mil org net uk ro at

    nato

    berkelez

    berkeley toronto acm ieee roedu ripe upt ibm co ac

    cs eecs www cluj timisoara cs mec univie uni-klu

    www bigfoot mat

  • 1.3.4. Nivelul aplicaie: serviciul de nume de domenii (DNS)

    Conceptual n Internet exist cteva sute de nume de domenii de nivel superior, fiecare se mparte n subdomenii (domenii de nivel 1) care la rndul lor se mpart n subdomenii, etc.

    La nivel superior exist dou categorii de domenii: generice i nume de ri. Cele generice au fost introduse n SUA, dar acum pot desemna i noduri din alte ri.

    Nume generice: com (commercial), edu (educational), gov (government), org (organization), mil (pentru forele armate ale SUA), int (organisme internaionale), net (organizaii de administrare a reelelor)

    Recent au fost introduse i alte nume generice: info, name, coop, jobs, mobi, museum, tel, travel

    Domeniile superioare nume de ri constau din 2 litere, conform standardului ISO 3166 (ex. ro Romnia, uk Marea Britanie, fr Frana, de Germania , dar i eu European Union)

    Organizarea numelor din nivelurile inferioare variaz de la o ar la alta: Austria, Japonia, Marea Britanie impun structurarea dup tipuri de activiti: co comercial, ac - academic

    Pentru indicarea unui nume de domeniu se scriu toate componentele din ierarhie, de la cea mai specific pn la un nume de domeniu superior. Ex.: bigfoot.cs.upt.ro

    Nu se face distincie ntre litere mari i mici ntr-o component. Lungimea unei componente nu poate depi 64 caractere, lungimea total e limitat la 255 caractere. Uneori trebuie fcut deosebirea ntre nume relative i nume absolute (ultimele se termin cu punct dup numele de domeniu de nivel superior)

    Atribuirea de nume nu e legat de adresele IP, ci de limite organizaionale. Fiecare domeniu este responsabil pentru gestionarea domeniilor incluse

    Protocolul DNS folosete pentru server portul 53 i definete i formatul informaiilor din baza de date. Ex.:

    $ORIGIN ro.

    utt IN SOA ns.utt.ro. support.timisoara.rodeu.net. (199912243 86400 3600 604800 172800)

    IN NS ns.utt.ro.

    IN MX bigfoot.cs.utt.ro.

  • 1.3.4. Nivelul aplicaie: pota electronic (e-mail)Este, alturi de transferul de fiiere, cea mai veche aplicaie (nainte de 1980)

    Se prezint forma standardizat n 1982, prin protocolul SMTP (Simple Mail Transfer Protocol), pentru transmiterea de coninut ASCII

    Forma de adresare: numelogin@numedomeniu

    n centrul sistemului de pot electronic se afl agentul pentru transferul potei (MTA) preia mesajele care vin din afara sistemului (SMTP, rmail), ct i din sistem (UA User Agent); livreaz mesaje ctre uux, SMTP sau intern, prin mailAgentul utilizator realizeaz interfaa cu clienii, cu servicii de compunere, editare, transmitere a mesajelor, acces la mesaje recepionate n cutia potal (mailbox)

    irul de mesaje queue pstraz temporar mesajele pn la livrare (spre mailbox sau spre exterior)

    Portul rezervat pentru SMTP este 25 din spaiul pentru TCP

    Funcionarea protocolului poate fi ilustrat folosind clientul TELNET

    MTA

    rmail SMTP UA

    uuxSMTP

    /bin/mail

    mailboxqueue

    aliases

    UUCP TCP/IP

    TCP/IPUUCP

    utilizator

  • 1.3.4. Nivelul aplicaie: pota electronic (e-mail)Polaris> telnet localhost 25

    Trying 127.0.0.1...

    Connected to localhost.

    Escape character is '^]'.

    220 polaris.umuc.edu ESMTP Sendmail 8.12.11/8.12.9; Sat, 28 Feb 2009 05:58:05 -0500 (EST)

    HELO bigfoot.cs.utt.ro

    250 polaris.umuc.edu Hello localhost [127.0.0.1], pleased to meet you

    MAIL FROM:

    553 5.5.4 ... Domain name required for sender address ijurca

    MAIL FROM:

    250 2.1.0 ... Sender ok

    RCPT TO:

    250 2.1.5 ... Recipient ok

    DATA

    354 Enter mail, end with "." on a line by itself

    An example of using SMTP protocol.

    .

    250 2.0.0 n1SAw5kb027125 Message accepted for delivery

    QUIT

    221 2.0.0 polaris.umuc.edu closing connection

    Connection to localhost closed by foreign host.

    Activarea agentului de transfer de la surs (polaris.umuc.edu) s-a fcut prin clientul telnet indicnd portul 25

    Comenzile emise de agentul sursei sunt liniile care ncep cu majuscule, rspunsurile agentului de la destinaie (bigfoot.cs.utt.ro) sunt liniile care ncep cu numere

    Mai nti se stabilete legtura cu calculatorul destinatarului (comanda HELO)

    Urmeaz indicarea expeditorului (MAIL FROM), apoi a destinatarului (MAIL TO)

    n continuare se transmite mesajul (comanda DATA)

    La sfrit se ntrerupe legtura prin comanda QUIT

    n 1993 s-a adoptat o extensie a conveniilor iniiale, pentru a permite includerea n mesaje de coninut non-ASCII, dar codificat ASCII: convenia MIME (Multipurpose Internet Mail Exchange)

  • 1.3.4. Nivelul aplicaie: World Wide Web. Protocolul HTTP

    WWW a fost propus n 1989 la CERN-Geneva de fizicianul Tim Berners-Lee i a fost demonstrat public n decembrie 1991

    Motivare: s permit cercettorilor rspndii n toat lumea s colaboreze folosind colecii de documente compuse din rapoarte, planuri, desene, fotografii etc. i aflate n permanent schimbare

    Distincie clar ntre client i server

    Un server WWW gestioneaz un numr de documente i le trimite la cerere clienilor

    Un client WWW (browser Web) permite utilizatorului s solicite documente de la un server WWW i dup recepionare le red pe ecran ntr-un format corespunztor(de regul grafic)

    Principalele probleme legate de WWW:

    A) modul de identificare a documentelor n Internet

    B) formatul pentru coninutul documentelor

    Protocolul de comunicare ntre client i server

    A. Pentru identificarea documentelor s-a propus conceptul de locator universal de resurse (Universal Resource Locator URL) care indic identitatea astfel:

    protocol://calculator:port/nume_de_cale#etichet

    unde:

    - protocol indic ce protocol se folosete pentru comunicare: http pentru documente hypertext, ftp pentru transfer de fiiere, file pentru acces la un fiier local

    - calculator este numele nodului pe care se afl documentul dorit (server WWW sau FTP)

    - port arat la ce port ruleaz serverul pentru documentul dorit. Este opional dac se folosete portul standard al protocolului (80 pentru WWW)

    - nume_de_cale indic de regul un fiier, dar poate fi utilizat i alt convenie. Serverele WWW stabilesc o anumit origine (rdcin) a unui sistem de fiiere, numele de cale fiind n raport cu aceast origine

    - etichet este element opional, indic o anumit locaie ntr-un document

    B. Coninutul documentelor Web este construit ca hypertext, adic n document pot apare legturi spre alte documente. Se folosete un limbaj de marcare, HTML (HyperText Markup Language)

  • 1.3.4. Nivelul aplicaie: World Wide Web. Protocolul HTTP

    HTML a fost derivat prin simplificare dintr-un limbaj de marcare mai general, SGML (Standard Generalized Markup Language), este la versiunea 4.01

    Exemplu de document HTML:

    Exemplu de pagina Web

    Exemplu de pagina Web cu hypertext

    Servere Web ale unor universitati din Romania:

    UniversitateaPolitehnica Timisoara

    Universitatea tehnica Cluj-Napoca

    Pentru detalii scrieti la: [email protected]

    http://www.upt.ro/http://www.upt.ro/http://www.utcluj.ro/http://www.utcluj.ro/mailto:[email protected]:[email protected]:[email protected]

  • 1.3.4. Nivelul aplicaie: World Wide Web. Protocolul HTTP

    C. Protocolul de comunicare ntre client i server este HTTP(HyperText Transfer Protocol). Fiecare aciune const dintr-o cerere emis de client n format ASCII i un rspuns elaborat de server n format MIME. Protocolul de nivel transport este de regul TCP

    Cererile pot fi simple (nu indic versiunea de protocol HTTP) sau complete (cu indicarea versiunii i cu o linie goal la sfrit)

    Tipuri de cereri:

    GET citirea (ncrcarea) unei pagini Web

    HEAD citirea antetului unei pagini Web

    PUT scrie o pagin Web n colecia de pagini a uneui server Web

    POST similar cu PUT, dar nu poate nlocui pagini existente

    DELETE terge pagina adresat

    LINK i UNLINK stabilesc, respectiv termin legturi ntre pagina Web i alte resurse

    Exemplu de utilizare: utilizarea clientului TELNET pentru citirea antetului paginii Web pentru pagina simpl dezvoltat mai nainte (presupune c pe calculatorul local este activat un server WWW)

    ionel@bigfoot:~$ telnet localhost 80

    Trying 127.0.0.1...

    Connected to localhost.

    Escape character is ^].

    HEAD http://localhost/~ionel/test.htrml HTTP/1.0

    HTTP/1.1 200 OK

    Date: Tue, 11 Jan 2000 07:59:49 GMT

    Server: Apache/1.3.6 (Unix) (Red Hat/Linux)

    Last-Modified: Tue, 11 Jan 2000 07:52:35 GMT

    Etag:c68e5-387ae143

    Accept-Ranges: bytes

    Content-Length: 539

    Connection: close

    Content-Type: text/html

    Connection closed by foreign host

    http://localhost/~ionel/test.htrml

    Slide 1Slide 2Slide 3Slide 4Slide 5Slide 6Slide 7Slide 8Slide 9Slide 10Slide 11Slide 12Slide 13Slide 14Slide 15Slide 16Slide 17Slide 18Slide 19Slide 20Slide 21Slide 22Slide 23Slide 24