HDLC (High-Level Data Link Control) *kan* worden gebruikt als datalinklaagprotocol voor een LAN in Java, maar het is zeer onconventioneel en wordt over het algemeen niet aanbevolen. Dit is waarom:
* Bestaande normen: LAN's maken overwegend gebruik van Ethernet (en varianten daarvan, zoals Wi-Fi, dat 802.11 gebruikt). Ethernet is een volwassen, goed ondersteunde en sterk geoptimaliseerde technologie. Het implementeren van HDLC zou het creëren van een compleet nieuwe infrastructuur en stuurprogramma's vereisen, waarbij alle bestaande hardware en software die voor Ethernet zijn ontworpen, worden omzeild.
* Complexiteit: HDLC is een complexer protocol dan Ethernet. Het correct implementeren ervan in Java zou aanzienlijke inspanningen en expertise vereisen op het gebied van netwerkprogrammering en protocolontwerp. Je zou te maken krijgen met frameformattering, foutdetectie, flow control en mogelijk verschillende HDLC-modi (normale respons, asynchrone respons, asynchroon gebalanceerd).
* Gebrek aan hardwareondersteuning: De meeste netwerkinterfacekaarten (NIC's) zijn niet ontworpen om rechtstreeks met HDLC te werken. U zult waarschijnlijk op een zeer laag niveau moeten werken (mogelijk rechtstreeks door de registers van de NIC te manipuleren) om HDLC-frames te verzenden en te ontvangen. Dit is lastig en platformafhankelijk.
* Interoperabiliteit: Als u een op HDLC gebaseerd LAN zou bouwen, zou het niet kunnen samenwerken met bestaande op Ethernet gebaseerde netwerken. Dit beperkt het praktische gebruik ervan ernstig.
Als u HDLC om een zeer specifieke reden *moet* gebruiken (bijvoorbeeld een zeer gespecialiseerd ingebed systeem of een onderzoeksproject), kunt u dit als volgt aanpakken in Java:
1. Netwerktoegang op laag niveau: U zult waarschijnlijk de NIO-bibliotheken (New I/O) van Java moeten gebruiken om directe toegang tot de netwerkinterface te krijgen. Dit is zeer geavanceerd en foutgevoelig. Mogelijk moet u zelfs JNI (Java Native Interface) gebruiken om native code (C/C++) aan te roepen voor interactie op laag niveau met de hardware.
2. Implementatie van HDLC-frames: U moet Java-klassen maken om HDLC-frames weer te geven, inclusief velden voor adres, besturing en informatie.
3. Foutdetectie en -correctie: Implementeer Cyclic Redundancy Check (CRC)-berekeningen voor foutdetectie. U moet ook de hertransmissies afhandelen als er fouten worden gedetecteerd.
4. Stroomcontrole: Implementeer een stroomcontrolemechanisme (zoals een schuifraam) om te voorkomen dat de zender de ontvanger overweldigt.
5. Testen: Rigoureuze tests zijn essentieel vanwege de complexiteit van HDLC.
Samengevat: Hoewel het technisch mogelijk is, is het bouwen van een op HDLC gebaseerd LAN in Java een aanzienlijk uitdagende onderneming met weinig praktisch voordeel. Het wordt sterk aanbevolen om vast te houden aan standaard Ethernet-protocollen voor elke echte LAN-toepassing. Als dit een academische oefening is, zou het focussen op een kleiner, beter beheersbaar aspect van HDLC (bijvoorbeeld het parseren van frames) een realistischer doel zijn. |