摘要:互联网技术考试固定多播路由设计方案:固定多播包括两部分内容,一是多播路由器和主机之间通过组成员管理协议(如MLD) 来构建和维护组成员关系,二是多播路由器之间通过多播路由协议(如PIM-SM)来构建和 维护多播转发结构。
6.3.2 固定多播路由设计方案
固定多播包括两部分内容,一是多播路由器和主机之间通过组成员管理协议(如MLD) 来构建和维护组成员关系,二是多播路由器之间通过多播路由协议(如PIM-SM)来构建和 维护多播转发结构。
PIM-SMV2的设计可分为核心层和用户层两个部分。其中核心层的主要任务是根据 存储在核心多播转发高速缓冲区中的信息处理多播数据包的转发。而所有的PIM协议 消息、MLD协议消息和内部控制消息都传送到PIM用户层;用户层具有创建多播路由 表的全部信息,它通过使用Setsockopt()系统调用来更新核心中的MFC,以便核心进行 多播包的转发。
PIM-SM系统实现模型如图6-15所示。其中,用户层的实现基于多个功能模块,包括处理多播路由表(MRT)、虚拟接口表、处理PIM消息及MLD消息、内部控制消息处理、定 时和核心层接口等。同时,根据处理结果来修改和更新多播路由表,同时通过SetsockoptO 和Getsockopt()系统调用把相关的改变反映到核心中去。
核心层的实现基于多个功能模块,包括PIM包的输入处理模块、多播包转发模块和支持 用户空间套接字属性设置模块。
MLD协议是一个不对称的协议,它可分为两部分:多播地址侦听者部分和多播路由器 部分。其协议实现也按照功能分为侦听者端MLD部分和多播路由器端MLD部分分别实现。本节所描述的部分就是指路由器端的MLD部分。
路由器锎MLD协议主要分为MLD初始化、接收MLD消息和发送MLD消息3部分功能。
路由器端MLD协议的消息处理流程图如图6-16所示。
对于路由器端的MLD部分,其协议消息处理的实现主要浠要5个函数:初始化MLD (iniimld〉、读 MLD 消息(read_mld)、接收 MLD 消息(receive_mld)、处理 MLD 消息(acccpt_mld)和发送MLD查询消息(send_mld),另外还有对特定的多播侦听者状态的杳询。 内核主要参与有关套接U的处理,例如初始化和接收发送MLD协议。
初始化MLD--主要完成MLD套接字的创建和缓冲空间的分配,在侦听时内核自动加 载在套接口上査询MLDv2套接字读、接收和处理MLD消息--这部分的目的是保证上层的MLD协议和内核的交互,接收MLD消息是先从套接口读取.判断消息长度和类型的合理性。然后对于合法的MLD消息 调用aCCept_mld6进行处理,根据上文所述的不闻的消息类型来调用不同的处理函数来处理 MLD消息。其中值得注意的是对于消息类型为0的消息,这表明它是通过MLD套接字队列 传递的非MLD消息,要调用相应的函数转到内部控制消息的内核处理。
发送MLD査询消息--主要完成不同类型数据包的构建,并且通过调用函数发送各种 消息包。按照所需要发送的消息,严格执行协议规定的MLD消息要求构建消息类型、编码、校验和、相应延迟、源地址和目的地址等,然后从相应的MLD套接口发送消息。
返回目录:
编辑特别推荐:
通信工程师备考资料免费领取
去领取