可靠的多播协议

上传人:re****.1 文档编号:476778351 上传时间:2023-03-22 格式:DOCX 页数:6 大小:19.88KB
返回 下载 相关 举报
可靠的多播协议_第1页
第1页 / 共6页
可靠的多播协议_第2页
第2页 / 共6页
可靠的多播协议_第3页
第3页 / 共6页
可靠的多播协议_第4页
第4页 / 共6页
可靠的多播协议_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《可靠的多播协议》由会员分享,可在线阅读,更多相关《可靠的多播协议(6页珍藏版)》请在金锄头文库上搜索。

1、Windows Server 2003可靠的多播协议组件Posted on 2005-05-25 22:07 cunshen 阅读(453)评论(0)编辑 收藏除了单播和广播支持,Internet协议(IP)(第4版)还提供一种发送和接收IP多播流量的机制。IP多播 流量是一种一对多的传送过程,比单播流量更加高效(您不必向每个接收者发送一个单独的数据包九而且 和广播流量不同,多播流量通过路由器进行转发。有关IP多播的概述,请参见IP多播概(The Cable Guy 于2002年2月发表的专栏)。典型的多播数据流使用用户数据报协议(UDP)进行发送。之所以没有使用传输控制协议(TCP),是因为

2、 TCP针对单播数据流而设计。通过UDP发送的多播数据流原本就不可靠,因为UDP不提供有保障的传输 或被丢失数据包的重新传输。除非上层协议提供了可靠性,否则基于UDP的多播数据流中丢失的数据包就 无法被检测或恢复。Internet工程任务组(IETF)可靠多播传输工作组的使命就是创建一组标准,用以从一个或多个发送者向 多个接收者传输可靠的数据流。有许多协议标准可在传输或应用层提供可靠的多播传输。现有的可靠多播 协议可归为以下几个类别:仅否定应答(NACK)1 接收者使用NACK数据包向发送者请求重传多播数据流中丢失的数据包。NACK-only协议不需要来自 -网络中的路由器的任何附加支持。基于

3、树的应答(acknowledgement,ACK)2接收者使用肯定应答来表明成功接收的多播数据包。异步分层编码(Asynchronous Layered Coding,ALC)3 发送者提供转发错误纠正(forward error correction, FEC)其中不带来自接收方或网络路由器 的消息。路由器辅助4接收方使用NACK数据包。网络中的路由器辅助丢失数据包的重传。本页内容实用通用多播(Pragmatic General Multicast,PGM)概述PGM包添加和使用可靠的多播协议PGM和可靠多播协议是如何工作的更多信息实用通用多播(Pragmatic General Multi

4、cast, PGM)概述实用通用多播(PGM)是RFC 3208中描述的一种路由器辅助类型的可靠的多播协议。支持PGM的接收 者使用NACK包来请求重传丢失的数据包。网络中支持PGM的路由器定义了一个逻辑PGM拓扑结构, 并且能够帮助恢复丢失的数据包,即代表发送者发送这些丢失的数据包。PGM拓扑结构重叠在物理IP互 联网络之上。PGM路由器定义了发送者及其接收者之间的一系列PGM跳(hop)。虽然RFC 3208中定 义了 PGM路由器,但是它并不是必需的。网络的PGM拓扑可以由发送者和接收者之间的单个逻辑跳(hop) 组成。PGM没有提供用于多播数据流的所有TCP功能。例如,PGM没有提供发

5、送或接收方的流控制、字节流窗 口或拥塞控制。PGM为支持PGM的应用程序提供了基本的可靠性。PGM是一种传输层多播协议,它使用协议号113直接运行在IP上。它没有对自己的消息或多播数据传输 使用TCP或UDP。PGM是 Windows Server 2003系列所支持的唯一可靠的多播协议。下图显示了 Windows Server 2003的TCP/IP体系结构中的PGM和其他组件之间的关系。WlhSitk 占抻 IrtMMiriWinscxk 2.2AFDTDITCPUDPPGMIPv4有关Windows网络体系结构的更多信息,请参见Windows 2000网络体系结构返回页首PGM包RFC

6、3208定义了以下类型的PGM:源路径消息(Source Path Messages,SPM)原始数据(O DATA)重传数据(RDATA)否定应答(NAK) NAK 确认(NCF) SPM、NCF和RDATA数据包包含“IP路由器警报”选项。下图显示了 PGM包的基本结构。上层协议数据 单元(protocol data unit,PDU)是由支持PGM的应用程序发送的。ODATA pickrtsIPiCua.TAUp|Mr 厢册 PDURDATA packetsR-DuifrrR&ATaUpper PDUNAK pachsls:IPNAKNtF pecketB;IPwlP R血AJert d

7、ptinnNCFPM购:iP wlF FkMlrrJen 血 onSPM查看大图。注意:由于PGM没有提供数据源身份验证或数据完整性,因此建议仅在专用intranet上使用它。源路由消息(SPM)包SPM由发送者定期发送,以便向网络中的PGM路由器提供PGM拓扑确定信息。SPM包括一个传输窗口 和前一跳PGM路由器的地址。传输窗口是对重传过程可用的数据范围。前一跳PGM路由器的地址需要用 于请求数据重传。原始数据(ODATA)和重传数据(RDATA)数据包ODATA包以发送者最初发送的形式(即按原样)包含多播数据流中的数据。由于PGM提供可靠的多播传 输,ODATA报头具有多个与TCP报头中的

8、相应字段类似的字段,包括如下: Source Port (源端口)一个16位的字段,用于识别发送者进程。Destination Port(目标端口)一个16位的字段,用于识别接收者进程。 Checksum (校验和)一个16位的字段,用于检验ODATA报头和上层协议数据单元(PDU)的位级(bit-level)完整性。与TCP或UDP校验和不同,PGM校验和没有在校验和计算中整合IP报头中的字段。 Data Packet Sequence Number (数据包序列号)一个32位的字段,它包含由发送者分配给该包的序列号。接收者使用Data Packet Sequence Number 字段来检

9、测多播数据流中丢失的数据包。RDATA数据包用于重传的多播数据。RDATA数据包和ODATA数据包使用相同的报头和字段。ODATA 和RDATA报头中的Type (类型)字段将ODATA数据包和RDATA数据包区别开来。RDATA数据包是 由发送者或由指定的本地修复者(Designated Local Repairer,DLR)发送的。DLR能够代表发送者 重传多播数据流中的包。否定应答(NAK)和NAK确认(NCF)包接收者向它最近一跳的PGM路由器发送一个NAK包来请求一个丢失的数据包,这个丢失的数据包通过它 的数据包序列号进行识别。PGM路由器通过向NAK的发送者发送一个NCF包来确认它

10、接收到了该NAK。 然后这个PGM向它的下一个最近的PGM路由器发送该NAK数据包。该PGM又使用一个NCF数据包进 行响应。这个NAK和NCF数据包交换过程将继续针对每一个PGM跳进行下去,直至到达上游的发送者 或某个DLR。NAK和NCF报头中的关键字段如下: Requested Sequence Number (请求的序列号)对于NAK数据包,这个字段就是需要重传的数据包的序列号。对于NCF数据包,这个字段就是正在被 确认的NAK的序列号。 Source Network Layer Address (源网络层地址)丢失的数据的最初发送者的单播IP地址。返回页首添加和使用可靠的多播协议为了

11、在运行Windows Server 2003系列的成员之一的计算机上使用PGM,您必须添加“可靠的多播协议” 组件并创建支持PGM的应用程序。添加可靠主播协议为了向某个连接添加可靠的多播协议,请完成以下步骤:1单击“开始”,单击“控制面板”,然后双击“网络连接”。2在“网络连接”中,右键单击该连接,然后单击“属性”。3在该连接的属性对话框中,单击“安装”。4在“选择网络组件类型”中,双击“协议”。5在“网络协议”中,单击“可靠多播协议”,然后单击“确定”。6要保存对连接属性所作的更改,请单击“关闭”。“可靠多播协议”组件将出现在该连接正在使用的项的列表中,不过没有可配置的属性。“可靠的多播协议

12、” 的驱动程序为Rmcast.sys,位于systemroot System32Drivers文件夹中。编写支持PGM的应用程序为了使用PGM,应用程序必须使用Windows Socket和PGM socket(套接字)选项。发送者应用程序 使用Windows Socket来创建一个PGM数据包,将该socket绑定到任何地址,然后连接到多播组地址。 接收者应用程序使用Windows Socket来创一个PGM数据包,将该socket绑定到多播组地址,对新的 socket进行侦听,然后使用accept()函数来获得PGM会话的一个socket句柄。有关使用Windows Socket来创建支持

13、PGM的发送者和接收者应用程序的更多信息,请参见可靠多播编程(PGM)使用 PGM 的 Microsoft 产品包括 Message Queuing (也称为 MSMQ)和 Automated Deployment Services (自动部署服务,ADS)。注意:应用程序必须运行在一个拥有管理员特权的帐户之下才能充当PGM发送者,才能接收相同多播会 话的两个以上的流。PGM和可靠多播协议是如何工作的接收者采用以下步骤:1多播应用程序使用适当的可靠多播socket选项来打开一个侦听socket(listen socket)。2 接收者发送一个 Internet Group Management

14、 Protocol (IGMP)Membership Report(Internet 组管理协议成员报告)消息,向本地路由器通知接收者在该多播组中的成员关系。发送者采用以下步骤:1多播应用程序使用适当的可靠多播socket选项来打开一个发送socket。2多播应用程序开始发送数据。ODATA数据包从序列号0开始发送,后续的ODATA包的序列号递增1。3 ODATA数据包由支持多播的路由器从整个IPv4互联网络上转发到包含组成员的子网。接收者采用以下步骤请求多播数据流中的某个丢失的数据包:1如果检测到一个丢失的数据包,多播组成员将向最近的PGM路由器发送一个单播NAK数据包。2这个PGM路由器将

15、使用一个NCF数据包进行响应,以确认它接收到了该NAK。3路由器向客户端发送一个NCF来确认它接收到了该NAK。这个过程将逐跳重复,直至到达数据发送者或 DLR。4发送者或DLR发送一个RDATA数据包用以替代原先丢失的ODATA数据包所丢失的数据。如果网络中没有支持PGM的路由器,NAK将发送到发送者或DLR。为了维持对PGM逻辑拓扑结构的感知,发送者将定期发送一个SPM数据包,其中包含它们自己的序列号。SPM序列号按整数单位逐一递增,用于检测SPM数据包的丢失情况。SPM还包含对应于数据流的前沿(leading edge)和后沿(trailing edge)序列号。前沿序列号向接收客户端指定应该巳经接收的数据 包。后沿是能够请求重传的最旧的数据包。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号