组播

安卓局域网组播

让人想犯罪 __ 提交于 2020-01-21 04:39:21
知识背景: 组播使用UDP对一定范围内的地址发送相同的一组Packet,即一次可以向多个接受者发出信息,其与单播的主要区别是地址的形式。IP协议分配了一定范围的地址空间给多播(多播只能使用这个范围内的IP),IPv4中组播地址范围为224.0.0.0到239.255.255.255。 MulticastSocket概念: java中通过MulticastSocket实例进行通信,使用时涉及到几个概念 ①TTL(Time To Live),每个IP报文都包含一个TTL(是一个数字),报文每被一个路由转发一次它的TTL减1,当TTL变为0时,该报文被丢弃; ②多播组(multicast group),接受者只有加入这个组才能获取发送到该组的报文(这就确定了组播的对象); 代码实现: 1. 权限申请 <uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> 2. 获取组播锁 调用MulticastLock对象的acquire方法,获取到组播锁,相应的,用完组播,为了不浪费电力,要调用MulticastLock的release方法释放锁 WifiManager

[转帖]IPv6基础知识,一分钟了解下

狂风中的少年 提交于 2020-01-18 08:40:52
IPv6基础知识,一分钟了解下 https://network.51cto.com/art/201912/608265.htm 一、IPv6简介 1、IPv6 早期被称为 IPng (next generation)目前是 IP 协议的最新版本 IP 协议是一种网络层协议,采用 IP协议构建的数据通信网络可提供高效的数据、语音和图像的传输服务。目前,在 Internet 上广泛采用的 IP协议是 IPv4 版。随着 Internet 的迅猛发展,在充分享用了 IPv4 协议的简单高效的同时,人们也就意识到了IPv4 的 32 位地址空间是不够的;因此,必须建立新的 IP 标准。 2、海量 IPv6 地址空间 IPv6 最根本的改变是提供了未来对全球范围内可确定的地址空间的需求。基于移动设备的应用,如:个人数字设备(PDAs), 移动电话,汽车, 家庭网络和其他的移动数据通信设备都需要全球范围内可确定的地址。IPv6 将网络地址位数从 32 位扩展到 128 位, 这代表着可以为地球上的任何需要联网的设备提供唯一确定的地址。正是因为有了全球范围内可确定的地址,IPv6 提供了全球范围内的地址可达,端到端的安全通信,以及对所有对地址有要求的应用和服务的支持。 除此之外,丰富的 IPv6 地址空间消除了网络中的NAT(Network Address Translation)瓶颈

常见组播地址

此生再无相见时 提交于 2020-01-05 22:04:43
224.0.0.0 基准地址(保留) 224.0.0.1 所有主机的地址 (包括所有路由器地址) 224.0.0.2 所有组播路由器的地址 224.0.0.3 不分配 224.0.0.4 dvmrp 路由器 224.0.0.5 所有 ospf 路由器 224.0.0.6 ospf DR/BDR 224.0.0.7 st 路由器 224.0.0.8 st 主机 224.0.0.9 rip-V2 路由器 224.0.0.10 Eigrp 路由器 224.0.0.11 活动代理 224.0.0.12 dhcp 服务器 / 中继代理 224.0.0.13 所有 pim 路由器 224.0.0.14 rsvp 封装 224.0.0.15 所有 cbt 路由器 224.0.0.16 指定 sbm 224.0.0.17 所有 sbms 224.0.0.18 vrrp 224.0.0.22 IGMPv3 Report报文目的组播地址 来源: 51CTO 作者: 老肖的博客 链接: https://blog.51cto.com/8189171/2464514

组播(Multicast)传输

