OSPF为什么选择raw IP传输协议报文?

OSPF采用raw IP协议进行协议报文的传输,IP报文头部中协议号为89。因为使用了raw IP,所以OSPF要有需要自己实现确认重传机制,还需要通过OSPF报文中的checksum字段验证协议报文的内容是否正确。通过LSA中的sequence值来应对乱序问题。

OSPF为什么不使用TCP?OSPF支持邻居的动态发现,而邻居动态发现需要使用组播报文。使用AllSPFRouters(224.0.0.5)作为DIP。在发现邻居之前,并不知道邻居的IP地址,也就无法使用TCP。另外,在多路访问网络中,DR使用地址AllSPFRouters(224.0.0.5)多播它的LS更新包,只需发送一份报文,而不是为每个邻居单独发一份报文,可以显著减少资源消耗。有人认为TCP要三次握手建立连接,这消耗了时间,实际上,OSPF邻居都是直连的,建立TCP连接是毫秒级的事情。并且OSPF对邻居建立的速度并不敏感,比如OSPF hello报文默认10s才发送一次,也就是发现邻居都可能耗时10s。有人说TCP消耗CPU资源,但是OSPF自己处理确认重传和乱序问题,同样也要耗费CPU资源。还有人认为TCP连接的资源有限,因为OSPF邻居数目不会非常巨大,至多1K,所以TCP连接数也不会是问题。

有人可能会提议,邻居发现阶段使用组播,发现之后使用TCP建邻居。这样可以避免在应用中去实现确认重传和排序功能。LDP就是这样实现的。它使用UDP发现邻居。使用TCP建立邻居。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值