Protocoale de Comunicatii de Nivel Jos

Cuvânt introductiv

Într-o lume în care comunicațiile, fie ele de voce sau de date, analogice sau digitale, între calculatoare sau între ființe umane, constituie o parte importantă a infrastructurii universului în care trăim, putem spune că studiul acestora constituie fără îndoială un domeniu de mare importanță.

Nu este tocmai lipsită de semnificație nici ideea că, în acest domeniu al comunicațiilor, baza de informații de natură științifică și tehnologică a crescut de așa natură și amploare încât nu mai este posibilă în nici un fel o cuprindere globală, dintr-o singură privire a informațiilor care țin de, ceea ce am putea numi, știința comunicațiilor.

În spațiul redus pus la dipoziție de cadrul acestei lucrări, am încercat să prezint, într-o formă structurată, o mică parte a acestui domeniu și anume acea parte care se ocupă cu organizarea comunicațiilor de date de nivel jos în ceea ce se numesc protocoale de comunicații.

Astfel, după o trecere în revistă a ceea ce înseamnă protocol de comunicații și a bazei de standardizare care asigură unitatea pe plan mondial a protocoalelor de comunicații folosite (capitolele I și II) am trecut, în capitolul III la o expunere detaliată a protocoalelor de nivel jos folosite în comunicațiile de date între calculatoare (și nu numai), făcând deosebirea în cursul expunerii între protocoale destinate comunicațiilor exclusiv digitale și cele având și componente analogice.

Fără îndoială, nu ar fi fost lipsită de interes nici o trecere în revistă prin zona protocoalelor de nivel înalt sau a serviciilor oferite la diverse nivele de organizare a comunicațiilor dar fără îndoială o asemenea expunere ar fi depășit cu mult (cel puțin ca volum de informație …) cadrul lucrării.

Capitolul I. Modelul de referință pentru interconectarea sistemelor deschise

În 1983, după șase ani de eforturi intense, Organizația Internațională de Standardizare (ISO) a publicat un îndrumar – un model de referință – care descrie arhitecturile sistemelor de comunicație a datelor. Documentul rezultat, Standardul Internațional 17498, a fost redactat din nou de către ITU-T, care a introdus propria terminologie, iar acest proiect a fost intitulat ITU-T X.200. Numele generic al ambelor documente este Modelul de Referință pentru Interconectarea Sistemelor Deschise (Open Systems Interconnection Reference Model – OSI/RM), pe scurt, OSI.

OSI nu este un protocol și nici nu include protocoale. Ceea ce își propune OSI este definirea unui limbaj universal acceptat și a unor limite în elaborarea protocoalelor, astfel încât sistemele care respectă și aplică regulile OSI să fie „deschise unele față de altele", altfel spus, să poată comunica între ele.

Frustrările cauzate de incompatibilitatea unor sisteme de comunicație competitive sau diferite din punct de vedere geografic au creat premisele pentru elaborarea unor sisteme de cooperare și asistăm în acest moment la o adevărată cursă (virtuală) pentru standardizarea globală a arhitecturilor sistemelor de comunicație a datelor. Comitete de standardizare din diferite organizații sunt angajate în dezvoltarea unor protocoale de comunicație pentru diferitele niveluri ale multitudinii de sisteme care au adoptat modelul OSI.

Niveluri OSI

Modelul OSI definește o arhitectură completă bazată pe șapte niveluri. Nu există un motiv anume pentru care sunt șapte niveluri, și nu șase sau opt; funcțiile care trebuie îndeplinite au fost clasificate în șapte grupuri distincte. Cele trei niveluri inferioare (fizic, legătură și rețea) corespund într-o oarecare măsură nivelurilor fizic, de legătură și pachet din cadrul X.25. S-au elaborat și dezvoltat, și continuă să se dezvolte, protocoale pentru alte tipuri de sisteme, cum ar fi cele pentru fax, rețele integrate pentru voce/date, videotext și altele. Chiar dacă protocoalele nu au fost scrise niciodată, modelul OSI a avut un impact extraordinar asupra abordării standardizate a sistemelor de comunicații.

lată care sunt titulaturile oficiale ale celor șapte niveluri, de sus în jos:

7. Aplicație 3. Rețea

6. Prezentare 2. Legătură de date

5. Sesiune 1. Fizic

4. Transport

Parcurgerea pas cu pas a listei, de jos în sus, înseamnă atingerea unui nivel superior de supervizare a sistemului. în termeni de protocoale, nivelurile inferioare implică succesiv mai multe anteturi înglobate. Figura 11.12 prezintă modul în care sunt relaționate aceste șapte niveluri pentru un sistem ale cărui niveluri inferioare corespund cu cele ale standardului X.25 (în acest caz, NH reprezintă antetul unui pachet).

O analogie

Ori de câte ori oamenii comunică unii cu alții, fie prin intermediul unui calculator, fie verbal, ei utilizează protocoalele corespunzătoare celor șapte niveluri ale modelului OSI. Fără a intra în amănunte prea sofisticate și fără a utiliza terminologia standardului OSI, vom ilustra structurarea OSI pe cele șapte niveluri, de sus în jos, prin analogie cu o convorbire telefonică.

1. Referitor la nivelul fizic – Sunetele rostite la microfonul receptorului și 11 auzite la celălalt capăt al legăturii telefonice.

2. Referitor la nivelul legătură de date – Vorbiți la telefon atunci când aveți ceva de spus și ascultați ceea ce are de spus cel de la capătul firului. Solicitați repetarea unor cuvinte sau propoziții pe care nu le-ați înțeles. Îl rugați pe interlocutor să vorbească mai rar, dacă vi se pare că vorbește prea repede.

3. Referitor la nivelul rețea – Formați numărul de telefon și ascultați

semnalele corespunzătoare de apel. Formați din nou numărul, dacă postul telefonic la care ați sunat este ocupat sau dacă legătura s-a întrerupt. închideți telefonul după ce ați terminat convorbirea telefonică.

4. Referitor la nivelul transport — Care este cea mai eficientă cale, din punct de vedere al costurilor, de a efectua această convorbire telefonică (sau aceste convorbiri telefonice) în funcție de priorități? Ce furnizor de servicii telefonice pe distanțe lungi ar trebui utilizat?

5. Referitor la nivelul sesiune – Situația poate fi rezolvată printr-un singur apel telefonic sau prin mai multe? Cei cu care doriți să vorbiți trebuie apelați la momente de timp diferite? Cine va controla discuția într-o convorbire cu mai mulți participanți? Cine va restabili legătura telefonică dacă aceasta se întrerupe?

6. Referitor la nivelul prezentare — Se vorbește în aceeași limbă sau în același dialect?

7. Referitor la nivelul aplicație – Vorbiți cu persoana potrivită? Cine plătește această convorbire telefonică? Este cel mai potrivit moment să sunați sau mai bine sunați mai târziu? Oare cel cu care vorbiți are pregătit un creion și o foaie de hârtie pentru a lua notițe?

Oricine a folosit un telefon în diferite situații de viață poate constata similitudini cu toate cele șapte niveluri ale modelului de referință, descrise anterior. Cititorul ar trebui să poată identifica ulterior și analogiile cu protocoalele de nivel fizic, rețea și pachet ale standardului X.25.

Capitolul II. Protocoale

Privire asupra capitolului

Acest capitol prezintă regulile pe care le utilizează sistemele de comunicații de date atunci când comunică unele cu altele, mijloacele prin care aceste sisteme detectează erorile care apar în timpul transmisiei și câteva dintre metodele utilizate în corectarea acestor erori. Deoarece există mai multe scheme de transmisie a datelor (de exemplu, asincrone și sincrone, half- și full-duplex), au fost dezvoltate o serie de seturi de reguli, numite protocoale, și o serie de scheme pentru detectarea și corecția erorilor. în acest capitol sunt prezentate tehnicile cele mai uzuale.

Protocoale si interfețe

Protocoalele sunt înțelegeri între oameni sau procese (de regulă, în zilele noastre, procesele sunt programe de calculator) are stabilesc cine, când și în ce fel poate acționa fiecare. Un protocol este diferit de o interfață, Interfața cuprinde un set de reguli, de cele mai multe ori înglobate în componente hardware, care controlează interacțiunea dintre două mașini sau procese diferite, cum ar fi un calculator și un modem. Pe de altă parte, un protocol este un set de reguli care definesc interacțiunea dintre doua mașini sau procese asemănătoare, sau care au funcții similare. Diferența dintre un protocol și o interfață este ilustrată în figura. Casa A și casa B par identice, dar sunt locuite de câte o pereche curioasă de oameni, Inginerul englez, care locuiește la etajul 1 al casei A, trebuie să comunice cu un alt inginer, tot englez, care locuiește la etajul 1 al casei B. În fiecare casă există un singur telefon, la parter, unde locuiește câte un om de afaceri suedez. Cei doi ingineri nu vorbesc limba suedeză, iar oamenii de afaceri suedezi nu cunosc engleza.

Cei doi ingineri, la fel ca majoritatea oamenilor care vorbesc la telefon, au o anumită rutină în comunicație, formată în decursul anilor. Cel care răspunde la telefon spune „Alo". Cel care a sunat spune „Alo, sunt Reggie". Apoi, primul spune „A, salut Reggie. Ce mai faci, bătrâne?". Această primă parte a conversației se numește preambul. Apoi, cei doi prieteni încep să discute despre Wimbledon, despre vreme și chiar câte ceva despre afaceri. Cel care este întrebat dă întotdeauna un răspuns, chiar dacă acest răspuns este onomatopeic și nu un cuvânt sau o propoziție. Dacă, la anumite intervale de timp, unul dintre interlocutori nu aude răspunsul celuilalt, el poate spune „Alo, mai ești la telefon?". Dacă tot nu primește nici un răspuns, el poate să încheie convorbirea și să inițieze o nouă convorbire telefonică. Atunci când unul dintre ei nu înțelege ce a spus celălalt, el întreabă: „Poftim?", iar interlocutorul repetă ultima propoziție. La încheierea convorbirii telefonice, unul dintre interlocutori spune „Bine, atunci, la revedere". Cel de-al doilea răspunde „La revedere" și amândoi închid telefonul. Omul de afaceri suedez procedează de o manieră asemănătoare atunci când vorbește cu omologul său. Toate aceste elemente ale unei conversații convenționale formează un protocol. Așa cum veți vedea pe parcursul acestui capitol, protocoalele dezvoltate pentru comunicația dintre procesele caracteristice sistemelor de calcul se desfășoară după aceleași mecanisme ca și cele dintre oameni, din exact aceleași motive.

Deși cei doi ingineri pot comunica fără dificultate unul cu celălalt, respectând un protocol de comunicație, ei nu au acces direct la canalul de comunicație, care se află în posesia omului de afaceri suedez. Soluția este dată de o interfață. Cei doi ingineri angajează fiecare câte o persoană care cunoaște ambele limbi și care va sta pe scara dintre etaje. Inginerul din casa A vorbește în engleză cu angajatul său aflat pe scară, acesta transmite conversația în suedeză omului de afaceri de la parter, care transmite conversația, prin telefon, compatriotului său din casa B, care o transmite în suedeză persoanei aflate pe scară, care o traduce și o transmite, în cele din urmă, în limba engleză, inginerului din casa B.

Pare o procedură greoaie și ineficientă și, în mare măsură, chiar așa și este. Dar este aceeași procedură utilizată în milioane de sisteme de comunicație a datelor pentru a permite programelor de aplicație, care comunică într-un anumit set de simboluri (probabil ASCII) și cu o anumită viteză, să comunice prin intermediul unui monitor, utilizând un alt set de simboluri (probabil EBCDIC) și o viteză de lucru substanțial diferită, cu un program de interfață de linie, care, la rândul său, utilizează un alt set de simboluri (biți).

Elementele unui protocol

Elementele de bază ale unui protocol de comunicație sunt: un set de simboluri, numit set de caractere, un set de reguli referitoare la secvența de caractere din care se construiesc mesajele și la momentele de timp și procedurile necesare pentru a determina apariția erorilor în transmisie și pentru a corecta aceste erori, Setul de caractere cuprinde un subset cu o anumită semnificație pentru utilizatori (numit set de caractere tipăribile), precum și un alt subset carle), precum și un alt subset care codifică informații de control (numit set de caractere de control). Există o corespondență între fiecare caracter și un grup de simboluri de pe canalul de transmisie. De exemplu, caracterul tipăribil A poate corespunde codului binar 1000001. De-a lungul timpului, au fost definite mai multe coduri standard, explicitate prin seturi echivalente de 1 și 0 (biți), cum ar fi codul ASCII, despre care s-a discutat în capitolele anterioare. Setul de reguli care trebuie respectate de emițător și receptor stabilesc înțelesul, secvențele permise și relațiile temporale ale caracterelor de control cu mesajele formate pe baza simbolurilor. Procedura de detecție și corectare a erorilor permite identificarea și eliminarea erorilor determinate de factori perturbatori, care acționează la ambele terminale ale unui canal de comunicație.

Ierarhizarea protocoalelor pe niveluri

Un protocol este un set de reguli care gestionează o serie de evenimente dependente de timp, care se pot desfășura între entități pereche (sau similare) – adică, între echipamente sau straturi aflate pe același nivel.

Nivelul fizic

În capitolul curent vom examina modul în care biții de date sunt transferați între un Terminal de Transmitere a Datelor (DTE) și un Circuit de Transmitere a Datelor (DCE). De exemplu, vom vedea că biții transferați, prin cablurile de transmisie a datelor, de la un DTE sursă, trebuie să ajungă, printr-un cablu de recepție a datelor, la un DTE de absorbție. Acestea se numesc protocoale la nivel fizic sau cu un nivel unic.

Nivelul legătură de date

În capitolul „Protocoale și controlul erorilor", vom analiza mijloacele prin care diferitele câmpuri, cum ar fi cele de adresă, de text și de verificare a erorilor, pot fi integrate în cadrul aceluiași flux de biți. Vor fi analizate, de asemenea, mai multe protocoale specifice ale legăturii de date, prezentându-se tehnicile utilizate m definirea (fără nici o posibilitate de confuzie) delimitatorilor câmpurilor dintr-un flux de biți, în transmiterea informațiilor către un anumit terminal conectat la o legătură multipunct, în verificarea și corectarea erorilor de transmisie, și în gestiunea generală a liniei de transmisie.

