设为首页 收藏本站
查看: 990|回复: 0

Windows Server 2003可靠的多播协议组件

[复制链接]

尚未签到

发表于 2015-5-4 09:19:35 | 显示全部楼层 |阅读模式
  除了单播和广播支持,Internet协议(IP)(第4版)还提供一种发送和接收IP多播流量的机制。IP多播流量是一种一对多的传送过程,比单播流量更加高效(您不必向每个接收者发送一个单独的数据包)。而且和广播流量不同,多播流量通过路由器进行转发。有关IP多播的概述,请参见IP多播概述(The Cable Guy于2002年2月发表的专栏)。

  典型的多播数据流使用用户数据报协议(UDP)进行发送。之所以没有使用传输控制协议(TCP),是因为TCP针对单播数据流而设计。通过UDP发送的多播数据流原本就不可靠,因为UDP不提供有保障的传输或被丢失数据包的重新传输。除非上层协议提供了可靠性,否则基于UDP的多播数据流中丢失的数据包就无法被检测或恢复。

  Internet工程任务组(IETF)可靠多播传输工作组的使命就是创建一组标准,用以从一个或多个发送者向多个接收者传输可靠的数据流。有许多协议标准可在传输或应用层提供可靠的多播传输。现有的可靠多播协议可归为以下几个类别:
  1.

  仅否定应答(NACK)

  接收者使用NACK数据包向发送者请求重传多播数据流中丢失的数据包。NACK-only协议不需要来自网络中的路由器的任何附加支持。
  2.

  基于树的应答(acknowledgement,ACK)

  接收者使用肯定应答来表明成功接收的多播数据包。
  3.

  异步分层编码(Asynchronous Layered Coding,ALC)

  发送者提供转发错误纠正(forward error correction,FEC)——其中不带来自接收方或网络路由器的消息。
  4.

  路由器辅助

  接收方使用NACK数据包。 网络中的路由器辅助丢失数据包的重传。
DSC0000.gif
本页内容
DSC0001.gif 实用通用多播(Pragmatic General Multicast,PGM)概述
PGM包
添加和使用可靠的多播协议
PGM和可靠多播协议是如何工作的
更多信息

实用通用多播(Pragmatic General Multicast,PGM)概述

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

  PGM没有提供用于多播数据流的所有TCP功能。例如,PGM没有提供发送或接收方的流控制、字节流窗口或拥塞控制。PGM为支持PGM的应用程序提供了基本的可靠性。

  PGM是一种传输层多播协议,它使用协议号113直接运行在IP上。它没有对自己的消息或多播数据传输使用TCP或UDP。PGM是Windows Server 2003系列所支持的唯一可靠的多播协议。下图显示了Windows Server 2003的TCP/IP体系结构中的PGM和其他组件之间的关系。



  有关Windows网络体系结构的更多信息,请参见Windows 2000网络体系结构。


返回页首PGM包

  RFC 3208定义了以下类型的PGM:
•
  源路径消息(Source Path Messages,SPM)
•
  原始数据(ODATA)
•
  重传数据(RDATA)
•
  否定应答(NAK)
•
  NAK确认(NCF)

  SPM、NCF和RDATA数据包包含“IP路由器警报”选项。下图显示了PGM包的基本结构。上层协议数据单元(protocol data unit,PDU)是由支持PGM的应用程序发送的。


查看大图。


  注意: 由于PGM没有提供数据源身份验证或数据完整性,因此建议仅在专用intranet上使用它。

  源路由消息(SPM)包

  SPM由发送者定期发送,以便向网络中的PGM路由器提供PGM拓扑确定信息。SPM包括一个传输窗口和前一跳PGM路由器的地址。传输窗口是对重传过程可用的数据范围。前一跳PGM路由器的地址需要用于请求数据重传。

  原始数据(ODATA)和重传数据(RDATA)数据包

  ODATA包以发送者最初发送的形式(即按原样)包含多播数据流中的数据。由于PGM提供可靠的多播传输,ODATA报头具有多个与TCP报头中的相应字段类似的字段,包括如下:
•
  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字段来检测多播数据流中丢失的数据包。

  RDATA数据包用于重传的多播数据。RDATA数据包和ODATA数据包使用相同的报头和字段。ODATA和RDATA报头中的Type(类型)字段将ODATA数据包和RDATA数据包区别开来。RDATA数据包是由发送者或由指定的本地修复者(Designated Local Repairer,DLR)发送的。 DLR能够代表发送者重传多播数据流中的包。

  否定应答(NAK)和NAK确认(NCF)包

  接收者向它最近一跳的PGM路由器发送一个NAK包来请求一个丢失的数据包,这个丢失的数据包通过它的数据包序列号进行识别。PGM路由器通过向NAK的发送者发送一个NCF包来确认它接收到了该NAK。然后这个PGM向它的下一个最近的PGM路由器发送该NAK数据包。该PGM又使用一个NCF数据包进行响应。这个NAK和NCF数据包交换过程将继续针对每一个PGM跳进行下去,直至到达上游的发送者或某个DLR。

  NAK和NCF报头中的关键字段如下:
