Autonegotiatie
Autonegotiatieis een mechanisme om gemeenschappelijke transmissieparameters zoals snelheid,half/full-duplexenflow controlte bepalen tussen twee apparaten die verbonden zijn viatwisted pair-Ethernet.In dit proces delen de aangesloten apparaten eerst hun mogelijkheden met betrekking tot deze parameters en kiezen vervolgens de transmissiemodus met de hoogste prestaties die ze allebei ondersteunen.
Autonegotiatie wordt gedefinieerd in clausule 28 van IEEE 802.3[1]en was oorspronkelijk een optioneel onderdeel van deFast Ethernet-standaard.[2]Het isachterwaarts compatibelmet denormal link pulses(NLP) die door10BASE-Tworden gebruikt.[3]Het protocol is aanzienlijk uitgebreid in deGigabit Ethernet-standaard en is verplicht voor1000BASE-Tgigabit Ethernet via twisted pair.
In hetOSI-modelbevindt autonegotiatie zich in defysieke laag.
Geschiedenis
[bewerken|brontekst bewerken]In 1995 werd de Fast Ethernet-standaard uitgebracht. Omdat hierdoor een nieuwe snelheidsoptie voor dezelfde netwerkkabels werd geïntroduceerd, werd er een manier voorzien waarmee aangesloten netwerkadapters konden onderhandelen over de best mogelijke gedeelde werkingsmodus. Het autonegotiatie-protocol dat opgenomen is in IEEE 802.3 clausule 28 is ontwikkeld op basis van de gepatenteerdeNWay-technologie vanNational Semiconductor.Het bedrijf gaf iedereen de toelating om hun systeem tegen een eenmalige licentievergoeding te gebruiken.[4]Een ander bedrijf heeft inmiddels de rechten op dat patent gekocht.[5]
De eerste versie van de autonegotiatie-specificatie, die gedefinieerd werd in de IEEE 802.3u Fast Ethernet-standaard uit 1995, werd door verschillende fabrikanten op verschillende manieren geïmplementeerd, wat tot interoperabiliteitsproblemen leidde. Deze problemen brachten veel netwerkbeheerders ertoe de snelheid en duplexmodus van elke netwerkinterface handmatig in te stellen. Het gebruik van handmatig ingestelde configuraties kan echter ook leiden tot duplex-problemen die moeilijk te analyseren zijn omdat het netwerk nominaal functioneert: eenvoudige programma's die gebruikt worden om het netwerk te testen, zoalsping,rapporteren een geldige verbinding. De netwerkprestaties worden echter aanzienlijk beïnvloed.
De autonegotiatie-specificatie werd verbeterd in de versie van IEEE 802.3 uit 1998. Vervolgens werd in 1999 de IEEE 802.3ab Gigabit Ethernet-standaard uitgebracht, die autonegotiatie verplicht maakte voor1000BASE-T.Autonegotiatie is ook verplicht voor1000BASE-TX- en10GBASE-T-implementaties. Fabrikanten van netwerkapparatuur raden aan om autonegotiatie op allenetwerkpoortente gebruiken en bieden het aan als standaard ingeschakelde fabrieksinstelling.[6][7][8]
Werking
[bewerken|brontekst bewerken]Autonegotiatie kan gebruikt worden door apparaten die in staat zijn tot meer dan één transmissiesnelheid, verschillende duplexmodi (half-duplexenfull-duplex) en verschillende transmissiestandaarden met dezelfde snelheid, hoewel in de praktijk slechts één standaard voor elke snelheid algemeen ondersteund wordt.
Tijdens het autonegotiatie-proces geeft elk apparaat zijn technologische mogelijkheden aan. Er wordt gekozen voor de beste algemene modus, waarbij een hogere snelheid de voorkeur geniet, en waarbij full-duplex boven half-duplex verkozen wordt bij dezelfde snelheid.
Wanneer een apparaat dat uitgerust is met autonegotiatie verbonden wordt met een apparaat dat niet over die mogelijkheid beschikt, wordt parallelle detectie gebruikt. Dit is ook het geval wanneer autonegotiatie uitgeschakeld werd op een van de apparaten. Bij parallelle detectie kan het apparaat dat in staat is tot autonegotiatie de snelheid bepalen en afstemmen op het andere apparaat. Deze procedure kan de duplexinstelling niet bepalen, dus wordt altijd uitgegaan van half-duplex.
Bij Gigabit Ethernet wordt autonegotiatie, naast het instellen van de snelheids- en duplexmodus, ook gebruikt om demaster/slave-instellingen te bepalen.[9]
Duplex-problemen
[bewerken|brontekst bewerken]Er treedt een duplex-probleem op (in het Engels spreekt men van een "duplex mismatch" ) wanneer twee aangesloten apparaten een verschillende duplex-instelling gebruiken. Dit kan bijvoorbeeld gebeuren als het ene apparaat geconfigureerd is voor autonegotiatie, terwijl op het andere apparaat de duplexmodus handmatig op full-duplex ingesteld werd. In dergelijke omstandigheden detecteert het ene apparaat correct de werkingssnelheid via autonegotiatie, maar is het niet in staat om de duplexmodus correct te detecteren. Als gevolg hiervan wordt wel de juiste snelheid ingesteld, maar wordt de half-duplexmodus aangenomen.
Bij een dergelijk duplex-probleem blijft communicatie over het netwerk mogelijk. Individuele netwerkpakketten worden nog steeds verzonden en bevestigd. Daarom zal een ping-opdracht geen problemen aan het licht brengen: de pakketten worden verstuurd en bevestigd met intervallen van één seconde. Eenterminalsessiezal ook geen problemen ondervinden omdat de gegevens relatief langzaam verstuurd worden. Het is pas wanneer een van beide apparaten een grote hoeveelheid gegevens probeert te verzenden dat het netwerk sterk vertraagt.
De oorzaak van deze vertraging is omdat beide uiteinden van de verbinding tegelijkertijd gegevens proberen te versturen. Dit gebeurt zelfs bij een grote gegevensoverdracht viaTCPwanneer het lijkt alsof de verbinding maar in één richting gebruikt wordt: de gegevens worden in meerderepakkettenverzonden, waarvan sommige een bevestigingspakket terug naar de afzender zullen activeren. Dit heeft tot gevolg dat pakketten tegelijkertijd in beide richtingen worden verzonden.
Voor het apparaat dat in full-duplexmode werkt is dat geen probleem, dat kan tegelijkertijd pakketten sturen en ontvangen. Het apparaat dat in half-duplexmode werkt kan echter geen pakketten ontvangen terwijl het gegevens aan het verzenden is en zal dus een "collision" (een botsing tussen binnenkomende en uitgaande pakketten) detecteren. Het apparaat stopt daardoor met verzenden en probeert het later opnieuw, conformCSMA/CD.Dit heeft als resultaat dat pakketten van het full-duplexapparaat weggegooid worden vanwege vermeende collisions en pakketten van het half-duplexapparaat vertraging oplopen of verloren gaan.[10]
Hetfoutdetectie en -correctiemechanismevan TCP zal in werking treden, maar ook die pakketten zullen op exact dezelfde manier verloren gaan. Uiteindelijk zal TCP stoppen met het versturen van nieuwe gegevens tot er een bevestiging ontvangen wordt van eerder verstuurde pakketten. Omdat er op dat moment enkel nog hertransmissies en bevestigingen overblijven en omdat het interval voor hertransmissie steeds groter wordt tussen pogingen, zal er uiteindelijk een hertransmissie plaatsvinden wanneer er geen omgekeerd verkeer op de verbinding is, waardoor de bevestiging ontvangen wordt. Hierdoor wordt het TCP-verkeer opnieuw opgestart, wat op zijn beurt onmiddellijk weer tot collisions en verloren pakketten leidt.
Om duplex-problemen te vermijden moeten beide apparaten dus op dezelfde manier geconfigureerd worden, hetzij beide in autonegotiatiemode of beide handmatig. Wanneer er geen andere optie is dan de ene kant handmatig en de andere kant in autonegotiatie te configureren, dan moet half-duplex gebruikt worden.
Prioriteit
[bewerken|brontekst bewerken]Na ontvangst van de technologische mogelijkheden van het andere apparaat, beslissen beide apparaten over de best mogelijke werkingsmodus die ze beide ondersteunen. Van de modi die door beide apparaten worden ondersteund, kiest elk apparaat degene met de hoogste prioriteit. De prioriteit tussen de modi is als volgt:[11]
- 40GBASE-T full duplex
- 25GBASE-T full duplex
- 10GBASE-T full duplex
- 5GBASE-T full duplex
- 2.5GBASE-T full duplex
- 1000BASE-T full duplex
- 1000BASE-T half duplex
- 100BASE-T2 full duplex
- 100BASE-TX full duplex
- 100BASE-T2 half duplex
- 100BASE-T4 half duplex
- 100BASE-TX half duplex
- 10BASE-T full duplex
- 10BASE-T half duplex
Vanwege zijn specifieke werking heeft Ethernet over een enkel draadpaar zijn eigen, optionele variant van autonegotiatie. Er wordt gebruik gemaakt van differentiële Manchester-encodering (DME) om transmissieparameters uit te wisselen op een half-duplex manier. De prioriteit tussen de modi is als volgt:[12]
- 10GBASE-T1
- 5GBASE-T1
- 2.5GBASE-T1
- 1000BASE-T1
- 100BASE-T1
- 10BASE-T1S full duplex
- 10BASE-T1S half duplex
- 10BASE-T1L
Externe links
[bewerken|brontekst bewerken]- (en)Eggers, Jim;Hodnett, Steve,Ethernet Autonegotiation Best Practices().Sun BluePrints™ OnLine.Sun Microsystems (juli 2004). Gearchiveerd op24 juli 2004.
- (en)Hernandez, Rich,Gigabit Ethernet Auto-Negotiation().PowerSolutions.Dell (2001).
Dit artikel of een eerdere versie ervan is een (gedeeltelijke) vertaling van het artikelAutonegotiationop de Engelstalige Wikipedia, dat onder de licentieCreative Commons Naamsvermelding/Gelijk delenvalt. Zie debewerkingsgeschiedenisaldaar.
- ↑(en)IEEE Std 802.3™-2022: IEEE Standard for Ethernet.IEEE.DOI:10.1109/IEEESTD.2022.9844436(13 mei 2022), "28. Physical Layer link signaling for Auto-Negotiation on twisted pair", p. 933-987.
- ↑(en)Jayaswal, Kailash(2006).Administering Data Centers Servers, Storage, and Voice over IP.John Wiley & Sons, pp. 168.ISBN 978-04-717-7183-8.
- ↑(en)Minoli, Daniel,Schmidt, Andrew(1998).Network Layer Switched Services.Wiley Computer Pub., p. 93.ISBN 978-04-711-9080-6.
- ↑(en)Toelating van National Semiconductor() (7 juni 1994). Gearchiveerd op19 november 2008.
- ↑(en)Negotiated Data Solutions LLC,NWay/IEEE Standard Patent License Offer.Negotiateddata(2008). Gearchiveerd op6 januari 2009.
- ↑(en)Configure and Verify Ethernet 10/100/1000Mb Half/Full Duplex Auto-Negotiation.Cisco (13 september 2023). “Cisco recommends to leave auto-negotiation on for those devices compliant with 802.3u.”
- ↑(en)Eggers, Jim;Hodnett, Steve,Ethernet Autonegotiation Best Practices().Sun BluePrints™ OnLine.Sun Microsystems (juli 2004). Gearchiveerd op24 juli 2004.“Using autonegotiation is the IEEE 802.3 standard and customers are encouraged to follow the" intent "of IEEE 802.3u/z standards and implement autonegotiation in their Ethernet environments.”
- ↑(en)Hernandez, Rich,Gigabit Ethernet Auto-Negotiation().PowerSolutions.Dell (2001).
- ↑(en)DP83865 Gig PHYTER V 10/100/1000 Ethernet Physical Layer(). National Semiconductor (oktober 2004).
- ↑(en)Donahue, Gary A.(juni 2007).Network Warrior,1. O'Reilly., pp. 20-22.ISBN 978-05-961-0151-0.
- ↑(en)IEEE Std 802.3™-2022: IEEE Standard for Ethernet.IEEE.DOI:10.1109/IEEESTD.2022.9844436(13 mei 2022), "Annex 28B. IEEE 802.3 Selector Base Page definition", p. 6350-6352.
- ↑(en)IEEE Std 802.3™-2022: IEEE Standard for Ethernet.IEEE.DOI:10.1109/IEEESTD.2022.9844436(13 mei 2022), "Annex 98B. IEEE 802.3 Selector Base Page definition", p. 6735-6736.