Wat is Network Flow Control?
Netwerkstroomcontrole is een middel voor communicatienetwerken om verkeerscongestie op het netwerk te beheren. Verschillende technieken kunnen worden gebruikt voor zowel circuitgebaseerde netwerken als pakketgeschakelde netwerken zoals die op internet worden gebruikt. Door het gebruik van flow control-technieken is het netwerk in staat om de algehele servicekwaliteit te verbeteren en de frequentie van verbroken communicatie te verminderen.
Circuitnetwerken, zoals multiplexnetwerken met tijdverdeling voor bepaalde soorten digitale communicatie, maken doorgaans gebruik van speciale circuits voor communicatie. In deze gevallen loopt het netwerk mogelijk niet alle beschikbare kanalen voor bandbreedte. Als een kanaal inactief is terwijl ander verkeer wacht om te worden verzonden, kunnen netwerkstroombesturingstechnieken worden geïmplementeerd om de reeks beschikbare communicatiecircuits in evenwicht te brengen.
Met dergelijke circuitnetwerken wordt een techniek die bekend staat als verbindingstoegangsbesturing (CAC) gebruikt voor juiste netwerkstroombesturing. Algoritmen worden gebruikt om het netwerk te observeren en beslissingen te nemen of beschikbare bronnen kunnen worden gebruikt. Over het algemeen werken de algoritmen om het gebruik van een circuit mogelijk te maken, afhankelijk van de evaluatie van bepaalde variabelen, zoals het type service dat nodig is, de kwaliteit van de service waaraan moet worden voldaan, en andere verkeersinformatie zoals de piektarieven en duurzame tarieven. Een nadeel is dat sommige CAC-methoden ook prioriteit geven aan de beschikbare circuits, waardoor sommige circuits worden gereserveerd voor incidentele verbindingen met hoge prioriteit, wat het doel tenietdoet, omdat die circuits nog steeds inactief blijven als er geen communicatie met hoge prioriteit is tijdens het transport.
Met pakketgeschakelde netwerken kunnen talloze mogelijke technieken voor netwerkstroomregeling worden geïmplementeerd, afhankelijk van het type netwerk of beschikbare software of hardware. In de meeste gevallen gebruikt een pakketgeschakeld netwerk een soort buffer, wat een opslagmechanisme is voor het vastleggen van datapakketten wanneer deze van een afzender worden ontvangen. De pakketten gaan in de buffer en de ontvangende toepassing trekt ze uit voor gebruik. Als de verzendende verzending sneller is dan het vermogen van het ontvangende uiteinde om de gegevens uit de buffer te verwerken, kan deze snel worden gevuld.
In TCP-netwerken (Transmission Control Protocol) kan netwerkstroombesturing worden aangepakt via een techniek die bekend staat als window scaling. Dankzij het drieweg-handshaking dat plaatsvindt tijdens een TCP-verbinding kan informatie over de venstergrootte van de ontvanger worden overgebracht. Op deze manier kan de ontvanger de afzender laten weten hoeveel bufferruimte beschikbaar is, zodat de afzender kan voorkomen dat er te veel gegevens worden verzonden.
Het aanbevolen standaard 232 (RS-232) telecommunicatie-item bespreekt ook bepalingen voor het omgaan met netwerkstroombesturing in geserialiseerde netwerken. Met RS-232 valt het uiteen in een op software gebaseerde oplossing of een op hardware gebaseerde oplossing. De softwaretechniek is ook bekend als XON-XOFF-stroomregeling, waarbij een XON-signaal wordt verzonden door de ontvanger waarin wordt verklaard dat het gegevens kan ontvangen, en XOFF wanneer het een volledige buffer heeft. Er kunnen fouten optreden als het communicatiesignaal slecht is, waardoor de afzender mogelijk geen XOFF-signaal ontvangt en pakketten naar de ontvanger blijft duwen. De stroombesturingssignalen worden ook verzonden via hetzelfde kanaal als de datacommunicatie, die een kleine hoeveelheid bandbreedte gebruikt.
Op hardware gebaseerde netwerkstroombesturing is daarentegen veel betrouwbaarder ten koste van het implementeren van extra, fysieke lijnen. In dit geval worden afzonderlijke transmissiebesturingslijnen ingesteld: de ene wordt een RTS-lijn (request to send) genoemd en de andere is de CTS-lijn (clear to send). Het verzendende einde kondigt zijn intentie aan om over de RTS-lijn te zenden, en de ontvanger kondigt zijn vermogen aan om via de CTS-lijn te ontvangen.