设为首页 收藏本站
查看: 4278|回复: 2

[经验分享] Linux配置及测试IP多播(Multicast)

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-8-12 09:25:57 | 显示全部楼层 |阅读模式
224.0.0.0到239.255.255.255  这些都叫组播地址

我举个 不太严谨 的例子
有几个主机已经加入了 224.1.1.1 这个组
192.168.1.1---192.168.1.2---192.168.1.3---比如这三个ip地址加入了组224.1.1.1
然后组播源10.1.1.1--- 向224.1.1.1 这个组地址发送信息的时候  那几个加入组的主机都会收到组播源发送的信息 ...如果你用icmp来检测的话  组播源10.1.1.1 ping 224.1.1.1是可以通的 就证明组播通了也就是下面的组员接收到了组播信息

So  我们来进行多播的配置工作

首先:
1
ifconfig -a




当我们检验eth0时未看见MULTICAST ,我们需要输入指令使其出现:

1
ifconfig eth0 multlicast




那么问题来了 新版本中没有eth0,而是eno16777736,So:我们需要将eno16777736改为eth0

解决方法:http://jingyan.baidu.com/article/6181c3e081f178152ef1538f.html

好了,现在已经启用多播了。现在需要新增D级多播网络的IP路由。那么需要新增下列路径:
1
#route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0




那么什么是D级多播地址

D类地址用于多点广播(Multicast)。

D类IP地址第一个字节以"1110"开始,它是一个专门保留的地址。它并不指向特定的网络,目前这一类地址被用在多点广播(Multicasting)中。多点广播地址用来一次寻址一组计算机,它标识共享同一协议的一组计算机。

D类的IP地址不标识网络,其地址覆盖范围为224.0.0.0~239.255.255.255。

接下来我们可用单一机器或局域网上两台机器测试IP多播的Java程序,如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
import java.net.DatagramPacket;
import java.net.InetAddress;
import java.net.MulticastSocket;

import javax.swing.text.Utilities;

public class MulticastNode {

InetAddress group = null;
MulticastSocket s = null;

public static void main(String[] args) {
if (args.length > 0) {
System.out.println("Sending message:" + args[0]);

MulticastNode node = new MulticastNode();
node.send(args[0]);
node.receive();
} else {
System.out.println("Need an argument string to send.");
System.exit(1);
}
}

public MulticastNode() {

try {

group = InetAddress.getByName("224.0.0.1");
s = new MulticastSocket(45564);
s.joinGroup(group);
} catch (Exception e) {
e.printStackTrace();
}

}

public void send(String msg) {
try {
DatagramPacket hi = new DatagramPacket(msg.getBytes(), msg.length(), group, 45564);
s.send(hi);
} catch (Exception e) {
e.printStackTrace();
}
}

public void receive() {

byte[] buf;
while (true) {
try {
buf = new byte[1000];
DatagramPacket recv = new DatagramPacket(buf, buf.length);
s.receive(recv);
System.out.println("Received:" + new String(buf));
} catch (Exception e) {
e.printStackTrace();
}
}

}

}





这个java程序主要需要注意group = InetAddress.getByName("224.0.0.1");这句话,其中这个地址指的是你的多播地址,而不是你的ip地址,我是通过不同ip地址的主机加入统一多播地址224.0.0.1(如果你的程序报not a Multicast address,则需要看见面多播地址如何查询)

多播地址查询方法为:
1
netstat -gn



               
将这个java程序打成jar包放入linux或window中,通过输入
1




1
java -jar Mult.jar NodeOne



(请改成你的jar包名字)
2.
1
java -jar Mult.jar NodeTwo





效果应为  Sending message: NodeOne
         Received:NodeOne
         Received: NodeTwo
我用window测试的,linux上的结果都一样,效果图如下:



3d7597ab-36ca-376d-b48f-c4975848691f.jpg

d512612d-2bf7-3a3f-8507-79383c0b9efb.jpg

2ecbc181-974d-3f65-b9bf-ad914956a63f.jpg




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-256744-1-1.html 上篇帖子: centos搭建samba服务器 下篇帖子: cenos 下 命令行和图形化界面的转换 Linux
累计签到:32 天
连续签到:1 天
发表于 2016-8-12 16:58:07 | 显示全部楼层
组播是什么?

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表