DCAP | |
---|---|
Nume | Protocol de acces la client de comutare a legăturii de date |
Nivel (conform modelului OSI ) | Aplicat |
Creat în | 1997 |
Port/ID | 1973/ TCP |
Specificație | RFC 2114 |
DCAP ( Data Link Switching Client Access Protocol ) este un protocol utilizat între stațiile de lucru și routere pentru a transporta traficul SNA/NetBIOS prin sesiuni TCP.
În rețelele mari, DCAP rezolvă problema scalabilității prin reducerea semnificativă a numărului de noduri de rețea care se conectează la routerul central. Stațiile de lucru (clienți DCAP) și routerul (server DCAP) formează o structură ierarhică, stabilind o relație Client/Server .
Stațiile de lucru (clienți DCAP) și routerul (server DCAP) stabilesc o relație Client/Server. Stațiile de lucru se conectează numai la serverul DCAP. La rândul său, serverul are o singură conexiune peer-to-peer - cu routerul central.
Protocolul TCP este utilizat pentru a transfera date între server și client . Este stabilită o singură conexiune TCP între client și server, care este utilizată atât pentru citire, cât și pentru scriere. O condiție de cursă apare atunci când atât serverul, cât și clientul încearcă să stabilească o sesiune TCP în același timp. În acest caz, se va selecta sesiunea pentru comunicare, în care inițiatorul are o valoare mai mică a adresei IP ; celălalt va fi închis.
Pentru a stabili o sesiune pe partea client, stația de lucru trimite o solicitare directă către server prin adresa IP. Solicitarea conține adresa MAC și SAP (Service Access Point) al nodului destinație. Stația de lucru poate fie să specifice propria adresă MAC, fie să solicite serverului să atribuie una. Adresa IP a serverului trebuie să fie preînregistrată pe stația de lucru. Dacă pe stația de lucru sunt specificate mai multe servere, atunci cererea poate fi trimisă tuturor. Primul server care răspunde va fi selectat pentru lucrări ulterioare.
Pentru a stabili o sesiune, serverul trimite o solicitare directă stației de lucru. Pentru a face acest lucru, serverul trebuie să-și cunoască în prealabil adresa MAC.
Mesaj | ||
---|---|---|
Antet DCAP | Date DCAP | Datele utilizatorului |
DCAP Header (Header) - primul bloc al mesajului - este obligatoriu pentru toate mesajele trimise între clientul DCAP și server. Are o lungime de 4 octeți.
Bloc de date
DCAP . Structura și dimensiunea blocului se bazează pe tipul de mesaj specificat în antet. Datele DCAP sunt folosite pentru a procesa mesajul. Blocul este optional.
Date utilizator - conțin datele utilizator trimise între clienți și server. Mărimea acestui bloc este variabilă. Inclus în mesaj numai atunci când sunt necesare date de trimis.
Antetul specifică tipul și lungimea mesajului.
octet | Antet pachet DCAP | ||
---|---|---|---|
0 | ID protocol | Versiunea numarul | |
unu | Tipul mesajului | ||
2 | Lungimea mesajului | ||
3 |
Tipul de mesaj poate lua una dintre următoarele valori (nu sunt listate toate valorile posibile):
Nume | Sens | Sens |
---|---|---|
CAN_U_REACH | 0x01 | Indică dacă stația dată este accesibilă |
EU_POT_ADERE | 0x02 | Răspuns pozitiv la semnalizarea CAN_U_REACH |
NU POT SA AJUNG | 0x03 | Răspuns negativ la semnalizarea CAN_U_REACH |
START_DL | 0x04 | Configurarea unei sesiuni pentru aceste adrese |
DL_STARTED | 0x05 | Începerea sesiunii cu succes |
START_DL_FAILED | 0x06 | Începerea sesiunii nereușită |
XID_FRAME | 0x07 | Cadrul XID |
CONTACT_STN | 0x08 | Setați modul SABME cu destinația |
STN_CONTACTATE | 0x09 | Stație disponibilă - setați modul SABME |
DATA_FRAME | 0x0A | Trimite datagrama SNA/NetBIOS fără a stabili o conexiune |
INFO_FRAME | 0x0B | I-Frame cu conexiune |
HALT_DL | 0x0C | Încheiați sesiunea |
HALT_DL_NOACK | 0x0D | Închideți sesiunea fără a primi confirmarea |
DL_HALTED | 0x0E | Sesiunea a fost încheiată. |
DGRM_FRAME | 0x11 | datagrama pentru schema |
CAP_XCHANGE | 0x12 | Capabilitati de mesagerie. |
CLOSE_PEER_REQUEST | 0x13 | Solicitare de deconectare. |
CLOSE_PEER_RESPONSE | 0x14 | Răspuns la CLOSE_PEER_REQUEST |
PEER_TEST_REQ | 0x1D | Cerere de testare a conexiunii |
PEER_TEST_RSP | 0x1E | Răspunsul la testul conexiunii |
Structura și dimensiunea blocului depind de tipul de mesaj specificat în antet. Acest bloc nu conține date utilizator. Este important de reținut că câmpurile rezervate trebuie să fie setate la 0 în mesajul trimis, iar partea care primește trebuie să ignore aceste câmpuri.
Următoarea diagramă arată ordinea în care mesajele sunt schimbate între client și server pentru începutul și sfârșitul sesiunii normale.