《TCP/IP详解卷2:实现》笔记--IP多播选路

本文探讨了IP多播的实现,重点关注mrouted守护程序及其在多播路由表计算和数据报转发中的作用。同时,文章还介绍了多播输出处理、虚拟接口、IGMP协议以及多播转发的相关细节,特别是如何处理多播数据报的TTL和子接口条件。
摘要由CSDN通过智能技术生成

mrouted程序计算多播路由表,以及在网络之前转发多播数据报的内核函数。

下图是mrouted的几个版本及它们和BSD版本的对应关系。mrouted版本包含用户级守护程序和内核级多播程序。


本文讨论包含在Net/3中多播软件2.0版,但被认为已经过时了。

因为还没有广泛安装商用多播路由器,所以常用多播隧道连接标准IP单播互联网上的两个多播路由器,构造多播网络。Net/3

支持多播隧道,并采用宽松源站记录路由选项构造多播隧道。一种更好的隧道技术是把IP多播数据报封装在一个单播数据报里,

但Net/3不支持。


1.多播输出处理

在ip_moptions结构中ip_output被传给一个明确的结构,或者ip_output在路由表中查找目的地组,并使用在路由路口中返回
的接口。
如果在选择了输出接口后,ip_output回送该数据报,就把它放在所选输出接口等待输入处理,当ipintr处理它时,把它当作是
要转发的数据报,如下图所示:

上图中,虚线箭头代表原始输出的数据报,ip_mloopback创建的备份由带箭头的细线表示,并作为输入被传给运输层协议。
当ip_mforward决定通过系统上的另一个接口转发该数据报时,就产生了第三个备份。最粗的箭头代表第三个备份,在多播
隧道上发送。
如果数据报不是回送的,则ip_output把它直接传给ip_mforward,ip_mforward复制并处理该数据报,就像它是从ip_output
选定的接口上收到的一样。如下图所示:


2.mrouted守护程序

用户级进程mrouted守护进程允许和管理多播路由选择。mrouted实现IGMP协议的路由部分,并于其他多播路由器通信,
实现网络间的多播路由选择。路由算法在mrouted上实现,但内核维护多播路由选择表,并转发数据报。
本文主要讨论支持mrouted的内核数据结构和函数,不讨论mrouted本身。我们讨论用于数据报选择路由的截断逆向路径
广播TRPB(truncated reverse path broadcast)算法以及用于在多播路由器之间传递信息的距离向量多播选路协议
DVMRP。
mrouted守护程序通过在一个IGMP插口上设置选项与内核通信,这些选项如下图所示:

插口选项被setsockopt系统调用传给rip_ctloutput函数,rip_ctloutput调用ip_mrouter_cmd函数,该函数通过一个switch
分别调用上表中第三列的函数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值