Chapter 5: The Network Layer II Flashcards

1
Q

What are the three classifications of routing algorithms?

A

Centralised: All routers have complete topology.
Decentralised: Least-cost path is carried out iteratively, distributed among the routers.

Static routing algorithms are where routes change very slowly.
Dynamic routing algorithms change the routing paths as the network traffic changes.

Load-sensitive algorithms consider that link costs vary dynamically to reflect the current level of congestion in the underlying link.
Load-insensitive algorithms are where a link’s cost doesn’t represent it’s congestion.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is Dijkstra’s algorithm?

A

Initialisation:
- The subset of finished nodes is the starting node.
- The cost of all neighbours is the path cost.

Loop:
- Find the unfinished node with the lowest cost and add it to the finished nodes.
- For each neighbour, update it if the path from this node is shorter.

Terminate:
- When all nodes are finished.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is the time-complexity of Dijsktra’s algorithm?

A

O(V^2) standardly, but with heap implementation O(V + ElogV)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

How can we mitigate oscillating results of the LS algorithm?

A

Routers each randomise the time it sends out a link advertisement.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Explain the Bellman-Ford equation:

d_x(y) = min_v{c(x, v) + d_v(y)}

A

If x goes to some v, before going to y, it will be the cost of the (x,v) link plus the least-cost of the (v,y) path.

Thus, the minimum over all neighbours is the least cost.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What is the Distance-Vector Algorithm? Explain for some node x.

A

Initialisation:
- For all destinations, set D_x(y) to be the cost of (x,y) link. [This can be infinite.]
- For all neighbours, set D_w(y) to an unknown variable.
- For all neighbours, send distance vector Dx = [D_1(y), D_2(y), …, D_N(y)].

Loop (on link_cost change to any neighbour || on distance vector received) :
- for all destinations ‘y’, D_x(y) = min_v{c(x, v) + d_v(y)}
- if D_x(y) changed, send the distance vector to all neighbours.

Termination: None

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What is the count-to-infinity problem?

A

Bad news spreads very slowly through a DV algorithm. If a link cost suddenly increases a lot, two nodes will be incrementally increasing their length times, taking a long time to reach a high value.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Does poisoned reverse fix the count-to-infinity problem?

A

No. If z routes through y to get to x, every time it sends its vector, it sends Dz(x) as infinity, meaning y will not route through z to get to x.

This works for neighbouring nodes, but not loops of more then two nodes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Compare the LS and DV routing algorithms.

A

LS requires more messages, O(N * E), to be sent.

LS converges much faster then DV, which can hit routing loops or count to infinity.

LS is much more robust than DV.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What is an intra-autonomous system routing protocol?

A

In a group of routers/links owned by one administrator, the routing algorithm running within them is an Intra-AS protocol.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What is OSPF?

A

It uses flooding of link-state information and Dijkstra’s algorithm. Each router builds a complete topological map of the AS.
It then computes minimum path trees to each subnet with itself as the root.

Every time something changes, or periodically every 30 minutes, the link’s state is broadcast.
All OSPF messages are authenticated.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What are the two main roles of BGP (Border Gateway Protocol)?

A

It allows each subnet to be known about by the rest of the Internet.

It determines the best route for a router to send a packet to a specific prefix.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What is the route selection algorithm for BGP?

A

If there are multiple routes to the same prefix, then the following ordering is chosen:
1. Local preference (additional attribute set by the router or administrator)
2. Shortest AS-PATH
3. Closed NEXT-HOP router
4. BGP identifiers

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Theoretically, how might CDN servers use BGP? Why do they not?

A

They set the same IP address for each of its servers, and use standard BGP to advertise this IP address from each of the servers.

Each router chooses the best route to a server.

They don’t because BGP routing changes will cause different packets to reach different instances of the Web server.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

How does DNS use BGP?

A

When a DNS query is sent to one of the root server IP addresses, BGP finds the closest root DNS server for that IP address.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

A router’s flow table should forward any packets in port 1 with an IP address of 10.3.. and destination 10.2.. to port 4.

What does the flow table look like?

A

Match: Ingress port = 1, IP src = 10.3.., IP dest = 10.2..

Action: Forward(4)

17
Q

Aside from forwarding, give two other uses of flow tables.

A

Load balancing
Firewalling

18
Q

What are the characteristics of a SDN architecture?

A

Flow based forwarding.
Separation of data plane and control plane.
Network control functions external to data-plane switches.
A programmable network.

19
Q

What are the three layers of an SDN controller?

A

Interface to the network control application layer.
Network-wide state management layer.
Communication layer.

20
Q

What messages are commonly flowed from the controller to the controlled switch in SDN?

A

Configuration
Modify State
Read State
Send Packet

21
Q

What messages are commonly flowed from the controlled switch to the controller in SDN?

A

Flow-removed
Port status
Packet-in

22
Q

How does a link (R1 <–> R2) going down get rerouted in a SDN?

A
  1. R1 uses the OpenFlow port-status message to notify the SDN controller of the broken line.
  2. The SDN controller notifies the link-state manager (middle layer)
  3. The network control layer uses Dijkstra’s algorithm to compute new routes.
  4. The link state routing application interacts with the link-state manager to get updated link state.
  5. This is passed to the flow table manager, which determines the flow tables to be updated.
  6. The flow table manager uses the communication layer to update flow table entries at R1 and R2 (and other relevant ones)
23
Q

What are some challenges of developing SDNs?

A

Ensuring a strong theory of reliable distributed system for control plane.

Adding security and dependability from day one.

Internet scaling - beyond a single AS.