NULMODEM protocol
Het NULMODEM protocol is een eenvoudig te implementeren protocol om twee computers met elkaar te laten communiceren. De twee computers dienen via een zogenaamde "nulmodem" kabel, verkrijgbaar bij de computer(onderdelen) leverancier, gekoppeld te worden. Als hardware wordt hierbij gebruik gemaakt van de standaard seriële (RS232) interface. Op een PC zijn dit COM1, COM2, COM3 en/of COM4. Standaard dient te worden gecommuniceerd op 9600 baud, 8 data bits, 1 stop bit, geen pariteit.
In de nu volgende beschrijving geldt het volgende:
Als een computer een bericht wil versturen naar de andere computer stuurt hij eerst het start teken S en wacht op terugontvangst hiervan. De ontvangende computer zal namelijk alle ontvangen tekens onveranderd terugsturen. Nadat het start teken S is terugontvangen wordt het bericht per letterteken verzonden, waarbij bij elk letterteken telkens wordt gewacht op terugontvangst. Als het gehele bericht verzonden is, wordt geëindigd door het sturen van het einde teken E, waarbij weer gewacht wordt op terugontvangst. Het versturen van het bericht is nu afgerond.
Het ontvangende programma wacht eerst op het start teken S en stuurt dat teken terug. Vervolgens stuurt het ontvangende programma elk ontvangen letterteken van het bericht terug en bewaart elk ontvangen letterteken in een bericht-buffer die 127 lettertekens kan bevatten. Dit gaat zo door totdat het E teken wordt ontvangen. Het E teken wordt weer teruggestuurd. De ontvangst van het bericht is nu afgerond.
Als het verzendende programma na het sturen van een letterteken een ander letterteken terugontvangt is er dus iets mis gegaan met de communicatie. Het maakt hierbij niet uit of het gestuurde letterteken de S of de E is, of een letterteken uit het bericht. Het verzendende programma begint dan weer van voren af aan met het sturen van het bericht. Dus met het sturen van het start teken S.
Als het ontvangende programma een S ontvangt ongeacht waar dit gedurende de communicatie plaatsvindt, gaat het ontvangende programma er van uit dat het bericht in zijn geheel opnieuw gestuurd gaat worden. Het ontvangen S teken wordt dus teruggestuurd en het vullen van de bericht-buffer begint weer van voren af aan.
Als het verzendende programma na het verzenden van een letterteken (S, E of uit het bericht) gedurende 5 seconden helemaal niets terugontvangt, is er dus iets mis gegaan met de communicatie. Het verzendende programma begint dan weer van voren af aan met het sturen van het start teken S.
Het ontvangende programma heeft geen soortgelijke time-out functie. Dit is niet nodig want na een time-out van 5 seconden wordt door het verzendende programma een S gestuurd, en begint het verzenden en ontvangen van het bericht weer van voren af aan.
Om de implementatie te vergemakkelijken is pseudo code beschikbaar.