performance evaluation of bgp-4+ in ipv4/ipv6
TRANSCRIPT
T.BlagaT.Blaga –– Performance Evaluation of BGP Performance Evaluation of BGP –– RoEduNetRoEduNet 2005 2005 –– SovataSovata, May 20, May 20--22, 200522, 2005
Performance Evaluation of BGPPerformance Evaluation of BGP--4+ 4+ in IPv4/IPv6in IPv4/IPv6
A. Katona, V. Dobrota T. Blaga, G. LazarTechnical University of Cluj-Napoca, Department of Communications E-mail: [email protected], {Virgil.Dobrota, Tudor.Blaga, Gabriel.Lazar}@com.utcluj.ro
T.BlagaT.Blaga –– Performance Evaluation of BGP Performance Evaluation of BGP –– RoEduNetRoEduNet 2005 2005 –– SovataSovata, May 20, May 20--22, 200522, 2005
T.BlagaT.Blaga –– Performance Evaluation of BGP Performance Evaluation of BGP –– RoEduNetRoEduNet 2005 2005 –– SovataSovata, May 20, May 20--22, 200522, 2005
AgendaAgenda
IntroductionIntroductionBGPBGP--4+ Basics4+ BasicsSimulation of BGPSimulation of BGP--4+4+Experiment with a TwoExperiment with a Two--Router ScenarioRouter ScenarioExperiments with ThreeExperiments with Three--Router ScenariosRouter ScenariosConclusionsConclusions
T.BlagaT.Blaga –– Performance Evaluation of BGP Performance Evaluation of BGP –– RoEduNetRoEduNet 2005 2005 –– SovataSovata, May 20, May 20--22, 200522, 2005
IntroductionIntroduction
BBorder order GGateway ateway PProtocol version rotocol version 4+4+the dethe de--facto standard interdomain routing protocolfacto standard interdomain routing protocol
IETF, 1995 IETF, 1995 –– RFC 1771RFC 1771
Exchange routing information between different Exchange routing information between different Autonomous Systems (ASs)Autonomous Systems (ASs)
A protocol of crucial importance to the InternetA protocol of crucial importance to the Internet
Support for:Support for:CIDR (Classless InterCIDR (Classless Inter--Domain Routing)Domain Routing)Routing policiesRouting policies
One of the most complex routing protocolsOne of the most complex routing protocols
T.BlagaT.Blaga –– Performance Evaluation of BGP Performance Evaluation of BGP –– RoEduNetRoEduNet 2005 2005 –– SovataSovata, May 20, May 20--22, 200522, 2005
Autonomous SystemsAutonomous Systems
Set of routers and networks under a single Set of routers and networks under a single technical administrationtechnical administration
a corporate, organization, or ISP networka corporate, organization, or ISP network
Having a single, wellHaving a single, well--defined routing policydefined routing policy
Run an Interior Routing Protocol (IGP) insideRun an Interior Routing Protocol (IGP) inside
Identified by AS Number Identified by AS Number (ASN)(ASN)
T.BlagaT.Blaga –– Performance Evaluation of BGP Performance Evaluation of BGP –– RoEduNetRoEduNet 2005 2005 –– SovataSovata, May 20, May 20--22, 200522, 2005
AgendaAgenda
IntroductionIntroductionBGPBGP--4+ Basics4+ BasicsSimulation of BGPSimulation of BGP--4+4+Experiment with a TwoExperiment with a Two--Router ScenarioRouter ScenarioExperiments with ThreeExperiments with Three--Router ScenariosRouter ScenariosConclusionsConclusions
T.BlagaT.Blaga –– Performance Evaluation of BGP Performance Evaluation of BGP –– RoEduNetRoEduNet 2005 2005 –– SovataSovata, May 20, May 20--22, 200522, 2005
BGP OverviewBGP Overview
Two neighbouring BGP routers form a peer Two neighbouring BGP routers form a peer connection to exchange routing informationconnection to exchange routing information
Use TCP as transport protocol (port 179)Use TCP as transport protocol (port 179)reliable communicationreliable communication
Initial exchange of all the routesInitial exchange of all the routesonly only incremental updatesincremental updates are sent afterwardsare sent afterwards
External BGP and Internal BGPExternal BGP and Internal BGPpeers can be in different ASs or in the same ASpeers can be in different ASs or in the same AS
T.BlagaT.Blaga –– Performance Evaluation of BGP Performance Evaluation of BGP –– RoEduNetRoEduNet 2005 2005 –– SovataSovata, May 20, May 20--22, 200522, 2005
BGP MessagesBGP Messages1.1. OPENOPEN –– establishes a BGP peer connectionestablishes a BGP peer connection
first message sent after TCP connection is first message sent after TCP connection is establishedestablished
2.2. UPDATEUPDATE –– sends routing informationsends routing informationadvertises advertises or or withdrawswithdraws routesroutes
3.3. NOTIFICATIONNOTIFICATION –– informs about an errorinforms about an errorshut down the connectionshut down the connection
4.4. KEEPALIVEKEEPALIVE –– verifies the connection stateverifies the connection statesent periodicallysent periodically
T.BlagaT.Blaga –– Performance Evaluation of BGP Performance Evaluation of BGP –– RoEduNetRoEduNet 2005 2005 –– SovataSovata, May 20, May 20--22, 200522, 2005
BGP Finite State MachineBGP Finite State Machine
OpenConfirm
Idle
Connect
OpenSent Active
Established
The process of establishing and The process of establishing and maintaining a BGP peer connectionmaintaining a BGP peer connectionEvents (13 of them)Events (13 of them)Timers: Timers: HoldHold, , KeepAliveKeepAlive, , ConnectRetryConnectRetry, , StartStart
T.BlagaT.Blaga –– Performance Evaluation of BGP Performance Evaluation of BGP –– RoEduNetRoEduNet 2005 2005 –– SovataSovata, May 20, May 20--22, 200522, 2005
BGP Finite State MachineBGP Finite State Machine
OpenConfirm
Idle
Connect
OpenSent Active
EstablishedIdleIdle state:state:
no connection and no no connection and no resources allocatedresources allocated
T.BlagaT.Blaga –– Performance Evaluation of BGP Performance Evaluation of BGP –– RoEduNetRoEduNet 2005 2005 –– SovataSovata, May 20, May 20--22, 200522, 2005
BGP Finite State MachineBGP Finite State Machine
OpenConfirm
Idle
Connect
OpenSent Active
Established ConnectConnect state:state:initiate TCP connectioninitiate TCP connection
T.BlagaT.Blaga –– Performance Evaluation of BGP Performance Evaluation of BGP –– RoEduNetRoEduNet 2005 2005 –– SovataSovata, May 20, May 20--22, 200522, 2005
BGP Finite State MachineBGP Finite State Machine
OpenConfirm
Idle
Connect
OpenSent Active
Established
ActiveActive state:state:if TCP was not if TCP was not
established, wait for peer, established, wait for peer, or try again lateror try again later
T.BlagaT.Blaga –– Performance Evaluation of BGP Performance Evaluation of BGP –– RoEduNetRoEduNet 2005 2005 –– SovataSovata, May 20, May 20--22, 200522, 2005
BGP Finite State MachineBGP Finite State Machine
OpenConfirm
Idle
Connect
OpenSent Active
Established
OpenSentOpenSent state:state:TCP established TCP established –– send send
OPEN and wait for OPEN and wait for OPEN from peerOPEN from peer
T.BlagaT.Blaga –– Performance Evaluation of BGP Performance Evaluation of BGP –– RoEduNetRoEduNet 2005 2005 –– SovataSovata, May 20, May 20--22, 200522, 2005
BGP Finite State MachineBGP Finite State Machine
OpenConfirm
Idle
Connect
OpenSent Active
Established
OpenConfirmOpenConfirm state:state:wait for KEEPALIVE, wait for KEEPALIVE,
confirming OPENconfirming OPEN
T.BlagaT.Blaga –– Performance Evaluation of BGP Performance Evaluation of BGP –– RoEduNetRoEduNet 2005 2005 –– SovataSovata, May 20, May 20--22, 200522, 2005
BGP Finite State MachineBGP Finite State Machine
OpenConfirm
Idle
Connect
OpenSent Active
Established
EstablishedEstablished state:state:routing information routing information
(UPDATE messages) (UPDATE messages) can be exchangedcan be exchanged
T.BlagaT.Blaga –– Performance Evaluation of BGP Performance Evaluation of BGP –– RoEduNetRoEduNet 2005 2005 –– SovataSovata, May 20, May 20--22, 200522, 2005
BGP Path AttributesBGP Path Attributes
information attached to routesinformation attached to routesused in the decision processused in the decision process
ORIGINORIGIN –– from where was the route obtainedfrom where was the route obtainedAS_PATHAS_PATH –– list of traversed ASslist of traversed ASsNEXT_HOPNEXT_HOP –– IP address of next hop routerIP address of next hop routerAGGREGATORAGGREGATOR & & ATOMIC_AGGREGATEATOMIC_AGGREGATE ––attached to aggregate routesattached to aggregate routesLOCAL_PREFLOCAL_PREF & & MULTI_EXIT_DISCMULTI_EXIT_DISC –– attach degree attach degree of preference to external links and routesof preference to external links and routesWEIGHTWEIGHT –– force the decision process to pick a routeforce the decision process to pick a routeothersothers
T.BlagaT.Blaga –– Performance Evaluation of BGP Performance Evaluation of BGP –– RoEduNetRoEduNet 2005 2005 –– SovataSovata, May 20, May 20--22, 200522, 2005
AgendaAgenda
IntroductionIntroductionBGPBGP--4+ Basics4+ BasicsSimulation of BGPSimulation of BGP--4+4+Experiment with a TwoExperiment with a Two--Router ScenarioRouter ScenarioExperiments with ThreeExperiments with Three--Router ScenariosRouter ScenariosConclusionsConclusions
T.BlagaT.Blaga –– Performance Evaluation of BGP Performance Evaluation of BGP –– RoEduNetRoEduNet 2005 2005 –– SovataSovata, May 20, May 20--22, 200522, 2005
Simulation of BGPSimulation of BGP--44
NSNS--22 –– Network Simulator version 2Network Simulator version 2
a very popular network simulatora very popular network simulatorbased on based on OTclOTcl (Object Tool Command (Object Tool Command Language)Language) programming languageprogramming language
BGP++BGP++
NSNS--2 extension implementing BGP2 extension implementing BGP--4+4+based on based on bgpdbgpd (BGP Daemon)(BGP Daemon) from Zebra from Zebra routing softwarerouting softwarecommand syntax similar to Cisco routerscommand syntax similar to Cisco routers
T.BlagaT.Blaga –– Performance Evaluation of BGP Performance Evaluation of BGP –– RoEduNetRoEduNet 2005 2005 –– SovataSovata, May 20, May 20--22, 200522, 2005
BGP simulation with nsBGP simulation with ns--2 and BGP++2 and BGP++
1.1. create simulation create simulation script (OTcl)script (OTcl)
nodesnodeslinkslinksBGP objectsBGP objectseventsevents
nsns--22BGP++BGP++
for {set i 0} {$i <= 2} {incr i} {puts "Creating router $i“puts " - config file: $opt(confdir)/bgpd$i.conf“puts " - log file: $opt(outdir)/bgpd$i.log“set router($i) [$ns node] $router($i) label "Router $i“set bgp($i) [new Application/Route/Bgp]$bgp($i) register $r$bgp($i) finish-time $opt(stop) $bgp($i) config-file
.tcl.tcl
T.BlagaT.Blaga –– Performance Evaluation of BGP Performance Evaluation of BGP –– RoEduNetRoEduNet 2005 2005 –– SovataSovata, May 20, May 20--22, 200522, 2005
BGP simulation with nsBGP simulation with ns--2 and BGP++2 and BGP++
1.1. create simulation create simulation script (OTcl)script (OTcl)
nodesnodeslinkslinksBGP objectsBGP objectseventsevents
2.2. create router create router configuration configuration filesfiles for {set i 0} {$i <= 2} {incr i} {
puts "Creating router $i“puts " - config file:$opt(confdir)/bgpd$i.conf“puts " - log file:$opt(outdir)/bgpd$i.log“set router($i) [$ns node] $router($i) label "Router $i“set bgp($i) [new Application/Route/Bgp]$bgp($i) register $r$bgp($i) finish-time $opt(stop) $bgp($i) config-file
.tcl.tcl
router bgp 65502bgp router-id 192.168.10.12
neighbor 192.168.10.10 remote-as 65500
network 172.22.0.0 mask 255.255.0.0
debug bgp
router bgp 6550bgp router-id 192.168.10.11
neighbor 192.168.10.10 remote-as 65500
network 172.21.0.0 mask 255.255.0.0
debug bgp
router bgp 65500bgp router-id 192.168.10.10
neighbor 192.168.10.11 remote-as 65501neighbor 192.168.10.12 remote-as 65502
network 172.20.0.0 mask 255.255.0.0
debug bgp
.conf.conf
nsns--22BGP++BGP++
T.BlagaT.Blaga –– Performance Evaluation of BGP Performance Evaluation of BGP –– RoEduNetRoEduNet 2005 2005 –– SovataSovata, May 20, May 20--22, 200522, 2005
BGP simulation with nsBGP simulation with ns--2 and BGP++2 and BGP++
1.1. create simulation create simulation script (OTcl)script (OTcl)
nodesnodeslinkslinksBGP objectsBGP objectseventsevents
2.2. create router create router configuration configuration filesfiles
3.3. run simulationrun simulationlog fileslog files
for {set i 0} {$i <= 2} {incr i} {puts "Creating router $i“puts " - config file:$opt(confdir)/bgpd$i.conf“puts " - log file:$opt(outdir)/bgpd$i.log“set router($i) [$ns node] $router($i) label "Router $i“set bgp($i) [new Application/Route/Bgp]$bgp($i) register $r$bgp($i) finish-time $opt(stop) $bgp($i) config-file
.tcl.tcl
router bgp 65502bgp router-id 192.168.10.12
neighbor 192.168.10.10 remote-as 65500
network 172.22.0.0 mask 255.255.0.0
debug bgp
router bgp 6550bgp router-id 192.168.10.11
neighbor 192.168.10.10 remote-as 65500
network 172.21.0.0 mask 255.255.0.0
debug bgp
router bgp 65500bgp router-id 192.168.10.10
neighbor 192.168.10.11 remote-as 65501neighbor 192.168.10.12 remote-as 65502
network 172.20.0.0 mask 255.255.0.0
debug bgp
.conf.conf
2004/05/17 01:32:23 5.453414 BGP: 192.168.10.12 [FSM] BGP_Start (Idle->Connect)2004/05/17 01:32:23 5.453414 BGP: 192.168.10.12 went from Idle to Connect2004/05/17 01:32:23 5.453414 BGP: 192.168.10.12
2004/05/17 01:32:23 5.453414 BGP: 192.168.10.12 [FSM] BGP_Start (Idle->Connect)2004/05/17 01:32:23 5.453414 BGP: 192.168.10.12 went from Idle to Connect2004/05/17 01:32:23 5.453414 BGP: 192.168.10.12
2004/05/17 01:32:23 5.453414 BGP: 192.168.10.12 [FSM] BGP_Start (Idle->Connect)2004/05/17 01:32:23 5.453414 BGP: 192.168.10.12 went from Idle to Connect2004/05/17 01:32:23 5.453414 BGP: 192.168.10.12
.log.log
nsns--22BGP++BGP++
T.BlagaT.Blaga –– Performance Evaluation of BGP Performance Evaluation of BGP –– RoEduNetRoEduNet 2005 2005 –– SovataSovata, May 20, May 20--22, 200522, 2005
AgendaAgenda
IntroductionIntroductionBGPBGP--4+ Basics4+ BasicsSimulation of BGPSimulation of BGP--4+4+Experiment with a TwoExperiment with a Two--Router ScenarioRouter ScenarioExperiments with ThreeExperiments with Three--Router ScenariosRouter ScenariosConclusionsConclusions
T.BlagaT.Blaga –– Performance Evaluation of BGP Performance Evaluation of BGP –– RoEduNetRoEduNet 2005 2005 –– SovataSovata, May 20, May 20--22, 200522, 2005
Experiment with a TwoExperiment with a Two--Router ScenarioRouter Scenario
Connection setup and exchange of routing Connection setup and exchange of routing informationinformationStudy the effects of different values for the Hold Study the effects of different values for the Hold Timer and KeepAlive intervalTimer and KeepAlive intervalConnection establishment time and time elapsed Connection establishment time and time elapsed in different states of the FSMin different states of the FSM
AS 65500AS 65500 AS 65501AS 65501
192.168.10.10192.168.10.10 192.168.10.11192.168.10.11
R0R0 R1R1
172.20.0.0/16172.20.0.0/16 172.21.0.0/16172.21.0.0/16
T.BlagaT.Blaga –– Performance Evaluation of BGP Performance Evaluation of BGP –– RoEduNetRoEduNet 2005 2005 –– SovataSovata, May 20, May 20--22, 200522, 2005
Visualization of Log Messages in namVisualization of Log Messages in nam
T.BlagaT.Blaga –– Performance Evaluation of BGP Performance Evaluation of BGP –– RoEduNetRoEduNet 2005 2005 –– SovataSovata, May 20, May 20--22, 200522, 2005
Connection Setup Time MeasurementConnection Setup Time MeasurementConnection setup time Connection setup time vs. link delayvs. link delay(1.5 Mbps link)(1.5 Mbps link)
Connection setup time Connection setup time vs. link bandwidthvs. link bandwidth(10 ms delay)(10 ms delay)
establish time [sec]
0.04
0.05
0.06
0.07
0.08
0.09
0.1
0.11
0.12
0.064 0.128 0.256 0.512 1 1.544 2.048 5 10 50 100
link bandwidth [Mbps]
establish time [sec]
0
0.2
0.4
0.6
0.8
1
1.2
1.4
0 50 100 150 200
link delay [ms]
T.BlagaT.Blaga –– Performance Evaluation of BGP Performance Evaluation of BGP –– RoEduNetRoEduNet 2005 2005 –– SovataSovata, May 20, May 20--22, 200522, 2005
Amount of Traffic Generated by BGPAmount of Traffic Generated by BGP
most of the data sent is the overhead of TCP most of the data sent is the overhead of TCP and IPand IP
0
500
1000
1500
2000
2500
3000
R0 R1 Total
Bytes sent (TCP)
Bytes sent (BGP)
0
500
1000
1500
2000
2500
3000
R0 R1 Total
Bytes sent (TCP)
Bytes sent (BGP)
5 minutes of operation5 minutes of operation
connection setup, exchange of connection setup, exchange of routes and periodic KEEPALIVE routes and periodic KEEPALIVE messagesmessages
the same, plus one route the same, plus one route oscillating every 30 secondsoscillating every 30 seconds
T.BlagaT.Blaga –– Performance Evaluation of BGP Performance Evaluation of BGP –– RoEduNetRoEduNet 2005 2005 –– SovataSovata, May 20, May 20--22, 200522, 2005
AgendaAgenda
IntroductionIntroductionBGPBGP--4+ Basics4+ BasicsSimulation of BGPSimulation of BGP--4+4+Experiment with a TwoExperiment with a Two--Router ScenarioRouter ScenarioExperiments with ThreeExperiments with Three--Router ScenariosRouter ScenariosConclusionsConclusions
T.BlagaT.Blaga –– Performance Evaluation of BGP Performance Evaluation of BGP –– RoEduNetRoEduNet 2005 2005 –– SovataSovata, May 20, May 20--22, 200522, 2005
ThreeThree--Router Scenario (1)Router Scenario (1)
R0 provides transit service between R1 and R2R0 provides transit service between R1 and R2Limitation of transit service by enforcing a routing Limitation of transit service by enforcing a routing policy at R0policy at R0
AS 65501AS 65501 AS 65502AS 65502
192.168.10.11192.168.10.11 192.168.10.12192.168.10.12
R1R1 R2R2172.21.0.0/16172.21.0.0/16 172.22.0.0/16172.22.0.0/16
R0R0AS 65500AS 65500
192.168.10.10192.168.10.10
172.20.0.0/16172.20.0.0/16
T.BlagaT.Blaga –– Performance Evaluation of BGP Performance Evaluation of BGP –– RoEduNetRoEduNet 2005 2005 –– SovataSovata, May 20, May 20--22, 200522, 2005
ThreeThree--Router Scenario (1)Router Scenario (1)
R0 performs aggregation of the routes received R0 performs aggregation of the routes received from R1 and R2from R1 and R2Reduction in the size of the routing tablesReduction in the size of the routing tables
AS 65501AS 65501 AS 65502AS 65502
192.168.10.11192.168.10.11 192.168.10.12192.168.10.12
R1R1 R2R2172.20.0.0/16172.20.0.0/16 172.22.0.0/16172.22.0.0/16
R0R0
AS 65500AS 65500192.168.10.10192.168.10.10
172.19.0.0/16172.19.0.0/16
172.21.0.0/16172.21.0.0/16 172.23.0.0/16172.23.0.0/16
Route aggregation:Route aggregation:
•• 172.20.0.0/16172.20.0.0/16•• 172.21.0.0/16172.21.0.0/16•• 172.22.0.0/16172.22.0.0/16•• 172.23.0.0/16172.23.0.0/16
172.20.0.0/14172.20.0.0/14
T.BlagaT.Blaga –– Performance Evaluation of BGP Performance Evaluation of BGP –– RoEduNetRoEduNet 2005 2005 –– SovataSovata, May 20, May 20--22, 200522, 2005
ThreeThree--Router Scenario (2)Router Scenario (2)
The shortest path is chosen as the bestThe shortest path is chosen as the bestThe path selection can be influenced with the The path selection can be influenced with the WEIGHT attributeWEIGHT attributeDetection and elimination of routing loopsDetection and elimination of routing loops
AS 65501AS 65501 AS 65502AS 65502
192.168.10.11192.168.10.11 192.168.10.12192.168.10.12
R1R1 R2R2172.21.0.0/16172.21.0.0/16 172.22.0.0/16172.22.0.0/16
R0R0
AS 65500AS 65500192.168.10.10192.168.10.10
172.20.0.0/16172.20.0.0/16
T.BlagaT.Blaga –– Performance Evaluation of BGP Performance Evaluation of BGP –– RoEduNetRoEduNet 2005 2005 –– SovataSovata, May 20, May 20--22, 200522, 2005
AgendaAgenda
IntroductionIntroductionBGPBGP--4+ Basics4+ BasicsSimulation of BGPSimulation of BGP--4+4+Experiment with a TwoExperiment with a Two--router Scenariorouter ScenarioExperiments with ThreeExperiments with Three--router Scenariosrouter ScenariosConclusionsConclusions
T.BlagaT.Blaga –– Performance Evaluation of BGP Performance Evaluation of BGP –– RoEduNetRoEduNet 2005 2005 –– SovataSovata, May 20, May 20--22, 200522, 2005
ConclusionsConclusions
The Hold Timer is used to detect failuresThe Hold Timer is used to detect failuresConnection setup time: at least 3 x RTTConnection setup time: at least 3 x RTTBGP data traffic is not very significant:BGP data traffic is not very significant:
KEEPALIVE messages every 60 seconds: 21 bpsKEEPALIVE messages every 60 seconds: 21 bpsOne route oscillating every 30 sec: at least 34 bpsOne route oscillating every 30 sec: at least 34 bps
A BGP router provides transit service by defaultA BGP router provides transit service by defaultImplementation of routing policies is neededImplementation of routing policies is needed
The most important attribute is AS_PATH:The most important attribute is AS_PATH:Shortest AS_PATH is the best route (by default)Shortest AS_PATH is the best route (by default)Detection of routing loopsDetection of routing loops
T.BlagaT.Blaga –– Performance Evaluation of BGP Performance Evaluation of BGP –– RoEduNetRoEduNet 2005 2005 –– SovataSovata, May 20, May 20--22, 200522, 2005
Future WorkFuture Work
Experiments with path selection with different Experiments with path selection with different path attributespath attributesSimulation of more complex topologies, in order Simulation of more complex topologies, in order to study route stability and convergence to study route stability and convergence behaviourbehaviourPractical experimentation using Cisco routers Practical experimentation using Cisco routers and Zebra routing software in IPv6and Zebra routing software in IPv6
T.BlagaT.Blaga –– Performance Evaluation of BGP Performance Evaluation of BGP –– RoEduNetRoEduNet 2005 2005 –– SovataSovata, May 20, May 20--22, 200522, 2005
ReferencesReferences
REKHTER, Y. & T. LI REKHTER, Y. & T. LI –– ““A Border Gateway A Border Gateway Protocol 4 (BGPProtocol 4 (BGP--4)4)””, , RFC 1771RFC 1771, 1995, 1995HALABI, S. & D. McPHERSON HALABI, S. & D. McPHERSON –– ““Internet Internet Routing Architectures, 2Routing Architectures, 2ndnd Ed.Ed.””, Cisco, 2000, Cisco, 2000DOYLE, J. & J. DEHAVEN DOYLE, J. & J. DEHAVEN –– ““Routing TCP/IP Routing TCP/IP Vol. IIVol. II””, Cisco, 2001, Cisco, 2001NSNS--2:2: http://www.isi.edu/nsnam/ns/http://www.isi.edu/nsnam/ns/BGP++: BGP++: http://www.ece.gatech.edu/research/http://www.ece.gatech.edu/research/labs/MANIACS/BGP++/labs/MANIACS/BGP++/