TCP/IP详解学习笔记(7)-广播和多播,IGMP协议
1.单播,多播,广播的介绍
1.1.单播(unicast)
单播是说,对特定的主机进行数据传送。例如给某一个主机发送IP数据包。这时候,数据链路层给出的数据头里面是非常具体的目的地址,对于以太网来 说,就是网卡的MAC地址(不是FF-FF-FF-FF-FF-FF这样的地址)。现在的具有路由功能的主机应该可以将单播数据定向转发,而目的主机的网 络接口则可以过滤掉和自己MAC地址不一致的数据。
1.2.广播(unicast)
广播是主机针对某一个网络上的所有主机发送数据包。这个网络可能是网络,可能是子网,还可能是所有的子网。如果是网络,例如A类网址的广播就是 netid.255.255.255,如果是子网,则是netid.netid.subnetid.255;如果是所有的子网(B类IP)则是则是 netid.netid.255.255。广播所用的MAC地址FF-FF-FF-FF-FF-FF。网络内所有的主机都会收到这个广播数据,网卡只要把 MAC地址为FF-FF-FF-FF-FF-FF的数据交给内核就可以了。一般说来ARP,或者路由协议RIP应该是以广播的形式播发的。
1.3.多播(multicast)
可以说广播是多播的特例,多播就是给一组特定的主机(多播组)发送数据,这样,数据的播发范围会小一些(实际上播发的范围一点也没有变小),多播的MAC地址是最高字节的低位为一,例 如01-00-00-00-00-00。多播组的地址是D类IP,规定是224.0.0.0-239.255.255.255。
虽然多播比较特殊,但是究其原理,多播的数据还是要通过数据链路层进行MAC地址绑定然后进行发送。所以一个以太网卡在绑定了一个多播IP地址之后,必 定还要绑定一个多播的MAC地址,才能使得其可以像单播那样工作。这个多播的IP和多播MAC地址有一个对应的算法,在书的p133到p134之间。可以看到 这个对应不是一一对应的,主机还是要对多播数据进行过滤。
个人的看法:广播和多播的性质是一样的,路由器会把数据放到局域网里面,然后网卡对这些数据进行过滤,只拿到自己打算要的数据,比如自己感兴趣的多 播数据,自己感兴趣的组播数据。当一个主机运行了一个处理某一个多播IP的进程的时候,这个进程会给网卡绑定一个虚拟的多播mac地址,并做出来一个多播 ip。这样,网卡就会让带有这个多播mac地址的数据进来,从而实现通信,而那些没有监听这些数据的主机就会把这些数据过滤掉,换句话说,多播,是让主机 的内核轻松了,而网卡,对不起,您就累点吧。
一些文章也印证了这种想法,最明显的就是局域网监听的原理、实现与防范
2.一些验证性实验
这些实验并不是很复杂,我们只是要ping一下一般的ip和一个广播地址。首先我ping一下自己所在的子网的某一台主机:
可以看到,机器返回的是一台主机的回应结果,进而推测,如果我ping一个广播地址呢?结果如下
可以看到,ping返回了一些随机的ip的结果,这些ip都是与主机在同一子网内的ip。我们可以看到,广播实际上是给处于子网内的所有ip发信。
再来一个多播的例子,但是要实现这个多播并不容易,因为我不知道网络内有多少个多播组,就只好利用几个特殊的多播地址来验证了。
对于多播地址,有几个特殊的多播地址被占用,他们是
1. 224.0.0.1--该子网内所有的系统组。
2. 224.0.0.2--该子网内所有的路由器。
3. 224.0.1.1--网络实现协议NTP专用IP。
4. 224.0.0.9--RIPv2专用IP
所以只要ping这几个IP,就应该能得到一些结果,比如说我ping 224.0.0.2。
我们可以看到,这回ping
物联网的概念于1999年由麻省理工学院Auto-ID研究中心提出,它是把所有物品通过射频识别等信息传感设备与互联网连接起来,实现智能化的识别和管理。2005年,ITU-T发布了《ITU互联网报告2005:物联网》,对“物联网”的涵义进行了扩展,报告分别从物联网的概念、涉及的技术、潜在的市场、面临的挑战、世界的发展机遇和未来的生活展望6大方面进行了阐述。报告中所阐述的物联网概念是:信息世界和通信技术已经有了新的维度:任何人、任何物体,都能够在任何时间、任何地点以多种多样的形式连接起来,从而创建出一个新的动态的网--物联网。
除了上述的物联网概念外,现在普遍接受的物联网概念是指通过信息传感设备,运用射频识别(Radio Frequency Identification, RFID)、红外感应、全球定位系统(GPS)激光扫描等技术,按照约定的协议,把任何物品与互联网连接起来,进行信息交换和通信,以实现智能化识别、定位、跟踪、监控和管理的一种网络。它是在互联网基础上延伸和扩展的网络,其中,全面感知、可靠传递和智能处理是物联网的3大特征。
要理解物联网的内涵,除了对物联网的概念有所了解外,还必须清楚传感网、泛在网、M2M、移动网等与物联网密切相关的概念,下图给出了这几种概念的之间的关系。
泛在网也就是无处不在的网络,包括3个层次的内容:无所不在的基础网络、无所不在的终端单元和无所不在的网络应用。讲4A作为其主要特征,即可以实现在任何时间、任何地点、任何人、任何物都能方便的通信。
传感网,一般指无线传感网络WSN(Wireless Sensor Network),是指随机分布的集成有传感器、数据处理单元和通信单元的微小节点,通过自组织的方式构成的无线网络。传感网与物联网最大区别就在于传感网不强调对物体的标识,仅仅感知到信号,并不一定明确标识出事众多被感知物体中的哪一个。
M2M是指“机器对机器通信(Machine to Machine)”,作为实现物联网最常见、最普遍也是最具有可行性的方法,M2M的应用几乎涵盖了各行各业,在现阶段及以后相当长的一段时间内,它都将是物联网研究和应用的主力军。
从本质上讲,泛在网、物联网、传感网、M2M实际上表达的是同一个思想,即将信息交互从人与人之间扩大到人与物、物与物之间,从而实现通信应用范畴的极大扩展,以“信息化、智能化”改变人们的生活方式。之所以会产生概念表述的不同,是由于出发角度的不同。泛在网主要以人为主体,通过泛在的网络构成、泛在计算以及泛在的网络应用满足人们的各种需求;传感网重点强调对于信息的感知,通过对数据进行采集、处理、融合和路由完成对各种具体应用的数据支持;M2M则主要关注节点之间的通信,通过节点之间的信息交流,使机器设别不再是信息孤岛,实现对设备和资产有效地监控与管理。
物联网是一个复杂的系统,无法采用二维分层模型构造其逻辑模型,可以采用物品、网络、应用三维模型,构成由信息物品、自主网络、智能应用为构件的物联网概念模型,如图所示。
--节选自《物联网智能网关设计与应用》
感谢您的关注!
更多WIZnet信息请登录:WIZnet官方主页: http://www.iwiznet.cn/
1 下载 Sublime Text 2
http://www.sublimetext.com/
2 下载Nodejs插件,下载ZIP包
https://github.com/tanepiper/SublimeText-Nodejs
3 解压ZIP,重命名为Nodejs
4 将Nodejs复制到C:\Users\Administrator\AppData\Roaming\Sublime Text 2\Packages目录下
5 重启Sublime Text 2 ->Tools-->Build System -->Nodejs
6 配置nodejs的path Preferences-->Package Setting-->Nodejs-->Default,附我的配置如下
{
// save before running commands
"save_first": true,
// if present, use this command instead of plain "node"
// e.g. "/usr/bin/node" or "C:\bin\node.exe"
"node_command": "D:\\tools\\nodejs\\node.exe",
// Same for NPM command
"npm_command": "D:\\tools\\nodejs\\npm.cmd",
"expert_mode": true,
"ouput_to_new_tab": false
}
7 C:\Users\Administrator\AppData\Roaming\Sublime Text 2\Packages\nodejs\Nodejs.sublime-build进行修改,附我修改内容如下:
{
"cmd": ["D:\\tools\\nodejs\\node.exe", "-p", "$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.js",
"shell":true,
"encoding": "GB2312",
"windows":
{
"cmd": ["D:\\tools\\nodejs\\node.exe", "$file"]
},
"linux":
{
"cmd": ["killall node; node", "$file"]
}
}
我们在编辑器创建一个js 文件,ctrl+b运行或在 Tools->nodejs -> run就可以运行了。