Protokollteknik

Protokollteknik är tillämpningen av systematiska metoder för utveckling av kommunikationsprotokoll . Den använder många av principerna för programvaruutveckling , men den är specifik för utvecklingen av distribuerade system.

Historia

När de första experimentella och kommersiella datornätverken utvecklades på 1970-talet var konceptet med protokoll ännu inte väl utvecklat. Dessa var de första distribuerade systemen . I samband med den nyligen antagna skiktade protokollarkitekturen (se OSI-modellen ), bör definitionen av protokollet för ett specifikt lager vara sådan att varje enhet som implementerar den specifikationen i en dator skulle vara kompatibel med vilken annan dator som helst som innehåller en enhet som implementerar samma specifikationen, och deras interaktioner bör vara sådana att den önskade kommunikationstjänsten skulle erhållas. Å andra sidan bör protokollspecifikationen vara tillräckligt abstrakt för att tillåta olika val för implementering på olika datorer.

Det insågs att en exakt specifikation av den förväntade tjänsten som tillhandahålls av det givna lagret var viktigt. Det är viktigt för verifieringen av protokollet, som ska visa att kommunikationstjänsten tillhandahålls om båda protokollenheterna implementerar protokollspecifikationen korrekt. Denna princip följdes senare under standardiseringen av OSI-protokollstacken , särskilt för transportskiktet .

Det insågs också att någon form av formaliserad protokollspecifikation skulle vara användbar för verifiering av protokollet och för att utveckla implementeringar, såväl som testfall för att kontrollera att en implementering överensstämmer med specifikationen. Medan till en början huvudsakligen finite-state-maskiner användes som (förenklade) modeller av en protokollenhet, standardiserades tre formella specifikationsspråk på 1980-talet, två av ISO och ett av ITU. Den senare, kallad SDL , användes senare inom industrin och har slagits samman med UML-statsmaskiner .

Principer

Skiktad protokollarkitektur
Skiktad protokollarkitektur: Mer abstrakt vy – visar den tillhandahållna kommunikationstjänsten.

Följande är de viktigaste principerna för utveckling av protokoll:

  • Skiktad arkitektur: Ett protokolllager på nivå n består av två (eller flera) enheter som har ett tjänstegränssnitt genom vilket lagrets tjänst tillhandahålls till användarna av protokollet, och som använder tjänsten som tillhandahålls av en lokal enhet av nivå (n-1).
  • Servicespecifikationen för ett lager beskriver, i en abstrakt och global vy, lagrets beteende som synligt vid lagrets tjänstgränssnitt.
  • Protokollspecifikationen definierar de krav som ska uppfyllas av varje enhetsimplementering.
  • Protokollverifiering består av att visa att två (eller flera) enheter som uppfyller protokollspecifikationen kommer att tillhandahålla den specificerade tjänsten för det lagret vid sina tjänstegränssnitt.
  • Den (verifierade) protokollspecifikationen används huvudsakligen för följande två aktiviteter:
  1. Utvecklingen av en enhetsimplementering. Observera att de abstrakta egenskaperna för tjänstegränssnittet definieras av tjänstespecifikationen (och används även av protokollspecifikationen), men gränssnittets detaljerade karaktär kan väljas under implementeringsprocessen, separat för varje enhet.
  2. Utveckling av testsvit för överensstämmelsetestning . Protokollöverensstämmelsetestning kontrollerar att en given enhetsimplementering överensstämmer med protokollspecifikationen. Överensstämmelsetestfallen är utvecklade baserat på protokollspecifikationen och är tillämpliga på alla enhetsimplementeringar. Därför har standardöverensstämmelsetestsviter utvecklats för vissa protokollstandarder.

Metoder och verktyg

Verktyg för aktiviteter som protokollverifiering, enhetsimplementering och utveckling av testsviter kan utvecklas när protokollspecifikationen är skriven på ett formaliserat språk som kan förstås av verktyget. Som nämnts formella specifikationsspråk föreslagits för protokollspecifikation, och de första metoderna och verktygen var baserade på maskinmodeller med finita tillstånd. Tillgänglighetsanalys föreslogs för att förstå alla möjliga beteenden hos ett distribuerat system, vilket är väsentligt för protokollverifiering. Detta kompletterades senare med modellkontroll . Beskrivningar i finita tillstånd är dock inte tillräckligt kraftfulla för att beskriva begränsningar mellan meddelandeparametrar och de lokala variablerna i enheterna. Sådana begränsningar kan beskrivas av de standardiserade formella specifikationsspråken som nämns ovan, för vilka kraftfulla verktyg har utvecklats.

Det är inom området protokollteknik som modellbaserad utveckling användes mycket tidigt. Dessa metoder och verktyg har senare använts för mjukvaruutveckling samt hårdvarudesign, speciellt för distribuerade och realtidssystem. Å andra sidan kan många metoder och verktyg utvecklade i den mer allmänna kontexten av mjukvaruteknik också användas för utveckling av protokoll, till exempel modellkontroll för protokollverifiering och agila metoder för enhetsimplementeringar.

Konstruktiva metoder för protokolldesign

De flesta protokoll är designade av mänsklig intuition och diskussioner under standardiseringsprocessen. Vissa metoder har dock föreslagits för att använda konstruktiva metoder som eventuellt stöds av verktyg för att automatiskt härleda protokoll som uppfyller vissa egenskaper. Följande är några exempel:

  • Halvautomatisk protokollsyntes: Användaren definierar alla meddelandesändande åtgärder för enheterna, och verktyget härleder alla nödvändiga mottagningsåtgärder (även om flera meddelanden är på väg).
  • Synkroniseringsprotokoll: Tillståndsövergångarna för en protokollenhet ges av användaren, och metoden härleder beteendet hos den andra enheten så att den förblir i tillstånd som motsvarar den tidigare enheten.
  • Protokoll härlett från tjänstespecifikationen: Tjänstespecifikationen ges av användaren och metoden härleder ett lämpligt protokoll för alla enheter.
  • Protokoll för kontrolltillämpningar: Specifikationen för en enhet (kallad anläggningen - som måste kontrolleras) ges, och metoden härleder en specifikation av den andra enheten så att vissa feltillstånd i anläggningen aldrig uppnås och vissa givna egenskaper hos anläggningen anläggningens serviceinteraktioner är uppfyllda. Detta är ett fall av tillsynskontroll .

Böcker

  • Ming T. Liu, Protocol Engineering, Advances in Computers , Volym 29, 1989, Sidorna 79-195.
  • GJ Holzmann, Design and Validation of Computer Protocols , Prentice Hall, 1991.
  • H. König, Protocol Engineering , Springer, 2012.
  • M. Popovic, Communication Protocol Engineering , CRC Press, 2nd Ed. 2018.
  • P. Venkataram, SS Manvi, BS Babu, Communication Protocol Engineering , 2014.