310 likes | 498 Views
Dr. Dhavy Gantsou. Associate Professor. CS Department University of Valenciennes. France. Dhavy.gantsou@univ-valenciennes.fr. Targeting Ada95/DSA for Distributed Simulation of Multiprotocol Networks. Networking backgroung. Today ’s network technologies are
E N D
Dr. Dhavy Gantsou Associate Professor CS Department University of Valenciennes France Dhavy.gantsou@univ-valenciennes.fr
Targeting Ada95/DSA for Distributed Simulation of Multiprotocol Networks
Today ’s network technologies are designed for a specific purpose
• for low speed legacy applications (ftp, e-mail, http, etc) • Standard IP network (internet) • operates on a ’’best-effort’’ basis - treats all traffic equally - may discard packets • may delay traffic • mostly used to enable access to a wide range of non-IP applications
• for high-speed applications • garantees : • Switch technology networks (ATM, SONET/SDH, MPLS) - Quality of Service (QoS) * Traffic engineering * Differentiated service levels - Predictability (Real-time) - Security
Switch technology networks (ATM, SONET/SDH, MPLS) Is now using standard Internet to provide access to non-IP applications (Voice, B2B, real-time video, etc)
Majority of traffic IP-basedNeed for multiservice (multiprotocol) network
multiservice network ? • = Network infrastructure, suitable for the full range of standard Internet, as well as switch technology services.
At the heart of a multiprotocol architecture is the ability of routing protocols to: • deliver differentiated services • satisfy security concerns • garantee predictability (Real-time) • Manage an ever-growing network
Need for distributed real-time routing protocols ordistributed real-time extended versions of existing protocols Implementation + simulation of prototypes
Simulation ? • Conventional (batch) • sequential • parallel (on shared memory platforms) • Interactive • sequential • on cluster of workstations (Distributed interactive Simulation ’’DIS’’)
DIS • widely available platforms • computing performance • naturally express the real word network architecture • protocol software same as simulation code
Requirements Real-time Reliability Scalability Security Performance Middleware MPI Sockets OO Middleware • Java RMI • CORBA • Ada95 DSA DIS : which middleware ?
Point-to-point LSI exchange in OSPF Protocol Open Shortest Path First R1 R2 R3 R4 R5
Shared memory based LSI exchange R3 R1 DR (R2) BDR(R5) R4
Building prototypes of object-based real-time distributed routing protocols • Identifying protocol entities • Modeling and implementing entities using suitable Ada95 and/or DSA constructs
Case studyDIS of the BGP4 Decision algorithm Principle of the decision algorithm When a BGP4 (Border Gateway Protocol version4) router receives updates from multiple AS, it must run the decision algorithm to choose the single best path for reaching a destination. Once choosen, BGP propagates the path to its neighbors
AS 700 AS 300 BGP_R7 AS 100 BGP_R3 BGP_R1 BGP_R5 BGP_R4 AS 500 AS 400 BGP_R2 BGP_R6 AS 600 AS 200 BGP Path selection
Two kinds of distributed objects • Objects supporting general purpose of distributed object computing • Remote_Call_Interface Partition •include a declaration of a RACW
with Common, Interface; package Object_Adapter is pragma Remote_Call_Interface; Max_Devices : constant Positive := 15; --End Routers and Intermediary Routers Max_neighbors : constant Positive := Max_Devices; type Router_Class_Ref is access all Interface.Router_Class'Class; type Router_References is record Router_Ref : Router_Class_Ref ; hostname : Common.String_Host; end record; type References_List is array(Positive range <>) of Router_References; type Neighbor_Type is record Count : Natural := 0; List : References_List(1..max_neighbors) := (others => (null, (others => ' '))); end record; procedure Router_Registry(Data : in Router_Class_Ref; Is_router : in Boolean; Hostname : in Common.String_Host); function get_neighbor_list(hostname : in Common.String_Host) return Neighbor_Type; function get_link_array return Router_Link_List; end Object_Adapter; Object associating logical references to actual object implementation
Two kinds of distributed objects • Objects dealing with the implementation of the protocol entities • normal package • Pure , • Remote_Types, or • Shared_Passive categorized Partition including the declaration of one class
package Interface is pragma Pure; type Router_Class is abstract tagged limited private; type Community_Type is (no_export,no_advertise, internet); type Exchanged_Attributes is record As_Path : Positive; Origin : Common.String_Host; Next_Hop : Common.String_Host; Local_Preference : Natural; community : Community_Type; end record; procedure send (Data : access Router_Class; Update : in Exchanged_Attributes; Src_Hostname : in Common.String_Host) is abstract; procedure receive (Data : access Router_Class; Update : in Exchanged_Attributes) is abstract; Private type Router_Class is abstract tagged limited null record; end Interface ; Root class for all Router implementation
with Common, • Interface, • Object_Adapter ; • package Bgp_Isp_Router is • type Bgp_Isp_Router_Class is new Interface.Router_Class with • record • hostname : Common.String_Host; • neighbors : Object_Adapter.Neighbor_Type; • end record; • procedure send(Data : access Bgp_Isp_Router_Class; • Update : in Interface.Exchanged_Attributes; • Src_Hostname : in Common.String_Host); • procedure receive(Data : access Bgp_Isp_Router_Class; • Update : in Interface.Exchanged_Attributes); • end Bgp_Isp_Router; Derived class BGP_ISP_Router
Simulation :Working environment • Gnat-3.13p , ACT Ada95 compiler (free) • Glade-3.13p, ACT implementation of DSA (free) • A 100MB ethernet connecting: • 15 Sun UltraSPARCs running Solaris 2.6, • 1 Sun Enterprise running Solaris 2.7
A ------------------------ usual running 1) From : ultraistv6 To : ultraistv9 Message : good Router [ultraistv6] -> Running decision algorithm... Router [ultraistv6] -> Send message through ultraistv4... BGP_Router [ultraistv9] -> Received message'good -> BGP_Router[ultraistv6] -> ISP[ultraistv4] ’ 2) >From : ultraistv6 To : ultraistv9 Message : HS Router [ultraistv6] -> Running decision algorithm... Router [ultraistv6] -> Send message through ultraistv4... BGP_Router [ultraistv9] -> Received message'HS -> BGP_Router[ultraistv6] -> ISP[ultraistv4]'
B ---------------------------- unusual running Gnat@ultraistv4 : psd |grep ‘gantsou' 8 R gantsou 2261 2259 0 45 20 6085a1e0 146 19:21:14 pts/1 0:00 -csh 8 S gantsou 2250 1 0 41 20 60a381f0 375 ddd54 19:12:39 ? 0:00 /prof/gantsou/V4/bin/proxy1 --boot_ Gnat@ultraistv4 : kill -9 2250 3) >From : ultraistv6 To : ultraistv9 Message : Down Router [ultraistv6] -> Running decision algorithm... Router [ultraistv6] -> Send message through ultraistv4... Router failed ! (catch SYSTEM.RPC.COMMUNICATION_ERROR)
4) >From : ultraistv6 To : ultraistv9 Message : restart Router [ultraistv6] -> Running decision algorithm... Router [ultraistv6] -> Send message through ultraistv4... Router failed ! (catch SYSTEM.RPC.COMMUNICATION_ERROR)
>From : ultraistv6 To : ultraistv9 Message : Any change ? Router [ultraistv6] -> Running decision algorithm... Router [ultraistv6] -> Send message through ultraistv4... Router failed ! (catch SYSTEM.RPC.COMMUNICATION_ERROR) >From : ultraistv9 To : ultraistv6 Message : ISP2 down Router [ultraistv9] -> Running decision algorithm... Router [ultraistv9] -> Send message through ultraistv1... Router failed ! (catch SYSTEM.RPC.COMMUNICATION_ERROR)