五迷三道 提交于 2019-12-26 18:05:30
组播(Multicast)传输: 在发送者和每一接收者之间实现 点对多 点网络连接。 如果一台发送者同时给多个的接收者传输相同的数据,也只需复制一份的相同数据包。它提高了数据传送效率。减少了骨干网络出现拥塞的可能性。 单播、组播、广播的差别可以看下图: 单播(unicast): 是指封包在计算机网络的传输中,目的地址为单一目标的一种传输方式。它是现今网络应用最为广泛,通常所使用的网络协议或服务大多采用单播传输,例如一切基于TCP的协议。 组播(multicast): 也叫多播, 多点广播或群播。 指把信息同时传递给一组目的地址。它使用策略是最高效的,因为消息在每条网络链路上只需传递一次,而且只有在链路分叉的时候,消息才会被复制。 广播(broadcast):是指封包在计算机网络中传输时,目的地址为网络中所有设备的一种传输方式。实际上,这里所说的“所有设备”也是限定在一个范围之中,称为“广播域”。 判断网卡是否支持组播 在Linux运行ifconfig, 如果网卡信息中包含UP BROADCAST RUNNING MULTICAST,则支持广播和组播。 参考: http://colobu.com/2014/10/21/udp-and-unicast-multicast-broadcast-anycast 组播IP地址 组播IP地址用于标识一个IP组播组。 IANA(internet

QT之UDP通信

﹥>﹥吖頭↗ 提交于 2019-12-25 21:36:55
前言:前一篇讲了TCP通信,这篇来看看UDP通信。 这里说明一下,UDP通信中分为三种通信分别为单播、组播和广播,下面将一一为大家介绍。 同样的我们都需要在工程文件中添加network QT += core gui network 进行UDP通信需要用到的头文件 #include <QUdpSocket> 这里我们把UDP通信分为两个部分写,一个是发送端,另一个是接收端,而发送端中又分为单播、组播和广播三种形式,下面我们先来看看写发送端的代码程序的步骤: 发送端Udpsend的代码: 1、单播 (1)创建套接字 QUdpSocket mSocket;mSocket = new QUdpSocket(); (2)发送数据到指定的地址和端口号 mSocket->writeDatagram(ui->textEdit->toPlainText().toUtf8(),QHostAddress("192.168.137.1"),6677);参数:ui->textEdit->toPlainText().toUtf8 要发送的消息 QHostAddress("192.168.137.1") 接收端的ip地址 6677 端口号,要和接收端的一致 2、组播,组播和单播的步骤是一样的,只有ip地址处有区别 组播ip地址范围:224.0.0.0-239.255.255.255 例子:mSocket-

Neutron 理解 (3): Open vSwitch + GRE/VxLAN 组网 [Netruon Open vSwitch + GRE/VxLAN Virutal Network]

会有一股神秘感。 提交于 2019-12-18 16:41:38
学习 Neutron 系列文章: (1) Neutron 所实现的虚拟化网络 (2) Neutron OpenvSwitch + VLAN 虚拟网络 (3) Neutron OpenvSwitch + GRE/VxLAN 虚拟网络 (4) Neutron OVS OpenFlow 流表 和 L2 Population (5) Neutron DHCP Agent (6) Neutron L3 Agent (7) Neutron LBaas (8) Neutron Security Group (9) Neutron FWaas 和 Nova Security Group (10) Neutron VPNaas (11) Neutron DVR (12) Neutron VRRP (13) High Availability (HA) 目前,OpenStack Neutron 支持使用两种隧道网络技术 通用路由封装(GRE) 和 VxLAN 来实现虚拟的二层网络。这两种技术大致看起来非常相似,都是需要使用 OpenStack 在计算和网络节点上建立隧道来传输封装的虚机发出的数据帧: 在Neutron 中使用 GRE/VxLAN 时的配置也几乎完全相同。具体可以参考我已有的几篇文章: 探索 OpenStack 之(8):Neutron 深入探索之 OVS + GRE 之 完整网络流程

广播、组播和子网

