📄 rfcrfc988.txt
字号:
4=参加组应答
5=离开组要求
6=离开组应答
7=确认组要求
8=确认组应答
代码
在一个创建组请求消息中代码字段指出新的主机组将是公共的或私有∶
0 =公共的
1 =私有
在所有其他的请求消息中,代码字段包含零。
在一个回答信息中,代码字段规定要求的结果∶
0 =请求答应
1 =要求被拒绝,无资源
2=要求被拒绝,无效代码
3=要求被拒绝,无效组地址
4=要求被拒绝,无效存取关键字
5 - 255 =要求挂起,几秒后重试
校验和
EGP校验和是从EGP版本IGMP类型开始的IGMP报文中16位字二进制反码和的16位二进制反码值。
为了计算该校验和,校验和域应该为零。
标识符
在一个确认组请求消息中,标识符字段包含零。
在所有其他的请求消息中,标识符域包含一个值以便将来自同一个主机的其他的要求其他的要求与该要求区别开来。
在一个回答信息中
,标识符域包含与在对应请求消息中同样的值。
组地址
在一个组创建请求报文中,组地址字段包含零。
在所有其他的请求消息中,组地址域包含一个主机组地址。
在一个组创建应答报文中,组地址域或包含新的指定的主机组地址(如果该要求被允许)或包含零(如果被拒绝)。
在所有其他的应答报文中,组地址域包含与在对应请求报文中同样的主机组地址。
存取关键字
在一个组创建请求报文中,存取关键字字段包含零。
在所有其他的请求消息中,存取关键字域包含分配给主机组在组地址域识别的(零对于公共的组)存取关键字。
在一个组创建应答报文中,存取关键字域或包含一个非零的64比特编号(如果要求一个私有组被允许)或包含零(如果被拒绝)。
在所有其他的应答报文中,存取关键字域包含与在对应要求中相同存取关键字。
协议规则
请求报文只通过主机发送。 应答报文只通过多点播送代理发送。 如果一个主机收到一个前面规定的四种应答类型之外的一种类型的IGMP报文,该报文被丢弃。
一个请求报文发送时具有它的IP目的地字段,该目的地字段包含著名的多点播送代理组的地址。 IP生存时间( TTL)域通过发送者置1初始化,以便约束要求的范围为近的邻机多点播送代理。 IP源地址字段包含发送主机的专用IP地址。
应答报文只在响应一个请求报文时发送。
IP目的地址域的包含该主机(发送该对应要求)的私有地址。 (一个组确认应答可能同时被发给在它的对应组确认要求中规定的主机组地址.) IP源地址字段包含该应答多点播送代理的专用IP地址。
当一个主机发送一个新的组创建、组参加、或离开组请求报文时,它供给一个任意的标识符,该任意的标识符在最后的T0秒内没有用。 (仅仅为标识符在每个新的要求加1就足够了.)该主机初始化一个计时器为T1秒并且初始化一个重复传输计数器为零。 如果具有一个匹配标识符应答报文没有在计时器到期之前收到,它被重新设置为T1秒并且该重复传输计数器加1。 如果计算器小于N1该主机重复传输该具有相同标识符的请求报文。 如果该计算器等于N1,该主机放弃;如果该要求将创建或参加一个组,它被认为失败;如果该要求将离开一个组,它被认为得逞;
如果一个"要求挂起"代码在一个匹配一个创建组、参加组或离开组要求回答中收到,计时器重新设置为由该代码规定的数值,并且重复传输计数器重新设置为零。 新的定时值仅应用于一个超时时间间隔——如果该计时器到期,它重新设置为T1秒,该计数器加1,并且要求被重传。
一个组创建、组参加或离开组请求的第一个匹配的回答包含一个"请求答应"或"要求被拒绝"代码,判断该要求的结果。 任何后来的或非匹配的应答由该主机丢弃。 不过如果一个主机收到一个肯定的创建组应答或参加组应答,但是他们既不匹配一个未解决的请求又不包含一个该主机所属的组地址,该主机应该立即发送一个离开组要求以便解决该出乎意外的组地址。
一个"请求答应(request granted) "回答一个创建组请求,暗示,以及组正在创建,该请求主机被同意在该组中具有会员资格,那就是说不必发送一个单独的参加组请求。
组确认要求报文必须由主机定期发送,以便通知主机在规定的组中的延续会员资格给邻机多点播送代理。 如果一个代理没有在一个代理定义的时间间隔内收到一个具体的组的组确认要求报文,它停止传递去往那个组的数据报。
对于它所属的每个组,主机维护一个确认计时器和一个变量t.该变量t初始化为T2秒。每当主机的创建参加一个组请求的被允许,或者每当主机发送一个组确认要求或者收到组确认应答,该组确认要求或者收到组确认应答具有一个
该组的"请求答应"代码,该主机设置该组的计时器为一个,该随机数均匀分布在t和t + T3秒之间。 如果该主机收到一个组确认应答,该组确认应答具有一个
" request pending "代码, t变成代码值并且该计时器重新设置为一个新的t和t +T3间de随机数。
变量t保持它的值,直到另一个"请求挂起"代码收到为止。 每当计时器到期,主机发送一个组确认要求。
即使一个主机未能它的请求的接收确认组回答,它继续将本身认为该组的成员,因为它可能仍然能够从在同一个局域网上的其他的主机收到多点播送数据报。只有当一个主机在一个组确认应答中收到一个"要求被拒绝"代码让它停止发送组确认要求时才认为它的会员资格已经被撤回。
多点播送代理通过发送组确认应答报文或者给该请求的个人发送者或者给在该请求中规定的主机组地址来响应组确认要求报文。 通过送回一个组确认应答一个组的所有邻机成员,一个多点播送代理能够用单个包重新设置每个成员的计时器。 计时器的随机化只不过是用来促成一个计时器到期成员优先发送一个组确认要求,有助于用一个回答重置全部计时器。 通过利用"请求挂起"代码让多点播送代理控制接收组确认要求的速度。
协议定时常量
以下时间常数是为IGMP规定的。 由于运行经验的结果他们可能会变化。
T0 = 300秒标识符最小数周期时间
T1 = 2秒,Create/Join/Leave请求的重传时间间隔
N1 = 5 tries,Create/Join/Leave请求重传极限
T2 = 15秒,确认请求变量t的初值
T2 = 15秒,确认请求变量t的任意数范围
附录II。 主机组地址问题
这个附录不属于IP多点广播规范,但是提供几个与IP主机组地址相关的争执点的论述背景。
组地址捆绑
物理主机的IP主机组地址捆绑可能认为IP单路传送地址捆绑的普遍化。 一个IP单路传送地址被静态地捆绑给单个IP网络上的单个局部网络接口。 IP主机组地址动态地捆绑给一组IP网络上的一组局部网络接口。
领会一个IP主机组地址不是捆绑给一组IP单路传送地址是很重要的。 多点播送代理不需要维护每个主机组的一列专用成员。 比如,一个附着于一个以太网地多点播送代理只不过跟每个具有局部成员主机组的单个以太网多点播送地址关联,而非一列会员们的专用IP或以太网地址关联。
组地址作为逻辑地址
主机组地址已经明确地定义供多点播送IP数据报的目的地地址段里使用。 不过,组地址是独立的位置(他们不静态地捆绑与单个网络接口),可能作为多个普通"逻辑地址"在数据报的源和目的地址中段运用。 比如,一个可移动IP主机可能具有一个只不过作为它的身份地主机组地址,用作它发送的数据报的源。 每当可移动主机从一个网络移动到另一个网络,它可能在新的网络参加它的自己的组并且离开在原网络上的组。 其他的主机和可移动主机通讯仅仅会处理组地址并且可能不知道,并且不被可移动主机的网络位置的改变所影响。
不过主机组地址不能用来解决所有互连网络逻辑地址的所有问题,例如投递到一个多穴主机的最靠近地或最小荷载的网络接口。此外,当组实际上源地址字段包含以上主机的时候,在数据报的源地址字段使用组地址存在危险。 举例来说, IP数据报再装配算法每个主机使用不同的源地址。依靠 同时,用一组源地址发送的数据报中的错误可能导致错误报告回到该组的所有成员,不只是发送者。 鉴于这个危险,本备忘录规定主机组地址的使用仅仅作为数据报的目的地,或在目的地址段或作为一个源路由选项的最后元素。 然而,具有一组源地址的数据报最好由被接收而不必申诉,从而允许其他实现的试用主机组地址的应用程序逻辑地址。
临时的主机组地址的周期
因为主机组地址是固定的,有相对较小的尺寸,所以短暂的组地址必须反复循环以便满足继续新建一个团组的要求。 多点播送代理努力确保一个组指定它的新建群组地址之前在Internet中任何地方的不具有成员。 然而,在特定互连网络分割和会员资格移动条件下,不可能保证一个地址的唯一的分配不危及主机组的健壮性和有效性。此外,不知道某个组已经不存在的主机可能在它的地址已经分配给一个新建群组很久以后还给它发送数据报, 所以主机应该对非故意的主机甚至私有组多点播送IP数据报的误投的可能性有所准备, 这种误投只得使用高级的标识符或认证记号在IP以上级侦听。 (一个私有组的存取关键字可能用于某些应用程序地这样一个标识符.)当然,在Internet中除组地址冲突之外,存在其他的隐避的通信威胁,例如不能信赖的网关或无担保的网络。端到端加密是这种对威胁的一个有效抵御。
RFC988——Host Extensions for IP Multicasting IP多点广播的主机扩展
10
RFC文档中文翻译计划
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -