组播(Multicast)传输: 在发送者和每一接收者之间实现点对多点网络连接。 如果一台发送者同时给多个的接收者传输相同的数据,也只需复制一份的相同数据包。它提高了数据传送效率。 组播(multicast): 也叫多播, 多点广播或群播。 指把信息同时传递给一组目的地址。它使用策略是最高效的,因为消息在每条网络链路上只需传递一次,而且只有在链路分叉的时候,消息才会被复制。 判断网卡是否支持组播 在Linux运行ifconfig, 如果网卡信息中包含UP BROADCAST RUNNING MULTICAST,则支持广播和组播。 参考: http://colobu.com/2014/10/21/udp-and-unicast-multicast-broadcast-anycast 组播IP地址 组播IP地址用于标识一个IP组播组 参考:http://www.china-ccie.com/ccie/lilun/Multicast/Multicast.html 组播数据包的生存时间 将消息发送到多播组时,该主机和端口的所有预定接收者都将接收到消息
Multicast 组播 组播是指从某一地址把信息同时传递给一组目的地址。 随后再用ACK(acknowledgments)或NAK(negative acknowledgments)来修复失败的组播 SRM(Scalable Reliable Multicast) 使用NAK 为了避免NAK风暴 随机延迟一段时间发送请求 使用exponential backoff:每次请求的间隔为上一次时长的两倍 RMTP(Relicable Multicast Transport Protocol
委托可以包含多个方法,这种委托称为多播委托。如果调用多播委托,就可以按顺序连续调用多个方法。为此,委托的签名必须返回void,否则就只能得到委托调用的最后一个方法的结果。
在RTSP协议的拉流传输中,我们知道最常见的传输协议肯定是UDP和TCP了,TSINGSEE青犀视频云边端架构视频平台比如国标GB28181平台EasyGBS及EasyCVR中都具备两种视频流的传输,用户可根据自身使用情况来进行选择。关于UDP和TCP的介绍,之前也为大家介绍过:UDP、TCP被动、TCP主动模式介绍,大家可以了解一下。
step.03:设置IP_MULTICAST_LOOP等组播选项。 step.04:使用IP_MULTICAST_IF选项来定义组播接口。 IP_MULTICAST_IF:设置组播中发送数据报文的接口。 IP_MULTICAST_TTL:设置组播中数据报文的生存时间(TTL)。 The message send to multicast server is: "Multicast Data MSG!" 接收端: get datagram message ok! The message from multicast server is: "Multicast Data MSG!" to group: 224.1.1.1 Multicast to group: 224.1.1.1 Multicast to group: 224.1.1.1 Multicast to group
enabled="true"> <multicast-group>224.2.2.3</multicast-group> <multicast-port </multicast-group> <multicast-port>54327</multicast-port> </multicast> </join> </network> < 以此类推,<join>内的<multicast></multicast>元素也是一个名为MulticastConfig的实体,而<multicast>中的<multicast-port></multicast-port enabled="true"> <multicast-group>224.2.2.3</multicast-group> <multicast-port>54327</multicast-port enabled="true"> <multicast-group>224.2.2.3</multicast-group> <multicast-port
使用之前确保网络环境支持 Multicast。 "> <multicast-group>224.2.2.3</multicast-group> <multicast-port>54327 </multicast-port> <multicast-time-to-live>32</multicast-time-to-live> 其中 <multicast> 元素用来配置 组播协议 组网的相关参数。当设置 <multicast> 元素中 enabled 属性为 true 时,表示启用 组播协议 组网。 enabled="false"> <multicast-group>FF02:0:0:0:0:0:0:1</multicast-group> <multicast-port
noop state DOWN mode DEFAULT group default qlen 1000 link/tunnel6 :: brd :: 6: wangpo: <BROADCAST,MULTICAST noop state DOWN mode DEFAULT group default qlen 1000 link/tunnel6 :: brd :: 6: wangpo: <BROADCAST,MULTICAST default qlen 1000 link/ether 22:01:ca:58:3d:59 brd ff:ff:ff:ff:ff:ff 7: xmq2wp@wp2xmq: <BROADCAST,MULTICAST default qlen 1000 link/ether be:27:e3:04:85:13 brd ff:ff:ff:ff:ff:ff 8: wp2xmq@xmq2wp: <BROADCAST,MULTICAST default qlen 1000 link/ether d2:98:28:54:86:aa brd ff:ff:ff:ff:ff:ff 8: wp2xmq@if7: <BROADCAST,MULTICAST
比如,在的机器上执行该命令,结果如下: sh-3.2# ifconfig lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384 options fe80::1%lo0 prefixlen 64 scopeid 0x1 nd6 options=201<PERFORMNUD,DAD> gif0: flags=8010<POINTOPOINT,MULTICAST > mtu 1280 stf0: flags=0<> mtu 1280 en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu ,DAD> media: autoselect status: active en1: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST : autoselect <full-duplex> status: inactive bridge0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST
ChannelOption<Integer> IP_TOS = valueOf("IP_TOS"); public static final ChannelOption<InetAddress> IP_MULTICAST_ADDR = valueOf("IP_MULTICAST_ADDR"); public static final ChannelOption<NetworkInterface> IP_MULTICAST_IF = valueOf("IP_MULTICAST_IF"); public static final ChannelOption<Integer> IP_MULTICAST_TTL = valueOf ("IP_MULTICAST_TTL"); public static final ChannelOption<Boolean> IP_MULTICAST_LOOP_DISABLED = valueOf ("IP_MULTICAST_LOOP_DISABLED"); public static final ChannelOption<Boolean> TCP_NODELAY = valueOf
msdn.microsoft.com/en-us/library/system.net.sockets(VS.96).aspx UdpAnySourceMulticastClient : A client receiver for multicast traffic from any source, also known as Any Source Multicast (ASM) or Internet Standard Multicast (ISM UdpSingleSourceMulticastClient: A client receiver for multicast traffic from a single source, also known as Source Specific Multicast (SSM). www.silverlightplayground.org/post/2010/01/02/Writing-a-server-less-conferencing-client-with-Silverlight-40-UDP-Multicast.aspx
= true; if(is_enable_multicast) { int is_multicast boolean is_enable_ssm_multicast = true; String multicast_address = ""; if(is_enable_ssm_multicast) { multicast_address = MakeSSMMulticastAddress = MakeMulticastAddress(); } Log.i(TAG, "is_enable_ssm_multicast :" + is_enable_ssm_multicast + " multiAddr: " + multicast_address); libPublisher.SetRtspServerMulticastAddress
msdp-tracert MSDP trace route to source RP mtracert Trace route to multicast source multicast Specify multicast configuration information multicast-source-deny Multicast source port deny ndp Neighbor discovery protocol nslookup patch Patch module pim Specify PIM(Protocol Independent Multicast udp-helper UDP HELPER module undo Cancel current setting unknown-multicast
255.255.255.0 inet6 addr: fe80::50:ff:fe00:1/64 Scope:Link UP BROADCAST RUNNING MULTICAST :36:7D inet6 addr: fe80::6800:c4ff:fe12:367d/64 Scope:Link UP BROADCAST RUNNING MULTICAST :83:59 inet6 addr: fe80::545a:20ff:fe32:8359/64 Scope:Link UP BROADCAST RUNNING MULTICAST :76:F4 inet6 addr: fe80::144d:19ff:fee5:76f4/64 Scope:Link UP BROADCAST RUNNING MULTICAST :28:59 inet6 addr: fe80::a817:c7ff:fe06:2859/64 Scope:Link UP BROADCAST RUNNING MULTICAST
配置参数如下: discovery.zen.ping.multicast.group:224.5.6.7 # 端口 discovery.zen.ping.multicast.port:1234 # 广播消息ttl discovery.zen.ping.multicast.ttl:3 # 绑定的地址,null表示绑定所有可用的网络接口 discovery.zen.ping.multicast.address # discovery.zen.ping.multicast.enabled: false # #设置是否打开多播发现节点,默认是true。 ES服务发现实现 本次讨论仅为multicast广播版本的实现,不含其他。 它是以plugin形式接入的,以 discovery.zen.ping.multicast.enabled 作为开关。 ("discovery.zen.ping.multicast.buffer_size", 2048); this.ttl = this.settings.getAsInt("discovery.zen.ping.multicast.ttl
255.255.255.0 inet6 addr: fe80::282e:beff:fecf:8cdc/64 Scope:Link UP BROADCAST RUNNING MULTICAST 255.255.255.0 inet6 addr: fe80::282e:beff:fecf:8cdc/64 Scope:Link UP BROADCAST RUNNING MULTICAST inet addr:10.10.10.159 Bcast:192.168.99.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST inet addr:10.10.10.159 Bcast:10.10.10.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST inet addr:10.10.10.159 Bcast:10.10.10.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST
qlen 1000 link/ether 00:0c:29:57:26:9d brd ff:ff:ff:ff:ff:ff 3: eno33554960: <BROADCAST,MULTICAST ff:ff:ff:ff:ff:ff 查看当前主机指定网络连接信息 # ip link show eno16777728 2: eno16777728: <BROADCAST,MULTICAST off # ip link show eno16777728 //如下,没有出项MULTICAST 2: eno16777728: <BROADCAST,UP,LOWER_UP> mtu qlen 1000 link/ether 00:0c:29:57:26:9d brd ff:ff:ff:ff:ff:ff # ip link set eno16777728 multicast :1/128 scope host valid_lft forever preferred_lft forever 2: eno16777728: <BROADCAST,MULTICAST
mtu 8232 index 1 inet 127.0.0.1 netmask ff000000 ixgbe0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST groupname ipmp ether 0:1b:21:6f:8d:dc ixgbe0:1: flags=9040843<UP,BROADCAST,RUNNING,MULTICAST 工作是否正常 bash-3.2# if_mpadm -d ixgbe0 bash-3.2# ifconfig -a lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST > mtu 8232 index 1 inet 127.0.0.1 netmask ff000000 ixgbe0: flags=89000842<BROADCAST,RUNNING,MULTICAST 0 groupname ipmp ether 0:1b:21:6f:8d:dc ixgbe0:1: flags=89040842<BROADCAST,RUNNING,MULTICAST
而使用组播(multicast)向多个端点同时发送消息可以得到更好的效率,因为网络基础设施可以确保数据包会被传送到所有接收方。 组播消息总是使用UDP发送,因为TCP需要提供一对通信系统。 要使用IP_MULTICAST_TTL选项与setsockopt()函数来设置TTL。默认值1表示路由器不会把数据包转发到当前网段之外。TTL最大取值255,应包包装为1个字节。 = struct.pack('b', 1)#本博主数据结构与算法第10篇对struct二进制结构体进行介绍 sock.setsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_TTL , ttl) try: msg = "群发的消息,你不必回".encode('UTF-8') sent = sock.sendto(msg, multicast_group) 示例代码如下: import socket import struct multicast_group = '224.3.29.71' server_address = ('', 10000) sock
1000 link/ether 52:54:00:bb:18:70 brd ff:ff:ff:ff:ff:ff3: br-703d0323a265: <NO-CARRIER,BROADCAST,MULTICAST state DOWN mode DEFAULT link/ether 02:42:80:e4:57:84 brd ff:ff:ff:ff:ff:ff4: docker0: <BROADCAST,MULTICAST ff:ff:ff:ff:ff:ff[root@VM_52_29_centos ~]# ifconfig docker0docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST 再看网桥的连接[root@VM_52_29_centos ~]# bridge link6: vethf077bca state UP : <BROADCAST,MULTICAST,UP,LOWER_UP 宿主机上的网络接口:[root@VM_52_29_centos ~]# ifconfigbr-703d0323a265: flags=4099<UP,BROADCAST,MULTICAST> mtu