爱⌒轻易说出口 提交于 2019-12-18 09:04:55
广播 ,就是指同时向子网中的多台计算机发送消息,并且所有子网中的计算机都可以接收到发送方发来的消息。每个广播消息包含一个特殊的 IP 地址。 广播消息地址分为两种类型:本地广播和全球广播 。 通过本地广播向子网中的所有计算机发送广播消息时,其他网络不会受到本地广播的影响。 我们知道 IP 地址分为两部分,网络地址和主机地址,标准网络地址部分组成了本地网络地址的第一部分,字节地址中全部为 1 的部分用于主机地址部分(即十进制的 255 )。 例如,对于 B 类网络 192.168.0.0 ,使用子网掩码 255.255.0.0,(此IP地址的网络号为192.168,主机号为0.0,子网掩码全为1的对应的IP地址的网络号) 则本地广播地址是 192.168.255.255 ,用二进制表示为 11000000 、 10101000 、 11111111 、 11111111 。其中前两个字节为网络地址,后两个字节为主机地址。 仍以 192.168.0.0 为例,如果子网掩码为 255.255.255.0 ,则本地广播地址是 192.168.0.255 。 192.168.0 为网络地址, 255 代表 192.168.0 子网中的主机地址。 全球广播使用四个字节所有位全为 1 的 IP 地址,即点分十进制的 255.255.255.255

理解链路本地址与站点本地地址

柔情痞子 提交于 2019-12-12 16:32:57
学习IPV6的时候涉及到一个概念,link-local address, 中文叫“链路本地地址”,它的前缀是 FE80::/64 一个link-local address的范例: FE80::713e:a426:d167:37ab 实际上,这个概念类似于ipv4中,当DHCP分配失败时自动生成的169.254.XXX.XXX这样的地址,凡是源地址或目的地址中含有link-local address的报文,路由器都不应当转发它。这样的报文只能在一个LAN中互通。 <IPV6的地址类型> 可分为三大类: 1、单播地址 2、组播地址 3、任意播地址 单播--Unicast : one to one ·单播地址用于一对一的连接 ·IPv6单播地址有以下六种类型:  1-Aggregate Global Unicast Address 2xxx:xxxxx/3 - 3FFF: :FFFF 2001::/16 IPV6因特网地址 2002::/16 6to4过渡地址 2-Link Local Address    FE80::/10 (前10位以FE80开头) 3-Site Local Address (Private) FEC0::/10 4-Unspecified Address   0:0:0:0:0:0:0:0/128 => ::/128 5-Loopback Address    

PIM-DM协议基本流程

一世执手 提交于 2019-12-12 13:02:57
PIM-DM的关键特性如下: A:协议无关(使用单播路由表来进行RPF检查); B:没有单独的多播路协议(按照DVMRP方式); C:泛洪-剪枝行为(3分钟周期); D:无类路由(只要使用的是无类单播路由); 下面对PIM-DM进行简单描述,包括邻居发现、源树、多播转发、剪枝、断言、嫁接和状态刷新; 1、PIM邻居发现 PIM使用邻居发现机制来建立PIM邻居邻接关系,通过HELLO信息实现。每一个HELLO周期(默认是30S)内,PIM多播路由哭器在启用PIM的接口上多播一条PIM HELLO消息到所有PIM路由器多播地址(224.0.0.13)。PIM路由器会维护一张PIM邻居表项; HELLO消息包含一个保持时间HoldTime,用来告诉接收者,当在HoldTime内没有收到HELLO消息,将终站邻居关系,即把邻居从PIM邻居表项中删除。一般HoldTime=3*HelloTime; Hello消息除了用来邻居发现外,还可以用来在公享网络(即多路访问网络)中选举指定路由器(Designated Router,DR).DR 选举规则:PIM接口优先级最高者成为DR,如果优先级相同,则具有最高IP地址的路由器成为DR; 在PIM-DM 版本1中没有DR这个角色,在V2版本中开始有DR角以,主要是用来发送IGMP Query。 PIM-SM中DR就非常重要,在SM中会说明; 2