Din punct de vedere al arhitecturii, protocoalele legăturii de date sunt situate la un nivel superior (un nivel mai „inteligent") celui corespunzător protocoalelor de nivel fizic, deși toate informațiile utilizate în cadrul unui protocol al legăturii de date sunt practic induse în fluxul de biți transmis prin intermediul interfeței seriale. Spunem că, din punct de vedere conceptual, câmpurile unui protocol al legăturii de date sunt înglobate sau incluse în biții protocolului de nivel fizic.

Nivelul rețea

La cel de-al treilea nivel al arhitecturii se află nivelul rețea. Protocoalele de la acest nivel pot fi utilizate pentru rutarea datelor de la o legătură la alta din cadrul unei rețele care conține noduri inteligente, numite comutatoare de pachete. Metoda prin care se realizează această rutare, precum și toată gestiunea aferentă se numește protocolul nivelului rețea. Informația corespunzătoare unui protocol al nivelului rețea, numită antetul pachetului, este înglobată în câmpul de informații al cadrului de la nivelul legătură. Comutatorul de pachet utilizează această informație pentru a ruta datele către următoarea legătură, și așa mai departe. Antetul pachetului, împreună cu datele utilizatorului, formează pachetul.

Capitolul III. Protocoale de nivel jos

III.1 Protocoale pentru transmisii digitale. Rețele cu comutare de pachete

O rețea cu comutare de pachete este un tip special de rețea de date care conține noduri inteligente de comutare. Rețelele cu comutare de pachete au următoarele caracteristici:

• Înainte de efectuarea transmisiei, fiecare mesaj de date este segmentat în blocuri scurte, de dimensiune maximă prefixată, și fiecărui bloc i se atribuie un antet, care conține informații referitoare la adrese și la secvențiere. Fiecare pachet devine câmpul de informații al nivelului corespunzător protocolului de legătură, care dispune în general de facilități de control al erorilor.

• Pachetele sunt transferate rapid de la un nod la altul, ajungând în fracțiuni de secundă la destinația lor finală.

• Calculatoarele care constituie nodurile nu arhivează (memorează) datele. Mesajele sunt „uitate" de nodurile emițătoare imediat după ce următorul nod verifică dacă s-a produs o eroare (dacă se solicită o asemenea acțiune) și confirmă recepția.

Termenii de DTE și DCE au fost analizați anterior. În rețelele cu comutare de pachete s-a introdus un nou termen: cel de comutator de date (Data Switching Exchange – DSE). Un DSE este un nod de rețea care unește trei sau mai multe legături. Figura următoare ilustrează relația dintre unitățile DTE, DCE și DSE din cadrul unei rețele cu comutare de pachete, Punctul în care cablul interfeței seriale se conectează la DCE este numit uneori poarta rețelei.

Avantajele comutării de pachete

În funcție de context, comutarea de pachete poate oferi câteva posibile avantaje comparativ cu alte tehnici de comunicare a datelor:

• Pentru aplicațiile de date în cadrul cărora cantitatea de date vehiculate între terminale nu justifică utilizarea unui circuit dedicat, comutarea de pachete poate fi o soluție mai judicioasa din punct de vedere economic decât transmisia prin intermediul liniilor private.

Pentru aplicațiile la care sesiunile de comunicație a datelor sunt mai scurte decât unitatea de timp pentru care se poate aplica taxa minimă a unei convorbiri telefonice, comutarea de pachete poate reprezenta o soluție mai economică decât datele transmise telefonic.

Deoarece adresa destinației este în mod inerent o parte componentă a pachetului, un număr mare de mesaje pot fi transmise la multe destinații diferite, atât de repede cât reușește un DTE sursă să le transfere. Funcție de tipul serviciului de comutare de pachete utilizat, este posibil să nu existe întârzieri în conectare înainte de transmisia pachetelor care conțin datele curente.

Datorită inteligenței incorporate în rețea (ceea ce înseamnă calculatoare în fiecare nod), este posibilă rutarea dinamică a datelor. Fiecare pachet este transportat pe ruta stabilită de rețea ca fiind cea mai bună cale disponibilă pentru acel pachet la acel moment de timp. Această caracteristică poate fi exploatată pentru maximizarea eficienței și minimizarea aglomerării traficului din rețea.

Inteligența incorporată în rețea facilitează, de asemenea, și proprietatea de „degradare gradată" a rețelei cu comutare de pachete, deoarece ori de câte ori se produce o avarie a unei legături sau a unui nod, pachetele pot fi automat re-rutate în afara porțiunii avariate a rețelei.

Datorită inteligenței incorporate în rețea, se poate asigura o gamă largă de servicii fundamentale de comunicație, cum ar fi detecția și corecția erorilor, verificarea livrării mesajelor, adresarea pe grupuri, taxa inversă, verificarea secvenței de mesaje și diagnoza.

Sisteme cu comutare de pachete X.25

Standardul ITU-T X.25 pentru sistemele cu comutare de pachete este unul dintre cele mai reprezentative arhitecturi de rețele care influențează comunicațiile de date din prezent, dar și din viitorul imediat. Standardul X.25 este de fapt numai o parte a unei colecții mult mai mari de recomandări ITU-T pentru rețelele publice de date. Pentru a înțelege pe deplin acest subiect, ar trebui să studiem întreaga serie „X" de recomandări.

Standardul X.25 descrie protocoalele de la nivel fizic, protocoalele de legătură și de rețea corespunzătoare interfeței dintre DTE și DCE din punctul (poarta) de intrare într-o rețea cu comutare de pachete. La o primă privire, această metodă de descriere a unei rețele cu comutare de pachete în termeni de parametri ai porții poate părea ciudată, dar din punctul de vedere al utilizatorului, de o asemenea abordare este nevoie. în cazul unei rețele telefonice, dacă ar fi să adunăm toate standardele referitoare la proprietățile fizice, electrice, logice și funcționale ale buclelor locale și de semnale într-un singur document, am obține o rețea telefonică echivalentă standardului X.25. Așa cum prezintă figura de mai jos, standardul X.25 realizează legătura dintre un terminal de date și poarta unei rețele cu comutare de pachete, în exact același mod în care standardele referitoare la semnalele caracteristice buclelor locale realizează legătura dintre un telefon și centrala telefonică dintr-o rețea telefonică.

Dacă nu am fi văzut niciodată un telefon sau dacă nu am fi efectuat niciodată o convorbire telefonică, tot ceea ce am fi știut despre o buclă locală și despre semnalele asociate acesteia nu ne-ar fi spus prea multe referitor la modul de proiectare a telefonului sau a rețelei telefonice dar am fi știut cum să le utilizăm. Similar, standardul X.25 nu descrie nici terminalul de date și nici rețeaua cu comutare de pachete, dar oferă o multitudine de informații privitoare la ceea ce terminalul și rețeaua pot face. Din acest motiv standardul X.25 este atât de important.

Așa cum s-a menționat, standardul X.25 specifică trei niveluri distincte de protocoale, corespunzătoare porții asociate interfeței seriale. Caracteristicile nivelului fizic ale standardului X.21 (sau X.21 bis) sunt specificate în cadrul protocolului nivelului fizic („bis este echivalentul elvețian/francez pentru „formă alternativă"), Standardul X.21 utilizează o interfață sincronă cu 15 pini, care nu a întrunit o adeziune entuziastă și unanimă în Statele Unite ale Americii datorită popularității interfețelor RS-232 și V.35, care existau înainte de lansarea standardului X.21. Ca o recunoaștere a acestui fapt, standardul ITU-T a adoptat X.21 bis ca pe o alternativă mai potrivită. Standardul X.21 bis specifică V.24/V.28 (în esență, echivalentul lui RS-232), X.26/IS-4902 (în esență, echivalentul lui RS-449) și V.35 la vitezele de transfer pe bit corespunzătoare. Deoarece furnizorii din Statele Unite ale Americii oferă, în general, interfețele RS-232 și V.35, nu este necesară nici o modificare.

Nivelul legătură de date

La nivelul legătură de date, protocolul specificat este un subset al protocolului HDLC, referit în terminologia standardului X.25 prin LAPB (Link Access Procedure Balanced – procedură de acces echilibrat la legătură). (0 versiune anterioară a standardului X.25 utiliza un protocol de legătură numit LAP, care, în mod gradat, a fost scos din uz). LAPB asigură, la poarta rețelei, două căi simultane de comunicație între DTE și DCE. Structura cadrului de date LAPB este identică cu cea a cadrului SDLC, care a fost analizat în capitolul 8, „Protocoale și controlul erorilor". Delimitatorul (semaforul), abandonul, canalul inactiv, transparența (inserție zero), controlul fluxului de date și mecanismul de control al erorilor sunt identice cu cele ale protocolului SDLC. Diferențele dintre procedurile LAPB și procedurile SDLC vizează, în principal, modul de control al liniei și modul de adresare; acestea vor fi analizate mai târziu.

Nivelul rețea

Nivelul rețea al standardului X.25 este desemnat în cadrul standardului prin nivelul pachet. Toate pachetele X.25 sunt transmise ca și câmpuri de informații, în cadrele LAPB de comandă a informațiilor, Un pachet conține cel puțin un antet, format din trei sau mai mulți octeți (un octet este un grup de opt biți). Majoritatea pachetelor conțin, de asemenea, date utilizator, dar există și anumite pachete destinate exclusiv controlului, pachete de indicare a stării sau de diagnoză (termenii anteriori vor fi explicați și ilustrați puțin mai târziu). Cantitatea maximă de date utilizator care poate fi inclusă într-un pachet de date este stabilită de furnizor, dar uzual este de 128 de octeți.

Performantele X.25

Standardul X.25, împreună cu toate referințele sale, specifică două servicii esențiale care trebuie asigurate de către sistemele de comunicație pentru a fi în deplină concordanță cu standardul. Aceste servicii sunt Serviciul de Apel Virtual (Virtual Call Service) și Serviciul de Circuit Virtual Permanent (Permanent Virtual Circuit Service).

Serviciul de Apel Virtual

În cadrul Serviciului de Apel Virtual (Virtual Call – VC Bs Apel Virtual – AP), trebuie stabilită în primul rând o „conexiune virtuală" între un canal logic al unui DTE apelant și un canal logic al DTE apelat, înainte ca orice pachet de date să fie transmis. Stabilirea unei conexiuni virtuale este echivalentă cu realizarea unui apel telefonic înainte de efectuarea convorbirii telefonice. Conexiunea virtuală se stabilește și se anulează prin utilizarea unor pachete speciale, care dispun de un flux unic de biți, dar, în mod normal, nu conțin date. După stabilirea conexiunii, cele două DTE pot desfășura un dialog (bidirecțional), până când se trimite un semnal de „clear request packet" (anulează pachetul de cerere – deconectare).

Conexiunea VC se numește „virtuală" deoarece nu există o cale fizică fixă prin rețea. Nodurile inteligente ale rețelei redirecționează numărul specificat de canal logic, asociat unui DTE, către alt DTE.

Un același DTE poate avea mai multe numere de canale logice active în cadrul aceleiași interfețe X.25 la același moment de timp (această precizare este importantă; citiți-o încă o dată). După stabilirea unei conexiuni virtuale, să spunem, între canalul logic #319 al unui DTE și canalul logic #14 al altui DTE, anteturile corespunzătoare pachetelor curente de date trebuie să includă referiri numai la numerele de canale logice. Rețeaua inteligentă susține legăturile conversaționale dintre acestea; asta înseamnă că un pachet de date de la canalul logic #319 al unui DTE va apărea pe canalul logic #14 al celuilalt DTE, rețeaua fiind aceea care realizează transferul. Alte detalii referitoare la acest subiect vor fi precizate mai târziu.

Serviciul de Circuit Virtual Permanent

Serviciul de Circuit Virtual Permanent (PVC) este echivalent funcțional cu serviciul de linie privată, Ca și în cazul VC, nu există cale fizică capăt-la-capăt; rețeaua inteligentă asigură legătura între canalele logice corespunzătoare celor două DTE implicate. DTE nu trimite pachete speciale pentru a stabili sau pentru a anula o conexiune. Un PVC se asigură prin formularea unei cereri scrise, prin care se solicită serviciul respectiv și rămâne activ până la formularea unei cereri scrise de renunțare la acest serviciu. Terminalele între care s-a stabilit un serviciu PVC trebuie să trimită numai pachete de date pe canalele logice atribuite de furnizor la cerere. Deoarece un DTE poate avea mai multe canale logice active la același moment de timp în cadrul interfeței X.25, anumite canale pot fi atribuite serviciului PVC, iar altele pot fi utilizate pentru serviciul VC solicitat, toate în cadrul aceleiași interfețe X.25!

Atât în cazul serviciului VC, cât și în cazul serviciului PVC, rețeaua este obligată să distribuie pachetele în ordinea în care acestea au fost trimise, chiar și în cazul în care calea fizică se modifică datorită încărcării circuitului, avariei circuitului sau din oricare alt mod. Din punct de vedere al costului, raportul dintre serviciile VC și PVC este identic cu raportul dintre convorbirile telefonice interurbane/intemaționale (pe distanțe lungi) și serviciile telefonice pe linii private. Alte caracteristici specifice rețelelor standard cu comutare de pachete, cum ar fi controlul erorilor și diagnoza, sunt identice pentru VC și PVC.

Facilități

În terminologia ITU-T, o facilitate este o caracteristică opțională fumizată împreună cu serviciul în cauză, câteodată la un preț suplimentar. Standardul X.25 specifică o gamă largă de facilități asociate serviciilor VC și PVC. în orice caz, opțiunea finală pentru un anumit serviciu și pentru facilitățile dorite este a clientului.

Exemple de facilități aferente serviciului VC sunt selecția rapidă, suspendarea apelurilor de intrare, suspendarea apelurilor de ieșire, grup închis de utilizatori și apelul cu taxă inversă. Facilitatea de selecție rapidă oferă utilizatorilor posibilitatea de a trimite și de a recepționa date, precum și de a forma un număr de apel de la diferite stații conectate la distanță, extrem de rapid și eficient, fără a stabili efectiv o conexiune virtuală regulată. 0 asemenea capacitate are multe utilizări potențiale în distribuția poștei electronice, în înregistrarea inventarului și așa mai departe.

Proceduri LAPB

Spațiul nu ne permite o analiză detaliată a protocolului nivelului legătură de date definit de X.25; informațiile următoare asigură, în orice caz, cunoștințe generale referitoare la procedurile LAPB. O analiză completă este inclusă în standardul X.25, iar exemple de operare sunt incluse în Anexa 2 a standardului ISO 4335.

Procedurile LAPB asigură transmisia bidirecțională simultană pe o legătură punct-la-punct între un DTE și un DCE, la nivelul porții rețelei cu comutare de pachete (vezi figura de mai sus). Deoarece legătura este punct-la-punct, numai adresa DTE sau adresa DCE poate fi precizată în câmpul A (de adresă) al unui cadru LAPB. Adresele sunt prezentate în figura următoare. Câmpul A se referă la adresa unei legături, nu la adresa unei rețele. Adresa rețelei pentru un terminal de destinație este înglobată în antetul pachetului (Packet Header – PH), care este parte componentă a unui câmp de tipul I.

Ambele stații (DTE și DCE) pot transmite comenzi și răspunsuri celeilalte stații, după cum ilustrează figura de mai sus. Un cadru este de comandă sau de răspuns în funcție de combinația următorilor doi factori:

În ce direcție se deplasează adică, dacă este pe cablul de transmisie a datelor de la DTE sau este pe cablul asociat DTE pentru recepția datelor.

Care este valoarea câmpului A.

Datorită metodei de adresare, nu pot apărea incertitudini, chiar în cazul în care cadrele de date se deplasează simultan (în același moment de timp) în direcții opuse între DTE și DCE.

Tabelele următoare prezintă comenzile și răspunsurile valide ale unui cadru LAPB, împreună cu valorile octeților de control corespunzători.

Explicațiile abrevierilor și a termenilor utilizați sunt date în paragraful următor.

Explicația comenzilor si răspunsurilor LAPB

Cât timp LAPB este operațional, majoritatea cadrelor reprezintă comenzi. Un cadru de răspuns este forțat atunci când se recepționează un cadru de comandă care conține P = 1; un asemenea răspuns conține F = 1. Toate celelalte cadre conțin P = 0 sau F = 0.

SABM/UA (Set Asynchronous Balanced Mode / Unnumbered Acknowledgment) este o pereche comandă/răspuns utilizată pentru inițializarea tuturor numărătoarelor și a circuitelor de tact la începutul unei sesiuni. Similar, DISC/DM (Disconnect/Disconnect Mode) este o pereche comandă/răspuns utilizată la sfârșitul unei sesiuni. FRMR (Frame Rejected) este răspunsul la orice comandă ilegală, pentru care nu a existat o indicație de eroare de transmisie, corespunzătoare câmpului secvenței de verificare a cadrului (FCS).

Comenzile 1 sunt utilizate pentru transmisia pachetelor – mai exact, în câmpul de tip I. Pachetele nu se transmit niciodată ca răspunsuri. N(S) este un pachet care conține un numărător pe trei biți, capabil să numere de la 0 la 7 (în binar, de la 000 la 111). După ce au fost transmise șapte pachete, numărătorul este reinițializat cu 000, care constituie următoarea valoare a indicatorului N(S).

În timp ce N(S) numără pachetele transmise de la un capăt al legăturii, valoarea indicatorului N(R) specifică valoarea următoare a indicatorului N(S), care se așteaptă a fi returnată de la celălalt capăt al legăturii. Prin actualizarea valorii indicatorului N(R), o stație este capabilă să confirme corect pachetele recepționate, în același mod în care sunt confirmate pozitiv și cadrele SDLC. De exemplu, dacă un DTE trimite o comandă 1 (un pachet) pentru care N(S) = 5 și P = 1, iar DCE returnează un răspuns RR (Receiver Ready) cu N(R) = 6 și F = 1, atunci DTE știe că pachetul a fost recepționat corect. Dacă N(R) = 5 și F = 1, pachetul a fost recepționat incorect. Nu se pot admite mai mult de șapte pachete neconflrmate, deoarece va rezulta o situație ambiguă.

RR reprezintă ceea ce trimite o stație atunci când trebuie să transmită ceva, dar nu are nici un pachet de trimis. De exemplu, un răspuns forțat de o comandă 1 poate fi RR cu F = 1. Această procedură se numește procedură de verificare. Verificarea este una din tehnicile asigurate de LAPB pentru detecția erorilor.

REJ (Reject) este o altă cale de a solicita transmisia cadrelor. RNR (Receiver Not Ready) este utilizat în controlul fluxului de date pentru a specifica faptul că receptorul este ocupat (busy). Acest răspuns împiedică efectuarea următoarelor transmisii, până când este înlocuit de RR.

Proceduri la nivel de pachete

Cea mai interesantă specificație a standardului X.25 este cea referitoare la protocolul nivelului rețea (pachet). Vă readucem aminte că pachetele sunt conținute în cadrele de comandă de tip 1 de la nivelul legăturii (cadrelor) de date și că flecare pachet dispune de un antet format din minimum trei octeți. Majoritatea, dar nu toate pachetele, conțin date utilizator; alte pachete sunt utilizate pentru control, indicarea stării sau diagnoză. Figura următoare ilustrează formatul general al anteturilor asociate pachetelor X.25.

Pachete de date

Un pachet care are în antet Bitul #1 al Octetului #3 de valoarea 0 este un pachet de date. Antetele pachetelor de date conțin după antet în mod normal trei octeți. Un pachet de date X.25 standard conține după antet până la 128 de octeți de date utilizator. Figura de mai jos ilustrează formatul unui pachet de date tipic, Acest capitol nu își propune să acopere toate ramificațiile și extensiile posibile al standardului X.25. Există, de exemplu, prevederi pentru numărătoarele modulo 128 P(S) și P(R), fiecare numărător fiind de șapte biți. într-un asemenea sistem, antetul unui pachet de date are cel puțin patru octeți.

Am evidențiat anterior faptul că standardul X.25 specifică două servicii esențiale:

Serviciul de Apel Virtual și Serviciul de Circuit Virtual Permanent. După ce serviciul VC devine operațional, modul de operare al pachetelor de date în cadrul serviciului VC este identic cu cel din cadrul serviciului PVC. în paragrafele următoare este descris întâi modul de operare al pachetelor de date în cadrul serviciului PVC; ulterior vor fi descrise caracteristicile suplimentare ale serviciului VC, cum ar fi cea de configurare a apelului.

Teoretic, fiecare interfață de poartă X.25 poate asigura până la l6 grupuri de canale logice, fiecare grup cuprinzând până la 256 de canale logice, ceea ce înseamnă un total de 4096 de canale logice pe poartă. Este la latitudinea companiei care utilizează rețeaua să stabilească câte canale alocă efectiv pentru fiecare tip de serviciu adică, pentru PVC și VC.

Observați în figura de mai sus că Octetul #3 al antetului pachetului de date conține două câmpuri de 3 biți, P(S) și P(R), și un câmp de 1 bit, M. M este indicatorul de „urmează mai multe date". Dacă M are valoarea 1, vor urma pachete suplimentare de date, care trebuie considerate ca formând o unitate de date; dacă M are valoarea 0, nu vor mai sosi pachete de date din această unitate. P(S) și P(R) sunt numărătoarele asociate pachetelor de date, fiecare numărând de la 000 la 111 (0-7). Numărătoarele revin la 000, după ce ajung la 111 (nu funcționează la fel ca numărătoarele N(S) și N(R), descrise anterior), Numai pachetele de date dispun de numărătorul P(S); un numărător P(S) va exista în fiecare pachet de date trimis prin DTE la interfața unui DCE la nivelul porții rețelei (prima figură), precum și în fiecare pachet de date transmis de la un DCE la un DTE, la nivelul porții rețelei.

Prin definiție, P(R) reprezintă următoarea valoare prevăzută a numărătorului P(S), din direcția opusă a canalului logic (acest lucru va fi explicat imediat). Valorile înregistrate de numărătoarele P(S) și P(R) sunt în aceeași relație una față de cealaltă pe canalul logic la nivelul rețea ca și valorile corespunzătoare numărătoarelor N(S) și N(R) pe o legătură punct-la-punct. Numărătoarele de tip N nu au nici o legătură cu numărătoarele de tip P, deoarece numărătoarele de tip N contorizează toate pachetele transmise pe linia de legătură, în timp ce numărătoarele de tip P contorizează numai pachetele de date transmise pe un canal logic particular aparținând acelei legături.

Modul de utilizare a numărătoarelor P(S) și P(R) este ilustrat în figura de mai jos. Este prezentată o secvență de transmisii bidirecționale simultane (full-duplex) de pachete de date în cadrul unui canal logic aparținând interfeței DTE/DCE la nivelul porții rețelei cu comutare de pachete. în această figură, fiecare dreptunghi reprezintă un pachet. Primul număr dintr-un dreptunghi reprezintă valoarea numărătorului P(S), iar cel de-al doilea reprezintă valoarea numărătorului P(R) din antetul pachetului respectiv. Analiza secvenței prezentate în figura 11.6 confinrmă două aspecte care au fost subînțelese:

• Valorile numărătorului P(S) pentru o direcție particulară a unui canal logic se înregistrează în ordine crescătoare: 0, 1, 2, 3 și așa mai departe.

• Valoarea numărătorului P(R) trimisă într-un pachet nu este actualizată la i până când întregul pachet, a cărui valoare corespunzătoare numărătorului P(S) este i-1, nu este recepționat integral și fără eroare. 0 asemenea actualizare reprezintă o confirmare a recepției tuturor pachetelor de pe canalul logic respectiv, până la P(S) = i -1.

Stabilirea și întreruperea dinamică a unui serviciu VC prin utilizarea unor pachete speciale este foarte asemănătoare cu efectuarea și încheierea unei convorbiri telefonice în cadrul unei rețele telefonice publice, așa după cum se indică în primele două tabele de mai jos. Analiza acestor tabele evidențiază faptul că s-au introdus șapte noi nume de pachete. Un eveniment care se petrece într-o parte a rețelei este în mod normal dublat de un eveniment complementar în cealaltă parte a rețelei. De exemplu, un pachet de Cerere de Apel lansat de un DTE apelant către un DCE la nivelul unei anumite interfețe determină emiterea unui pachet de Apel de Intrare de la DCE la unitatea DTE apelată, la nivelul unei alte interfețe. Cel de-al treilea tabel prezintă identificatorii tipurilor de pachete (Octetul #3 al antetului) pentru aceste perechi de tipuri de pachete.

Figura următoare prezintă o secvență „normală" de configurare a unui serviciu VC, de transfer simultan bidirecțional al datelor, și de deconectare inițiată de terminal, Rețineți că identificatorii celor patru tipuri de pachete din tabelul al treilea sunt transferați prin rețea fără ca rețeaua să-i modifice în vreun fel.

Ultima ilustrație arată ceea ce se întâmplă atunci când serviciul VC nu este încheiat. Dacă serviciul VC este refuzat de unitatea DTE apelată, aceasta trimite o Cerere de Anulare. Dacă serviciul VC este refuzat de rețea, unitatea DTE apelantă recepționează o Indicație de Anulare.

Pachete de tip Cerere de Apel/Apel de Intrare

Antetele unei perechi de pachete de tip Cerere de Apel/Apel de Intrare sunt cele mai complexe dintre variatele formate de antet. Acestea conțin nu numai cei trei octeți de bază ilustrați în figura următoare, dar și adresa destinației și informații pentru selecția facilităților. în anumite cazuri, conțin, de asemenea, și date utilizator.

Numerele canalelor logice (LCN) și numerele grupurilor de canale logice (LCGN) pentru un serviciu PVC sunt atribuite de furnizorul de servicii, din gamele de numere pe care furnizorul decide să le aloce serviciului PVC. Numerele atribuite capetelor opuse ale canalelor logice respective nu trebuie să fie aceleași. Pot fi atribuite numere diferite capetelor opuse ale canalelor logice, iar comutatoarele inteligente din cadrul rețelei vor realiza transformările necesare pe măsură ce pachetele trec de la un capăt la altul.

În cazul unui serviciu VC, valorile numerice ale canalelor logice din interfețe opuse nu sunt niciodata identice; rețeaua transformă întotdeauna aceste numere. Numerele utilizate pentru canale sunt atribuite dintr-un grup de numere disponibil la momentul realizării apelului.

Atunci când emite o Cerere de Apel, un DTE apelant selectează cel mai mare număr de canal logic, care nu depășește o anumită limită specificată de furnizorul de servicii și care nu este deja utilizat de un alt serviciu VC. Apoi rețeaua cuplează numărul selectat pentru canalul logic cu serviciul VC al respectivei unități DTE apelante. La capătul de destinație, rețeaua selectează cel mai mic număr de canal logic, care nu este mai mic decât o anumită limită specificată de furnizorul de servicii și care nu este deja utilizat de unitatea DTE apelată. Apoi rețeaua cuplează numărul selectat pentru canalul logic cu serviciul VC al respectivei unități DTE apelate. Cele două unități DTE angajate în tranzacții PVC sau VC nu sunt informate niciodată asupra LCGN sau LCN utilizate de restul interfețelor DTE/DCE.

Adresele de destinație în cazul serviciului VC

Câmpul DTE de Adresă corespunzător formatului pachetului de tip Cerere de Apel/Apel de Intrare conține cifre care sunt gestionate asemănător numerelor telefonice; se utilizează până la 14 cifre pentru serviciile VC internaționale. Modul de dispunere a acestor 14 cifre este prezentat în standardul X. 121. Pentru apelurile locale, se utilizează mai puține cifre.

Nu pot fi acoperite în acest capitol multe alte detalii cuprinse în standardul X.25, iar lista facilităților și codurilor de diagnoză continuă să crească. Pentru detalii suplimentare parcurgeți standardul.

Seria X de standarde recomandate

Așa cum s-a precizat anterior, standardul X.25 este o parte componentă a seriei „X" de standarde recomandate pentru rețelele de date publice, care au fost publicate de ITU-T. Seria X este împărțită în două categorii; X.l până la X.39, care tratează serviciile, facilitățile, terminalele și interfețele, și X.40 până la X.200, care tratează arhitecturile de rețea, modul de transmisie, semnalele, modul de comutare, modul de întreținere și aspecte administrative. Cele mai importante standarde X, din punctul de vedere al utilizatorului unei rețele cu comutare de pachete, sunt prezentate în lista următoare, împreună cu denumirile lor și o scurtă descriere:

X.l — International User Classes of Services in Public Data Networks (Clase de utilizatori internaționali de servicii aferente rețelelor publice de date); Atribuie identificatori numerici de clasă diferitelor viteze de operare și tipuri de terminale.

X.2- International User Services and Facilities in Public Data Networks (Facilități și servicii oferite de rețelele publice de date utilizatorilor internaționali): Specifică serviciile și facilitățile esențiale și suplimentare.

X.3- Packet Assembly/Disassembly Facility (PAD) in a Public Data Network (Facilitatea de asamblare/dezasamblare a pachetelor (PAD) într-o rețea publică de date): Descrie facilitatea de asamblare/dezasamblare a pachetelor, care este în mod normal utilizată de poarta unei rețele pentru a permite conectarea unui terminal de tip start-stop la rețeaua cu comutare de pachete,

X.20bis— Use on Public Data Network of DTE Designed for Interfacing to Asynchronous Duplex V-Series Modems (Utilizarea în cadrul rețelelor publice de date a unităților DTE proiectate pentru interfațarea cu modemuri duplex asincrone din seria V): Permite utilizarea standardelor V.24/V.28 (în esență, identice cu EIA RS-232).

X.21bis- Use on Public Data Network of DTE Designated for Interfacing to Synchronous V-Series Modems (Utilizarea în cadrul rețelelor publice de date a unităților DTE proiectate pentru interfațarea cu modemuri sincrone din seria V): Permite utilizarea standardelor V.24/V.28 (în esență, identice cu EIA RS-232) sau a standardului V.35.

X.25- Interface Between DTE and DCE for Terminals Operating in the Packet Mode on Public Data Networks (Interfața dintre un DTE și un DCE pentru terminalele care operează în modul pachet în cadrul rețelele publice de date): Definește arhitectura a trei niveluri de protocoale existente pe cablul interfeței seriale dintre un terminal în modul pachet și poarta unei rețele cu comutare de pachete.

X.28- DTE/DCE Interface for a Start-Stop Mode DTE Accessing the PAD m a Public Data Network Situated in the Same Country (Interfața DTE/DCE pentru un DTE în modul start-stop care are acces la PAD-ul unei rețele publice de date din aceeași țară); Definește arhitectura protocoalelor existente pe cablul interfeței seriale dintre un terminal în modul pachet și un PAD X.3.

X. 29- Procedures for the Exchange of Control Information and User Data Between a PAD and a PacketMode DTE or Another PAD (Proceduri pentru schimbul informațiilor de control și al datelor de utilizator între un PAD și un DTE în modul pachet sau un alt PAD):

Definește arhitectura protocoalelor situate după un PAD X.3, fie între două PAD, fie între un PAD și un terminal în modul pachet, situat în altă parte a rețelei.

X. 75- Terminal and Transit Call Control Procedures and Data Transfer System on International Circuits Between Packet-Switched Data Networks (Proceduri de control pentru terminale și apeluri de tranzit și sisteme de transfer de date pentru circuitele internaționale dintre rețelele de date cu comutare de pachete): Definește arhitectura protocoalelor care asigură legătura între două rețele publice cu comutare de pachete.

X. 121 – International Numbering Plan for Public Data Networks (Plan internațional de evidență a rețelelor publice de date): Definește un plan de gestiune (evidență), inclusiv codurile atribuite fiecărei țări,

Relații între standardele X

Figura de mai jos ilustrează relațiile dintre o serie de standarde X. Pe scurt, standardul X.25 specifică relația dintre un DTE în modul pachet și o rețea cu comutare de pachete. Standardul X.28 specifică relația dintre un DTE (asincron) de tip start-stop și un PAD X.3, care trebuie să fie localizate între un DTE (nu în mod pachet) și o rețea cu comutare de pachete. Standardul X.29 specifică relații suplimentare față de cele precizate în X.25, pe care un DTE în modul pachet trebuie să le satisfacă atunci când comunică cu un alt DTE, care nu lucrează în modul pachet, prin intermediul unei rețele cu comutare de pachete și a unui PAD. Standardul X.29 precizează, de asemenea, relațiile dintre două PAD, în cazul în care două – DTE, care nu lucrează în modul pachet, comunică prin intermediul unei rețele cu comutare de pachete,

Standardele ITU-T din seria X au imaginat PAD X.3 ca parte componentă a unei rețele cu comutare de pachete și anume, după un DCE. Versiunea X.3 din 1980 descrie numai PAD pentru terminalele de tip start-stop (asincrone), dar lasă deschisă posibilitatea de descriere în viitor și a altor terminale care nu lucrează în modul pachet, cum ar fi IBM BSC. Mai multe PAD X.3 independente sunt în prezent disponibile pe piață, asigurând conectarea diferitelor DTE, de tip start-stop sau care nu lucrează în acest mod, la rețelele cu comutare de pachete,

III.2 Protocoale pentru transmisii analogice. Transmisii prin modem

Console si protocoale de tip XMODEM

Cele mai simple protocoale de uz general sunt cele asociate cu transmisia datelor de start-stop sau asincrone, care au fost dezvoltate inițial pentru a asigura comunicația între teleimprimatoare. După ce a fost inventat teleimprimatorul, o lungă perioadă de timp echipamentele au fost comandate electromecanic, iar protocoalele corespundeau unui controller mecanic simplu, aflat în fiecare mașină. Unul dintre primele protocoale dedicate teleimprimatoarelor (TTY) utiliza un set de caractere care cuprindea 58 de simboluri: 50 de caractere tipăribile, caracterul spațiu și 7 caractere de control, așa cum ilustrează figura 8.2. Aceste simboluri erau codificate într-un cod binar pe cinci biți (reprezentarea în cod octal este inclusă numai pentru cititorii familiarizați cu acest cod).

Caracterele tipăribile sunt literele mari, cifrele și 14 semne de punctuație. Trei caractere de control asigură returul de car (CR), saltul la rând nou (LF) și activarea semnalizatorului sonor al terminalului (BELL) care anunță apariția unui mesaj. Setul de caractere include și caracterul NULL (sau blank), care este diferit de caracterul spațiu, precum și caracterul WRU. Denumirea acestui caracter provine de la „Who Are You?" (Cine ești?), deoarece face ca un anumit dispozitiv mecanic din structura teleimprimatorului să transmită o secvență de caractere pentru identificarea terminalului. Celelalte două caractere de control sunt caracterul FIGS, care determină teleimprimatorul să tipărească cifrele și semnele se punctuație, și caracterul LTRS, care determină tipărirea literelor mari ale alfabetului. Așa cum s-a menționat în capitolul 1, „O privire de ansamblu asupra comunicațiilor de date", acest set de caractere și codul binar asociat poartă numele de codul Baudot, după Emile Baudot, cel care a inventat primul cod de simboluri cu lungime fixă.

Protocolul de operare pentru transmisia unui mesaj utilizând codul Baudot funcționează cam așa (procedura diferă în funcție de operatorul care efectuează operațiile):

1. Se stabilește un canal de comunicație între cele două mașini implicate în transmisie. Acesta poate fi o conexiune temporară de apelare sau o linie privată permanentă.

2. Mașina emițătoare transmite un caracter "WRU, pentru a verifica dacă mașina receptoare este cea căreia i se adresează mesajul care urmează a fi transmis.

3. Mașina emițătoare trimite mesajul „Aici este …", care, în mod normal, este aceeași secvență de caractere care este transmisă pentru identificarea emițătorului (caracterul WRU).

4. Mașina emițătoare trimite un mesaj de tip preambul sau antet care precizează numele și adresa destinatarului mesajului propriu-zis, data și momentul intrării mesajului în sistem, data și ora la care se efectuează transmisia și numărul de secvență al mesajului, atribuit de către emițător. în anumite sisteme, emițătorul utilizează două numere de secvență: unul care reprezintă numărul de mesaje transmise de emițător în aceea zi și altul care reprezintă numărul de mesaje transmise către terminalul receptor în ziua respectivă.

5. La sfârșitul mesajului, mașina emițătoare trimite din nou mesajul „Aici este …" și un nou caracter WRU. Cel de-al doilea caracter WRU este transmis pentru a se verifica dacă mașina receptoare este conectată încă la linia de transmisie. Uneori, dacă mesajul se transmite manual, operatorul mașinii emițătoare transmite câteva caractere BELL pentru a avertiza operatorul mașinii receptoare că va primi un mesaj.

Acest protocol a fost dezvoltat după mulți ani de transmitere manuală a mesajelor între terminale independente, comandate de operatori umani. Puteți observa că protocolul dispune de toate elementele descrise la începutul secțiunii: un set de simboluri predefinite și codurile corespunzătore, adecvate transmisiei electronice, un preambul, un mesaj, și chiar o procedură rudimentară de detecție a erorilor (invocarea unui caracter WRU la începutul și la sfârșitul sesiunii).

Acest protocol simplu pentru teleimprimatoare nu funcționează în mod corespunzător în cazul apariției celei mai mici erori pe canalul de transmisie dintre echipamente. Caracterele individuale pot fi afectate în așa măsură încât să determine mașina receptoare să tipărească niște bazaconii, iar mașina emițătoare să nu fie informată în vreun fel despre acest lucru. Caracterul de control WRU, inserat la sfârșitul unui mesaj, garantează doar că destinatarul a recepționat corect caracterul WRU și că legătura circuitului pe acest sens funcționează corect, Caracterul de control WRU nu oferă însă nici o garanție că mesajul a ajuns la destinație. Pentru a avea siguranța că transmisia s-a derulat corect, se utilizează uneori, în cazul protocoalelor simple, alte două tehnici: testul de paritate și transmisia cu ecou.

Paritate

Adăugarea de către emițător a unui bit suplimentar la biții care codifică un simbol, în scopul detectării erorilor, se numește paritate. Acest bit este transmis întotdeauna și, în general, i se atribuie acea valoare care determină ca numărul de biți de 1 din codul simbolului să fie par; în acest caz, se spune că paritatea este pară, Paritatea este recalculată de către receptor. Daca valoarea calculată reprezintă paritatea corectă, atunci totul este în regulă. Dacă nu, se transmite o indicație către receptor, de regulă înlocuind caracterul recepționat incorect printr-un cod de eroare special.

Ca exemplu de verificare a parității să considerăm caracterul ASCII M, care are codul 1001101. Deoarece codul caracterului are patru biți de 1, se adaugă un bit de 1, dacă se lucrează cu paritate impară, respectiv un bit de 0, dacă se lucrează cu paritate pară. Figura ilustrează modul de formare a bitului de paritate în cazul parității pare, respectiv Impare, pentru caracterul ASCII M.

Metoda de verificare a parității detectează erorile de un bit în simbolurile transmise, dar este posibil să nu poată detecta erorile în cazul în care sunt afectați mai mulți biți. Capacitatea metodei de a determina erorile în cazul în care mai mulți biți sunt transmiși eronat depinde de localizarea biților respectivi în cadrul caracterului și de valorile biților care compun caracterul. De exemplu, să presupunem că perturbațiile de zgomot de pe canalul de transmisie determină ca primii doi biți ai caracterului ASCII M să fie inversați, ceea ce conduce la obținerea următoarei combinații de biți; 0101101. în această situație, numărul biților 1 rămâne același, ceea ce face ca testul de paritate să nu poată detecta eroarea de transmisie. Sa presupunem acum că perturbațiile de zgomot sunt puternice și afectează biții doi, trei și patru, modificând combinația de biți a codului caracterului Mm 1110101. Observați că acum sunt cinci biți 1, ceea ce face ca testul de paritate să detecteze eroarea. Prin urmare, testul de paritate este uneori capabil, alteori incapabil să detecteze erori multiple (mai mulți biți transmiși eronat). Corectarea erorilor poate fi inițiată de receptor, prin transmiterea unui mesaj către emițător, prin care se solicită reluarea transmisiei.

Transmisie cu ecou

Transmisia cu ecou este probabil incorect clasificată ca element de protocol, dar va fi analizată în această secțiune. Este o tehnică prin care receptorul transmite înapoi la emițător (în ecou) fiecare caracter, pe măsură ce acestea sunt recepționate. Emițătorul poate observa, pe copia tipărită local, dacă au fost afectate caracterele mesajului. Dacă un caracter în ecou este identificat ca eronat, nu se poate determina dacă acesta a ajuns corect la destinație și a fost afectat în timpul transmisiei în ecou către emițător sau a fost recepționat eronat la destinație și transmis ca atare în ecou. Dar există măcar o indicație de eroare pentru emițător

Sume de control

În tehnica bazată pe paritate, bitul necesar completării numărului de biți de 1 din reprezentarea unui caracter este adăugat la sfârșitul caracterului și transmis împreună cu acesta. Această tehnică este numită uneori test redundant vertical (VRC) sau paritate verticală, deoarece, dacă țineți în mână o bandă de hârtie perforată, cu lungimea sa orientată orizontal, fiecare caracter apare ca o coloană verticală de perforații de-a lungul benzii. Este posibil să se includă un caracter de verificare pe orizontală, care să asigure funcția de verificare a parității pentru fiecare rând de perforații de pe bandă.

Figura ilustrează un set de caractere reprezentate ca perforații pe o bandă de hârtie cu bitul de paritate verticală sau bitul de paritate al caracterului situat în partea superioară a fiecărui caracter și cu caracterul de paritate orizontală sau caracterul de paritate pe bloc situat în 'partea dreaptă. Caracterul de paritate pe bloc se numește sumă de control, deoarece este obținut prin efectuarea sumei logice fără transport asupra fiecărui caracter succesiv. De asemenea, este numit uneori caracter de verificare redundantă longitudinală (LRC), Acesta este adăugat la sfârșitul fiecărui bloc de mesaj. în mod obișnuit, un sistem care utilizează atât paritatea verticală, cât și suma de control, poate detecta toate erorile de un bit corespunzătoare unui caracter, iar uneori poate detecta și erorile multiple de biți din cadrul unui caracter. De fapt, această metodă de detectare a erorilor este una din cele trei tipuri de metode prevăzute de protocolul BiSync, care va fi descris mai târziu în acest capitol.

Protocolul XMODEM

Protocolul XMODEM a fost inventat de Ward Christensen ca o tehnică simpla de testare a erorilor pentru operațiile de transfer de fișiere dintre microcalculatoare. Această tehnică necesită ca un terminal sau calculator să fie configurat (de un operator uman sau de un program de calculator) ca emițător, iar cel de-al doilea terminal să fie configurat ca receptor. După ce protocolul este inițiat, emițătorul așteaptă ca receptorul să transmită un caracter de confirmare negativă (NAK). Receptorul este configurat astfel încât să transmită caractere NAK la fiecare 10 secunde, Atunci când emițătorul detectează primul caracter NAK, începe să transmită mesajele în blocuri de 128 de caractere de date, delimitate de anumite caractere de control, specifice protocolului. Fiecare început de bloc este semnalat printr-un caracter de început de antet (Start Of Header – SOH). Acesta este urmat de un caracter ASCII care specifică numărul blocului, urmat la rândul său de același număr de bloc, dar cu toți biții inversați. Inversarea unui bit, cunoscută ca operație de complementare față de 1, face ca numărul de bloc să fie urmat de același număr, dar complementar față de 1. Se trimite apoi o secvență de 128 de caractere ale fișierului, urmată de suma de control, care reprezintă restul împărțirii la 255 a sumei tuturor celor 128 de octeți ai mesajului. Din punct de vedere matematic, suma de control XMODEM poate fi reprezentată ca:

unde R este restul operației de împărțire.

Figura ilustrează formatul blocului de date utilizat în cadrul protocolului XMODEM.

Receptorul verifică fiecare element al blocului recepționat:

• A fost primul caracter un caracter SOH?

• A fost numărul blocului cu exact o unitate mai mare decât numărul blocului anterior?

• S-au recepționat exact 128 caractere de date?

• A fost suma de control, calculată local, identică cu ultimul caracter al blocului recepționat?

Dacă răspunsurile sunt pozitive, receptorul transmite emițătorului un caracter de confirmare pozitivă (ACK), iar emițătorul trimite un nou bloc. în caz contrar, se transmite un caracter NAK și emițătorul retransmite blocul afectat de eroare. Acest proces continuă, bloc cu bloc, până când întregul fișier este transmis și verificat. La sfârșitul datelor, emițătorul adaugă un caracter de sfârșit de text (End Of Text). Receptorul răspunde cu un caracter ACK și sesiunea se încheie.

Sunt necesare câteva considerații referitoare la protocolul XMODEM. în primul rând, este ușor de implementat pe un calculator cu performanțe medii, dar necesită un calculator la fiecare capăt al canalului de comunicație. în al doilea rând, impune configurarea manuală a fiecărui fișier care se transferă. în al treilea rând, tehnica de detectare a erorilor (suma caracterelor de date) nu este sofisticată și nu poate determina în mod precis cea mai banală eroare de transmisie, care este zgomotul în rafală, cu durate de ordinul a 10 ms (durata transmisiei a 12 biți la viteze de transmisie de 1200 bps). În al patrulea rând, este un protocol half-duplex, ceea ce înseamnă că informația este transmisă, după care emițătorul așteaptă un răspuns înainte de a trimite următorul mesaj. Deoarece funcționarea protocolului XMODEM presupune, în general, utilizarea unei linii full-duplex, el este ineficient în folosirea acestei facilități a transmisiei.

În ciuda limitărilor menționate anterior, protocolul XMODEM și câteva versiuni ale acestuia sunt acceptate de majoritatea programelor de comunicație asincronă, proiectate pentru a funcționa pe calculatoare personale. Rațiunea largului suport oferit acestor protocoale este legată de utilizarea inițială a protocolului XMODEM în domeniul public. Acest lucru a permis proiectanților de programe să utilizeze gratuit protocolul XMODEM. în plus, a asigurat compatibilitatea de comunicare între programe dezvoltate de furnizori diferiți, facilitate extrem de importantă în anii '70, când mulți dezvoltatori de software preferau să creeze propriile protocoale de comunicație, care funcționau numai dacă cele două calculatoare utilizau același program.

Majoritatea programelor de comunicație asincronă dezvoltate la începutul anilor '80 ofereau suport pentru XMODEM. La sfârșitul anilor '80, câteva versiuni ale protocolului XMODEM au fost acceptate datorită nivelului de operare mult îmbunătățit pe care îl ofereau. Unele dintre noile versiuni ale protocolului XMODEM au inclus tehnica CRC de verificare a erorilor, care va fi descrisa. mai târziu în acest capitol. Alte versiuni au asigurat posibilitatea de transmisie full-duplex împreună cu detecția erorilor prin CRC, ceea ce a crescut și mai mult eficiența protocolului. în zilele noastre, aproape toate programele de comunicație destinate calculatoarelor personale asigură protocolul XMODEM și câteva versiuni ale acestuia.

Versiuni ale protocolului XMODEM

Dacă utilizați un modem extern și transferați fișiere folosind protocolul XMODEM, puteți observa ușor două deficiențe ale acestuia: dimensiunea mică a blocului de date și metoda de transmisie half-duplex. Atunci când recepționați un fișier, veți observa că indicatorul luminos Recepție Date (RD) al modemului dumneavoastră devine activ pentru puțin timp, după care indicatorul luminos Transmisie Date (SD) al modemului va avea câteva sclipiri luminoase. Acest proces – în care indicatorul luminos RD este aprins pentru o secundă iar indicatorul RD se aprinde și se stinge – va continua până când transferul fișierului este complet sau este abandonat în urma a 10 retransmisii, datorate calității slabe a liniei.

Dacă veți studia modul de funcționare a indicatoarelor luminoase SD și RD, veți observa că se aprind întotdeauna pe rând, deoarece transmisia este half-duplex. Astfel, după recepționarea unui bloc de date, calculatorul dumneavoastră încetează recepția datelor și transmite un caracter ACK sau un caracter NAK. Prin dezactivarea receptorului modemului și activarea emițătorului acestuia, calculatorul introduce o mică întârziere. Această întârziere este mărită de calculatorul aflat la distanță, care trebuie să aștepte un caracter de răspuns ACK sau NAK pentru blocul transmis anterior, înainte de a putea relua transmisia. Pentru comparație, câteva protocoale de transfer de fișiere, care asigură transmisia full-duplex, permit transmisia și recepția simultană a datelor, ceea ce crește considerabil eficiența globală a operației de transfer.

La începutul anilor 70, atunci când a fost dezvoltat protocolul XMODEM, o dimensiune de 128 de octeți pentru un bloc de date era, probabil, rezonabilă față de calitatea liniei de transmisie, deoarece creșterea dimensiunii blocului ar fi determinat creșterea numărului de caractere ce ar fi trebuit retransmise în cazul detectării unei erori. La sfârșitul anilor 70, zeci de mii de mile de cabluri din fibră optică au început să fie instalate ca suport pentru comunicații. Deoarece cablul din fibră optică este insensibil la interferențele electromagnetice, probabilitatea de apariție a erorilor de transmisie a scăzut în mod substanțial, Pe de altă parte, utilizarea fibrelor optice a făcut ca dimensiunea blocului de date de 128 de octeți, utilizată de protocolul XMODEM, să fie ineficientă în cazul comunicațiilor moderne. Deși protocolul XMODEM este frecvent utilizat în continuare, puteți să folosiți unele versiuni ale acestuia, precum XMODEM/CRC, YMODEM și ZMODEM, care asigură facilitați sporite pentru transferul fișierelor.

XMODEM/CRC

Este același protocol XMODEM descris anterior, cu deosebirea că suma de control este înlocuită de un cod redundant ciclic CRC, generat polinomial, care va fi prezentat mai târziu în acest capitol. Deoarece utilizarea CRC asigură un grad mai înalt de detecție a erorilor decât utilizarea unei sume de control, folosirea acestei versiuni reduce probabilitatea apariției unor erori neidentificate, comparativ cu utilizarea protocolului XMODEM.

XMODEM-1K

XMODEM-IK este un protocol XMODEM/CRC care utilizează blocuri de date cu dimensiunea de 1024 octeți (1K), în majoritatea transmisiilor de date, utilizarea acestui protocol reduce timpul de transmisie, prin comparație cu utilizarea protocoalelor XMODEM sau XMODEM/CRC. Timpul de transmisie este mai mic deoarece utilizarea unui bloc mai mare de date reduce atât numărul de retransmisii pe linie, cât și intervalele de timp în care emițătorul trebuie să aștepte un răspuns înainte de a transmite următorul bloc sau de a retransmite blocul anterior.

XMODEM-G

XMODEM-G este o variantă a protocolului XMODEM-IK, dezvoltat pentru a identifica facilitățile de detecție și corecție a erorilor care au fost integrate în multe tipuri de modemuri. Transmisia unui fișier care se bazează pe facilitățile de detecție și corecție a erorilor oferite de modemuri este ineficientă și introduce întârzieri suplimentare, care afectează eficiența procesului de transfer al fișierelor.

Protocolul XMODEM-G este identic cu protocolul XMODEM-IK, cu excepția faptului că îi lipsește facilitatea de detecție și corecție a erorilor. Acest lucru face din XMODEM-G un protocol de tip „flux", capabil să transmită blocuri de date de dimensiune 1K unul după altul. Deși protocolul calculează suma CRC la fel ca protocolul XMODEM-IK, aceasta este ignorată. Deoarece nu asigură nici o facilitate de detecție a erorilor, protocolul XMODEM-G trebuie utilizat numai pentru modemuri care includ această facilitate. Altfel, transferul unui fișier se va efectua fără protecție la erori.

YMODEM

Spre deosebire de protocolul XMODEM și de variantele sale, care sunt limitate la transferul unui singur fișier, protocolul YMODEM permite transferul mai multor fișiere. Deoarece asigură transferul fișierelor pe loturi, protocolul este numit și YMODEM BATCH. Pentru a asigura facilitatea de transmisie a mai multor fișiere, protocolul YMODEM utilizează un antet de bloc, care cuprinde numele, data creării sau a ultimei modificări aplicate și dimensiunea fiecărui fișier care este transferat.

Figura ilustrează formatul de bază al blocului YMODEM. Deși acest format de bloc este similar celui utilizat de protocolul XMODEM, apar câteva diferențe notabile. în primul rând, protocolul YMODEM înlocuiește caracterul SOH utilizat de protocolul XMODEM cu caracterul început de Text (Start of Text – STX). Acest caracter avertizează receptorul că blocul de date cuprinde 1024 de caractere. Protocolul YMODEM poate comuta la transferul unui bloc de date de 128 de caractere prin înlocuirea caracterului STX cu caracterul SOH. în anumite condiții, efectuează automat această operație, de exemplu la încheierea transferului unui fișier, atunci când utilizarea unuia sau mai multor blocuri de date de 128 caractere este mai eficientă decât utilizarea unui singur bloc de date de 1024 caractere. :

A doua diferența dintre formatele de blocuri folosite de XMODEM și YMODEM apare în câmpul numărului blocului. Spre deosebire de protocolul XMODEM, care începe numerotarea blocurilor de la 1, protocolul YMODEM folosește și numărul de bloc 0, reprezentând un bloc special, care include numele fișierului, data creării sau a ultimei modificări și dimensiunea fișierului. în afară de facilitatea evidențiată anterior, aceea de a transporta 1024 de caractere pe bloc de date, formatele blocurilor de date folosite de protocoalele XMODEM și YMODEM diferă și în ceea ce privește datele incluse în bloc pentru detecția erorilor. Așa cum rezultă din figura 8.6, protocolul YMODEM include doi octeți pentru CRC, având astfel posibilitatea de a transporta polinoame pe l6 biți, spre deosebire de suma de control pe 8 biți utilizată de protocolul XMODEM.

Ca și protocolul XMODEM-IK, YMODEM utilizează blocuri de date de 1024 de octeți (1K) și este un protocol half-duplex. Unele implementări ale protocolului YMODEM necesită specificarea numelor de fișiere cu ajutorul caracterelor de înlocuire globale, cum ar fi caracterul asterisc (*) și caracterul (?), utilizate atât pentru numele fișierelor, cât și pentru extensiile lor. Alte implementări ale protocolului YMODEM necesită specificarea numelui fiecărui fișier ce va fi inclus în lotul de transfer. Indiferent de metoda de specificare a numelor fișierelor, utilizarea protocolului YMODEM asigură eliminarea întârzierilor care apar la sfârșitul transferului unui fișier, când trebuie specificat numele următorului fișier de transmis. în orice caz, înainte de a utiliza protocolul YMODEM, ar fi util să verificați spațiul de memorie disponibil, comparativ cu dimensiunile fișierelor pe care doriți să le transferați. Altfel, puteți să inițiați transferul mai multor fișiere și să luați o pauză de cafea, pentru ca la întoarcere să constatați că procesul de transfer al fișierelor este numai parțial realizat. Din păcate, protocolul YMODEM nu vă avertizează că operația de transfer a eșuat datorită lipsei spațiului de stocare; trebuie să analizați listingul directorului pentru a vedea dacă există sau nu spațiu de memorie disponibil.

YMODEM-G

Protocolul YMODEM-G este versiunea protocolului XMODEM-G care asigură transferul pe loturi. El transmite fișiere de date unele după altele, în blocuri de 1024 octeți (1K), fără a asigura facilitatea de detecție și corecție a erorilor. Asemenea protocolului XMODEM-G, protocolul YMODEM-G trebuie utilizat numai pentru modemuri care dispun de facilități de corecție a erorilor.

WXMODEM

Protocolul WXMODEM este un protocol full-duplex, de tip „fereastră glisantă", care asigură transmisia a maximum patru blocuri de date XMODEM de 128 de octeți înainte de a solicita confirmarea. Acest protocol utilizează CRC pentru controlul erorilor. A fost dezvoltat pentru rețelele cu comutare de pachete, m cadrul cărora fluxul de date m pachete mici care necesită confirmări pozitive poate afecta serios productivitatea transferului. Prin transferul mai multor blocuri de date înainte de a se solicita o confirmare pozitivă de la dispozitivul de recepție, crește eficiența transmisiei. Din păcate, protocolul WXMODEM nu permite transferul de fișiere multiple.

ZMODEM

ZMODEM este un protocol full-duplex care asigură atât transferul blocurilor de date de 128 de octeți, cât și al celor de 1024 de octeți. Spre deosebire de protocoalele de transfer discutate anterior, protocolul ZMODEM modifică dimensiunea blocului de date în funcție de calitatea liniei de transmisie, determinată pe baza numărului de cereri de retransmisie recepționate. Aceasta înseamnă că o linie de transmisie de slabă calitate, indicată astfel de numărul mare de cereri de retransmisie, determină protocolul ZMODEM să utilizeze un bloc de date de 128 de octeți, deoarece dimensiunea redusă a blocului implică retransmisia unui număr mai mic de caractere atunci când se semnalează o eroare. în schimb, o linie de transmisie de înaltă calitate, indicată astfel de numărul redus de cereri de retransmisie, determină protocolul ZMODEM să utilizeze un bloc de date de 1024 de octeți. Deși se vor retransmite caractere suplimentare la detecția unei erori în cazul când protocolul ZMODEM utilizează blocuri de date de 1024 de octeți, rata mică a erorilor conduce la o productivitate ridicată a transmisiei, deoarece majoritatea blocurilor de date de 1024 de octeți sunt recepționate corect.

În afară de facilitatea de a alterna dimensiunea blocului de date în funcție de rata de erori pe linia de transmisie, protocolul ZMODEM permite reluarea transferului unui fișier a cărui transmisie a fost întreruptă, exact din punctul de întrerupere. Acest aspect poate fi extrem de util, dat fiind faptul că alte protocoale solicită reluarea procesului de transfer al fișierului de la început. Alte două facilități ale protocolului ZMODEM constau în asigurarea transferului de fișiere multiple și într-o procedură CRC extinsă pentru verificarea erorilor. Verificarea CRC extinsă constă în generarea unui cod CRC pe patru octeți, utilizând 32 de biți, ceea ce reduce probabilitatea erorilor nedetectate la mai puțin de una la câteva milioane de caractere transmise.

Similar protocolului YMODEM, protocolul ZMODEM transferă la început numele fișierului transmis, precum și dimensiunea și data creării acestuia. Pe baza acestor informații, programele de comunicație pot fi astfel dezvoltate încât să raporteze stadiul de desfășurare al operației de transfer al unuia sau al mai multor fișiere.

Figura ilustrează caseta de dialog aferentă evoluției transferului, generată de programul de comunicație ProcommPlus, versiunea pentru sistemul Windows, care utilizează un protocol de transmisie de tip 2MODEM. Observați că în momentul în care s-a realizat captura de ecran, se recepționaseră 40.960 de octeți. Luând în considerare dimensiunea fișierului de 145.263 de octeți și ținând cont de rata de transfer în octeți pe secundă (916), programul de comunicație poate asigura afișarea în timp real a timpului rămas până la încheierea transferului fișierului. Așa cum rezultă din figura 8.7, în momentul afișării ecranului, mai rămăseseră 1 minut și 53 de secunde până la încheierea operației de transfer. Observați, de asemenea, că bara de progres situată în partea superioară a ferestrei indică faptul că, în momentul în care s-a realizat captura de ecran, fișierul fusese transferat în proporție de 28%.

Dacă transferați fișiere multiple utilizând programul ProcommPlus pentru Windows, acesta va utiliza informațiile asigurate de protocolul ZMODEM, care sunt transferate la începutul transmisiei pentru fiecare fișier și va fumiza informații referitoare la evoluția transferului pe loturi. Astfel, dacă în loc de un singur fișier se transferă fișiere multiple, bara de progres a transferului pe loturi („Batch Progress")va indica procentul de realizare a procesului de transmisie, iar câmpul de afișare „Batch remaining" (Loturi rămase de transmis) va indica timpul rămas până la încheierea transferului de loturi.

KERMIT

Protocolul KERMIT, dezvoltat la Universitatea Columbia, se numește astfel după broscuța Kermit, una din cele mai populare păpuși din spectacolul de televiziune „Muppets". Acest protocol diferă de seria de protocoale XMODEM pentru transferul fișierelor, în primul rând datorită caracteristicilor sistemelor de operare utilizate de minicalculatoare și sisteme mainframe. Seria de protocoale XMODEM și derivatele acesteia au fost dezvoltate pentru transferuri de date pe 8 biți. însă unele sisteme de operare ale calculatoarelor sunt limitate la caractere reprezentate pe șapte biți și este posibil să nu poată lucra cu caractere ASCII de control (caractere ASCII de la 0 la 31) și cu caracterul de ștergere (caracterul ASCII 127), Protocolul KERMIT a fost dezvoltat tocmai pentru a asigura un mecanism de transfer al fișierelor pe asemenea calculatoare.

Inițial, KERMIT a fost conceput ca un protocol half-duplex. El utilizează șapte sau opt biți pe caracter, Protocolul a fost proiectat să convertească cel de-al optulea bit prin repartizarea lui și să prefixeze caracterul astfel rezultat cu un alt caracter. în felul acesta, se asigură sistemelor de operare care nu lucrează cu caractere pe opt biți sau nu recunosc anumite caractere ASCII de control posibilitatea de a transfera fișiere, în care aceste caractere sunt ascunse.

Protocolului KERMIT i s-au adus numeroase îmbunătățiri. El asigură acum transferul de fișiere multiple, poate opera ca protocol full-duplex cu „fereastră glisantă" și poate lucra cu blocuri de dimensiune variabilă, de până la 1024 octeți pe bloc. Deși acest protocol reprezintă o necesitate pentru accesul la calculatoarele care nu pot opera cu caractere pe opt biți sau cu caractere ASCII de control, el nu trebuie utilizat în alte cazuri. Aceasta deoarece prefixarea caracterelor contribuie la supraîncărcarea transmisiei și la diminuarea eficienței protocolului cu aproximativ 10-20% comparativ cu protocolul XMODEM, care este cel mai puțin eficient protocol din serie.

SEALINK

Protocolul SEALINK a fost dezvoltat de către System Enhancement Associates din New Jersey pentru a minimiza efectul întârzierilor atunci când datele sunt transmise prin rețele cu comutare de pachete. Este o variantă full-duplex „cu fereastră glisantă" a protocolului XMODEM. Protocolul SEALINK utilizează blocuri de date de 128 de octeți, care sunt protejate la erori prin intermediul unui cod redundant ciclic (CRC). Se pot transmite până la șase blocuri de date înainte de a se solicita receptorului confirmarea, ceea ce face ca acest protocol să fie mult mai potrivit pentru rețelele cu comutare de pachete decât protocolul WXMODEM.

Selectarea protocoalelor

Selectarea celui mai potrivit protocol pentru transferul fișierelor depinde în primul rând de tipurile de protocoale cu care calculatorul dumneavoastră poate lucra și de calculatorul cu care doriți să comunicați. Deși aceste condiții reduc numărul de opțiuni posibile, aveți la dispoziție cel puțin 6 protocoale, dintre cele frecvent utilizate, din care să alegeți. Puteți să limitați opțiunile, luând în considerare facilitățile pe care modemul dumneavoastră și cel aflat la distanță, cu care veți comunica, le oferă în privința tehnicilor de detecție a erorilor, cum ar fi protocoalele MPN Clasa 5 sau CCITT V.42bis. În acest caz puteți utiliza protocolul XMODEM-G, dacă intenționați să transferați câte un singur fișier, sau protocolul YMODEM-G, daca intenționați să transferați fișiere multiple. Ambele sunt protocoale de tip „flux", care nu implementează tehnici de detecție a erorilor; utilizarea lor eficientă depinde de metodele folosite de cele două modemuri pentru detecția erorilor.

Dacă vi s-a întâmplat să realizați o transmisie de slabă calitate, deoarece comunicația s-a efectuat prin intermediul unui vechi panou de comutare dintr-un hotel de mâna a doua, pe timp de furtună sau în alte condiții improprii, ați putea utiliza protocolul ZMODEM. Deși mulți preferă protocolul ZMODEM datorită modului său de transmisie full-duplex, în realitate, un protocol de tip flux oferă o productivitate similară, dacă nu chiar ușor superioară. Protocolul ZMODEM excelează prin capacitatea sa de a relua o transmisie exact din punctul în care a fost întreruptă, eliminând astfel necesitatea de a retransmite întregul fișier atunci când condițiile improprii de transfer determină oprirea sesiunii de transmisie.

Dacă utilizați o rețea cu comutare de pachete pentru a obține acces la un alt calculator, este util să aveți în vedere protocoalele 2MODEM, SEALINK și WXMODEM. Fiecare dintre aceste trei protocoale permite transmisia mai multor blocuri fără a solicita receptorului confirmare pozitivă și sunt astfel proiectate încât determină creșterea productivității transmisiei prin rețele cu comutare de pachete. Deoarece protocolul ZMODEM utilizează blocuri de date de dimensiuni mai mari decât protocoalele SEALINK și WXMODEM, acesta ar trebui să constituie prima dumneavoastră opțiune.

Dacă protocoalele disponibile pentru transferul fișierelor se limitează la XMODEM, XMODEM/CRC și XMODEM-IK, luați în considerare protocolul XMODEM-IK înaintea protocolului XMODEM/CRC și protocolul XMODEM/CRC înaintea protocolului XMODEM. Protocolul XMODEM-IK utilizează blocuri de date de 1024 de octeți, precum și metoda CRC pentru detecția erorilor și asigură o productivitate mai mare a transferului decât protocolul XMODEM/CRC. Deși atât protocolul XMODEM/CRC cât și protocolul XMODEM utilizează blocuri de date de 128 de octeți, folosirea metodei CRC de către protocolul XMODEM/CRC oferă mai multă siguranță în ceea ce privește integritatea datelor decât protocolul XMODEM, care folosește suma de control.

Dacă doriți să transferați fișiere multiple și aveți în vedere utilizarea protocoalelor YMODEM sau YMODEM-G, optați pentru ultimul numai dacă modemul dumneavoastră poate comunica cu modemul aflat la distanță prin intermediul unui protocol de modem care asigură corecția erorilor. Altfel, utilizați protocolul YMODEM, deoarece include facilitatea de detecție a erorilor pe baza metodei CRC.

Cele trei protocoale a căror utilizare nu a fost încă luată în discuție sunt SEALINK, KERMIT și ASCII. Deoarece protocolul SEALINK utilizează metoda CRC pentru detecția erorilor și suportă o transmisie full-duplex, utilizarea sa asigură o productivitate a transferului mai mare decât protocolul XMODEM. Din păcate, blocurile de date de numai 128 de octeți diminuează performanțele sale în raport cu protocoalele care lucrează cu blocuri de date de 1024 de octeți. 0 altă limitare o constituie posibilitatea redusă de procurare a acestui protocol, deoarece nu are un grad prea mare de utilizare în cadrul sistemelor de informare în rețea (Bulletin Board System – BBS). în ceea ce privește protocolul KERMIT, acesta se utilizează în primul rând în comunicarea cu calculatoarele ale căror sisteme de operare nu lucrează cu codul ASCII extins și nu recunosc caracterele ASCII de control. Deoarece protocolul KERMIT repartizează cel de-al optulea bit și prefixează caracterul astfel rezultat cu un alt caracter, conversia operată reduce productivitatea transferului. în concluzie, ar fi bine să utilizați protocolul KERMIT numai atunci când este absolut necesar să obțineți acces la calculatoare care solicită în mod expres utilizarea sa.

Deoarece protocolul ASCII nu dispune de o facilitate de detecție a erorilor, vă puteți întreba de ce ar trebui să aveți în vedere utilizarea sa. Motivul este faptul că majoritatea sistemelor de poștă electronică solicită intrări de tip ASCII. Astfel, dacă editați off-line un mesaj, utilizând un procesor de texte, trebuie să salvați fișierul în format ASCII și apoi să îl transmiteți prin conectare on-line la sistemul de poștă electronică, utilizând protocolul ASCII.

Pentru a veni în sprijinul cititorilor care vor să analizeze comparativ protocoalele pentru transferul fișierelor, tabelul prezintă principalele lor caracteristici.

Tabel. Comparație între protocoalele pentru transferul fișierelor.

Notă; CS = suma de control, H = half-duplex, F = full-duplex

Coduri de convoluție – coduri redundante ciclice

În sistemele de comunicație binară, au fost puse la punct mai multe tehnici pentru detecția erorilor, care utilizează coduri de convoluție sau de reacție (feed- back). Toate aceste metode adaugă la sfârșitul fiecărui mesaj transmis date calculate de emițător, pentru a permite receptorului să determine dacă s-a produs o eroare de transmisie. Informațiile adăugate mesajului se află într-o relație matematică cu mesajul și, de aceea, sunt redundante. Receptorul recalculează valoarea și o compară cu numărul recepționat. Dacă cele două numere sunt identice, totul este în regulă. Dacă nu, receptorul avertizează emițătorul că a apărut o eroare și mesajul este retransmis. Aceste metode sunt cunoscute sub numele de Coduri Redundante Ciclice (CRC), iar valorile adăugate mesajelor se numesc caractere CRC sau caractere de control pe bloc (BCC). Valoarea CRC este calculată prin împărțirea întregii valori binare a blocului de date la o constantă, numită polinom generator. Câtul este eliminat, iar restul împărțirii este adăugat blocului și transmis împreună cu acesta.

Valoarea CRC poate fi calculată prin mijloace hardware, utilizând mai multe secțiuni de registre de deplasare cu reacție, cu elemente logice de tip SAU-EXCLUSIV (XOR) între secțiuni și la sfârșit. 0 schemă tipica este ilustrată în figura 8.8. Acest registru implementează o procedură CRC de control al legăturii de date de nivel înalt (HDLC) de tip CCITT/ISO, cunoscuta ca ITU-T-CRC. Cercurile care au în centru caracterul + reprezintă elementele logice de tip SAU-EXCLUSIV (XOR). Pentru B = 0 sau B = 1, funcția logică XOR furnizează următoarele rezultate:

B XOR 1=0

B XOR 0=B

Registrul de deplasare este inițializat cu 1 (pe toți biții) înainte de a calcula valoarea CRC pentru un mesaj. Pe măsură ce fiecare bit al caracterului este transferat, el este aplicat, de asemenea, la intrarea A din figura și apoi întregul registru este deplasat la dreapta cu un bit. Pe măsură ce biții sunt transmiși și deplasați, fiecare bit de 1 care este aplicat intrării A afectează starea celorlalte elemente SAU-EXCLUSIV și efectul se propagă de-a lungul întregului registru, de câteva ori, după ce bitul apare la intrare. Astfel, fiecare bit continuă să aibă efect mai mult timp asupra datelor transmise, chiar și după ce a fost transferat. Când s-a transmis și ultimul bit de date, biții din registrul de deplasare CRC sunt complementați și transmiși.

Un proces identic se desfășoară la receptor, iar când se detectează sfârșitul mesajului, inclusiv CRC, caracterul CRC este comparat cu valoarea 0001110100001111. Dacă aceasta este valoarea calculată, atunci totul este în ordine și registrul CRC este inițializat cu 1 pe toți biții pentru următorul mesaj. Dacă nu aceasta este valoarea calculată, programul este avertizat că s-a produs o eroare de transmisie și se returnează emițătorului un caracter de confirmare negativă.

Procesul CRC are avantajul că starea curentă a registrului de deplasare este rezultatul unei evoluții considerabile în timp. De aceea, este improbabil ca erorile în rafală, care apar de obicei în transmisiile seriale de date, să producă la receptor un CRC calculat de aceeași valoare cu cel transmis inițial, De fapt, procedurile de calcul pe l6 biți a CRC, CRC-16 și CRC-ITU-T, detectează toate erorile în rafală, de dimensiune l6 biți sau mai puțin, De asemenea, aceste proceduri detectează peste 99,9% din erorile în rafală de dimensiune mai mare de 16 biți. Alt avantaj al metodei CRC este faptul că nu impune adăugarea unui bit la fiecare caracter transmis, așa cum solicită metodele VRC și LRC. în schimb, metoda CRC necesită transmisia unuia sau a două caractere suplimentare (două în cazul CRC-16 și CRC-ITU-T) la sfârșitul fiecărui bloc transmis.

Algoritmii CRC au fost inițial implementați hardware și au fost concepute circuite integrate care realizau întregul proces prin mai multe metode (de exemplu, CRC-12, CRC-16 și CRC-ITU-T). Calculele de determinare a valorii CRC se pot efectua și prin program, utilizând tehnici bazate pe tabele de căutare, care asigură performanțe acceptabile.

Protocoale half-duplex

Un protocol half-duplex este numit și protocol pas cu pas. Această denumire se datorează faptului că transmisia într-o direcție trebuie să înceteze înainte de a se efectua transmisia în direcție opusă.

Legături

Conceptul de bază al protocoalelor de legătură este legătura de date, 0 legătură de date este definită de un mod de dispunere a modemurilor sau a altor echipamente de interfață și circuite de comunicație, care conectează două sau mai multe terminale, în așa fel încât acestea să poată comunica între ele. Probabil ca cel mai utilizat protocol de legătură în anii '80 a fost reprezentat de procedurile de comunicare binară sincronă (Binary Synchronous Communications), definite de IBM (de regulă, abreviat prin BiSync sau BSC). Aceste proceduri asigurau efectuarea de operații pe liniile de date într-o singură direcție la un moment dat. BiSync poate funcționa și cu circuite full-duplex, dar informațiile circulă tot într-o singură direcție la un moment dat, astfel încât în majoritatea cazurilor, avantajul circuitelor full-duplex este sensibil diminuat.

Forma fizică de realizare a legăturii este importantă prin faptul că procedurile de conectare și de deconectare a legăturii pot fi diferite, după cum legătura este permanent conectată sau apelabilă, și, de asemenea, în funcție de mărimea intervalului de timp dintre momentul transmisiei unui bit și momentul recepționării sale. Acest ultim factor are o importanță deosebită în cazul legăturilor prin satelit, datorită întârzierilor determinate de propagarea dus-întors a datelor între legăturile de satelit și legăturile terestre. Indiferent de forma fizică de realizare a legăturilor, datele sunt transmise prin intermediul acestora ca un flux serial de simboluri codificate sub formă de biți, iar procedurile de control care se efectuează la terminalele legăturii se bazează pe transmisia și identificarea unor caractere de control al liniei sau a unor coduri de control.

Legături punct-la-punct

0 legătură punct-la-punct conectează numai două stații la un moment dat, așa cum ilustrează figura. Legăturile punct-la-punct se pot stabili prin circuite dedicate sau circuite apelabile și pot fi de tip half-duplex sau full-duplex.

Legături multipunct

Legăturile multipunct conectează mai mult de două stații la un moment dat, așa cum ilustrează figura b. În mod evident, trebuie să existe niște proceduri de control care să desemneze stația care poate utiliza legătura la un moment dat. în acest scop, una dintre stațiile legăturii multipunct este desemnată drept stație de control sau stație „master", iar toate celelalte stații sunt desemnate drept stații aservite sau stații „slave". Stația de control reprezintă directorul de trafic și desemnează, prin intermediul unui proces de interogare și selecție, stația aservită care urmează să utilizeze conexiunea. în orice moment, transmisia prin intermediul unei legături multipunct se va desfășura numai între două stații, toate celelalte stații aflându-se în modul de recepție pasivă.

Coduri de transmisie – seturi de caractere

Protocolul BiSync a fost conceput de IBM pentru a armoniza trei seturi de caractere și codurile binare asociate lor. Fiecare set constă dintr-o serie de elemente grafice (litere, numere și semne de punctuație), o serie de coduri de control al formatului și terminalului (BELL, Form Feed – avans de pagină, "WRU și așa mai departe) și o serie de coduri de control al legăturii de date (Start of Text – început de text, End of Transmission – sfârșit de transmisie și așa mai departe), Cele trei seturi sunt SBT – Six-Bit Transcode (cod de transmisie pe 6 biți), EBCDIC – Extended Binary Coded Decimal Interchange Code (cod binar codificat zecimal extins pentru schimbul de informații) și USASCII sau, mai scurt, ASCII – United States of America Standard Code for Information Interchange (codul standard al Statelor Unite ale Americii pentru schimbul de informații).

Cele trei coduri diferă în privința numărului de biți pe care se codifică un simbol (șase pentru SBT, șapte pentru ASCII și opt pentru EBCDIC) și a numărului de caractere din set (64 pentru SBT, 128 pentru ASCII și 144 pentru EBCDIC). De asemenea, există diferențe semnificative în privința proprietăților acestor coduri, cum ar fi ordinea de sortare între litere și cifre.

Coduri de control al legăturii de date

Controlul legăturii de date se bazează pe identificarea corectă a caracterelor de control și pe inițierea acțiunilor celor mai potrivite. Codurile de control utilizate de protocolul BiSync sunt definite în lista următoare:

Synchronous Idle (Syn) – Sincronizare Inactivă – Stabilește și menține sincronizarea echipamentelor pentru comunicații de date (DCE). Este inserat între blocurile de date.

Start of Header (SOH) – început de antet – Identifică începutul informațiilor de antet ale unui bloc de date. Anteturile conțin informații de control (cum ar fi adrese, priorități, numerele de mesaje), utilizate de sistem în prelucrarea porțiunii de tip text a mesajului.

Start of Text (STX) — început de text – Identifică sfârșitul antetului și începutul zonei de text a mesajului. Textul este partea unui mesaj generat de un program de aplicație destinată unui alt program de aplicație, care trebuie să treacă nemodificată prin sistemul de comunicație.

End of Transmission Block (ETB) – Sfârșit de transmisie bloc – Identifică sfârșitul unui bloc, care a început prin SOH sau STX. Un caracter BCC este transmis imediat după codul ETB. Recepționarea unui ETB necesită un răspuns referitor la stare (ACKO, ACKl, NAK, WACK sau RVI).

End of Text (ETX) – Sfârșit de text – încheie un bloc de date început prin STX sau SOH, care a fost transmis ca entitate de sine stătătoare. Un caracter BCC este transmis imediat după codul ETX. Recepționarea unui ETB necesită, de asemenea, un răspuns referitor la stare.

End of Transmission (EOT) – Sfârșit de transmisie – Indică încheierea transmisiei unui mesaj de către stația curentă; mesajul poate include unul sau mai multe blocuri. Recepționarea unui EOT determină reinițializarea tuturor stațiilor receptoare. EOT este utilizat, de asemenea ca răspuns la o interogare, atunci când starea interogată nu are nimic de transmis și ca semnal de abandonare atunci când emițătorul nu poate continua transmisia.

Enquiry (ENQ) – Interogare – Solicită transmisia repetată a răspunsului corespunzător unui bloc de mesaj, atunci când răspunsul inițial a fost trunchiat sau nu a fost recepționat. ENQ poate indica, de asemenea, sfârșitul unei secvențe de interogare sau selecție și este utilizat în cadrul cererilor de alocare a liniei de transmisie în cazul conexiunilor punct-la-punct.

Affirmative Acknowledgement (ACKO sau ACKl) — Confirmare pozitivă – indică recepționarea corectă a blocului de date anterior, precum și faptul că receptorul este gata să accepte blocul următor. ACKO și ACKl sunt utilizate alternativ și recepționarea codului necorespunzător reprezintă o indicație de eroare în funcționarea protocolului, ACKO este răspunsul corect la selectarea unei stații (în cazul conexiunilor multipunct) sau la cererea de alocare a liniei de transmisie (în cazul conexiunilor punct-la-punct).

Wait-Before-Transmit Affirmative Acknowledgement (WACK) — Confirmare pozitivă cu temporizare – Indica stației emițătoare o condiție temporară de imposibilitate a recepției și o confirmare pozitivă a recepției blocului anterior. Răspunsul normal al stației emițătoare la primirea unui cod WACK este ENQ, dar și EOT și DLE EOT reprezintă răspunsuri valabile. Dacă după ce se transmite un cod WACK se recepționeză un ENQ, stația emițătoare continuă să transmită WACK până când este posibilă continuarea transmisiei de date.

Negative Acknowledgement (NAK) – Confirmare negativă – Indică faptul că blocul anterior a fost recepționat cu eroare și că receptorul este gata să accepte un alt bloc. NAK este utilizat, de asemenea, ca răspuns de tip „stația nu este gata", la cererea de selectare a unei stații sau la cererea de alocare a liniei de transmisie.

Data Link Escape (DLE) – Escape pentru legătura de date — Indică receptorului faptul că următorul caracter recepționat după DLE trebuie interpretat ca un caracter de control.

Reverse Interrupt (RVI) – întrerupere inversă – Indică o solicitare din partea unei stații receptoare de terminare a transmisiei curente, astfel încât să poată fi transmis un mesaj de prioritate înaltă (cum ar fi o notificare de oprire a unei stații). RVI reprezintă, de asemenea, o confirmare pozitivă de recepționare a blocului de date anterior. într-o conexiune multipunct, transmisia unui RVI de către stația de control semnifică faptul că aceasta intenționează să selecteze o altă stație. Atunci când o stație emițătoare recepționează un RVI, aceasta răspunde transmițând toate datele care pot împiedica transformarea ei în stație receptoare.

Temporary Text Delay (TTD) – întârziere temporară de date – Indică faptul că stația emițătoare nu este pregătită pentru o transmisie imediată, dar dorește păstrarea liniei. Răspunsul stației receptoare la un TTD este NAK. TTD se transmite în mod normal după două secunde, în cazul în care emițătorul nu poate transmite următorul bloc de date; acest cod de control amână timpul de abandonare standard, de trei secunde, al stației receptoare. Răspunsul la TTD este NAK, iar codul TTD poate fi repetat de câteva ori. TTD este utilizat, de asemenea, ca abandon prematur, prin transmiterea unui EOT ca răspuns la NAK.

Switched Line Disconnect (DLEEOT) – Deconectare linie comutată – Indică unui receptor faptul că emițătorul urmează să se deconecteze de la linia comutată.

Secvențe de coduri

Analiza codurilor caracterelor ASCII și EBCDIC evidențiază faptul că nu există nici un cod alocat pentru multe dintre caracterele de control prezentate în lista anterioară. Asemenea coduri de control sunt reprezentate printr-o secvență de două caractere care sunt definite în diagrama de caractere. Tabelul evidențiază corespondența dintre caracterele de control și secvențele de caractere standard.

Tabel. Secvențe de caractere pentru caracterele de control BiSync.

Interogare si selecție

Participanții activi la o conexiune BiSync sunt administrați de o stație de control care emite fie un mesaj de interogare, fie un mesaj de selecție adresat unei anumite stații aservite. Mesajul de interogare este o invitație la transmisie lansată de stația de control către stația aservită. Aceasta permite stației aservite să trimită orice mesaj către stația de control. Mesajul de selecție este o cerere de recepție emisă de stația de control, care avertizează stația aservită că are ceva să-i transmită. Astfel, stația master controlează cărei stații i se alocă linia și care este sensul transferului de informație.

Stațiilor conectate într-o legătură de date li se atribuie o adresă unică, formată din unul până la șapte caractere. Primul caracter identifică stația, iar următoarele caractere identifică unele componente ale stației, cum ar fi imprimanta. Anumite implementări BiSync repetă adresa stației din motive de securitate.

Blocuri de mesaj

Mesajele constau din unul sau mai multe blocuri de text, care formează corpul mesajului, încadrate de caractere de sincronizare, de control al erorilor și de antet. începutul fiecărui bloc este identificat printr-un caracter de control STX și toate blocurile unui mesaj, mai puțin ultimul, se încheie fie printr-un caracter ETB, fie printr-un caracter ITB. Ultimul bloc al mesajului se încheie printr-un caracter ETX.

Controlul erorilor

Protocolul BiSync utilizează trei metode de detecție a erorilor: VRC/LRC, CRC-12 și CRC-16. Tabelul prezintă condițiile în care se folosește fiecare dintre aceste metode. Modul transparent va fi descris ulterior în cadrul acestui capitol. Metoda VRC este un test de paritate impară care se aplică fiecărui caracter transmis, inclusiv caracterului LRC de la sfârșitul blocului. Fiecare bit al caracterului LRC reprezintă un bit de paritate impară calculat pentru fiecare poziție binară corespunzătoare tuturor caracterelor transmise în cadrul blocului. Figura 8.10 ilustrează modul de formare a LRC și VRC pentru un bloc de date de 8 caractere. Observați că LRC este construit în aceeași manieră ca și VRC, numai că LRC corespunde tuturor caracterelor blocului de date, în timp ce VRC corespunde caracterelor individuale.

Tabel. Tipuri de coduri redundante pentru controlul erorilor.

În cadrul protocolului BiSync, caracterul LRC se numește caracter de control pe bloc (BCC). Acesta este transmis imediat după un caracter ETB, ITB sau ETX. Caracterul BCC transmis împreună cu datele se compară la receptor cu caracterul de control pe bloc calculat de acesta și, dacă cele două sunt egale, totul este în regulă. Calculul BCC este reluat la recepția primului caracter STX sau SOH, după ce direcția de transmisie este schimbată (reversibilitate de linie). Toate caractere-le, cu excepția caracterului SYN, recepționate din acest punct până la următoarea inversare de linie sunt luate în considerare la efectuarea calculului. Dacă mesajul este transmis în blocuri fără reversibilitate de linie, fiecare bloc este urmat de un caracter ITB, și de un caracter BCC. Calculul BCC este apoi reluat cu următorul caracter STX sau SOH primit.

Codurile redundante ciclice (CRC) sunt utilizate pentru controlul erorilor în același mod ca și codul LRC. Dacă setul de caractere utilizat în transmisie este STB, atunci se utilizează metoda CRC-12, deoarece fiecare caracter transmis este de numai șase biți. Pentru setul de caractere EBCDIC se utilizează întotdeauna metoda CRC-16. în cazul setului de caractere ASCII, compania IBM recomandă utilizarea metodei VRC/LRC pentru modul de lucru netransparent (modul standard) și a metodei CRC-16 pentru modul de lucru transparent. Modul de lucru transparent va fi analizat în detaliu în acest capitol.

Formate de mesaje

Informațiile sunt transportate în cadrul protocolului BiSync sub formă de mesaje. Fiecare mesaj poate avea mai multe părți: o secvență de sincronizare, un antet, o zonă de text și o secvență de control pe bloc. 0 componentă a mesajului se identifică prin intermediul unuia sau mai multor caractere de control, în cazul mesajelor utilizate strict pentru control, anumite părți pot lipsi, cum ar fi antetul, zona de text sau caracterul BCC.

Sincronizare

Dacă emițătorul și receptorul nu stabilesc exact punctul de start (bitul de start) al unui mesaj, comunicația nu este posibilă. Realizarea acestei sincronizări presupune trei pași;

1. Modemurile sau alte dispozitive de comunicație a datelor localizate la ambele capete ale conexiunii trebuie să realizeze sincronizarea pe bit. Metodele pentru realizarea acestei sincronizări au fost discutate în capitolul 5, „Modemuri sincrone, transmisii digitale și unități de servicii de date".

2. Echipamentul de interfață la legătura de date din cadrul DTE trebuie să realizeze sincronizarea pe caracter. Această sincronizare se realizează prin căutarea fluxului de biți pentru un anumit model de biți, numit caracter de sincronizare (Synchronization Character – SYN). în cadrul codului ASCII, codul asociat caracterului SYN este 0010110. Pentru a preveni identificarea unui caracter SYN fals, majoritatea sistemelor care utilizează protocolul BiSync solicită transmisia și detecția a două caractere SYN succesive înainte de a trece la următorul pas al procesului de sincronizare. Cele două caractere SYN formează un set de control care se numește secvență Sync, fiind reprezentată în majoritatea diagramelor printr-un 0. Pentru a asigura transmisia corectă a primului și a ultimului caracter, anumite stații BiSync adaugă un caracter PAD înainte de primul caracter SYN și după fiecare caracter BCC, EOT și ACK. Această strategie a fost concepută inițial pentru a compensa limitările hardware ale primelor terminale BiSync, realizate prin cablare.

3. Programul care operează pe baza protocolului de comunicație trebuie să realizeze sincronizarea pe mesaj. Cu alte cuvinte, programul trebuie să identifice începutul fiecărui mesaj sau al fiecărei secvențe de caractere de control. Acest lucru se realizează prin intermediul unui program de căutare a caracterelor recepționate după secvența Sync a unui caracter de control cu care începe un bloc de date sau o secvență de control. Asemenea caractere sunt SOH, STX, ACKO/1, NAK, WACK, RVI și EOT.

Antet

Un antet este o secvență de caractere care începe cu caracterul SOH, fiind utilizată pentru identificarea tipului unui mesaj, numărului mesajului, a priorității și a rutei sale. Recepționarea unui caracter SOH inițiază acumularea caracterelor BCC (dar SOH nu este inclus în BCC). Antetul poate avea fie lungime fixă, fie lungime variabilă, și se încheie cu un caracter STX.

Text

Zona de text a unui mesaj conține informațiile care se vehiculează între programele de aplicație. Zona de text începe cu un caracter STX și se încheie cu un caracter ETX. Textul poate fi împărțit pe blocuri pentru a asigura un control mai bun al erorilor. Fiecare bloc începe cu un caracter STX și se încheie cu un caracter ETB, cu excepția ultimului bloc, care se încheie cu un caracter ETX. Terminarea normală a transmisiei este semnalată prin transmisia unui caracter EOT, urmat de un caracter ETX. Caracterele de control nu sunt permise în cadrul corpului de text al unui bloc. Dacă se detectează un asemenea caracter de control, stația receptoare încheie recepția și caută un BCC în următoarele două caractere.

Timeouts (pauze)

Pauzele trebuie asigurate de programele de comunicație sau de terminal pentru a preveni întârzieri nelimitate cauzate de erorile de date sau de lipsa semnalelor de reversibilitate pe linie. În cadrul protocolului BiSync, sunt prevăzute patru funcții pentru timeout: de transmisie, de recepție, de deconectare și de continuare.

Funcția de transmisie a unui timeout este, în mod normal, inițializată la 1 s. Această funcție definește rata de inserare a unei secvențe de sincronizare inactivă • (SYN SYN sau DLE SYN) în cadrul datelor, pentru a menține sincronizarea pe bit și pe caracter.

Funcția de recepție a unui timeout este, în mod normal, inițializată la 3 s. Această funcție asigură realizarea următoarelor acțiuni:

• Limitează timpul în care o stație emițătoare așteaptă un răspuns.

• Semnalează unei stații receptoare să verifice linia pentru a găsi caractere de sincronizare inactivă, care indică faptul că transmisia continuă. Funcția de recepție a unui timeout este reinițializată de fiecare dată când se recepționează o secvență Sync.

• Stabilește o limită de timp pentru perioada în care o stație aservită dintr-un circuit multipunct poate rămâne în modul control. Funcția este reinițializată de fiecare dată când se recepționează un semnal de încheiere de tip ENQ sau ACK, atâta timp cât stația este în modul control.

Funcția de deconectare aferentă unui timeout determină stația conectată la o rețea cu comutare să se deconecteze de la circuit după 20 s de inactivitate.

Funcția de continuare aferentă unui timeout determină stația emițătoare care transmite un caracter TDD să transmită un nou TDD dacă este încă incapabilă să transmită text. Dacă stația receptoare devine temporar incapabilă să recepționeze date într-un interval de 2 s, atunci aceasta trebuie să transmită un caracter WACK.

Modul text transparent

De multe ori, este necesar ca în comunicația dintre două mașini să se transmită date care nu reprezintă caractere, ci reprezintă niște cantități sau obiecte pur aleatoare. Un exemplu în acest sens este reprezentarea binară a unui program de aplicație. într-un asemenea caz, este posibil ca anumite date să aibă aceeași reprezentare binară ca un caracter BiSync de control. Modul text transparent, numit uneori și transparență, permite transmisia unor astfel de date, fără ca programul de comunicație să le interpreteze greșit. Tehnica de bază a modului text transparent constă în a preceda flecare caracter de control autentic cu un caracter DLE, așa cum ilustrează figura a. Dacă reprezentarea binară a unui caracter DLE apare în cadrul textului unui mesaj, aceasta este, de asemenea, precedată de un caracter DLE. Astfel, o secvență de biți este interpretată drept caracter de control numai dacă este precedată de un caracter DLE. Mesajul rezultat în urma prelucrării de către programul de interfață la legătura de date pentru a elimina caracterele DLE este ilustrat în figura b. Observați că pentru orice secvență DLE DLE din cadrul textului, primul caracter DLE este eliminat, iar cel de-al doilea este transmis ca parte componentă a datelor.

Protocoale full-duplex

Procedurile de comunicație binară asincronă au fost dezvoltate într-un moment în care majoritatea circuitelor pentru comunicația datelor operau la o viteză de 2400 bps și erau circuite half-duplex pe două fire care conectau la sistemele mainframe terminale de tipul cititoare de cartele/imprimante aflate la distanță. Pe măsură ce aplicațiile on-line, care utilizau terminale CRT aflate la distanță, au devenit accesibile ca preț, iar circuitele private de linie, pe patru fire, au început să fie disponibile, cererea pentru protocoale de comunicație care să poată opera full-duplex a crescut. Cerințele pentru un asemenea protocol au fost următoarele;

• Mesajele trebuie să poată fi transmise simultan în ambele direcții,

• Să poată exista mai mult de un mesaj pe canalul de transmisie la un moment dat (BiSync permitea un singur mesaj).

• Transparența să fie înglobată, și nu adăugată ulterior.

• Protocolul trebuie să poată funcționa în rețele comutate și să asigure operații half-duplex și multipunct, precum și punct-la-punct full-duplex.

• Tehnicile de detectare și corecție a erorilor trebuie să fie performante și să elimine pseudomesajele.

Ultima condiție este de o dificultate aparte. Pseudomesajele apar atunci când un fragment de mesaj, transmis cu eroare, este interpretat ca mesaj corect de către receptor; asta se întâmplă atunci când un mesaj cu erori sau fragmentat „arată" ca un mesaj corect. Aceasta poate fi o problemă serioasă, mai ales în cazul aplicațiilor de mare importanță, cum ar fi transferul de fonduri sau transmisia comenzilor militare. S-a depus un efort considerabil de proiectare, atât la nivelul organizațiilor internaționale de standardizare, cât și la nivelul companiilor private, pentru a preveni apariția pseudomesajelor. Acest efort a condus la dezvoltarea a trei metode, utilizate pe scară largă. Două dintre ele sunt asemănătoare în privința principiilor utilizate și a modului de operare, precum și în privința cerințelor de elemente hardware speciale, dar au fost concepute de organizații diferite. Cea de-a treia metodă, concepută de Digital Equipment Corporation, utilizează o altă tehnică, dar operează cu echipamente standard de interfață la linie, orientate pe caractere.

Proceduri de control al legăturii de date de nivel înalt (HDLC)

Problema critică în prevenirea pseudomesajelor constă în a determina unde începe și unde se termină un bloc de mesaj și care este exact porțiunea de informație, recepționată de receptor, care trebuie luată în considerare la calculul valorii CRC. Ca rezultat al efortului de proiectare depus de Ray J. Kersey și de alți proiectanți de la IBM, la începutul anilor '70 s-a propus un protocol care a fost adoptat în 1979 ca standard internațional de către Organizația Internațională de Standardizare. Acesta constă în proceduri de control al legăturii de date de nivel înalt (HDLC). în HDLC, indicatorul de sincronizare a mesajelor (numit flag sau semafor) a fost generat inițial de un circuit hardware, iar alte circuite hardware erau utilizate pentru a preveni ca datele transmise să aibă aceeași reprezentare ca semaforul. Apoi, semaforul a devenit un fel de semnal cadru de ieșire din bandă (out-of-band), asemănător semnalelor de pauză (break) utilizate în cadrul protocoalelor de consolă. Acum, operațiile HDLC pot fi efectuate prin program, datorită capacității superioare de prelucrare a microprocesoarelor moderne.

Deoarece datele care se transmit sunt examinate bit cu bit pentru a evidenția posibilele pseudomesaje și alterări ale semaforului, HDLS și alte protocoale similare, cum ar fi protocolul Control Sincron al Legăturii de Date (SDLC) al companiei IBM, se numesc protocoale orientate pe bit sau BOP (Bit-Oriented Protocol). Spre deosebire de BiSync și DDCMP (care va fi descris ulterior), zona de text a unui mesaj transmis prin protocolul HDLC poate avea, în principiu, orice număr de biți, iar HDLC este astfel proiectat încât să permită acest lucru. în practică, asemenea protocoalelor BiSync și DDCMP, majoritatea implementărilor BOP restricționează lungimea zonei de text (și de fapt, tot mesajul, inclusiv semaforul) la un multiplu întreg al numărului de biți ai unui caracter (cel mai adesea, opt).

În protocolul HDLC, toate informațiile se transportă prin intermediul cadrelor (frames), care pot fi de trei tipuri: cadre de informații (I-frames), cadre pentru secvențe de supervizare (S-frames) și cadre nenumerotate de comenzi/răspunsuri (U-frames). Figura prezintă un cadru de informații reprezentat ca un bloc rectangular împărțit în șase câmpuri; un câmp pentru semaforul de început (Fi). un câmp de adresă (A), un câmp de control (C), un câmp de informații (I), un câmp pentru secvența de verificare a cadrului (FCS) și un câmp pentru semaforul final (F2). Cadrele de tip U și S conțin aceleași câmpuri, mai puțin câmpul I.

Cadrele de tip 1 asigura transferul informațiilor și transportă în mod independent confirmări pozitive pentru mesaje, precum și biți de interogare și finali. Cadrele de tip S realizează controlul de supervizare al legăturii, asigurând transmiterea de confirmări pozitive pentru mesaje, retransmiterea cererilor și transmiterea cer6rilor de suspendare temporară a transmisiei cadrelor de tip 1 (precum WACK în cadrul protocolului BiSync). Cadrele de tip U asigură un format flexibil pentru datele suplimentare de control al legăturii, prin eliminarea numerelor de secvență ale cadrelor, ceea ce creează loc pentru 32 de comenzi și 32 de funcții de răspuns suplimentare. Câmpurile cadrelor HDLC sunt utilizate după cum urmează:

Câmpul semaforului – Fiecare cadru începe și se încheie cu un semafor, care are reprezentarea binară 01111110. Același semafor încheie un cadru și delimitează începutul cadrului următor. Fiecare stație conectată la legătura de date trebuie să analizeze continuu datele recepționate pentru a identifica acest semafor.

Câmpul de adresă – în cadrele de comenzi, adresa identifică stația de destinație a comenzii. în cadrele de răspuns, adresa identifică stația care trimite răspunsul.

Câmpul de control — Acest câmp cuprinde comenzi și răspunsuri, după cum se arată în figură.

Câmpul de informații – Acest câmp poate conține orice secvență de biți, care, în principiu, nu este necesar să aibă vreo corespondență cu un anumit set de caractere sau cu o anumită structură de date. în realitate, câmpul de informații reprezintă, aproape întotdeauna, un multiplu întreg al lungimii caracterului, care este, în general, de opt biți.

Câmpul secvenței de verificare a cadrului – Pentru protocolul HDLC, secvența de verificare a cadrului, FCS (sau CRC), este ITU-T-CRC, care a fost analizată anterior.

Note:

1. N(S) este numărul de secvență transmis de stația emițătoare, iar bitul 2 este bitul de rang inferior.

2. P/F este bitul de interogare pentru transmisiile stației primare și bitul final al transmisiilor stației secundare.

3. N(R) este numărul de secvență recepționat de stația emițătoare. Bitul 6 este bitul de ordin inferior.

4. S sunt biții funcției de supervizare.

5. M sunt biții funcției de modificare.

Pentru a asigura unicitatea semaforului, echipamentul de transmisie trebuie să monitorizeze fluxul de biți transferați între semaforul de început și cel de sfârșit, pentru a identifica apariția unui șir de cinci biți 1 logic pe rând. Dacă se identifică un asemenea șir, echipamentul de transmisie inserează un bit 0 logic (numit bit de umplere) după cel de-al cincilea bit 1 al secvenței, astfel încât șirul să nu mai reprezinte un semafor. Bitul 0 adăugat este eliminat de către receptor. Această procedură transformă orice șir de biți 1, de lungime mai mare de cinci biți, într-un semafor, într-o eroare a liniei de transmisie sau într-o secvență prestabilită de biți 1, transmisă între cadre. 0 metodă de abandonare a transmisiei unui cadru constă în transferul continuu de biți 1.

Specificarea în cadrul protocolului a unui semafor unic, generat hardware, și a lungimii câmpului de adresă, de control și FCS asigură transparența completă a câmpului de informații. Echipamentul hardware previne transmisia de către programele de aplicație a oricărei secvențe de biți 1 de lungime mai mare de cinci biți, iar biții 0 adăugați prin mijloace hardware sunt eliminați din fluxul de date pe măsură ce ajung la receptor. De asemenea, poziția FCS este definită de recepționarea semaforului final, astfel încât configurația reziduală de biți din registrul CRC poate fi imediat comparată cu valoarea fixă 0001110100001111.

Ordinea de transmisie a biților pentru adrese, comenzi, răspunsuri și pentru secvențele de numere este bine definită: se transmite mai întâi bitul de rang inferior, în timp ce pentru câmpul de informații, această ordine de transmisie a biților nu este specificată. FCS se transmite începând cu coeficientul termenului de grad maxim (x). Un cadru nu este valid dacă nu este delimitat corect de semafoare sau are o lungime mai mică de 32 de biți între semafoare. Cadrele invalide sunt ignorate (spre deosebire de cadrele care au un FCS greșit, care solicită un NAK).

Semantica HDLC

Discuția anterioară s-a axat pe ceea ce se cheamă sintaxa HDLC. Sintaxa este dată de definiția secvențelor de biți și de ordinea de transmisie a acestora pentru a asigura formarea de mesaje corecte, adică mesaje care sunt legale pentru protocolul în cauză. Pentru ca dumneavoastră să înțelegeți ce se întâmplă atunci când se utilizează protocolul HDLC, este necesar să definim conținutul semantic al mesajelor, sau înțelesul care trebuie atribuit mesajelor corect generate.

Secvența normală a mesajelor în cadrul protocolului HDLC constă în transferul unuia sau mai multor cadre care conțin câmpuri de tip I, de la o sursă de date (stația emițătoare) la un receptor de date (stația receptoare). Recepția este confirmată de receptor prin transmiterea unui cadru în direcție inversă. Sursa trebuie să păstreze toate mesajele transmise, până când recepția acestora este confirmată explicit de către receptor. Valoarea indicatorului N(R) indică faptul că stația care transmite N(R) a recepționat corect toate cadrele de tip I, până la cadrul N(R) – 1. Cadrele de tip 1 și cele de tip S (vezi figura 8.13) sunt numerotate cu numere de la 0 la 7 (pentru câmpurile de control neextins). 0 secvență de numărare independentă se generează pentru fiecare combinație sursă de date/receptor de date. Răspunsul unui receptor poate confirma simultan mai multe mesaje recepționate (dar nu mai mult de șapte) și poate fi inclus într-un cadru de tip I, transmis de receptor către sursă.

0 legătură de date constă din două sau mai multe stații de comunicare; din motive de control al transmisiei, una din stații este desemnată a fi stația primară, având responsabilitatea de a administra fluxul de date și procedurile de corecție a erorilor. Stațiile primare trimit cadrele de control. Celelalte stații conectate la legătura de date se numesc stații secundare și acestea comunică utilizând cadre de răspuns. Stațiile primare pot transmite informații stațiilor secundare utilizând bitul de selecție al câmpului de control dintr-un cadru de tip I, iar o stație primară poate permite unei stații secundare să transmită date, prin transferul unui bit de interogare.

Stațiile secundare pot opera într-unul din următoarele moduri de lucru: modul de răspuns normal (Normal Responde Mode – NRM) sau modul de răspuns asincron (Asynchronous Response Mode – ARM). în cazul NRM, stațiile secundare pot transmite numai ca răspuns la o cerere specifică a stației primare sau cu permisiunea acesteia. Stația secundară indică în mod explicit ultimul cadru care urmează a fi transmis, atribuind valoarea 1 ultimului bit din câmpul de control. în cazul ARM, stația secundară poate iniția transmisia în mod independent, fără a primi permisiunea explicită sau cererea de interogare de la stația primară.

Control sincron al legăturii de date (SDLC)

Protocolul standard de control sincron full-duplex al legăturii de date utilizat de compania IBM pentru produsele sale, corespunzător arhitecturii de sistem de rețea proprii IBM, se numește protocol de control sincron al legăturii de date (SDLC), Acest protocol este echivalent funcțional cu protocolul HDLC, cu următoarele excepții:

• Câmpul de informații SDLC trebuie să aibă o lungime egală cu un multiplu întreg de opt biți.

• Produsele IBM curente suportă numai operații normale neechilibrate și proceduri sau clase în modul normal deconectat, așa cum sunt definite în ISO DIS 6159 ?i DIS 4335/DADl.

• Protocolul SDLC cuprinde comenzi suplimentare și răspunsuri nedefinite în Elementele de Procedura ISO – de exemplu, comanda și răspunsul test. Figura precedentă ilustrează structura cadrului SDLC (care este aceeași cu a unui cadru HDLC), precum și modurile uzuale de lucru, comenzile și răspunsurile. 0 examinare atentă a acestei figuri vă va ajuta să înțelegeți formatul SDLC, precum și diferențele dintre protocoalele HDLC și SDLC.

Protocol de mesaje de comunicații digitale (DDCMP)

Aproximativ în aceeași perioadă în care a fost elaborat protocolul SDLC de către compania IBM, George Friend, Steven Russell și Stuart Wecker de la Digital Equipment Corporation au primit sarcina să proiecteze și să dezvolte un protocol sincron. Cerințele de proiectare au fost similare celor impuse înainte de apariția protocoalelor full-duplex, dar cu o importantă specificație suplimentară: protocolul să poată rula pe echipamentele existente de comunicație a datelor și, de preferat, să funcționeze atât pe legături asincrone, cât și pe legături sincrone de date. Rezultatul a fost protocolul de mesaje de comunicații digitale (DDCMP).

DDCMP este mai degrabă un protocol orientat pe caractere decât un protocol orientat pe bit, ca protocolul SDLC. De aceea, protocolul DDCMP nu impune inserarea unui anumit bit și eliminarea acestuia, prin mijloace hardware, și poate fi utilizat cu diferite tipuri de interfețe de linie, inclusiv cu unități asincrone. Pentru a putea identifica BCC la momentul potrivit, metoda de specificare a lungimii unui mesaj constă în includerea în antet a unui câmp de numărare pe 14 biți. Acesta contorizează numărul de caractere din câmpul de informații al unui mesaj. Deoarece transmisia fără erori depinde de detectarea corectă a câmpului de numărare, antetul mesajelor DDCMP are o lungime constantă și dispune de propriul său BCC, care este verificat înainte de recepționarea zonei de informații a mesajului. Formatul mesajelor DDCMP este ilustrat în figura următoare. Analiza detaliată a acestei figuri evidențiază secvențele de biți proprii diferitelor câmpuri ale unui cadru, pentru diferite tipuri de mesaje.

Protocolul DDCMP are două avantaje principale și câteva dezavantaje. Un avantaj este acela că protocolul poate fi utilizat, fără dispozitive hardware speciale, pe canale de date asincrone, sincrone sau chiar paralele. Un alt avantaj este acela că utilizarea câmpului numărului de secvență permite existența simultană pe canalul de transmisie a până la 255 de mesaje, ceea ce reprezintă o cerință a operațiilor full-duplex pe legături prin satelit. Pe de altă parte, nu permite operații în modul de lucru respingere selectivă sau go-back-N și este, în principiu, mai vulnerabil la coruperea mesajelor decât protocoalele orientate pe bit. De asemenea, a fost criticat de multe ori, fără obiect, pentru ineficiență, datorită includerii BCC după antet în cadrele echivalente de tip I. De fapt, pentru mesajele de lungime medie, protocolul DDCMP este chiar mai eficient decât protocoalele care inserează biți, datorită biților suplimentari adăugați de către hardware prin tehnicile orientate pe bit. în practică, alterarea mesajelor nu reprezintă o problemă pentru protocolul DDCMP.

Bibliografie

• GILBERT HELD – Comunicații de date, Editura Teora, București, 1998

• DANIEL BOBOLA – Rețele de calculatoare, Editura Teora, București, 1996

• TIM PARKER – Teach Yourself TCP / IP in 14 Days, Editura Sams Publishing;

• DAVID GARRETT – Intranets Unleashed, Editura Sams Publishing;

• PATRICK SMITH – Client / Server Computing, Editura Sams Publishing;

• Colecția de reviste de specialitate "NET-REPORT', anii 1999-2001, editura Agora Media S.R.L.

• Colecția de reviste de specialitate "CHIP-Computer Magazin", anii 1998-2002

• LAURA LORBER -Most Office Computers Aren't Personal Anymore, http :/www.privacyfoundation. org

• WOLF BLITZER -CNN Correpondent – Privacy in the digital age, http :/www.privacyfoundation. org

Similar Posts