- 浏览: 1201030 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (361)
- java综合 (33)
- 项目管理 (10)
- 工作流 (6)
- spring (11)
- hibenate (17)
- struts (0)
- javascript,html,css,ajax,jquery (11)
- IDE (9)
- 生活 (0)
- 工作 (0)
- 杂记 (1)
- 数据库 (96)
- 服务器 (5)
- 可视编辑 (0)
- freemarker (6)
- 操作系统 windows (13)
- web页面 (6)
- jms (15)
- 调优 (4)
- 测试和bug管理 (2)
- 原理 (1)
- 項目-atf (17)
- 安全 (3)
- xml (4)
- 操作系统 liunx (21)
- 网络 (22)
- office (11)
- 设计 (2)
- 软件 (1)
- 数据库 mysql (6)
- 胖客户端-flex (1)
- 正则 (9)
- oracle- liunx (3)
- sql2000 (2)
- 模式 (1)
- 虚拟机 (2)
- jstl (2)
- 版本控制 打包工具 (0)
- AOP (1)
- demo (1)
- 小软件 (2)
- 感恩 (1)
- iphone 4 (1)
- 反欺诈业务经验整理 (0)
最新评论
-
sea0108:
mark
java内存模型 -
XingShiYiShi:
方便把:testPNR();具体实现发出来吗?谢谢
用正则表达式解析 航信的电子客票和pnr报文 -
wh359126613:
如果js和webservice不在同一个服务器上,有跨域问题如 ...
使用javascript调用webservice示例 -
雨飛雁舞:
...
oracle 动态性能(V$)视图 -
ouyang1224:
好东西
oracle 动态性能(V$)视图
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一下自己所在的子网的某一台主机:
Reply from 192.168.11.1: bytes=32 time<1ms TTL=255
Reply from 192.168.11.1: bytes=32 time<1ms TTL=255
Reply from 192.168.11.1: bytes=32 time=1ms TTL=255
可以看到,机器返回的是一台主机的回应结果,进而推测,如果我ping一个广播地址呢?结果如下
Reply from 192.168.11.174: bytes=32 time<1ms TTL=64
Reply from 192.168.11.174: bytes=32 time<1ms TTL=64
Reply from 192.168.11.174: bytes=32 time<1ms TTL=64
Reply from 192.168.11.218: bytes=32 time<1ms TTL=64
Reply from 192.168.11.174: bytes=32 time<1ms TTL=64
可以看到,ping返回了一些随机的ip的结果,这些ip都是与主机在同一子网内的ip。我们可以看到,广播实际上是给处于子网内的所有ip发信。
再来一个多播的例子,但是要实现这个多播并不容易,因为我不知道网络内有多少个多播组,就只好利用几个特殊的多播地址来验证了。
对于多播地址,有几个特殊的多播地址被占用,他们是
- 224.0.0.1--该子网内所有的系统组。
- 224.0.0.2--该子网内所有的路由器。
- 224.0.1.1--网络实现协议NTP专用IP。
- 224.0.0.9--RIPv2专用IP
所以只要ping这几个IP,就应该能得到一些结果,比如说我ping 224.0.0.2。
Reply from 192.168.11.1: bytes=32 time<1ms TTL=255
Reply from 192.168.11.1: bytes=32 time<1ms TTL=255
Reply from 192.168.11.1: bytes=32 time<1ms TTL=255
Reply from 192.168.11.1: bytes=32 time<1ms TTL=255
Reply from 192.168.11.1: bytes=32 time<1ms TTL=255
Reply from 192.168.11.1: bytes=32 time<1ms TTL=255
我们可以看到,这回ping只返回了一个ip的回应。而这个就是我的网关的地址,这也验证了224.0.0.2是所有路由器的多播(组播)地址
3.IGMP协议
IGMP的作用在于,让其他所有需要知道自己处于哪个多播组的主机和路由器知道自己的状态。一般多播路由器根本不需要知道某一个多播组里面有多少个主机,而只要知道自己的子网内还有没有处于某个多播组的主机就可以了。只要某一个多播组还有一台主机,多播路由器就会把数据传输出去,这样,接受方就会通过网卡过滤功能来得到自己想要的数据。为了知道多播组的信息,多播路由器需要定时的发送IGMP查询,IGMP的格式可以看书,各个多播组里面的主机要根据查询来回复自己的状态。路由器来决定有几个多播组,自己要对某一个多播组发送什么样的数据。
这种查询回应数据报的TTL一般是1,而且就算是出错也不产生ICMP差错(没必要)。
发表评论
-
VPN技术比较
2009-03-30 19:07 1674VPN技术比较 来源: 作 ... -
关于SSL VPN技术原理及其应用全面解析
2009-03-30 19:01 2488随着电子商务、企业信息化、教育信息化等信息化进程的推进,整个社 ... -
HTTP Status Messages
2009-03-30 17:31 1286http://www.btinternet.com/~wild ... -
IP地址精解
2009-03-30 15:08 1102为什麽我们要学二进位 ... -
TCP协议握手协商通信详解
2009-03-30 15:06 23941、建立连接协议(三 ... -
IPv6远水不解近渴 IPv4仍需挑大梁
2009-03-30 14:52 1242“IP地址资源的危机并 ... -
TCP/IP详解学习笔记(13)-TCP坚持定时器,TCP保活定时器
2009-03-30 14:52 1965TCP一共有四个主要的定 ... -
TCP/IP详解学习笔记(12)-TCP的超时与重传
2009-03-30 14:51 1868超时重传是TCP协议保证 ... -
TCP/IP详解学习笔记(11)-TCP交互数据流,成块数据流
2009-03-30 14:50 1583目前建立在TCP协议上的 ... -
TCP/IP详解学习笔记(10)-TCP连接的建立与中止
2009-03-30 14:50 1570TCP是一个面向连接的 ... -
TCP/IP详解学习笔记(9)-TCP协议概述
2009-03-30 14:49 1668于看到了TCP协议,这是T ... -
TCP/IP详解学习笔记(8)-DNS域名系统
2009-03-30 14:49 1570前面已经提到了访问一台机器要靠IP地址和MAC地址,其中,M ... -
TCP/IP详解学习笔记(6)-UDP协议
2009-03-30 14:48 16151.UDP简要介绍UDP是传输层协议,和TCP协议处于一个分 ... -
TCP/IP详解学习笔记(5)-IP选路,动态选路,和一些细节
2009-03-30 14:47 11781.静态IP选路 1.1.一 ... -
TCP/IP详解学习笔记(4)-ICMP协议,ping和Traceroute
2009-03-30 14:46 19001.IMCP协议介绍前面讲到 ... -
TCP/IP详解学习笔记(3)-IP协议,ARP协议,RARP协议
2009-03-30 14:45 1547把这三个协议放到一起 ... -
TCP/IP详解学习笔记(2)-数据链路层
2009-03-30 14:43 1727数据链路层有三个目 ... -
TCP/IP详解学习笔记(1)-基本概念
2009-03-30 14:34 1342http://blog.chinaunix.net/u2/ ... -
使用 netstat 命令监视网络状态
2009-03-30 14:33 2815http://docs.sun.com/app/docs/do ... -
TCP/IP详解
2009-03-30 13:58 1752TCP和UDP处在同一层---运输层,但是TCP和UDP最不同 ...
相关推荐
第12章 广播和多播 128 第13章 IGMP:Internet组管理协议 136 第14章 DNS:域名系统 142 第15章 TFTP:简单文件传送协议 159 第16章 BOOTP: 引导程序协议 163 第17章 TCP:传输控制协议 170 第18章 TCP连接的建立与...
第7章域和协议 第8章IP:网际协议 第9章IP选项处理 第10章IP的分片与重装 第11章ICMP:Internet控制报文协议 第12章IP多播 第13章IGMP:Intemet组管理协议 第14章IP多播选路 第15章插口层 第16章插口VO 第17章插口...
第12章 广播和多播 128 12.1 引言 128 12.2 广播 129 12.2.1 受限的广播 129 12.2.2 指向网络的广播 129 12.2.3 指向子网的广播 129 12.2.4 指向所有子网的广播 130 12.3 广播的例子 130 12.4 多播...
《TCP/IP详解》第一卷是关于网络通信协议TCP/IP的经典入门教材,由W. Richard Stevens撰写。该书深入浅出地讲解了TCP/IP协议族,是网络工程师和相关技术人员必备的参考资料之一。TCP/IP协议族是现代互联网通信的基础...
- **IGMP**(Internet Group Management Protocol):用于管理多播组成员资格。 3. **传输层**(Transport Layer):主要为两台主机上的应用程序提供端到端的通信。TCP/IP提供了两种传输协议: - **TCP**...
第12章 广播和多播 128 12.1 引言 128 12.2 广播 129 12.2.1 受限的广播 129 12.2.2 指向网络的广播 129 12.2.3 指向子网的广播 129 12.2.4 指向所有子网的广播 130 12.3 广播的例子 130 12.4 多播 132 12.4.1 多播...
TCP/IP网络层中最核心的协议是IP(Internet Protocol),此外还包括ICMP(Internet Control Message Protocol)用于错误报告和控制消息,以及IGMP(Internet Group Management Protocol)用于多播组管理。...
卷一《协议》主要涵盖了网络接口层(如ARP和RARP)、网络层(如IP、ICMP、IGMP)、传输层(包括TCP和UDP)以及应用层的部分协议(如TELNET和FTP)。书中详细解析了这些协议的工作原理、交互过程以及各种控制机制,如...
《TCP/IP详解卷1》深入探讨了TCP/IP协议族的核心概念和运作机制,为读者提供了全面的背景知识,尤其对于那些希望深入了解计算机网络基础的人士来说,这是一部不可或缺的资源。以下是对书中提及的关键知识点的详细...
TCP/IP协议族的名称源自其两个核心协议,即TCP和IP,但还包括许多其他协议,如ICMP用于错误报告和网络探测,IGMP用于多播管理。链路层协议如以太网协议则处理相邻节点间的通信细节,而应用层协议如FTP则处理用户级别...
第12章 广播和多播 128 第13章 IGMP:Internet组管理协议 136 第14章 DNS:域名系统 142 第15章 TFTP:简单文件传送协议 159 第16章 BOOTP: 引导程序协议 163 第17章 TCP:传输控制协议 170 第18章 TCP连接的建立与...
传输层**:提供可靠的端到端数据传输服务,主要通过TCP协议实现,此外还有UDP协议支持非连接服务。 **3. 网络层**:负责数据包的路由选择和转发,核心协议是IP协议,同时还包括ICMP(Internet Control Message ...
《TCP/IP详解·卷2:实现》完整而详细地介绍了TCP/IP协议是如何实现的。书中给出了约500个图例,15000行实际操作的C代码,采用举例教学的方法帮助你掌握TCP/IP实现。《TCP/IP详解·卷2:实现》不仅说明了插口API和...
《TCP/IP详解(第二卷)》是网络通信领域的一本经典著作,主要涵盖了TCP/IP协议栈的高级主题,包括TCP、UDP、IP选项、ICMP、ARP、RARP以及网络层和传输层的其他协议。这份2011年7月25日的源代码可能包含了作者对这些...
第一卷《TCP/IP详解:协议》主要介绍了TCP/IP的基础知识和核心协议。它详细讲解了网络接口层(如ARP和RARP)、互联网层(如IP、ICMP、IGMP)以及传输层(如TCP和UDP)。在这一卷中,你可以了解到网络分层模型的工作...
这些协议分别对应于OSI模型的不同层次,其中IP层负责网络层的数据传输,ICMP用于发送错误消息和操作信息,IGMP管理多播组成员关系,TCP和UDP分别提供面向连接和无连接的数据传输服务,而Telnet、FTP和SMTP则是应用层...
第12章 广播和多播 128 12.1 引言 128 12.2 广播 129 12.2.1 受限的广播 129 12.2.2 指向网络的广播 129 12.2.3 指向子网的广播 129 12.2.4 指向所有子网的广播 130 12.3 广播的例子 130 12.4 多播 132 12.4.1 多播...
IGMP(Internet Group Management Protocol)则是用于多播组管理的协议,允许主机声明对特定多播组的兴趣,以便路由器可以有效地转发多播数据包,常用于视频流媒体和在线会议等场景。 网络接口层涉及的是物理网络和...