著录项信息
专利名称 | 用重叠网络传递IPv4与IPv6地址映射关系的方法 |
申请号 | CN200610011503.4 | 申请日期 | 2006-03-17 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2006-08-16 | 公开/公告号 | CN1819542 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04L12/46 | IPC分类号 | H;0;4;L;1;2;/;4;6;;;H;0;4;L;1;2;/;5;6查看分类表>
|
申请人 | 清华大学;比威网络技术有限公司 | 申请人地址 | 北京市-82信箱
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 清华大学,比威网络技术有限公司 | 当前权利人 | 清华大学,比威网络技术有限公司 |
发明人 | 毕军;章淼;吴建平;冷晓翔 |
代理机构 | 暂无 | 代理人 | 暂无 |
摘要
本发明涉及互联网技术领域,其特征在于:这是一种运行于IPv4/IPv6双栈路由器和IPv4/IPv6双栈三层交换机上利用P2P重叠网络在IPv4上传递IPv6overIPv4隧道端点信息的方法。为此,在P2P重叠网络节点上设置了6种控制分组和4种邻接状态,同时设置一个中心注册机来接受新节点的加入请求,并设计了建立、维护P2P重叠网络、保持邻居关系和传递隧道端点信息的有关协议过程,协议分组类型和协议状态机。经过实验验证,该方法可以完成隧道端点信息的扩散和更新同时可以保证P2P重叠网络100%连通,具有分布式、高可靠性的特点。
1.用重叠网络传递IPv4与IPv6地址映射关系的方法,其特征在于:这是一种运行于IPv4/IPv6双栈路由器和IPv4/IPv6双栈三层交换机上利用P2P重叠网络在IPv4上传递IPv6 overIPv4隧道端点信息的方法,该方法依次含有以下步骤: 步骤
1.初始化, 为每个P2P重叠网络节点维护一个隧道端点信息数据库,用以保存已知的隧道端点信息,数据库中的每条信息包含: a.序列号:递增,用以标记信息的新旧,即序列号越大,信息越新; b.IPv4地址:表示隧道端点的IPv4地址; c.IPv6地址范围:表示隧道端点可达的IPv6地址范围; d.有效位:标记该信息是否有效;0表示无效,1表示有效; e.最近更新时间:纪录该信息最近更新的时间,作为删除超时没有更新的信息的依据; 为每个P2P重叠网络节点设置以下6种控制分组,用于P2P重叠网络建立和维护,隧道端点信息扩散和更新: a.呼叫分组:进行邻居关系建立和保持工作,分为0型和1型;0型呼叫分组用于与陌生节点建立邻居关系,1型呼叫分组用于与现有邻居节点保持邻居关系; b.更新分组:完成将本地隧道端点信息数据库中的信息更新至邻居的工作; c.确认分组:完成对接收到的更新分组进行确认的工作; d.请求分组:进行向邻居索取所拥有的隧道端点信息的工作; e.注册分组:进行向中心注册机注册,要求加入P2P重叠网络的工作; f.回复分组:作为对注册分组的回复,携带部分P2P节点IPv4地址信息,协助新节点加入P2P重叠网络; 为每个P2P重叠网络节点设置以下4种P2P重叠网络邻居关系状态,配合所述6种控制分组一起使用: a.初始:表示邻居关系初始状态; b.单向链路:表示已确认邻居通向该节点的单向链路; c.双向链路:表示已确认邻居与该节点的双向链路; d.已更新:表示本地隧道端点信息数据库中信息已更新至邻居; 设置中心注册机,使其作为普通节点加入到所述P2P重叠网络中,维护P2P重叠网络中所有节点实时IPv4地址信息,并协助新节点加入所述P2P重叠网络; 步骤
2.新节点按以下步骤注册加入所述P2P重叠网络: 步骤2.
1.新节点向中心注册机发送注册分组,要求加入所述P2P重叠网络; 步骤2.
2.该中心注册机使用回复分组将随机选取的部分P2P节点IPv4地址信息发送给该新节点; 步骤2.
3. 若该新节点接收到回复分组,则根据所得到的部分节点IPv4地址信息,向这些节点发送0型呼叫分组并设置邻居状态为初始; 若该新节点超时没有接收到回复分组,则跳转至步骤2.1; 步骤
3.按以下步骤建立和维护P2P重叠网络邻居关系以及完成隧道端点信息扩散和更新: 步骤3.
1.当邻居节点状态为初始时: 若接收到该邻居发来的0型呼叫分组,则设置邻居节点状态为单向链路,发送1型呼叫分组至该邻居; 若接收到该邻居发来的1型呼叫分组,则设置邻居节点状态为双向链路,发送请求分组至该邻居; 步骤3.
2.当邻居节点状态为单向链路时: 若接收到该邻居发来的0型呼叫分组,则保持邻居节点状态为单向链路,发送1型呼叫分组至该邻居; 若接收到该邻居发来的1型呼叫分组,则设置邻居节点状态为双向链路,发送请求分组至该邻居; 若接收到该邻居发来的请求分组,则设置邻居节点状态为双向链路,发送更新分组用以将本地拥有的隧道端点信息更新至该邻居; 步骤3.
3.当邻居节点状态为双向链路时: 若接收到该邻居发来的0型呼叫分组,则设置邻居节点状态为单向链路,发送1型呼叫分组至该邻居; 若接收到该邻居发来的1型呼叫分组,则保持邻居节点状态为双向链路,发送请求分组至该邻居; 若接收到该邻居发来的请求分组,则保持邻居节点状态为双向链路,发送更新分组用以将本地拥有的隧道端点信息更新至该邻居; 若接收到该邻居发来的更新分组,则保持邻居节点状态为双向链路,发送确认分组至该邻居,并将接收到的更新的隧道端点信息用更新分组扩散给所有邻居; 若接收到该邻居发来的确认分组,则设置邻居节点状态为已更新; 步骤3.
4.当邻居节点状态已更新时: 若接收到该邻居发来的0型呼叫分组,则设置邻居节点状态为单向链路,发送1型呼叫分组至该邻居; 若接收到该邻居发来的1型呼叫分组,则保持邻居节点状态为已更新; 若接收到该邻居发来的请求分组,则保持邻居节点状态为已更新,发送更新分组至该邻居用以将本地拥有的隧道端点信息更新至该邻居; 若接收到该邻居发来的更新分组,则保持邻居节点状态为已更新,发送确认分组至该邻居,并将接收到的更新的隧道端点信息用更新分组扩散给所有邻居; 若接收到该邻居发来的确认分组,保持邻居节点状态为已更新; 步骤3.
5.若超时没有收到该邻居发来的呼叫分组,设置邻居节点状态为初始。
用重叠网络传递IPv4与IPv6地址映射关系的方法\n技术领域\n用重叠网络传递IPv4与IPv6地址映射关系的方法属于互联网技术领域,尤其涉及IPv4 与IPv6网络互联的隧道技术。\n背景技术\n在互联网由IPv4向IPv6过渡的过程中,IPv4网络中的IPv6网络,即IPv6 "孤岛",由 于没有与IPv6主干网络的直连线路, 一般采用IPv6-in-IPv4隧道技术获得IPv6支持。常用的 隧道技术有6to4技术和配置隧道。6to4隧道由于使用特殊前缀的IPv6地址,在过渡完成后 还需要替换成普通IPv6地址,只能作为一种暂时的接入方法使用。因此,通常更推荐使用配 置隧道接入IPv6网络。配置隧道的缺点是需要手工配置,管理开销大,虽然可以通过隧道代 理,即Tunnel Broker,自动建立和维护配置隧道,但无论使用哪种方法,都会存在一个或少 数几个接入点负责转发上述IPv6 "孤岛"访问其他IPv6网络的流量。这种体系结构存在单故 障点,容易成为网络瓶颈,而IPv6 "孤岛"之间的流量本身是可以直接通过IPv6 "孤岛"间 的IPv6 over IPv4隧道转发。建立隧道的关键在于获得隧道端点的IPv4地址以及可达的IPv6 地址范围,如何协助IPv6 "孤岛"网关获得其他IPv6 "孤岛"网关的隧道端点信息就是本发 明所要解决的问题。\n发明内容\n本发明的目的在于提供一种在IPv4网络上利用重叠网络传递IPv6隧道端点信息即IPv4 与IPv6地址映射关系的方法。\n本发明的特征在于:这是一种运行于IPv4/IPv6双栈路由器和IPv4/IPv6双栈三层交换机上 利用P2P重叠网络在IPv4上传递IPv6 over IPv4隧道端点信息的方法,该方法依次含有以下 步骤:\n步骤l.初始化,\n为每个P2P重叠网络节点维护一个隧道端点信息数据库,用以保存已知的隧道端点信 息,数据库中的每条信息包含:\nal.序列号:递增,用以标记信息的新旧,即序列号越大,信息越新;\nbl. IPv4地址:表示隧道端点的IPv4地址;\nCl. IPv6地址范围:表示隧道端点可达的IPv6地址范围;\ndl.有效位:标记该信息是否有效;0表示无效,l表示有效;\nel.最近更新时间:纪录该信息最近更新的时间,作为删除超时没有更新的信息的依据; 为每个P2P重叠网络节点设置以下6种控制分组,用于P2P重叠网络建立和维护,\n隧道端点信息扩散和更新:\na. 呼叫分组:进行邻居关系建立和保持工作,分为0型和1型;O型呼叫分组用于与陌 生节点建立邻居关系,1型呼叫分组用于与现有邻居节点保持邻居关系:\nb. 更新分组:完成将本地隧道端点信息数据库中的信息更新至邻居的工作;\nc. 确认分组:完成对接收到的更新分组进行确认的工作;\nd. 请求分组:进行向邻居索取所拥有的隧道端点信息的工作;\ne. 注册分组:进行向中心注册机注册,要求加入P2P重叠网络的工作;\nf. 回复分组:作为对注册分组的回复,携带部分P2P节点IPv4地址信息,协助新节点 加入P2P重叠网络;\n为每个P2P重叠网络节点设置以下4种P2P重叠网络邻居关系状态,配合所述6种 控制分组一起使用:\na. 初始:表示邻居关系初始状态;\nb. 单向链路:表示己确认邻居通向该节点的单向链路; C.双向链路:表示已确认邻居与该节点的双向链路:\nd.己更新:表示本地隧道端点信息数据库中信息已更新至邻居;\n设置中心注册机,使其作为普通节点加入到所述P2P重叠网络中,维护P2P重叠网 络中所有节点实时IPv4地址信息,并协助新节点加入所述P2P重叠网络; 步骤2.新节点按以下步骤注册加入所述P2P重叠网络:\n步骤2丄新节点向中心注册机发送注册分组,要求加入所述P2P重叠网络; 步骤2.2.该中心注册机使用回复分组将随机选取的部分P2P节点IPv4地址信息发送给\n该新节点: 步骤2.3.\n若该新节点接收到回复分组,则根据所得到的部分节点IPv4地址信息,向这些节 点发送0型呼叫分组并设置邻居状态为初始;\n若该新节点超时没有接收到回复分组,则跳转至步骤2.1; 步骤3.按以下歩骤建立和维护P2P重叠网络邻居关系以及完成隧道端点信息扩散和更 新:\n步骤3丄当邻居节点状态为初始时:\n若接收到该邻居发来的0型呼叫分组,则设置邻居节点状态为单向链路,发送1 型呼叫分组至该邻居:\n若接收到该邻居发来的1型呼叫分组,则设置邻居节点状态为双向链路,发送请 求分组至该邻居;\n步骤3丄当邻居节点状态为单向链路时:\n若接收到该邻居发来的0型呼叫分组,则保持邻居节点状态为单向链路,发送1 型呼叫分组至该邻居;\n若接收到该邻居发来的1型呼叫分组,则设置邻居节点状态为双向链路,发送请 求分组至该邻居:\n若接收到该邻居发来的请求分组,则设置邻居节点状态为双向链路,发送更新分\n组用以将本地拥有的隧道端点信息更新至该邻居; 步驟3.3.当邻居节点状态为双向链路时:\n若接收到该邻居发來的0型呼叫分组,则设置邻居节点状态为单向链路,发送1\n型呼叫分组至该邻居;\n若接收到该邻居发来的1型呼叫分组,则保持邻居节点状态为双向链路,发送请\n求分组至该邻居;\n若接收到该邻居发来的请求分组,则保持邻居节点状态为双向链路,发送更新分 组用以将本地拥有的隧道端点信息更新至该邻居;\n若接收到该邻居发来的更新分组,则保持邻居节点状态为双向链路,发送确认分 组至该邻居,并将接收到的更新的隧道端点信息用更新分组扩散给所有邻居:\n若接收到该邻居发来的确认分组,则设置邻居节点状态为已更新: 步骤3.4.当邻居节点状态己更新时:\n若接收到该邻居发来的O型呼叫分组,则设置邻居节点状态为单向链路,发送l 型呼叫分组至该邻居;\n若接收到该邻居发来的1型呼叫分组,则保持邻居节点状态为己更新;\n若接收到该邻居发来的请求分组,则保持邻居节点状态为已更新,发送更新分组 至该邻居用以将本地拥有的隧道端点信息更新至该邻居;\n若接收到该邻居发来的更新分组,则保持邻居节点状态为已更新,发送确认分组 至该邻居,并将接收到的更新的隧道端点信息用更新分组扩散给所有邻居:\n若接收到该邻居发来的确认分组,保持邻居节点状态为已更新; 步骤3.5.若超时没有收到该邻居发来的呼叫分组,设置邻居节点状态为初始。 通过上述P2P重叠网络,可以完成隧道端点信息的扩散和更新,可以协助IPv6"孤岛" 自动建立IPv6"孤岛"之间的IPv6 over IPv4配置隧道;此外,经过实验验证,该方法可以 保证P2P重叠网络100%连通,因此,该方法还具有分布式、高可靠性的特点。由此可见, 本发明达到了预期的目的。\n附图说明\n图l.网络连接图:\n+-----表示注册加入P2P网络,表示P2P邻居\n图2.新节点注册状态机:\n-^-^表示超时没有收到回复分组,\n-8-表示接收到回复分组;\n图3.邻居关系转移状态机:\n-4-^表示接收到0型呼叫分组,\n-3-^表示接收到1型呼叫分组,\n-3-^表示接收到请求分组,\n-4-表示接收到确认分组,\n-6-表示接收到更新分组,\n-6-^表示超时没有收到呼叫分组。\n具体实施方式\n本发明设计了一个运行于IPv4/IPv6双栈路由器和IPv4/IPv6双栈三层交换机上利用P2P 重叠网络在IPv4上传递IPv6 over IPv4隧道端点信息的方法,设计了建立、维护P2P重叠网 络、保持邻居关系和传递隧道端点信息的有关协议过程,协议分组类型和协议状态机。\n本方法通过随机选择节点作为P2P重叠关系邻居来构成一个分布式无结构的P2P重叠网 络,通过一个中心注册机为新节点提供接入服务:整个网络拓扑如图1所示,IPv6"孤岛"\n边界网关通过中心注册机形成一个P2P的重叠网络,用以传递P2P节点,即隧道端点信息。 每个P2P重叠网络节点维护一个隧道端点信息数据库,用以保存已知的隧道端点信息, 数据库中的每条信息包含以下几个内容:\na. 序列号:递增,用以标记信息的新旧,即序列号越大,信息越新:\nb. IPv4地址:表示隧道端点的IPv4地址;\nC. IPv6地址范围:表示隧道端点可达的IPv6地址范围;\nd. 有效位:标记该信息是否有效;0表示无效,l表示有效;\ne. 最近更新时间:纪录该信息最近更新时间,作为删除超时没有更新的信息的依据。 中心注册机为新节点提供接入服务,需要维护和更新所有P2P节点IPv4地址信息,由于\nP2P重叠网络传递的隧道端点信息包含了 P2P节点的IPv4地址,因此可以将中心注册机作为 一个普通节点加入到P2P重叠网络中来,通过P2P重叠网络的更新机制完成P2P节点IPv4\n地址信息更新。中心注册机的功能包括-\na. 作为普通节点参与P2P重叠网络的信息更新,维护P2P重叠网络中所有节点IPv4地\n址信息;\nb. 接收到新节点的注册请求后,从所有P2P节点IPv4地址信息中随机选取部分节点IPv4 地址,回复给该新节点,协助该新节点加入P2P重叠网络。\n本方法利用6种控制分组完成P2P重叠网络建立和维护,隧道端点信息扩散和更新等工\n作:\na. 呼叫分组:进行邻居关系建立和保持工作,分为0型和1型:O型呼叫分组用于与陌 生节点建立邻居关系,1型呼叫分组用于与现有邻居节点保持邻居关系;\nb. 更新分组:完成将本地隧道端点信息数据库中的信息更新至邻居的工作: C.确认分组:完成对接收到的更新分组进行确认的工作;\nd. 请求分组:进行向邻居索取所拥有的隧道端点信息的工作;\ne. 注册分组:进行向中心柱册机注册,要求加入P2P重叠网络的工作;\nf. 回复分组:作为对注册分组的回复,携带部分P2P节点IPv4地址信息,协助新节点 加入P2P重叠网络。\n本方法定义4种P2P重叠网络邻居关系状态,结合上述6种控制分组中的前4种,用以 完成重叠邻居关系的建立和维护,隧道端点信息的扩散和更新等工作,邻居状态包括-\na. 初始:表示邻居关系初始状态;\nb. 单向链路:表示已确认邻居通向该节点的单向链路:\nC.双向链路:表示己确认邻居与该节点的双向链路:\nd.已更新:表示本地隧道端点信息数据库中信息已更新至邻居。\n新节点注册加入P2P重叠网络时,首先通过中心注册机获得部分P2P节点IPv4地址信息,\n再与这些节点建立邻居关系,注册状态机如图2,包括以下步骤:\na. 新节点向中心注册机发送注册分组,要求加入P2P重叠网络:\nb. 中心注册机使用回复分組将随机选取的部分P2P节点IPv4地址信息发送给该新节点: C. 若:\ni. 该新节点接收到回复分组,则根据所得到的部分节点IPv4地址信息,向这些节点\n发送0型呼叫分组并设置邻居状态为初始; ii 该新节点超时没有接收到回复分组,则跳转至a。 P2P重叠网络邻居关系建立和维护以及隧道端点信息扩散和更新状态机如图3,描述如下,\n若:\na. 邻居节点状态为初始,若:\ni. 接收到该邻居发来的0型呼叫分组,则设置邻居节点状态为单向链路,发送1型 呼叫分组至该邻居;\nii. 接收到该邻居发来的1型呼叫分组,则设置邻居节点状态为双向链路,发送请求 分组至该邻居;\nb. 邻居节点状态为单向链路,若:\n!• 接收到该邻居发来的0型呼叫分组,则保持邻居节点状态为单向链路,发送1型 呼叫分组至该邻居:\nii. 接收到该邻居发来的1型呼叫分组,则设置邻居节点状态为双向链路,发送请求 分组至该邻居:\niii. 接收到该邻居发来的请求分组,则设置邻居节点状态为双向链路,发送更新分组 用以将本地拥有的隧道端点信息更新至该邻居;\nC.邻居节点状态为双向链路,若:\ni. 接收到该邻居发来的0型呼叫分组,则设置邻居节点状态为单向链路,发送1型 呼叫分组至该邻居:\nfi. 接收到该邻居发来的1型呼叫分组,则保持邻居节点状态为双向链路,发送请求 分组至该邻居;\nHi. 接收到该邻居发来的请求分组,则保持邻居节点状态为双向链路,发送更新分组\n用以将本地拥有的隧道端点信息更新至该邻居:\niv. 接收到该邻居发来的更新分组,则保持邻居节点状态为双向链路,发送确认分组\n至该邻居,并将接收到的更新的隧道端点信息用更新分组扩散给所有邻居;\nv. 接收到该邻居发来的确认分组,则设置邻居节点状态为己更新:\nd. 邻居节点状态已更新,若:\ni. 接收到该邻居发来的0型呼叫分组,则设置邻居节点状态为单向链路,发送1型 呼叫分组至该邻居;\nii. 接收到该邻居发来的1型呼叫分组,则保持邻居节点状态为已更新;\nHi. 接收到该邻居发来的请求分组,则保持邻居节点状态为己更新,发送更新分组至 该邻居用以将本地拥有的隧道端点信息更新至该邻居:\niv. 接收到该邻居发来的更新分组,则保持邻居节点状态为已更新,发送确认分组至 该邻居,并将接收到的更新的隧道端点信息用更新分组扩散给所有邻居;\nv. 接收到该邻居发来的确认分组,保持邻居节点状态为已更新:\ne. 超时没有收到该邻居发来的呼叫分组,包括O型呼叫分组和1型呼叫分组,设置邻居 节点状态为初始。\n节点接收到邻居的发来的更新分组后,向邻居发送确认分组,确认收到更新信息。对接 收到的更新分组中的每一条隧道端点信息,如果本地存在该信息,但序列号没有接收到的信 息序列号大,或者本地不存在该信息,则更新本地隧道端点信息数据库;否则,将本地相应 隧道端点信息加入到新的更新分组中,发送给上述邻居节点;同时,根据更新过的本地隧道 端点信息数据库,利用更新分组.将刚刚更新的信息发送给其他邻居。\n每隔1800s,节点将属于自己的隧道端点信息序列号+1,使用更新分组扩散给邻居节点; 同时,将最近更新时间距今大于3*1800s的隧道端点信息从隧道端点信息数据库中删除。\n节点JF.常退出时,将本地隧道端点信息数据库中自己相应的信息序列号+1 ,有效位覽为0, 并通过更新分组发送给邻居,至少收到一个邻居的确认分组或者全部发送超时后,才可以退 出。\n当节点的IPv4地址发生变化的时候,首先通过更新分组向邻居发送退出信息,然后连接 中心注册机重新加入到P2P重叠网络中来。当节点所能到达的IPv6地址范围发生变化时, 则可立即通过更新分组在P2P重叠网络内扩散更新。\nP2P重叠网络邻居之间通过呼叫分组保持邻接关系,节点每隔10s向邻居列表中状态为: 单向链路/双向链路/已更新的邻居发送一次1型呼叫分组。\n连续3M0s没有接收到单向链路/双向链路/已更新状态邻居发送来的1型呼叫分组后,则 认为该邻居节点失效,将邻居设置为初始状态,同时,将本地隧道端点信息数据库中该邻居 的相应信息序列号+1,有效位置为O,并通过更新控制分组发送给其他邻居。\n当本地邻居列表非初始状态的邻居的个数小于5时,从本地隧道端点信息数据库中随机 选取不是现有邻居的节点尝试建立邻居关系,重复进行,直到非初始状态的邻居个数大于等 于5,或者本地隧道端点信息数据库中的节点均为现有邻居为止;当本地隧道端点信息数据 库中的节点均为现有邻居且没有邻居在非初始状态时,重新连接中心注册机进行注册。
法律信息
- 2008-05-07
- 2006-10-11
- 2006-08-16
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2006-02-15
|
2004-08-10
| | |
2
| |
2003-09-03
|
2003-03-31
| | |
3
| | 暂无 |
2002-01-11
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |