X.25 is een door de ITU-T gedefinieerde verzameling netwerkprotocollen voor pakketgeschakelde datacommunicatie over telefoonlijnen.

Geschiedenis

X.25 was de basis voor het eerste openbare gegevensnetwerk. In 1974 werd voor het eerst een aantal sites aan elkaar gelinkt via X.25, namelijk SERCnet (Science and Engineering Research Council Network). Enkele jaren later (1984) werd SERCnet hervormd tot JANET, dat vandaag de dag nog steeds in dienst is maar dan wel als TCP/IP-netwerk. (Hoewel de term X.25 eigenlijk alleen het gebruikte protocol beschrijft, werd in de dagelijkse praktijk vaak het netwerk bedoeld als de term X.25 werd gebruikt. Omgekeerd werd in Nederland de merknaam Datanet 1 regelmatig gebruikt als men eigenlijk een willekeurig openbaar pakketgeschakeld netwerk bedoelde in binnen of buitenland.)

X.25 werd eind jaren 70 commercieel in gebruik genomen. In Nederland werd het openbare netwerk aangeboden onder de naam Datanet 1. Dit openbare netwerk kreeg koppelingen met reeds bestaande (semi-besloten) netwerken van universiteiten die al bestonden. Ook werd Datanet 1 gekoppeld met alle openbare X.25-netwerken in het buitenland. De bedoeling was dat men via X.25 een wereldwijd publiek datanetwerk zou uitbouwen. In de VS toonde men weinig interesse voor X.25 dus echt wereldwijd is het niet geworden.

X.25 is tegenwoordig verouderd; het is bijna overal vervangen door technologieën zoals frame relay, ISDN, ATM, ADSL, POS. Alleen via het signaleringskanaal (het D-kanaal) van ISDN-aansluitingen worden nog wel via een op het X.25-protocol gebaseerd systeem data uitgewisseld. Je kan echter niet zeggen dat het een X.25-netwerk is. De dienst die het voor eindgebruikers mogelijk maakt om het D-kanaal te gebruiken voor datatransport (Digiaccess) staat op de nominatie om te verdwijnen ten gunste van ADSL (zie:ISDN, Hoofdstuk Kenmerken, onderaan)

Werkwijze

Het X.25-protocol gebruikt een verbindingsgerichte service (connection-oriented). Dit wil zeggen dat een computer eerst verbinding moet maken met een andere computer voordat hij kan zenden. Eens de verbinding tot stand is gebracht worden de pakketjes (max. 128 bytes) in de juiste volgorde verzonden. Elke verbinding krijgt een nummer (adres) en dit nummer wordt ook toegevoegd in de pakketjes die verstuurd worden. Dit is noodzakelijk aangezien er meerdere verbindingen tegelijkertijd gemaakt kunnen worden. Dankzij dit verbindingsnummer weet elk pakketje welke verbinding het moet volgen. Deze werkwijze kan goed voorgesteld worden door een telefoongesprek. Hierbij moet men ook eerst verbinding maken via een telefoonnummer (adres) en dan wachten op antwoord (aanvraag tot verbinding) voordat je kan praten (zenden). X.25 voorziet ook doorstroomcontrole en foutvrije overdracht van data. Deze foutvrije afhandeling is te danken aan het LAPB. X.25 bestaat uit drie lagen gebaseerd op de eerste drie lagen van het OSI-model, namelijk de fysieke laag, datalinklaag en netwerklaag. De kenmerken van dit protocol zijn (waren) snelheid, betrouwbaarheid en veiligheid.

Pakketgeschakeld netwerk

X.25 is ontworpen om efficiënt met de bandbreedte om te gaan. Tegenover een circuitgeschakeld netwerk dat heel de lijn gebruikt voor één zender kan een pakketgeschakeld netwerk (zoals X.25) één lijn gebruiken om pakketjes van meerdere zenders door te sturen. Als één zender dus niet de hele bandbreedte gebruikt van de lijn kan via het pakketgeschakeld netwerk bandbreedte verdeeld worden onder andere zenders. Als men een virtuele verbinding maakt lijkt het alsof het netwerk circuitgeschakeld is maar toch worden binnenin pakketjes geschakeld. X.25 is werkzaam in 3 lagen van het OSI-model.

Fysieke laag

De fysieke laag is gespecificeerd door de X.21-, X.21-bis- en V.24-voorschriften.

Datalinklaag

Verzoeken vanuit de netwerklaag worden beantwoord door de datalinklaag. Deze stuurt op zijn beurt verzoeken naar de fysieke laag. De datalinklaag zorgt ervoor dat data betrouwbaar verzonden wordt door de data in kleine pakketjes na elkaar door te sturen. Eén pakketje bevat verschillende soorten informatie zoals adres, controle-informatie, informatievelden en de gebruikersdata. Een adres is belangrijk aangezien er verschillende pakketjes over één lijn gaan. Hierdoor weet de ontvanger welk pakketje van waar afkomstig is.

De taken uitgevoerd door de datalinklaag zijn:

Er kunnen verschillende protocollen gebruikt worden in de datalinklaag:

Netwerklaag

De netwerklaag zorgt ervoor dat zowel gebruikersdata als informatiedata in pakketjes wordt opgedeeld zodanig dat ze verstuurd kunnen worden door de twee onderliggende lagen. De netwerklaag omschrijft procedures voor het uitvoeren van volgende services:

X.75

X.75 is de norm voor het verbinden van twee X.25-netwerken.

Triple X

Om je computer of terminal verbinding te laten maken met een (andere) computer (een "host-systeem") via een pakketgeschakeld netwerk zoals Datanet 1 moet deze natuurlijk wel kunnen omgaan met het X.25-protocol. Veel domme terminals en ook de - destijds snel opkomende - pc's waren wel voorzien van een RS-232 asynchrone interface en modem. Om deze systemen gebruik te kunnen laten maken van een, op X.25 gebaseerd, pakketgeschakeld netwerk moet je de asynchrone datastroom omzetten in een synchrone verbinding en de data correct opdelen in pakketten en voorzien van de juiste headers - en vice-versa. Deze functie kan vervuld worden door een zogenaamde PAD (Packet Assembler Disassembler). Bij dit proces werden drie protocollen gebruikt, nl. X.3, X.28 en X.29 (zie ook ITU-T normen) en werden om die reden ook wel "Tripple X"-devices genoemd. Omdat het via één X.25-link meerdere verbindingen van en naar verschillende bestemmingen mogelijk zijn was het bij veel PAD-devices vaak mogelijk om meerdere computers en/of terminals aan te sluiten. Een PAD was daarom meestal voorzien van één interface richting het pakketgeschakelde netwerk en meerdere asynchrone of RS-232 poorten. In Nederland werd deze functionaliteit ook als dienst aangeboden door de beheerder van Datanet 1 door een PAD achter een modembank te plaatsen. Als iemand met zijn pc of domme terminal verbinding wou maken met een host via een X.25-netwerk bouwde hij eerst verbinding op met een lokale PAD. Nadat de modemverbinding tot stand was gebracht moest de gebruiker inloggen en vervolgens kreeg hij de mogelijkheid een verbinding op te zetten met de gewenste host via het pakket geschakelde netwerk. (Dit proces is te vergelijken met het inbellen op internet' als je geen vaste of wifi (breedband)verbinding hebt.)

Pakketindeling

Controlepakket

Het controlepakket begint, net zoals alle X.25-pakketjes, met een header van 3 bytes. Byte nummer 1 en 2 stellen de groep en het kanaal voor en vormen samen het virtual circuit nummer (12 bits in totaal). Nummer 0 wordt vrijgehouden voor later gebruik dus er kunnen 4095 gelijktijdige, virtuele verbindingen gemaakt worden via één computer.

Soorten controlepakketten

Datapakket

Door middel van de Q-bit in de hoofding van het pakket kunnen de protocollen in de hogere lagen van het OSI-model aanduiden of het gaat om een controlepakket of een datapakket. Dit controleveld is steeds 0 voor datapakketten, 1 voor controlepakketten.

De D-bit duidt aan of de zending geslaagd is of niet. Als de bit 0 is, dan is het pakketje van de gebruiker (zender) goed aangekomen bij de zendeenheid (modem), maar nog niet verzonden naar de ontvanger. Als de bit 1 is betekent dit dat de ontvanger het pakket correct ontvangen heeft via de zendeenheid.

Het sequentieveld en het piggybackveld worden gebruikt om de doorstroom van pakketjes te regelen en te controleren.

Via het More-veld kan men aanduiden dat bepaalde pakketjes bij elkaar horen. De maximumlengte van één pakket is 128 bytes dus dankzij het More-veld kan men toch bestanden groter dan 128 bytes verzenden.

X.25-statusdiagram

Er zijn veel statusdiagrammen mogelijk bij de X.25-norm. Hier vind je het statusdiagram dat de aanvraag voor verbinding voorstelt.

Bij (1) ontvangt de interface een verzoek tot verbinding of verstuurt er zelf een. Twee mogelijkheden:

Als er geen botsing (3) plaatsvindt dan kan na een succesvolle verbindingsaanvraag de data verzonden (4) worden.