Protokol engineering - Protocol engineering

Protokolteknik er anvendelse af systematiske metoder til udvikling af kommunikationsprotokoller . Det bruger mange af principperne for software engineering , men det er specifikt for udviklingen af ​​distribuerede systemer.

Historie

Da de første eksperimentelle og kommercielle computernetværk blev udviklet i 1970'erne, var konceptet med protokoller endnu ikke godt udviklet. Disse var de første distribuerede systemer . I forbindelse med den nyligt vedtagne lagdelte protokolarkitektur (se OSI-model ) skal definitionen af ​​protokollen for et specifikt lag være sådan, at enhver enhed, der implementerer denne specifikation på en computer, er kompatibel med enhver anden computer, der indeholder en enhed, der implementerer den samme specifikation, og deres interaktioner skal være sådan, at den ønskede kommunikationstjeneste opnås. På den anden side skal protokolspecifikationen være abstrakt nok til at tillade forskellige valg til implementering på forskellige computere.

Det blev erkendt, at en nøjagtig specifikation af den forventede service leveret af det givne lag var vigtig. Det er vigtigt for verifikationen af ​​protokollen, som skal demonstrere, at kommunikationstjenesten leveres, hvis begge protokolenheder implementerer protokolspecifikationen korrekt. Dette princip blev senere fulgt under standardiseringen af OSI-protokolstakken , især for transportlaget .

Det blev også erkendt, at en eller anden form for formaliseret protokolspecifikation ville være nyttig til verifikation af protokollen og til udvikling af implementeringer såvel som testcases til kontrol af overensstemmelse med en implementering i forhold til specifikationen. Mens oprindeligt hovedsagelig finite-state maskine blev brugt som (forenklede) modeller af en protokolenhed, blev i 1980'erne tre formelle specifikationssprog standardiseret, to af ISO og et af ITU. Sidstnævnte, kaldet SDL , blev senere brugt i industrien og er blevet fusioneret med UML-statsmaskiner .

Principper

Image
Lagdelt protokolarkitektur
Image
Lagdelt protokolarkitektur: Mere abstrakt visning - viser den leverede kommunikationstjeneste.

Følgende er de vigtigste principper for udvikling af protokoller:

  • Lagdelt arkitektur: Et protokollag på niveau n består af to (eller flere) enheder, der har en servicegrænseflade, gennem hvilken lagets service leveres til brugerne af protokollen, og som bruger den service, der leveres af en lokal enhed i niveau (n-1).
  • Servicespecifikationen for et lag beskriver i et abstrakt og globalt syn lagets opførsel som synlig ved lagets servicegrænseflader.
  • Protokolspecifikationen definerer de krav, som hver enhedsimplementering skal opfylde.
  • Protokolbekræftelse består i at vise, at to (eller flere) enheder, der opfylder protokolspecifikationen, vil levere ved deres servicegrænseflader den specificerede tjeneste for dette lag.
  • Den (verificerede) protokolspecifikation bruges primært til følgende to aktiviteter:
  1. Udviklingen af ​​en enhedsimplementering. Bemærk, at de abstrakte egenskaber for servicegrænsefladen er defineret af servicespecifikationen (og også brugt af protokolspecifikationen), men den detaljerede karakter af grænsefladen kan vælges under implementeringsprocessen, separat for hver enhed.
  2. Testudvikling af test til overensstemmelsestest . Test af protokoloverensstemmelse kontrollerer, at en given enhedsimplementering overholder protokolspecifikationen. Overensstemmelsestest-sagerne er udviklet baseret på protokolspecifikationen og gælder for alle enhedsimplementeringer. Derfor er der udviklet standardkonformitetstestpakker til visse protokolstandarder.

Metoder og værktøjer

Værktøjer til aktiviteterne i protokolverifikation, implementering af enheder og test suite-udvikling kan udvikles, når protokolspecifikationen er skrevet på et formaliseret sprog, som værktøjet kan forstå. Som nævnt er der blevet foreslået formelle specifikationssprog til protokolspecifikation, og de første metoder og værktøjer var baseret på endelige maskinmodeller. Analyse af tilgængelighed blev foreslået for at forstå al ​​mulig adfærd i et distribueret system, hvilket er vigtigt for protokolbekræftelse. Dette blev senere suppleret med modelkontrol . Endelige tilstandsbeskrivelser er dog ikke stærke nok til at beskrive begrænsninger mellem meddelelsesparametre og de lokale variabler i enhederne. Sådanne begrænsninger kan beskrives med de standardiserede formelle specifikationssprog, der er nævnt ovenfor, for hvilke der er udviklet kraftfulde værktøjer.

Det er inden for protokolteknik, at modelbaseret udvikling blev brugt meget tidligt. Disse metoder og værktøjer er senere blevet brugt til software engineering såvel som hardware design, især til distribuerede og realtids systemer. På den anden side kan mange metoder og værktøjer, der er udviklet i den mere generelle kontekst af softwareteknik, også bruges til udvikling af protokoller, for eksempel modelkontrol for protokolbekræftelse og smidige metoder til enhedsimplementeringer.

Konstruktive metoder til protokol design

De fleste protokoller er designet af menneskelig intuition og diskussioner under standardiseringsprocessen. Imidlertid er nogle metoder blevet foreslået til brug af konstruktive metoder, der muligvis understøttes af værktøjer til automatisk at udlede protokoller, der tilfredsstiller visse egenskaber. Følgende er et par eksempler:

  • Semiautomatisk protokol-syntese: Brugeren definerer alle handlinger til afsendelse af meddelelser fra enhederne, og værktøjet afleder alle nødvendige modtagelseshandlinger (selvom flere meddelelser er i transit).
  • Synkroniseringsprotokol: Statusovergange for en protokolenhed gives af brugeren, og metoden afleder den anden enheds adfærd, således at den forbliver i tilstande, der svarer til den tidligere enhed.
  • Protokol afledt af servicespecifikation: Servicespecifikationen gives af brugeren, og metoden udleder en passende protokol til alle enheder.
  • Protokol til kontrolapplikationer: Specifikationen for en enhed (kaldet anlægget - som skal kontrolleres) er givet, og metoden udleder en specifikation for den anden enhed, således at visse fejltilstande i anlægget aldrig nås, og visse givne egenskaber af anlæggets serviceinteraktioner er opfyldt. Dette er et tilfælde af tilsynskontrol .

Bøger

  • Ming T. Liu, Protocol Engineering, Advances in Computers , bind 29, 1989, side 79-195.
  • GJ Holzmann, Design og validering af computerprotokoller , Prentice Hall, 1991.
  • H. König, Protocol Engineering , Springer, 2012.
  • M. Popovic, Communication Protocol Engineering , CRC Press, 2. udg. 2018.
  • P. Venkataram, SS Manvi, BS Babu, Communication Protocol Engineering , 2014.

Referencer