W3150A是以大规模集成电路方式全硬件TCPIP协议栈, 提供一种简单、经济的高速连接互联网上各种数字设备的解决方案。是Wiznet一款较早的产品。
今天给大家介绍一下W3150是如何使用多播传输的。
IP多播
目的地属于相同群组时,IP多播提供向多个目的地交付报文的功能。多播地址只能用于目的地址值。
多播群组的地址范围是从224.0.0.0到239.255.255.255.(D类)
与IP多播相关的多播硬件(以太网MAC)地址范围是从01:00:5e:00:00:00到01:00:5e:7f:ff:ff。此配置使得以太网MAC中的23位与IP多播群组地址一致。该映射将多播群组地址的低23位放置到与以太网MAC对应的23位上。
下图显示了多播地址与多播硬件地址。
例如,假设多播群组地址是224.1.1.11并且多播群组端口号是3000。在这种情况下,多播硬件地址是01:00:5e:01:01:0b。
下图依此举了一个例子。
1. 阶段 0
- IGMP 端口初始化
为了实现多播通信,在多播数据通信开始之前,每一个目的地都要发送IGMP(互联网组播管理协议)信息到网关以加入多播群组。
在W3150A端口N的指令寄存器设置OPEN指令之前,请将多播群组地址,多播硬件地址和多口号写到S0_DIPR(目的IP寄存器),S0_DHA(目的硬件地址寄存器)和S0_DPORT(目的端口号寄存器)。
2. 阶段 1
- 数据通信
多播接收过程与一般的UDP接收过程相同。
在接收到的含有多播群组地址和多播硬件地址的数据包中,唯一的不同就是目的地址字段和目的硬件地址字段的值不同。在正常的UDP接收过程中,当接收到的数据包中的目的地信息与W3150A的源信息相同时,W3150A将会接收数据包。但是在多播数据通信时,接收到的数据包中的目的地信息是多播信息。在W3150操作方面,接收过程与TCP接收过程相同,引文因为远程地址和远程端口号已经作为多播群组地址和多模端口号而被固定下来了。
多播发送过程与多播接收过程相同,而且多播发送操作也与多播接收操作相同。
2.1 接收过程
接收数据过程如下。在UDP情况下,在接收数据中附加了8字节的报头。该报头的结构体如下。
多播过程不需要目的ip地址和端口号。
所以,部分目的地ip地址和端口号在UDP过程中不需要。
因此这个过程说明在多播传输过程中目的ip地址和端口号可以删除。
即使写入了目的ip地址和端口号,W3150A也能正常工作,因为W3150A使用它自己的多播地址和端口号。
下面的接收过程是正常的UDP过程。去掉处理ip地址和端口号的那部分之后,下面的部分就变成了多播过程。
2.2 发送过程
发送过程与接收过程相同。去掉正常UDP发送过程中处理目的地址和端口号的那部分。
数据发送过程如下。
感谢关注!