对PGM可靠组播的调查
注:为了叙述方便,以下的组播均指可靠的组播。
调查结果:
1. 组播适合于局域网一对多的传送数据,相比TCP能极大减少对服务器端的压力,特别是客户端数量巨大时尤为明显;相比UDP则可靠性更好,同时组播目的性更强。
2. 组播每个包的最大字节数为65535(即:64K-1)。因此若数据包的字节数大于65535,则需预先手动将大包拆分,分成多个小包后组播发送。
3. 局域网中的组播可靠性可以保证(在网络良好的情况下,能做到不丢包、不乱序)。通过大量的测试,可靠组播确实“可靠”。即使在客户端人为阻塞一段时间,组播依旧可以通过FEC校验修复功能进行部分或全部的修复(修复率视PGM FEC窗口大小和存储时间而定)。
4. 测试中,同时发现若组播数据量过大,有可能造成局域网交换机阻塞。影响局域网内其他电脑的网络。(例如2010-6-9,开启10个服务器端,均以6 M/S左右的速度进行组播,大概两个小时后,9楼有路由被阻塞)。
5. 组播适合于1对多的情况(即一个发送端,多个接收端)。若是多个发送端往同一个组播地址(端口号也相同)发送数据,则接收端只能接收到一个发送端的数据。
6. 组播发送端不需要绑定(Bind)组播地址及端口号,但接收端需要绑定组播地址及端口号。因此在同一台电脑上,可以有多个组播地址及端口号都相同的发送端,但不能有多个组播地址及端口号都相同的接收端(否则,socket会报10048错误)。即,相同接收端,必须部署到不同的电脑上去。
7. 组播的地址是保留的D类地址从224.0.0.0—239.255.255.255,而且一些地址有特定的用处如,224.0.0.0—244.0.0.255只能用于局域网中路由器是不会转发的,并且224.0.0.1是所有主机的地址,224.0.0.2所有路由器的地址,224.0.0.5所有ospf路由器的地址,224.0.13是PIMv2路由器的地址;239.0.0.0—239.255.255.255是私有地址(如192.168.x..x);224.0.1.0—238.255.255.255可以用于Internet上的。
2层的MAC地址是如何与3层的IP地址进行映射的呢?通过将MAC地址的前25位强行规定位0100.5e,而后23位对应IP地址的后23位,而组播IP地址的前4位均相同如: IP地址: 1110yyyy.yxxxxxxx.xxxxxxx.xxxxxxxx MAC地址: 00000001.00000000.01011110.0xxxxxxx.xxxxxxx.xxxxxxxx 显然有32个IP地址(有5个y可以不一样)对应一个MAC地址,所以要避免在同一网络中使用的多个组播IP地址对应一个MAC地址。