Combined instrument transformer PVA 123a/PVA 145a Installation ...
CS 145A Case Study: Simplified BGP Finite State Machine Netlab.caltech.edu/course.
-
Upload
adrienne-tidd -
Category
Documents
-
view
223 -
download
0
Transcript of CS 145A Case Study: Simplified BGP Finite State Machine Netlab.caltech.edu/course.
CS 145ACS 145ACase Study: Case Study:
Simplified BGP Simplified BGP Finite State Finite State
MachineMachineNetlab.caltech.edu/courseNetlab.caltech.edu/course
TodayToday
Brief Introduction of routing Brief Introduction of routing protocolsprotocols
An example of Finite State MachineAn example of Finite State Machine Lab 3Lab 3
What does the Internet What does the Internet look like?look like?
Example: (/sbin/traceroute) Example: (/sbin/traceroute) C:\>tracert cwis.usc.eduC:\>tracert cwis.usc.eduTracing route to cwis.usc.edu [128.125.253.146]Tracing route to cwis.usc.edu [128.125.253.146]1 <1 ms Jorgensen-RSM-44.caltech.edu [131.215.44.253]1 <1 ms Jorgensen-RSM-44.caltech.edu [131.215.44.253]2 <1 ms Booth-border.ilan.caltech.edu [131.215.254.254]2 <1 ms Booth-border.ilan.caltech.edu [131.215.254.254]3 <1 ms CalREN-Caltech.caltech.edu [192.41.208.49]3 <1 ms CalREN-Caltech.caltech.edu [192.41.208.49]4 <1 ms JPL--CIT.POS.calren2.net [198.32.248.5]4 <1 ms JPL--CIT.POS.calren2.net [198.32.248.5]5 1 ms UCLA--JPL.POS.calren2.net [198.32.248.1]5 1 ms UCLA--JPL.POS.calren2.net [198.32.248.1]6 1 ms ISI--UCLA.POS.calren2.net [198.32.248.29]6 1 ms ISI--UCLA.POS.calren2.net [198.32.248.29]7 2 ms USC--ISI.POS.calren2.net [198.32.248.25]7 2 ms USC--ISI.POS.calren2.net [198.32.248.25]8 3 ms rtr43-c2-gw.usc.edu [128.125.251.66]8 3 ms rtr43-c2-gw.usc.edu [128.125.251.66]9 2 ms rtr-gw-1.usc.edu [128.125.254.1]9 2 ms rtr-gw-1.usc.edu [128.125.254.1]10 2 ms cwis.usc.edu [128.125.253.146]10 2 ms cwis.usc.edu [128.125.253.146]
Topology of the NetworkTopology of the Network
131.215.44.214
131.215.44.253
131.215.254.254
192.41.
208.49
198.32.
248.5198.32.
248.1198.32.
248.29
198.32.
248.25
128.125.251.66
128.125.253.146
128.125.254.1
The Journey of a packet (1)The Journey of a packet (1)131.215.44.214-131.215.44.214->131.215.44.253>131.215.44.253
131.215.44.214
131.215.44.253
131.215.254.254
192.41.
208.49
198.32.
248.5198.32.
248.1198.32.
248.29
198.32.
248.25
128.125.251.66
128.125.253.146
128.125.254.1
The Journey of a packet (2)The Journey of a packet (2)131.215.44.253131.215.44.253
IPIP
MACMAC
PhysicPhysic Get a packet From EthernetGet a packet From Ethernet
It’s for 00:90:6D:E7:D4:00. It’s for 00:90:6D:E7:D4:00.
That’s me. I should accept it.That’s me. I should accept it.
131.215.44.214
131.215.44.253
131.215.254.254
The Journey of a packet (2)The Journey of a packet (2)131.215.44.253131.215.44.253
IPIP
MACMAC ““OK, I am 00:90:6D:E7:D4:00”OK, I am 00:90:6D:E7:D4:00”
Pass the packet to IPPass the packet to IP
PhysicPhysic Get a packet from ethernet for : 00:Get a packet from ethernet for : 00:90:6D:E7:D4:0090:6D:E7:D4:00
131.215.44.214
131.215.44.253
131.215.254.254
The Journey of a packet (2)The Journey of a packet (2)131.215.44.253131.215.44.253
IPIP [IP] Header: [IP] Header:
From 131.215.44.214 to From 131.215.44.214 to “128.125.253.146”“128.125.253.146”
““Should go to next router: Should go to next router: 131.215.254.254”131.215.254.254”
MACMAC ““OK, I am 00:90:6D:E7:D4:00”OK, I am 00:90:6D:E7:D4:00”
Pass the packet to IPPass the packet to IP
PhysicPhysic Get a packet from ethernet for: 00:Get a packet from ethernet for: 00:90:6D:E7:D4:0090:6D:E7:D4:00
131.215.44.214
131.215.44.253
131.215.254.254
Necessary Information Necessary Information (1)(1)
Where shall I pass the packet, for a given Where shall I pass the packet, for a given destination IP address? – Routing Tabledestination IP address? – Routing Table
Exmaple:Exmaple:[weixl@orchestra:~]> route[weixl@orchestra:~]> route
DestinatiDestinationon
GatewayGateway Gen-maskGen-mask FlaFlagsgs
InterfaInterfacece
131.215.131.215.44.044.0
** 255.255.2255.255.255.055.0
UU Eth0Eth0
127.0.0.0 127.0.0.0 ** 255.0.0.0255.0.0.0 UU lolo
default default 131.215.44131.215.44.254.254
0.0.0.00.0.0.0 UFUF Eth0Eth0
How?How?
Manually add/delete routing entriesManually add/delete routing entries Automatically exchange routing Automatically exchange routing
information between routers.information between routers.
Routing ProtocolRouting ProtocolA: hi, are you there?A: hi, are you there?B: yes.B: yes.A: Can I tell you a piece of news?A: Can I tell you a piece of news?B: Sure.B: Sure.A: I have a way to get to www.usc.edu.A: I have a way to get to www.usc.edu.B: ok. I will send you all the packets that are going to B: ok. I will send you all the packets that are going to
www.usc.edu. www.usc.edu. ……B: Hi, Can I tell you some news, too?B: Hi, Can I tell you some news, too?A: Yes!A: Yes!B: I can connect to all the machines in “cs.caltech.eB: I can connect to all the machines in “cs.caltech.e
du”du”A: ok. I will send you all the packets that are going tA: ok. I will send you all the packets that are going t
o “cs.caltech.edu”.o “cs.caltech.edu”.…………
131. 215.44. 253
(B)
131. 215.254. 254
(A)
Routing ProtocolRouting Protocol
A to C: hi, are you there?A to C: hi, are you there?
......
A to C: hi, are you there?A to C: hi, are you there?
……
A to B: I think C is down. And from A to B: I think C is down. And from now on, I cannot contact USC.now on, I cannot contact USC.
B: OK. I will try other paths when I B: OK. I will try other paths when I get packets for USC.get packets for USC.
……131. 215.44. 253
(B)
131. 215.254. 254
(A)
192. 41.208. 49
(C)
Routing ProtocolRouting Protocol
Good: Efficiently broadcast up-to-Good: Efficiently broadcast up-to-date routing informationdate routing information
Bad: Rumor may be broadcast Bad: Rumor may be broadcast efficiently, too.efficiently, too.
Argument: If the majority is good…Argument: If the majority is good… The algorithm should be correct in The algorithm should be correct in
distributed environments.distributed environments.
Routing ProtocolsRouting Protocols
Inside Autonomous System: Inside Autonomous System: Embrace the Freedom!Embrace the Freedom!
• RIP (Routing Information Protocol)RIP (Routing Information Protocol)• OSPF (Open Shortest Path First)OSPF (Open Shortest Path First) Between Autonomous System Between Autonomous System
(Exterior Gateway Protocol): More (Exterior Gateway Protocol): More consideration…consideration…
• BGP (Border Gateway Protocol)BGP (Border Gateway Protocol)
Border Gateway Border Gateway Protocol-4Protocol-4
Inter-Autonomous System Inter-Autonomous System CommunicationCommunication
Propagate Path InformationPropagate Path Information Support PolicySupport Policy Incremental UpdatesIncremental Updates Assume reliable transmission (TCP)Assume reliable transmission (TCP) http://www.ietf.org/rfc/rfc1771.txthttp://www.ietf.org/rfc/rfc1771.txt
Simplified BGP State Simplified BGP State MachineMachine
Event/ Acti on Li st1 Request f or Connect i on2 Connecti on Succeeded3 Connecti on Fai l ed4 "Open" Recei ved5 "KeepAl i ve" Recei ved6 "Update" Recei ved7 "Noti fi cat i on" Recei ved8 "Open" Sent9 "KeepAl i ve" Sent10 "Update" Sent11 "Noti fi cati on" Sent12 Cl ose connecti on13 Any Error, i ncl udi ng:TCP operat i on error,Packets f ormat error,Packets type error.
14 KeepAl i ve Ti mer Expi re15 KeepAl i ve Ti mer Reset16 Hol dOn Ti mer Reset17 Hol dOn Ti mer Expi re
-/10
Idle
Active OpenSent
OpenConfirmed
EstablishedConnect
-/81/-
4/9
5/- (15,16)3/12
2/-4/8, 9
6/-Any StateOther thanIdle/Active/
Connect IdleEstablished
BGP PacketsBGP Packets
Packets Format:Packets Format: 00-- 1515thth Byte: FF (hexadecimal) Byte: FF (hexadecimal) 16-1716-17thth Byte: Unsigned number, Length of Byte: Unsigned number, Length of
the Packet (>=19)the Packet (>=19) 1818thth Byte: Packet Type: Byte: Packet Type:
11 OPENOPEN 22 UPDATEUPDATE 33 NOTIFICATIONNOTIFICATION 44 KEEPALIVEKEEPALIVE
1919thth Byte to the end of the Packet: Routing Data Byte to the end of the Packet: Routing Data
Detailed SpecificationDetailed Specification
http://www.ietf.org/rfc/rfc1771.txthttp://www.ietf.org/rfc/rfc1771.txt Appendix I (page 47)Appendix I (page 47)
Lab 3 - TaskLab 3 - Task
Implement a (simplified) simplified Implement a (simplified) simplified BGP Finite State Machine:BGP Finite State Machine:
• Ignore the timersIgnore the timers• Ignore the details of Routing DataIgnore the details of Routing Data
Lab3 - Finite State Lab3 - Finite State MachineMachine
Event/ Acti on Li st1 Request f or Connect i on2 Connecti on Succeeded3 Connecti on Fai l ed4 "Open" Recei ved5 "KeepAl i ve" Recei ved6 "Update" Recei ved7 "Noti fi cat i on" Recei ved8 "Open" Sent9 "KeepAl i ve" Sent10 "Update" Sent11 "Noti fi cati on" Sent12 Cl ose connecti on13 Any Error, i ncl udi ng:TCP operat i on error,Packets f ormat error,Packets type error.
-/10
Idle
Active OpenSent
OpenConfirmed
EstablishedConnect
-/81/-
4/9
5/-3/12
2/-4/8, 9
6/-Any StateOther thanIdle/Active/
Connect Idle
Lab 3 - RequirementsLab 3 - Requirements The implementation is based on TCP.The implementation is based on TCP. The implementation is able to actively The implementation is able to actively
connect to multiple machines and it is connect to multiple machines and it is able to accept requests from multiple able to accept requests from multiple machines.machines.
The implementation allows at most one The implementation allows at most one connection from one machine (identified connection from one machine (identified by IP / hostname).by IP / hostname).
For each connection, the implementation For each connection, the implementation implements the Lab3 Finite State implements the Lab3 Finite State Machine.Machine.
Lab 3 - DetailsLab 3 - Details A program “server” A program “server” Read from a file called “server.conf”. Format Read from a file called “server.conf”. Format
of “server.conf”:of “server.conf”:• (1(1stst line:) Listen_Port Connection_Num(N) line:) Listen_Port Connection_Num(N)• (2(2ndnd line:) IP_1 Port_1 line:) IP_1 Port_1• (…)(…)• (N+1(N+1stst line:) IP_N Port_N line:) IP_N Port_N The server should read from “server.conf”, liThe server should read from “server.conf”, li
sten to Listen_Port for new connection, at the ssten to Listen_Port for new connection, at the same time, actively connect the specified machiame time, actively connect the specified machines (IP_1:Port_1, IP_2:Port_2, … IP_N:Port_N)nes (IP_1:Port_1, IP_2:Port_2, … IP_N:Port_N)
Lab 3 - Possible Lab 3 - Possible ProblemsProblems
Implementation of Finite State Implementation of Finite State MachineMachine
Check the errors (including Check the errors (including operation errors and Packet errors)operation errors and Packet errors)
Multiple connections from the same Multiple connections from the same machinemachine
Lab 3 - TipsLab 3 - Tips
Re-Use the codes in Lab 1Re-Use the codes in Lab 1 How to implement the Finite State How to implement the Finite State
Machine?Machine?• ““if … then…”if … then…”• ““State transition table”State transition table” How to test?How to test? Incremental DevelopmentIncremental Development DON’T START AT THE LAST MOMENT!DON’T START AT THE LAST MOMENT!
Lab 3 Lab 3
Due: Dec 1Due: Dec 1stst (Sunday) 23:59:59 (Sunday) 23:59:59 Email: Email: [email protected]@caltech.edu GradingGrading TA hours: TA hours:
Tue / Thu (20:00 – 22:00) JRG 170Tue / Thu (20:00 – 22:00) JRG 170
ExceptExcept: Nov.19 / Nov.21: Nov.19 / Nov.21