10/04/2001 associate professor cs department university of valenciennes france...
TRANSCRIPT
10/04/2001
Associate Professor
CS Department University of Valenciennes
France
Dr. Dhavy GantsouDr. Dhavy Gantsou
10/04/2001
Targeting Ada95/DSA Targeting Ada95/DSA for Distributed for Distributed Simulation of Simulation of
Multiprotocol NetworksMultiprotocol Networks
10/04/2001
Networking backgroungNetworking backgroung
10/04/2001
Today ’s network technologies aredesigned for a specific purpose
10/04/2001
Standard IP network (internet)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 low speed legacy applications (ftp, e-mail, http, etc)
10/04/2001
Switch technology networks (ATM, Switch technology networks (ATM, SONET/SDH, MPLS)SONET/SDH, MPLS)
• for high-speed applications• garantees :
- Quality of Service (QoS)* Traffic engineering* Differentiated service levels
- Predictability (Real-time)
- Security
10/04/2001
Switch technology networks (ATM, Switch technology networks (ATM, SONET/SDH, MPLS)SONET/SDH, MPLS)
Is now using standard Internet to provide access to non-IP applications (Voice, B2B,real-time video, etc)
10/04/2001
Majority of traffic IP-basedMajority of traffic IP-basedNeed for multiservice (multiprotocol) Need for multiservice (multiprotocol)
network network
10/04/2001
multiservice network ?
=
Network infrastructure, suitable for the full range of standard Internet, as well as switch technology services.
10/04/2001
At the heart of a multiprotocol architecture is the ability of routing protocols to:
• • deliver differentiated servicesdeliver differentiated services
•• satisfy security concernssatisfy security concerns
• • garantee predictability garantee predictability (Real-time) (Real-time)
• • Manage an ever-growing networkManage an ever-growing network
10/04/2001
Need for distributed real-time routing Need for distributed real-time routing protocols protocols
or ordistributed real-time extended versions of distributed real-time extended versions of existing protocols existing protocols
Implementation + simulation of prototypes
10/04/2001
Simulation ?Simulation ? Conventional (batch)Conventional (batch)
• • sequentialsequential• • parallel (on shared memory parallel (on shared memory
platforms)platforms) Interactive Interactive
• • sequentialsequential • • on cluster of workstations (Distributed on cluster of workstations (Distributed
interactive Simulation ’’DIS’’)interactive Simulation ’’DIS’’)
10/04/2001
DISDIS
• • widely available platforms widely available platforms
• • computing performancecomputing performance
• • naturally express the real word naturally express the real word network architecturenetwork architecture
• • protocol software same as simulation protocol software same as simulation codecode
10/04/2001
DIS : which middleware ?DIS : which middleware ?
RequirementsRequirements Real-timeReal-time ReliabilityReliability ScalabilityScalability SecuritySecurity PerformancePerformance
MiddlewareMiddleware MPIMPI SocketsSockets OO MiddlewareOO Middleware
• • Java RMIJava RMI• • CORBACORBA• • Ada95 DSAAda95 DSA
10/04/2001
Point-to-point LSI exchange in OSPF Protocol
Open Shortest Path First
R1 R2
R5
R3
R4
10/04/2001
Shared memory based Shared memory based LSI exchange LSI exchange
R1 DR (R2) BDR(R5)
R3
R4
10/04/2001
Building prototypes of object-based Building prototypes of object-based real-time distributed routing real-time distributed routing protocolsprotocols
Identifying protocol entities Identifying protocol entities
Modeling and implementing entities Modeling and implementing entities using suitable Ada95 and/or DSA using suitable Ada95 and/or DSA constructsconstructs
10/04/2001
Case studyCase studyDIS of the BGP4 Decision DIS of the BGP4 Decision
algorithmalgorithm 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
10/04/2001
BGP_R3
AS 200
AS 300
AS 400
AS 500BGP_R5 BGP_R4
BGP_R2
BGP_R7BGP_R1
BGP_R6
AS 700AS 100
AS 600
BGP Path selection
10/04/2001
Modeling & Modeling & implementationimplementation
10/04/2001
Two kinds of distributed Two kinds of distributed objectsobjects
Objects supporting general purpose Objects supporting general purpose of distributed object computingof distributed object computing
• • Remote_Call_Interface Remote_Call_Interface PartitionPartition
•• include a declaration of a RACWinclude a declaration of a RACW
10/04/2001
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
10/04/2001
Two kinds of distributed Two kinds of distributed objectsobjects
Objects dealing with the implementation ofObjects dealing with the implementation of the protocol entitiesthe protocol entities
• • normal package normal package
• • Pure ,Pure ,
including the declaration of one class including the declaration of one class
• • Remote_Types, orRemote_Types, or
• • Shared_Passive categorized Shared_Passive categorized PartitionPartition
10/04/2001
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
10/04/2001
with Common, Interface, Object_Adapter ;
package Bgp_Isp_Router istype 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
10/04/2001
Simulation :Working Simulation :Working environmentenvironment
Gnat-3.13p , ACT Ada95 compiler (free)Gnat-3.13p , ACT Ada95 compiler (free)
Glade-3.13p, ACT implementation of DSA Glade-3.13p, ACT implementation of DSA (free)(free)
A 100MB ethernet connecting:A 100MB ethernet connecting: 15 Sun UltraSPARCs running Solaris 2.6,15 Sun UltraSPARCs running Solaris 2.6, 1 Sun Enterprise running Solaris 2.71 Sun Enterprise running Solaris 2.7
10/04/2001
Simulation : Empirical testSimulation : Empirical test
10/04/2001
A ------------------------ usual running1) From : ultraistv6 To : ultraistv9Message : goodRouter [ultraistv6] -> Running decision algorithm...Router [ultraistv6] -> Send message through ultraistv4...BGP_Router [ultraistv9] -> Received message'good -> BGP_Router[ultraistv6] -> ISP[ultraistv4] ’2)>From : ultraistv6To : ultraistv9Message : HS Router [ultraistv6] -> Running decision algorithm...Router [ultraistv6] -> Send message through ultraistv4...BGP_Router [ultraistv9] -> Received message'HS -> BGP_Router[ultraistv6] -> ISP[ultraistv4]'
10/04/2001
B ---------------------------- unusual runningGnat@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 : ultraistv6To : ultraistv9Message : Down Router [ultraistv6] -> Running decision algorithm...Router [ultraistv6] -> Send message through ultraistv4...Router failed ! (catch SYSTEM.RPC.COMMUNICATION_ERROR)
10/04/2001
4)>From : ultraistv6To : ultraistv9Message : restart Router [ultraistv6] -> Running decision algorithm...Router [ultraistv6] -> Send message through ultraistv4...Router failed ! (catch SYSTEM.RPC.COMMUNICATION_ERROR)
10/04/2001
>From : ultraistv6To : ultraistv9Message : Any change ?Router [ultraistv6] -> Running decision algorithm...Router [ultraistv6] -> Send message through ultraistv4...Router failed ! (catch SYSTEM.RPC.COMMUNICATION_ERROR)
>From : ultraistv9To : ultraistv6Message : ISP2 downRouter [ultraistv9] -> Running decision algorithm...Router [ultraistv9] -> Send message through ultraistv1...Router failed ! (catch SYSTEM.RPC.COMMUNICATION_ERROR)