Routing daemons and suites manipulate the routing table in the Kernel. So packets down't flow through the routing daemon, but rather packets get routed according to the routing table.
When it comes to which routes get priority when there are two choices of equal specificity (the most specific route always wins) in the routing table, it is which ever one has the best (lowest) metric
(see route
). In Cisco land is called 'Administrative Distance.' Different protocols such as RIP and BGP have default metrics. I am not sure if there is a Linux specific reference, but if you look at the administrative distance link I would venture a guess that routing daemons use the same priority.
As far as the routing protocol packets themselves, it depends on the routing protocol, but they generally use standard transport protocols. For example, BGP uses a TCP/IP session on port 179. So the daemon would just bind a socket accordingly.