OSPF最关键的一步就是如何发现自己的邻居,对于P2P和broadcast这两种链路这不是什么难题,只要往接口上发送224.0.0.5 组播,即然大家都加入了224.0.0.5这个组,很容易就可以互相找到对方,接下来就需要互相建立OSPF session了,这对于P2P来说最自然不过。
但是对于broadcast接口有点扩展性的小问题,如果有10台路由器处于同一网段(broadcast域),如果两两一对建立session,则需要建立10*9/2=45个session,太多的session没有必要,也浪费资源,于是就选举出DR,BDR(备份),大家都和这两个角色建立session,那只要9+9-1= 17 session 就足够了。所以先要区分这两种接口类型,于是就有了P2P,broadcast 网络类型。
有时网络拓扑采用的是HUB-Spoke的方式,即spoke和HUB有物理连接,而spoke之间没有物理连接,如果采用P2P,即HUB和每个spoke 之间用P2P网络类型,即使采用/30掩码,也要浪费两个IP地址,如果有13对,则浪费26个IP地址,而如果他们采用P2MP这种网络类型,即大家在同一个网段,使用一个/28掩码,最多浪费两个IP地址。spoke 之间的流量需要HUB做转发,只要路由的下一跳是HUB就可以满足流量的转发。
而对于Frame Relay,由于大多也采用HUB-Spoke 的方式互联,HUB通过PVC来区别各个spoke,一方面希望他们在同一个网段,节省IP地址空间,另一方面如果采用静态配置邻居,而不是动态发现邻居,则可以大大减少发现邻居的流量,于是就有了一个新的网络类型:Non Broadcast Multiple Access,即NBMA网络类型。