Industriel anvendelse af CPN modeller til design af en kompliceret sprotokol Network Network kjensen@cs.au.dk September 2009 Network Network Højhastigheds med stationære knuder Network 1
Samling af mobile knuder, såsom laptops, PDAer, og mobiltelefoner, som samarbejder om at kommunikere med hinanden. Der er ikke faste sendemaster som i mobiltelefonsystemet. I stedet sendes beskeden fra knude til knude. Den enkelte knude (laptop, PDA eller mobiltelefon) fungerer som en ruter og videresender meddelelser til andre knuder. X X 2
Netværks arkitektur Højhastigheds med stationære knuder 3
Netværks arkitektur Gateway Edge ruter Højhastigheds med stationære knuder 3
Netværks arkitektur Gateway Edge ruter Højhastigheds med stationære knuder Samarbejde med Ericsson Telebit (nu TietoEnator). 3
Netværks arkitektur Gateway Edge ruter Højhastigheds med stationære knuder Samarbejde med Ericsson Telebit (nu TietoEnator). Vi designede en Edge Router Discovery Protokol (ERDP) som gør det muligt for: gateways at lokalisere edge rutere. edge rutere at tildele gateways. entydige adresse prefixes. 3
Netværks arkitektur Gateway Edge ruter Højhastigheds med stationære knuder Samarbejde med Ericsson Telebit (nu TietoEnator). Vi designede en Edge Router Discovery Protokol (ERDP) som gør det muligt for: Identificerer ad-hoc et gateways at lokalisere edge rutere. Prefix edge rutere at tildele gateways. entydige adresse prefixes. Postfix Entydige adresser i det totale Identificerer den enkelte knude i et 3
Netværks arkitektur Gateway Edge ruter Højhastigheds med stationære knuder Knuderne kan bevæge sig: indenfor et ad-hoc fra et ad-hoc til et andet Samarbejde med Ericsson Telebit (nu TietoEnator). Vi designede en Edge Router Discovery Protokol (ERDP) som gør det muligt for: Identificerer ad-hoc et gateways at lokalisere edge rutere. Prefix edge rutere at tildele gateways. entydige adresse prefixes. Postfix Entydige adresser i det totale Identificerer den enkelte knude i et 3
Tildeling af adresse prefix Gateway GW Buffer ER Buffer Edge Router Gatewayen har pt ikke et adresse prefix Unsolicited RA NoPrefixes Unsolicited RA Unsolicited RA Med mellemrum broadcaster edge ruteren en besked: Her er jeg; brug mig hvis du vil Gatewayen beder om et adresse prefix RS[ ] RS[ ] RS[ ] Solicited RA [P1] Assign:P1 Edge ruteren har et ledig prefix Solicited RA [P1] Prefixet sendes til gatewayen Solicited RA [P1] Prefixet er nu klar til brug Update:P1 4
Tildeling af adresse prefix Gateway GW Buffer ER Buffer Edge Router Gatewayen har pt ikke et adresse prefix Gatewayen beder om et adresse prefix Unsolicited RA NoPrefixes RS[ ] Unsolicited RA RS[ ] Unsolicited RA RS[ ] Solicited RA [P1] Assign:P1 Med mellemrum broadcaster edge ruteren en besked: Her er jeg; brug mig hvis du vil Prefixes har begrænset levetid og må jævnligt fornys Meddelelser kan tabes på et Edge ruteren har et ledig prefix Solicited RA [P1] Prefixet sendes til gatewayen Solicited RA [P1] Prefixet er nu klar til brug Update:P1 4
CPN modellen er opdelt i moduler CPN modellen for ERDP protokollen er stor og kompleks. Den har mange pladser og transitioner og hvis man tegnede den som et stort sammenhængende net ville den blive helt uoverskuelig. Derfor er den opdelt i moduler på samme måde som man opdeler et program i moduler, procedurer og funktioner. De enkelte moduler kan udveksle brikker med hinanden gennem veldefinerede grænseflader (pladser). 5
Oversigt over ERDP modellen Dette modul giver et overblik over hele systemet (svarer til et hovedprogram) Hver knude repræsenterer et modul En pil fra et modul til et andet angiver, at det første modul referer til det andet modul Dette modul modellerer den trådløse mellem gateway og edge ruter Disse moduler modellerer gatewayen Disse moduler modellerer edge ruteren 6
Oversigt over ERDP modellen Dette modul giver et overblik over hele systemet (svarer til et hovedprogram) Hver knude repræsenterer et modul En pil fra et modul til et andet angiver, at det første modul referer til det andet modul Dette modul modellerer den trådløse mellem gateway og edge ruter Disse moduler modellerer gatewayen Disse moduler modellerer edge ruteren 6
ERDP modul (oversigt over systemet) Tre delnet (moduler) Fire pladser hvorigennem de tre delnet kan udveksle brikker (af typen IPv6Packet). 7
ERDP modul (oversigt over systemet) Tre delnet (moduler) Fire pladser hvorigennem de tre delnet kan udveksle brikker (af typen IPv6Packet). 7
EdgeRouter modul med 3 delnet Broadcast af periodiske beskeder: Her er jeg; brug mig hvis du vil Udløb af prefixes 1`{ll_er = "ER link-local address", er_l2 ="ER link-addr"} Modtagelse og behandling af svar fra gateway 8
EdgeRouter modul med 3 delnet Antal ledige prefixes Broadcast af periodiske beskeder: Her er jeg; brug mig hvis du vil Tildelte prefixes Udløb af prefixes 1`{ll_er = "ER link-local address", er_l2 ="ER link-addr"} Konfigurations information Modtagelse og behandling af svar fra gateway 8
EdgeRouter modul med 3 delnet Antal ledige prefixes Broadcast af periodiske beskeder: Her er jeg; brug mig hvis du vil Tildelte prefixes Udløb af prefixes 1`{ll_er = "ER link-local address", er_l2 ="ER link-addr"} Konfigurations information Modtagelse og behandling af svar fra gateway Input buffer Udveksling af brikker med de øvrige moduler Output buffer 8
EdgeRouter modul med 3 delnet Antal ledige prefixes Broadcast af periodiske beskeder: Her er jeg; brug mig hvis du vil Tildelte prefixes Udløb af prefixes 1`{ll_er = "ER link-local address", er_l2 ="ER link-addr"} Konfigurations information Modtagelse og behandling af svar fra gateway Input buffer Udveksling af brikker med de øvrige moduler Output buffer 8
SendUnsolicitedRA modul 9
SendUnsolicitedRA modul Udveksling af brikker med de øvrige moduler Udveksling af brikker med de øvrige moduler 9
EdgeRouter modul med 3 delnet Broadcast af periodiske beskeder: Her er jeg; brug mig hvis du vil Udløb af prefixes Udveksling af brikker mellem modulerne Modtagelse og behandling af svar fra gateway 10
SendUnsolicitedRA modul Denne funktion skaber en broadcast pakke Transitionen er parat (tyk kant) 11
Modul efter udførelse af transition SourceAddress og LinkLayerAddress kopieres fra Config DestinationAddress specificerer at der et tale om et broadast til alle andre knuder 12
Transmissions modul Modellerer den trådløse mellem edge ruter og gateway. Tab af pakke Succesfuld transmission Transmissionen i den anden retning modelleres på samme måde. 13
Udviklingen af CPN modellen CPN modellen blev udviklet: i samarbejde med protokolingeniører hos Ericsson Telebit, parallelt med udviklingen af en traditionel tekstuel specifikation af ERDP protokollen. Der blev brugt 70 person-timer til at lave og afteste CPN modellen. Protokolingeniørerne fik et 6 timers kursus i CPN modelleringssproget. Det gjorde det muligt for dem at læse og forstå CPN modellerne som blev brugt som basis for diskussioner af protokoldesignet. 14
Lokalisering af designproblemer Undervejs identificerede man en række designproblemer. Dette skete under: konstruktionen og aftestning af CPN modellen, diskussioner af CPN modellen i 3 review-møder med brug af visualisering. Gateway Unsolicited RA GW Buffer Unsolicited RA ER Buffer Unsolicited RA Edge Router NoPrefixes RS[ ] RS[ ] RS[ ] Assign:P1 Solicited RA [P1] Solicited RA [P1] Solicited RA [P1] Update:P1 15
Lokaliserede problemer Kategori Rev 1 Rev 2 Total Fejl i protokollens opførsel 2 7 9 Manglende dele eller tvetydigheder 3 6 9 Simplifikationer af protokollen 2 0 2 Tilføjelser til protokollen 4 0 4 Total 11 13 24 Disse problemer kunne man nu let og billigt rette allerede i designfasen. De ville have været langt dyrere at rette i implementationsfasen eller når protokollen var taget i brug. 16
Erfaringer fra ERDP projektet Anvendelse af CPN modeller var en succes. CPN sproget og de tilhørende computerværktøjer er kraftfulde nok til at håndtere en rigtig sprotokol og kunne let integreres i virksomhedens normale arbejdsmetoder. Modellering og simulation identificerede en række ikke-trivielle designproblemer som ellers let kunne have overlevet indtil implementation/test/ibrugtagelse. Det samme var tilfældet med den efterfølgende brug af tilstandsgrafanalyse (som jeg ikke vil snakke om her). Der blev kun brugt 100 person-timer til CPN modellering og analyse. Det er en relativ lille investering sammenlignet med de mange problemer der blev identificeret og løst tidligt i projektet. 17
Spørgsmål 18
Spørgsmål 18