DCAP | |
---|---|
namn | Data Link Switching Client Access Protocol |
Nivå (enligt OSI-modellen ) | Applicerad |
Skapad i | 1997 |
Port/ID | 1973/ TCP |
Specifikation | RFC 2114 |
DCAP ( Data Link Switching Client Access Protocol ) är ett protokoll som används mellan arbetsstationer och routrar för att transportera SNA/NetBIOS-trafik över TCP-sessioner.
I stora nätverk löser DCAP problemet med skalbarhet genom att avsevärt minska antalet nätverksnoder som ansluter till den centrala routern. Arbetsstationerna (DCAP-klienter) och routern (DCAP-server) bildar en hierarkisk struktur som upprättar en klient/server- relation .
Arbetsstationerna (DCAP-klienter) och routern (DCAP-server) upprättar en klient/server-relation. Arbetsstationer ansluter endast till DCAP-servern. Servern har i sin tur en enda peer-to-peer-anslutning – med den centrala routern.
TCP- protokollet används för att överföra data mellan servern och klienten . Endast en TCP-anslutning upprättas mellan klienten och servern, som används för både läsning och skrivning. Ett racetillstånd uppstår när både servern och klienten försöker upprätta en TCP-session samtidigt. I detta fall kommer sessionen att väljas för kommunikation, där initiatorn har ett lägre värde på IP- adressen; den andra kommer att stängas.
För att upprätta en session på klientsidan skickar arbetsstationen en direktförfrågan till servern via IP-adress. Begäran innehåller MAC-adressen och SAP (Service Access Point) för destinationsvärden. Arbetsstationen kan antingen ange sin egen MAC-adress eller be servern att tilldela en. Serverns IP-adress måste vara förregistrerad på arbetsstationen. Om flera servrar är specificerade på arbetsstationen kan begäran skickas till alla. Den första servern som svarar kommer att väljas för vidare arbete.
För att upprätta en session skickar servern en direktförfrågan till arbetsstationen. För att göra detta måste servern känna till sin MAC-adress i förväg.
Meddelande | ||
---|---|---|
DCAP-huvud | DCAP-data | Användardata |
DCAP Header (Header) - det första blocket i meddelandet - är obligatoriskt för alla meddelanden som skickas mellan DCAP-klienten och servern. Den har en längd på 4 byte.
DCAP
Datablock . Blockstrukturen och storleken baseras på meddelandetypen som anges i rubriken. DCAP-data används för att bearbeta meddelandet. Blocket är valfritt.
Användardata - innehåller användardata som skickas mellan klienter och servern. Storleken på detta block är variabel. Ingår i meddelandet endast när det finns nödvändig data att skicka.
Rubriken anger typen och längden på meddelandet.
Byte | DCAP-pakethuvud | ||
---|---|---|---|
0 | Protokoll-ID | Versionsnummer | |
ett | Meddelandetyp | ||
2 | Meddelandets längd | ||
3 |
Meddelandetypen kan ha ett av följande värden (inte alla möjliga värden är listade):
namn | Menande | Menande |
---|---|---|
CAN_U_REACH | 0x01 | Indikerar om den givna stationen är nåbar |
I_CAN_REACH | 0x02 | Positivt svar på CAN_U_REACH-flaggan |
JAG NÅR INTE | 0x03 | Negativt svar på CAN_U_REACH-flaggan |
START_DL | 0x04 | Skapa en session för givna adresser |
DL_STARTADE | 0x05 | Lyckad sessionsstart |
START_DL_FAILED | 0x06 | Misslyckad sessionsstart |
XID_FRAME | 0x07 | Ram XID |
CONTACT_STN | 0x08 | Ställ in SABME-läge med destination |
STN_CONTACTED | 0x09 | Station tillgänglig - ställ in SABME-läge |
DATA_FRAME | 0x0A | Skicka SNA/NetBIOS-datagram utan att upprätta en anslutning |
INFO_FRAME | 0x0B | I-Frame med anslutning |
HALT_DL | 0x0C | Avsluta sessionen |
HALT_DL_NOACK | 0x0D | Avsluta sessionen utan att få bekräftelse |
DL_HALTED | 0x0E | Sessionen har avslutats. |
DGRM_FRAME | 0x11 | datagram för schema |
CAP_XCHANGE | 0x12 | Meddelandefunktioner. |
CLOSE_PEER_REQUEST | 0x13 | Kopplingsförfrågan. |
CLOSE_PEER_RESPONSE | 0x14 | Svar på CLOSE_PEER_REQUEST |
PEER_TEST_REQ | 0x1D | Anslutningstestbegäran |
PEER_TEST_RSP | 0x1E | Anslutningstestsvar |
Strukturen och storleken på blocket beror på vilken typ av meddelande som specificerades i rubriken. Detta block innehåller inte användardata. Det är viktigt att notera att de reserverade fälten måste sättas till 0 i meddelandet som skickas, och den mottagande sidan måste ignorera dessa fält.
Följande diagram visar i vilken ordning meddelanden utbyts mellan klient och server för normal sessionsstart och -slut.