•
  Requested Sequence Number(请求的序列号)

  对于NAK数据包,这个字段就是需要重传的数据包的序列号。 对于NCF数据包,这个字段就是正在被确认的NAK的序列号。
•
  Source Network Layer Address(源网络层地址)

  丢失的数据的最初发送者的单播IP地址。


返回页首添加和使用可靠的多播协议

  为了在运行Windows Server 2003系列的成员之一的计算机上使用PGM,您必须添加“可靠的多播协议”组件并创建支持PGM的应用程序。

  添加可靠主播协议

  为了向某个连接添加可靠的多播协议,请完成以下步骤:
  1.

  单击“开始”,单击“控制面板”,然后双击“网络连接”
  2.

  在“网络连接”中,右键单击该连接,然后单击“属性”
  3.

  在该连接的属性对话框中,单击“安装”
  4.

  在“选择网络组件类型”中,双击“协议”
  5.

  在“网络协议”中,单击“可靠多播协议”,然后单击“确定”
  6.

  要保存对连接属性所作的更改,请单击“关闭”

  “可靠多播协议”组件将出现在该连接正在使用的项的列表中,不过没有可配置的属性。 “可靠的多播协议”的驱动程序为Rmcast.sys,位于systemroot\System32\Drivers文件夹中。

  编写支持PGM的应用程序

  为了使用PGM,应用程序必须使用Windows Socket和PGM socket(套接字)选项。发送者应用程序使用Windows Socket来创建一个PGM数据包,将该socket绑定到任何地址,然后连接到多播组地址。接收者应用程序使用Windows Socket来创一个PGM数据包,将该socket绑定到多播组地址,对新的socket进行侦听,然后使用accept()函数来获得PGM会话的一个socket句柄。 有关使用Windows Socket来创建支持PGM的发送者和接收者应用程序的更多信息,请参见可靠多播编程(PGM)。

  使用PGM的Microsoft产品包括Message Queuing(也称为MSMQ)和Automated Deployment Services(自动部署服务,ADS)。

  注意: 应用程序必须运行在一个拥有管理员特权的帐户之下才能充当PGM发送者,才能接收相同多播会话的两个以上的流。


PGM和可靠多播协议是如何工作的

  接收者采用以下步骤:
  1.

  多播应用程序使用适当的可靠多播socket选项来打开一个侦听socket(listen socket)。
  2.

  接收者发送一个Internet Group Management Protocol(IGMP)Membership Report(Internet组管理协议成员报告)消息,向本地路由器通知接收者在该多播组中的成员关系。

  发送者采用以下步骤:
  1.

  多播应用程序使用适当的可靠多播socket选项来打开一个发送socket。
  2.

  多播应用程序开始发送数据。 ODATA数据包从序列号0开始发送,后续的ODATA包的序列号递增1。
  3.

  ODATA数据包由支持多播的路由器从整个IPv4互联网络上转发到包含组成员的子网。

  接收者采用以下步骤请求多播数据流中的某个丢失的数据包:
  1.

  如果检测到一个丢失的数据包,多播组成员将向最近的PGM路由器发送一个单播NAK数据包。
  2.

  这个PGM路由器将使用一个NCF数据包进行响应,以确认它接收到了该NAK。
  3.

  路由器向客户端发送一个NCF来确认它接收到了该NAK。这个过程将逐跳重复,直至到达数据发送者或DLR。
  4.

  发送者或DLR发送一个RDATA数据包用以替代原先丢失的ODATA数据包所丢失的数据。

  如果网络中没有支持PGM的路由器,NAK将发送到发送者或DLR。

  为了维持对PGM逻辑拓扑结构的感知,发送者将定期发送一个SPM数据包,其中包含它们自己的序列号。SPM序列号按整数单位逐一递增,用于检测SPM数据包的丢失情况。SPM还包含对应于数据流的前沿(leading edge)和后沿(trailing edge)序列号。前沿序列号向接收客户端指定应该已经接收的数据包。后沿是能够请求重传的最旧的数据包。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-63410-1-1.html 上篇帖子: 在 Windows XP 和 Windows Server 2003 中使用凭据管理(转自MSDN) 下篇帖子: NT4.0 Migration to Windows 2003: Using PERMS.EXE
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表