Ceci est un test - ACM SIGAda Home Page

Download Report

Transcript Ceci est un test - ACM SIGAda Home Page

Dr. Dhavy Gantsou
Associate Professor
CS Department
University of Valenciennes
France
[email protected]
10/04/2001
Targeting Ada95/DSA for
Distributed Simulation of
Multiprotocol Networks
10/04/2001
Networking backgroung
10/04/2001
Today ’s network technologies are
designed for a specific purpose
10/04/2001
 Standard
IP network (internet)
• for low speed legacy applications
(ftp, e-mail, http, etc)
• 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
10/04/2001

Switch technology networks (ATM,
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,
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-based
Need for multiservice (multiprotocol) 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 services
• satisfy security concerns
• garantee predictability (Real-time)
• Manage an ever-growing network
10/04/2001
Need for distributed real-time routing protocols
or
distributed real-time extended versions of
existing protocols
Implementation + simulation of
prototypes
10/04/2001
Simulation ?
Conventional (batch)
• sequential
• parallel (on shared memory platforms)
 Interactive
• sequential
• on cluster of workstations (Distributed
interactive Simulation ’’DIS’’)

10/04/2001
DIS
• widely available platforms
• computing performance
• naturally express the real word network
architecture
• protocol software same as simulation code
10/04/2001
DIS : which middleware ?
Requirements
 Real-time
 Reliability
 Scalability
 Security
 Performance
10/04/2001
Middleware
 MPI
 Sockets
 OO Middleware
• Java RMI
• CORBA
• Ada95 DSA
Point-to-point LSI exchange in OSPF Protocol
Open Shortest Path First
R1
R2
R4
10/04/2001
R3
R5
Shared memory based
LSI exchange
R3
R1
DR (R2)
R4
10/04/2001
BDR(R5)
Building prototypes of object-based
real-time distributed routing protocols

Identifying protocol entities

Modeling and implementing entities using
suitable Ada95 and/or DSA constructs
10/04/2001
Case study
DIS 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
10/04/2001
AS 700
AS 300
AS 100
BGP_R7
BGP_R3
BGP_R5
BGP_R1
AS 500
BGP_R4
AS 400
BGP_R2
AS 600
10/04/2001
BGP_R6
AS 200
BGP Path selection
Modeling & implementation
10/04/2001
Two kinds of distributed
objects

Objects supporting general purpose of
distributed object computing
• Remote_Call_Interface Partition
• include 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;
10/04/2001
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
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 ;
10/04/2001
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
10/04/2001
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

10/04/2001
Simulation : Empirical test
10/04/2001
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]'
10/04/2001
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)
10/04/2001
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)
10/04/2001
>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)
10/04/2001