专利转让平台_买专利_卖专利_中国高校专利技术交易-买卖发明专利上知查网

全部分类
全部分类
一种可靠的软件定义网络实现方法

一种可靠的软件定义网络实现方法

IPC分类号 : H04L12/741,H04L12/751,H04W40/02

申请号
CN201810235128.4
可选规格
  • 专利类型: 发明专利
  • 法律状态: 有权
  • 申请日: 2018-03-21
  • 公开号: CN108449275B
  • 公开日: 2018-08-24
  • 主分类号: H04L12/741
  • 专利权人: 常熟理工学院

专利摘要

本发明提供了一种可靠的软件定义网络实现方法,所述网络包括控制器和交换机;一个控制器具有唯一的坐标,一个交换机具有唯一的坐标;一个控制器由控制器ID唯一标识,该控制器ID等于该控制器的坐标;一个交换机由交换机ID唯一标识,该交换机ID等于该交换机的坐标;所述网络通过本发明所提供的实现方法可快速获取网络数据,缩短路由延迟,降低数据包丢失率,提高服务质量,本发明可应用于道路路况监测、环境监测等领域,具有广泛的应用前景。

权利要求

1.一种可靠的软件定义网络实现方法,其特征在于,所述网络包括控制器和交换机;一个控制器具有唯一的坐标,一个交换机具有唯一的坐标;一个控制器由控制器ID唯一标识,该控制器ID等于该控制器的坐标;一个交换机由交换机ID唯一标识,该交换机ID等于该交换机的坐标;控制器分布在所述网络中,所述网络构建成两个以上的域,一个域由一个控制器和两个以上的交换机构成,其中,一个域中的交换机在网络中所有控制器中与相同域中的控制器距离最近;

每个控制器或者交换机配置两个以上的接口,每个接口由接口ID唯一标识,该接口ID预先配置;一个控制器与所在域中的一个交换机的一个接口相连,该交换机的其余接口与其他控制器链路相连,该交换机称为主交换机;

每个交换机保存一个控制器表,一个控制器表项由控制器ID域和路径集合域构成;控制器执行下述步骤建立控制器表项:

步骤101:开始;

步骤102:控制器从与交换机相连的接口发送一个发布消息,该发布消息的负载为路径集合和自己的控制器ID,路径集合为空集;

步骤103:交换机从自己的接口f1接收到该发布消息后,如果该交换机与接收到的发布消息负载中的控制器ID距离最近,即属于该控制器ID所标识的控制器所在的域,则执行步骤104,否则执行步骤108;

步骤104:从接口f1接收到发布消息的交换机将接口f1加入到发布消息的路径集合中且作为该路径集合的第一个元素;如果该交换机的控制器表为空,则执行步骤105,否则执行步骤106;

步骤105:交换机创建一个控制器表项,该控制器表项的控制器ID域值设置为该发布消息中的控制器ID,路径集合设置为该发布消息负载中的路径集合,交换机从除了接口f1以外的接口路由该发布消息,执行步骤103;

步骤106:交换机判断控制器表项的路径集合元素个数是否大于接收到的发布消息负载中的路径集合的元素个数,如果是,则执行步骤107,否则执行步骤108;

步骤107:交换机将控制器表项的路径集合设置为该发布消息负载中的路径集合,交换机从除了接口f1以外的接口路由该发布消息,执行步骤103;

步骤108:结束;

一个移动节点由节点ID唯一标识,节点ID包括三个部分,控制器ID、交换机ID和设备ID,设备ID为该移动节点的硬件ID,具有网络唯一性;一个移动节点的硬件ID不变化;一个移动节点配置一个家乡节点ID和一个临时节点ID;每个交换机维护一个地址表,每个地址表项包含节点ID域、类型域、接口ID域和生命周期域,其中类型域值为0时,表明该节点ID为家乡节点ID,类型域值为1时,表明该节点ID为临时节点ID;

如果一个地址表项的生命周期衰减为0,则删除该地址表项;

移动节点M1启动后,与交换机SW1关联,交换机SW1所在域的控制器为C1,移动节点M1执行下述步骤获取家乡节点ID:

步骤201:开始;

步骤202:移动节点M1发送家乡请求消息,家乡请求消息负载为自己的设备ID和生命周期值;

步骤203:交换机SW1从自己的接口f2接收到家乡请求消息后,构建一个节点ID,该节点ID的控制器ID为控制器C1的控制器ID,交换机ID为自己的交换机ID,设备ID为家乡请求消息中的设备ID;交换机SW1创建一个地址表项,该地址表项的节点ID域值为构建的节点ID,类型域值为0,接口ID为f2,生命周期域值为接收到的家乡请求消息负载中的生命周期值;交换机SW1从接口f2发送家乡响应消息,该家乡响应消息的负载为构建的节点ID;

步骤204:移动节点M1接收到家乡响应消息后,将负载中的节点ID设置为自己的家乡节点ID;

步骤205:结束;

移动节点M1获取家乡节点ID后,如果与交换机SW4关联,交换机SW4所在域的控制器为C4,移动节点M1执行下述步骤获得临时节点ID:

步骤301:开始;

步骤302:移动节点M1发送临时请求消息,消息负载为自己的设备ID和生命周期值;

步骤303:交换机SW4从自己的接口f3接收到临时请求消息后,构建一个节点ID,该节点ID的控制器ID为控制器C4的控制器ID,交换机ID为自己的交换机ID,设备ID为临时请求消息中的设备ID;交换机SW4创建一个地址表项,该地址表项的节点ID域值为构建的节点ID,类型域值为1,接口ID为f3,生命周期域值为接收到的临时请求消息负载中的生命周期值;交换机SW4从接口f3发送临时响应消息,该临时响应消息的负载为构建的节点ID;

步骤304:移动节点M1接收到临时响应消息后,将负载中的节点ID设置为自己的临时节点ID;

步骤305:结束;

每个交换机包含一个路由表,路由表的表名为交换机自己的坐标,每个路由表项包含交换机ID域和路径集合域;如果交换机SW1所在域的控制器为C1,则执行下述步骤建立路由表:

步骤401:开始;

步骤402:交换机发送一个路由消息,该路由消息的负载为控制器C1的坐标,交换机自己的坐标和路径集合;路径集合为空;

步骤403:交换机从自己的接口f4接收到该路由消息后,如果该交换机的坐标在所有控制器中与控制器C1距离最近,则执行步骤404,否则执行步骤410;

步骤404:交换机将接口f4加入到该路由消息的路径集合中且接口f4作为路径集合的第一个元素,如果该交换机的一个接口与控制器相连,则执行步骤406,否则执行步骤405;

步骤405:交换机从除了接口f4以外的所有接口发送该路由消息,执行步骤403;

步骤406:交换机查看路由表,如果存在一个路由表项,该路由表项的交换机ID域值等于该路由消息中的坐标,则执行步骤408,否则执行步骤407;

步骤407:交换机创建一个路由表项,该路由表项的交换机ID域值等于该路由消息中的坐标,路径集合域值等于该路由消息中的路径集合,执行步骤410;

步骤408:交换机选择一个路由表项,该路由表项的交换机ID域值等于该路由消息中的坐标,如果该路由表项的路径集合元素个数大于该路由消息中的路径集合元素个数,则执行步骤409,否则执行步骤410;

步骤409:交换机选择一个路由表项,该路由表项的交换机ID域值等于该路由消息中的坐标,将该路由表项的路径集合更新为该路由消息中的路径集合;

步骤410:结束;

如果交换机SW3为主交换机,与控制器C3相连,则执行下述步骤执行上传操作:

步骤501:开始;

步骤502:交换机SW3构建一个上传消息,该上传消息的负载为交换机SW3的路由表;交换机SW3选择一个接口,该接口与控制器C3相连,然后从该接口发送上传消息;

步骤503:控制器接收到该上传消息后,保存该上传消息负载中的路由表;

步骤504:结束;

每个控制器包含一个控制器路由表,控制器路由表的名称为该控制器的坐标,每个控制器路由表项包含控制器ID域和路径集合域;控制器执行下述步骤建立控制器路由表:

步骤601:开始;

步骤602:控制器从除了与交换机相连的接口以外的所有接口发送一个发布消息,该发布消息的负载为自己的坐标和路径集合;路径集合为空;

步骤603:除了步骤602中发送发布消息的控制器以外的其他控制器从自己的接口f6接收到该发布消息后,将接口f6加入到该发布消息的路径集合中且接口f6作为路径集合的第一个元素,查看控制器路由表,如果存在一个控制器路由表项,该控制器路由表项的控制器ID域值等于该发布消息中的坐标,则执行步骤605,否则执行步骤604;

步骤604:从接口f6接收到发布消息的控制器创建一个控制器路由表项,该控制器路由表项的控制器ID域值等于接收到的发布消息中的坐标,路径集合域值等于该发布消息中的路径集合;然后从除了接口f6以及与交换机相连的接口以外的所有接口发送该发布消息,执行步骤603;

步骤605:从接口f6接收到发布消息的控制器选择一个控制器路由表项,该控制器路由表项的控制器ID域值等于该发布消息中的坐标,如果该控制器路由表项的路径集合元素个数大于该发布消息中的路径集合的元素个数,则执行步骤606,否则执行步骤607;

步骤606:控制器选择一个控制器路由表项,该控制器路由表项的控制器ID域值等于该发布消息中的坐标,将该控制器路由表项的路径集合更新为该发布消息中的路径集合,然后从除了接口f6以及与交换机相连的接口以外的所有接口发送该发布消息,执行步骤603;

步骤607:结束;

在每个控制器维护一个映射表,每个映射表项包含家乡节点ID域、临时节点ID域和生命周期域,移动节点M1位于域O1中,域O1的控制器为C1,交换机SW1和SW2位于域O1内,移动节点M1与交换机SW1关联的条件下,如果移动节点M1位置发生移动,移动节点M1与交换机SW2关联,则执行下述域内更新步骤:

步骤701:开始;

步骤702:移动节点M1执行步骤301~305从交换机SW2获取临时节点ID,移动节点M1发送一条更新消息,该更新消息的负载为移动节点M1的家乡节点ID和临时节点ID;

步骤703:交换机SW2接收到该更新消息后,查看控制器表项,将该控制器表项的路径集合加入到该更新消息的负载中,选择一个接口,该接口的接口ID等于该更新消息负载中的路径集合的第一个元素,然后从该更新消息负载中的路径集合中删除第一个元素,从选中的接口发送该更新消息;

步骤704:判断是交换机还是控制器C1接收到该更新消息,如果是交换机则执行步骤705,否则执行步骤706;

步骤705:交换机接收到更新消息后,选择一个接口,该接口的接口ID等于该更新消息负载中的路径集合的第一个元素,然后交换机从该更新消息负载中的路径集合中删除第一个元素,从选中的接口发送该更新消息,执行步骤704;

步骤706:控制器C1接收到更新消息后,查看映射表,如果存在一个映射表项,该映射表项的家乡节点ID等于更新消息中的家乡节点ID,将该映射表项的临时节点ID更新为该更新消息中的临时节点ID;否则,控制器C1创建一个映射表项,该映射表项的家乡节点ID等于更新消息中的家乡节点ID,临时节点ID等于该更新消息中的临时节点ID;

步骤707:结束;

在移动节点M1位于域O1中,域O1的控制器为C1,交换机SW1位于域O1内,交换机SW3位于域O3内,域O3的控制器为C3,移动节点M1与交换机SW1关联的条件下,如果移动节点M1位置发生移动与交换机SW3关联,则执行下述域间更新步骤:

步骤801:开始;

步骤802:移动节点M1执行步骤301~305从交换机SW3获取临时节点ID,移动节点M1发送一条更新消息,该更新消息的负载为移动节点M1的家乡节点ID和临时节点ID;

步骤803:交换机SW3接收到该更新消息后,查看控制器表项,将该控制器表项的路径集合加入到该更新消息的负载中,交换机SW3选择一个接口,该接口的接口ID等于该更新消息负载中的路径集合的第一个元素,然后从该更新消息负载中的路径集合中删除第一个元素,从选中的接口发送该更新消息;

步骤804:判断是交换机还是控制器C1接收到该更新消息,如果是交换机则执行步骤805,否则执行步骤806;

步骤805:交换机接收到更新消息后,选择一个接口,该接口的接口ID等于该更新消息负载中的路径集合的第一个元素,然后从该更新消息负载中的路径集合中删除第一个元素,从选中的接口发送该更新消息,执行步骤804;

步骤806:控制器C1接收到更新消息后,查看控制器路由表,选择一个控制器路由表项,该控制器路由表项中的控制器ID域值等于该更新消息中家乡节点ID中的控制器ID,将该控制器路由表项的路径集合加入到该更新消息中,选择一个接口,该接口的接口ID等于该更新消息负载中的路径集合的第一个元素,然后从该更新消息负载中的路径集合中删除第一个元素,从选中的接口发送该更新消息;

步骤807:除步骤806中的控制器C1以外的其他控制器接收到该更新消息后,如果该更新消息的家乡节点ID中的控制器ID等于该控制器的控制器ID,则执行步骤809,否则执行步骤808;

步骤808:控制器接收到该更新消息后,选择一个接口,该接口的接口ID等于该更新消息负载中的路径集合的第一个元素,然后从该更新消息负载中的路径集合中删除第一个元素,从选中的接口发送该更新消息,执行步骤807;

步骤809:控制器查看映射表,如果存在一个映射表项,该映射表项的家乡节点ID等于更新消息中的家乡节点ID,则将该映射表项的临时节点ID更新为该更新消息中的临时节点ID;否则,该控制器创建一个映射表项,该映射表项的家乡节点ID等于更新消息中的家乡节点ID,临时节点ID等于该更新消息中的临时节点ID;

步骤810:结束;

在移动节点M1位于域O1中,域O1的控制器为C1,交换机SW1位于域O1内,移动节点M1与交换机SW1关联,移动节点M5位于域O5中,域O5的控制器为C5,交换器SW5位于域O5中,移动节点M5与交换机SW5关联的条件下,移动节点M1与移动节点M5通过下述过程实现通信:

步骤901:开始;

步骤902:移动节点M1发送一条请求消息,该请求消息的负载为源地址和目的地址,源地址为移动节点M1的临时节点ID,目的地址为移动节点M5的家乡节点ID;交换机SW1接收到该请求消息后,查看控制器表项,将该控制器表项的路径集合加入到该更新消息的负载中,交换机SW1选择一个接口,该接口的接口ID等于该请求消息负载中的路径集合的第一个元素,然后从该请求消息负载中的路径集合中删除第一个元素,从选中的接口发送该请求消息;

步骤903:判断是交换机还是控制器C1接收到该更新消息,如果是交换机执行步骤904,否则执行步骤905;

步骤904:交换机接收到请求消息后,选择一个接口,该接口的接口ID等于该请求消息负载中的路径集合的第一个元素,然后从该请求消息负载中的路径集合中删除第一个元素,从选中的接口发送该请求消息,执行步骤903;

步骤905:控制器C1接收到请求消息后,查看控制器路由表,选择一个控制器路由表项,该控制器路由表项的控制器ID域值等于该请求消息的目的节点ID的控制器ID,控制器C1将该控制器路由表项的路径集合加入到该请求消息中,选择一个接口,该接口的接口ID等于该请求消息负载中的路径集合的第一个元素,然后从该请求消息负载中的路径集合中删除第一个元素,从选中的接口发送该请求消息;

步骤906:除步骤905中控制器C1以外的其他控制器接收到该请求消息后,如果它的控制器ID等于该请求消息中的目的节点ID的控制器ID,则执行步骤908,否则执行步骤907;

步骤907:控制器接收到该请求消息后,选择一个接口,该接口的接口ID等于该请求消息负载中的路径集合的第一个元素,然后从该请求消息负载中的路径集合中删除第一个元素,从选中的接口发送该请求消息,执行步骤906;

步骤908:控制器查看映射表,如果存在一个映射表项,该映射表项的家乡节点ID等于请求消息的目的节点ID,则执行步骤909,否则执行步骤910;

步骤909:控制器选择一个映射表项,该映射表项的家乡节点ID等于请求消息中的目的节点ID,控制器将该请求消息中的目的节点ID更新为该映射表项中的临时节点ID,该控制器查看控制器路由表,控制器选择一个控制器路由表项,该控制器路由表项的控制器ID域值等于该请求消息的目的节点ID的控制器ID,将该控制器路由表项的路径集合加入到该请求消息中,控制器选择一个接口,该接口的接口ID等于该请求消息负载中的路径集合的第一个元素,然后从该请求消息负载中的路径集合中删除第一个元素,从选中的接口发送该请求消息,执行步骤906;

步骤910:控制器查看路由表,选择一个路由表项,该路由表项的交换机ID域值等于该请求消息中的目的节点ID的交换机ID值,控制器将该路由表项的路径集合加入到该请求消息负载中,从与交换机相连的接口发送该请求消息;

步骤911:交换机接收到该请求消息后,如果该交换机的交换机ID等于该请求消息的目的节点ID的交换机ID,则执行步骤913,否则执行步骤912;

步骤912:交换机选择一个接口,该接口的接口ID等于该请求消息负载中的路径集合的第一个元素,然后从该请求消息负载中的路径集合中删除第一个元素,从选中的接口发送该请求消息,执行步骤911;

步骤913:交换机查看分配表,选择一个分配表项,该分配表项的节点ID等于该请求消息的目的节点ID,然后从该分配表项的接口ID域值所标识的接口发送该请求消息;移动节点M5接收到该请求消息后,发送一个响应消息,该响应消息包括源节点ID,目的节点ID以及响应数据,其中,源节点ID等于接收到的请求消息中的目的节点ID,目的节点ID等于接收到的请求消息中的源节点ID;与移动节点M5关联的交换机SW5接收到响应消息后,选择控制器路由表项,将该控制器路由表项的路径集合加入到该响应消息的负载中,交换机SW5选择一个接口,该接口的接口ID等于该响应消息负载中的路径集合的第一个元素,然后从该响应消息负载中的路径集合中删除第一个元素,从选中的接口发送该响应消息;

步骤914:控制器C5接收到响应消息后,查看控制器路由表,选择一个控制器路由表项,该控制器路由表项的控制器ID域等于该响应消息的目的节点ID的控制器ID,将该控制器路由表项的路径集合加入到该响应消息中,控制器C5选择一个接口,该接口的接口ID等于该响应消息负载中的路径集合的第一个元素,然后从该响应消息负载中的路径集合中删除第一个元素,从选中的接口发送该响应消息;

步骤915:除步骤914中的控制器C5以外的其他控制器接收到该响应消息后,如果该响应消息的目的节点ID的控制器ID等于该控制器的控制器ID,则执行步骤917,否则执行步骤916;

步骤916:控制器选择一个接口,该接口的接口ID等于该响应消息负载中的路径集合的第一个元素,然后从该响应消息负载中的路径集合中删除第一个元素,从选中的接口发送该响应消息,执行步骤915;

步骤917:控制器查看路由表,选择一个路由表项,该路由表项的交换机ID域值等于该响应消息的目的节点ID的交换机ID,将该路由表项的路径集合加入到该响应消息负载中,从与交换机相连的接口发送该响应消息;

步骤918:交换机接收到该响应消息后,如果该响应消息的目的节点ID的交换机ID等于该交换机的交换机ID,则执行步骤920,否则执行步骤919;

步骤919:交换机选择一个接口,该接口的接口ID等于该响应消息负载中的路径集合的第一个元素,然后从该响应消息负载中的路径集合中删除第一个元素,从选中的接口发送该响应消息,执行步骤918;

步骤920:交换机查看分配表,选择一个分配表项,该分配表项的节点ID等于该响应消息的目的节点ID,然后从该分配表项的接口ID域值所标识的接口发送该响应消息;移动节点M1接收到该响应消息后,保存该响应消息中的数据;

步骤921:结束。

说明书

技术领域

本发明涉及一种实现方法,尤其涉及的是一种可靠的软件定义网络实现方法。

背景技术

软件定义网络作为一种新型通信网络,能够实现节点之间的多跳无线通信。随着网络技术的不断发展以及各种新应用的不断涌现,迫切需要提高网络性能。

目前,研究人员提出了通过软件定义网络获取网络服务的模式并定义了相应的协议栈,但是由于软件定义网络的体系结构与传统网络的体系结构不同,现有的网络获取服务的方法具有一些局限性。因此需要提出一种低延迟的软件定义网络实现方法,从而提高服务质量。

发明内容

发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种可靠的软件定义网络实现方法。

技术方案:本发明公开了一种可靠的软件定义网络实现方法,所述网络包括控制器和交换机;一个控制器具有唯一的坐标,一个交换机具有唯一的坐标;一个控制器由控制器ID唯一标识,该控制器ID等于该控制器的坐标;一个交换机由交换机ID唯一标识,该交换机ID等于该交换机的坐标;控制器分布在所述网络中,所述网络构建成两个以上的域,一个域由一个控制器和两个以上的交换机构成,其中,一个域中的交换机在网络中所有控制器中与相同域中的控制器距离最近;

每个控制器或者交换机配置两个以上的接口,每个接口由接口ID唯一标识,该接口ID预先配置,接口ID为自然数,例如接口ID为配置为1;一个控制器与所在域中的一个交换机的一个接口相连,该交换机的其余接口与其他控制器链路相连,该交换机称为主交换机;

每个交换机保存一个控制器表,一个控制器表项由控制器ID域和路径集合域构成;控制器执行下述步骤建立控制器表项:

步骤101:开始;

步骤102:控制器从与交换机相连的接口发送一个发布消息,该发布消息的负载为路径集合和自己的控制器ID,路径集合为空集;

步骤103:交换机从自己的接口f1接收到该发布消息后,如果该交换机与接收到的发布消息负载中的控制器ID距离最近,即属于该控制器ID所标识的控制器所在的域,则执行步骤104,否则执行步骤108;

步骤104:从接口f1接收到发布消息的交换机将接口f1加入到发布消息的路径集合中且作为该路径集合的第一个元素;如果该交换机的控制器表为空,则执行步骤105,否则执行步骤106;

步骤105:交换机创建一个控制器表项,该控制器表项的控制器ID域值设置为该发布消息中的控制器ID,路径集合设置为该发布消息负载中的路径集合,交换机从除了接口f1以外的接口路由该发布消息,执行步骤103;

步骤106:交换机判断控制器表项的路径集合元素个数是否大于接收到的发布消息负载中的路径集合的元素个数,如果是,则执行步骤107,否则执行步骤108;

步骤107:交换机将控制器表项的路径集合设置为该发布消息负载中的路径集合,交换机从除了接口f1以外的接口路由该发布消息,执行步骤103;

步骤108:结束。

上述过程能够快速建立控制器表从而实现正确通信。

本发明所述方法中,一个移动节点由节点ID唯一标识,节点ID包括三个部分,控制器ID、交换机ID和设备ID,设备ID为该移动节点的硬件ID,例如MAC地址,具有网络唯一性;一个移动节点的硬件ID不变化;一个移动节点配置一个家乡节点ID和一个临时节点ID;每个交换机维护一个地址表,每个地址表项包含节点ID域、类型域、接口ID域和生命周期域,其中类型域值为0时,表明该节点ID为家乡节点ID,类型域值为1时,表明该节点ID为临时节点ID;

如果一个地址表项的生命周期衰减为0,则删除该地址表项;

移动节点M1启动后,与交换机SW1关联,交换机SW1所在域的控制器为C1,移动节点M1执行下述步骤获取家乡节点ID:

步骤201:开始;

步骤202:移动节点M1发送家乡请求消息,家乡请求消息负载为自己的设备ID和生命周期值,例如24小时,一般不超过72小时;

步骤203:交换机SW1从自己的接口f2接收到家乡请求消息后,构建一个节点ID,该节点ID的控制器ID为控制器C1的控制器ID,交换机ID为自己的交换机ID,设备ID为家乡请求消息中的设备ID;交换机SW1创建一个地址表项,该地址表项的节点ID域值为构建的节点ID,类型域值为0,接口ID为f2,生命周期域值为接收到的家乡请求消息负载中的生命周期值;交换机SW1从接口f2发送家乡响应消息,该家乡响应消息的负载为构建的节点ID;

步骤204:移动节点M1接收到家乡响应消息后,将负载中的节点ID设置为自己的家乡节点ID;

步骤205:结束。

移动节点通过上述过程获取家乡节点ID从而实现正确通信。

本发明所述方法中,移动节点M1获取家乡节点ID后,如果与交换机SW4关联,交换机SW4所在域的控制器为C4,移动节点M1执行下述步骤临时节点ID:

步骤301:开始;

步骤302:移动节点M1发送临时请求消息,消息负载为自己的设备ID和生命周期值,例如1小时;

步骤303:交换机SW4从自己的接口f3接收到临时请求消息后,构建一个节点ID,该节点ID的控制器ID为控制器C4的控制器ID,交换机ID为自己的交换机ID,设备ID为临时请求消息中的设备ID;交换机SW4创建一个地址表项,该地址表项的节点ID域值为构建的节点ID,类型域值为1,接口ID为f3,生命周期域值为接收到的临时请求消息负载中的生命周期值;交换机SW4从接口f3发送临时响应消息,该临时响应消息的负载为构建的节点ID;

步骤304:移动节点M1接收到临时响应消息后,将负载中的节点ID设置为自己的临时节点ID;

步骤305:结束。

移动节点通过上述过程获取临时节点ID从而实现正确通信。

本发明所述方法中,每个交换机包含一个路由表,路由表的表名为交换机自己的坐标,每个路由表项包含交换机ID域和路径集合域;如果交换机SW1所在域的控制器为C1,则执行下述步骤建立路由表:

步骤401:开始;

步骤402:交换机发送一个路由消息,该路由消息的负载为控制器C1的坐标,交换机自己的坐标和路径集合;路径集合为空;

步骤403:交换机从自己的接口f4接收到该路由消息后,如果该交换机的坐标在所有控制器中与控制器C1距离最近,则执行步骤404,否则执行步骤410;

步骤404:交换机将接口f4加入到该路由消息的路径集合中且接口f4作为路径集合的第一个元素,如果该交换机的一个接口与控制器相连,则执行步骤406,否则执行步骤405;

步骤405:交换机从除了接口f4以外的所有接口发送该路由消息,执行步骤403;

步骤406:交换机查看路由表,如果存在一个路由表项,该路由表项的交换机ID域值等于该路由消息中的坐标,则执行步骤408,否则执行步骤407;

步骤407:交换机创建一个路由表项,该路由表项的交换机ID域值等于该路由消息中的坐标,路径集合域值等于该路由消息中的路径集合,执行步骤410;

步骤408:交换机选择一个路由表项,该路由表项的交换机ID域值等于该路由消息中的坐标,如果该路由表项的路径集合元素个数大于该路由消息中的路径集合元素个数,则执行步骤409,否则执行步骤410;

步骤409:交换机选择一个路由表项,该路由表项的交换机ID域值等于该路由消息中的坐标,将该路由表项的路径集合更新为该路由消息中的路径集合;

步骤410:结束。

上述过程能够快速建立路由表从而实现正确通信。

本发明所述方法中,如果交换机SW3为主交换机,与控制器C3相连,则执行下述步骤执行上传操作:

步骤501:开始;

步骤502:交换机SW3构建一个上传消息,该上传消息的负载为交换机SW3的路由表;交换机SW3选择一个接口,该接口与控制器C3相连,然后从该接口发送上传消息;

步骤503:控制器接收到该上传消息后,保存该上传消息负载中的路由表;

步骤504:结束。

每个控制器包含一个控制器路由表,控制器路由表的名称为该控制器的坐标,每个控制器路由表项包含控制器ID域和路径集合域;控制器执行下述步骤建立控制器路由表:

步骤601:开始;

步骤602:控制器从除了与交换机相连的接口以外的所有接口发送一个发布消息,该发布消息的负载为自己的坐标和路径集合;路径集合为空;

步骤603:除步骤602以外的其他控制器从自己的接口f6接收到该发布消息后,将接口f6加入到该发布消息的路径集合中且接口f6作为路径集合的第一个元素,查看控制器路由表,如果存在一个控制器路由表项,该控制器路由表项的控制器ID域值等于该发布消息中的坐标,则执行步骤605,否则执行步骤604;

步骤604:从接口f6接收到发布消息的控制器创建一个控制器路由表项,该控制器路由表项的控制器ID域值等于接收到的发布消息中的坐标,路径集合域值等于该发布消息中的路径集合;然后从除了接口f6以及与交换机相连的接口以外的所有接口发送该发布消息,执行步骤603;

步骤605:从接口f6接收到发布消息的控制器选择一个控制器路由表项,该控制器路由表项的控制器ID域值等于该发布消息中的坐标,如果该控制器路由表项的路径集合元素个数大于该发布消息中的路径集合的元素个数,则执行步骤606,否则执行步骤607;

步骤606:控制器选择一个控制器路由表项,该控制器路由表项的控制器ID域值等于该发布消息中的坐标,将该控制器路由表项的路径集合更新为该发布消息中的路径集合,然后从除了接口f6以及与交换机相连的接口以外的所有接口发送该发布消息,执行步骤603;

步骤607:结束。

本发明所述方法中,在每个控制器维护一个映射表,每个映射表项包含家乡节点ID域、临时节点ID域和生命周期域,移动节点M1位于域O1中,域O1的控制器为C1,交换机SW1和SW2位于域O1内,移动节点M1与交换机SW1关联的条件下,如果移动节点M1位置发生移动与交换机SW2关联,则执行下述域内更新步骤:

步骤701:开始;

步骤702:移动节点M1执行步骤301~305从交换机SW2获取临时节点ID,移动节点M1发送一条更新消息,该更新消息的负载为移动节点M1的家乡节点ID和临时节点ID;

步骤703:交换机SW2接收到该更新消息后,查看控制器表项,将该控制器表项的路径集合加入到该更新消息的负载中,选择一个接口,该接口的接口ID等于该更新消息负载中的路径集合的第一个元素,然后从该更新消息负载中的路径集合中删除第一个元素,从选中的接口发送该更新消息;

步骤704:判断是交换机还是控制器C1接收到该更新消息,如果是交换机则执行步骤705,否则执行步骤706;

步骤705:交换机接收到更新消息后,选择一个接口,该接口的接口ID等于该更新消息负载中的路径集合的第一个元素,然后交换机从该更新消息负载中的路径集合中删除第一个元素,从选中的接口发送该更新消息,执行步骤704;

步骤706:控制器C1接收到更新消息后,查看映射表,如果存在一个映射表项,该映射表项的家乡节点ID等于更新消息中的家乡节点ID,将该映射表项的临时节点ID更新为该更新消息中的临时节点ID;否则,控制器C1创建一个映射表项,该映射表项的家乡节点ID等于更新消息中的家乡节点ID,临时节点ID等于该更新消息中的临时节点ID;

步骤707:结束。

上述更新过程能够确保数据通信的正确性。

本发明所述方法中,在移动节点M1位于域O1中,域O1的控制器为C1,交换机SW1位于域O1内,交换机SW3位于域O3内,域O3的控制器为C3,移动节点M1与交换机SW1关联的条件下,如果移动节点M1位置发生移动与交换机SW3关联,则执行下述域间更新步骤:

步骤801:开始;

步骤802:移动节点M1执行步骤301~305从交换机SW3获取临时节点ID,移动节点M1发送一条更新消息,该更新消息的负载为移动节点M1的家乡节点ID和临时节点ID;

步骤803:交换机SW3接收到该更新消息后,查看控制器表项,将该控制器表项的路径集合加入到该更新消息的负载中,交换机SW3选择一个接口,该接口的接口ID等于该更新消息负载中的路径集合的第一个元素,然后从该更新消息负载中的路径集合中删除第一个元素,从选中的接口发送该更新消息;

步骤804:判断是交换机还是控制器C1接收到该更新消息,如果是交换机则执行步骤805,否则执行步骤806;

步骤805:交换机接收到更新消息后,选择一个接口,该接口的接口ID等于该更新消息负载中的路径集合的第一个元素,然后从该更新消息负载中的路径集合中删除第一个元素,从选中的接口发送该更新消息,执行步骤804;

步骤806:控制器C1接收到更新消息后,查看控制器路由表,选择一个控制器路由表项,该控制器路由表项中的控制器ID域值等于该更新消息中家乡节点ID中的控制器ID,将该控制器路由表项的路径集合加入到该更新消息中,选择一个接口,该接口的接口ID等于该更新消息负载中的路径集合的第一个元素,然后从该更新消息负载中的路径集合中删除第一个元素,从选中的接口发送该更新消息;

步骤807:除步骤806中的控制器C1以外的其他控制器接收到该更新消息后,如果该更新消息的家乡节点ID中的控制器ID等于该控制器的控制器ID,则执行步骤809,否则执行步骤808;

步骤808:控制器接收到该更新消息后,选择一个接口,该接口的接口ID等于该更新消息负载中的路径集合的第一个元素,然后从该更新消息负载中的路径集合中删除第一个元素,从选中的接口发送该更新消息,执行步骤807;

步骤809:控制器查看映射表,如果存在一个映射表项,该映射表项的家乡节点ID等于更新消息中的家乡节点ID,则将该映射表项的临时节点ID更新为该更新消息中的临时节点ID;否则,该控制器创建一个映射表项,该映射表项的家乡节点ID等于更新消息中的家乡节点ID,临时节点ID等于该更新消息中的临时节点ID;

步骤810:结束。

上述更新过程能够确保通信的正确性。

本发明所述方法中,在移动节点M1位于域O1中,域O1的控制器为C1,交换机SW1位于域O1内,移动节点M1与交换机SW1关联,移动节点M5位于域O5中,域O5的控制器为C5,交换器SW5位于域O5中,移动节点M5与交换机SW5关联的条件下,移动节点M1与移动节点M5通过下述过程实现通信:

步骤901:开始;

步骤902:移动节点M1发送一条请求消息,该请求消息的负载为源地址和目的地址,源地址为移动节点M1的临时节点ID,目的地址为移动节点M5的家乡节点ID;交换机SW1接收到该请求消息后,查看控制器表项,将该控制器表项的路径集合加入到该更新消息的负载中,交换机SW1选择一个接口,该接口的接口ID等于该请求消息负载中的路径集合的第一个元素,然后从该请求消息负载中的路径集合中删除第一个元素,从选中的接口发送该请求消息;

步骤903:判断是交换机还是控制器C1接收到该更新消息,如果是交换机执行步骤904,否则执行步骤905;

步骤904:交换机接收到请求消息后,选择一个接口,该接口的接口ID等于该请求消息负载中的路径集合的第一个元素,然后从该请求消息负载中的路径集合中删除第一个元素,从选中的接口发送该请求消息,执行步骤903;

步骤905:控制器C1接收到请求消息后,查看控制器路由表,选择一个控制器路由表项,该控制器路由表项的控制器ID域值等于该请求消息的目的节点ID的控制器ID,控制器C1将该控制器路由表项的路径集合加入到该请求消息中,选择一个接口,该接口的接口ID等于该请求消息负载中的路径集合的第一个元素,然后从该请求消息负载中的路径集合中删除第一个元素,从选中的接口发送该请求消息;

步骤906:除步骤905中控制器C1以外的其他控制器接收到该请求消息后,如果它的控制器ID等于该请求消息中的目的节点ID的控制器ID,则执行步骤908,否则执行步骤907;

步骤907:控制器接收到该请求消息后,选择一个接口,该接口的接口ID等于该请求消息负载中的路径集合的第一个元素,然后从该请求消息负载中的路径集合中删除第一个元素,从选中的接口发送该请求消息,执行步骤906;

步骤908:控制器查看映射表,如果存在一个映射表项,该映射表项的家乡节点ID等于请求消息的目的节点ID,则执行步骤909,否则执行步骤910;

步骤909:控制器选择一个映射表项,该映射表项的家乡节点ID等于请求消息中的目的节点ID,控制器将该请求消息中的目的节点ID更新为该映射表项中的临时节点ID,该控制器查看控制器路由表,控制器选择一个控制器路由表项,该控制器路由表项的控制器ID域值等于该请求消息的目的节点ID的控制器ID,将该控制器路由表项的路径集合加入到该请求消息中,控制器选择一个接口,该接口的接口ID等于该请求消息负载中的路径集合的第一个元素,然后从该请求消息负载中的路径集合中删除第一个元素,从选中的接口发送该请求消息,执行步骤906;

步骤910:控制器查看路由表,选择一个路由表项,该路由表项的交换机ID域值等于该请求消息中的目的节点ID的交换机ID值,控制器将该路由表项的路径集合加入到该请求消息负载中,从与交换机相连的接口发送该请求消息;

步骤911:交换机接收到该请求消息后,如果该交换机的交换机ID等于该请求消息的目的节点ID的交换机ID,则执行步骤913,否则执行步骤912;

步骤912:交换机选择一个接口,该接口的接口ID等于该请求消息负载中的路径集合的第一个元素,然后从该请求消息负载中的路径集合中删除第一个元素,从选中的接口发送该请求消息,执行步骤911;

步骤913:交换机查看分配表,选择一个分配表项,该分配表项的节点ID等于该请求消息的目的节点ID,然后从该分配表项的接口ID域值所标识的接口发送该请求消息;移动节点M5接收到该请求消息后,发送一个响应消息,该响应消息包括源节点ID,目的节点ID以及响应数据,其中,源节点ID等于接收到的请求消息中的目的节点ID,目的节点ID等于接收到的请求消息中的源节点ID;与移动节点M5关联的交换机SW5接收到响应消息后,选择控制器路由表项,将该控制器路由表项的路径集合加入到该响应消息的负载中,交换机SW5选择一个接口,该接口的接口ID等于该响应消息负载中的路径集合的第一个元素,然后从该响应消息负载中的路径集合中删除第一个元素,从选中的接口发送该响应消息;该分配表项的节点ID等于该请求消息的目的节点ID,然后从该分配表项的接口ID域值所标识的接口发送该请求消息;因为目的节点ID等于移动节点M5的节点ID,所以该接口与移动节点M5相连;

步骤914:控制器C5接收到响应消息后,查看控制器路由表,选择一个控制器路由表项,该控制器路由表项的控制器ID域等于该响应消息的目的节点ID的控制器ID,将该控制器路由表项的路径集合加入到该响应消息中,控制器C5选择一个接口,该接口的接口ID等于该响应消息负载中的路径集合的第一个元素,然后从该响应消息负载中的路径集合中删除第一个元素,从选中的接口发送该响应消息;

步骤915:除步骤914中的控制器C5以外的其他控制器接收到该响应消息后,如果该响应消息的目的节点ID的控制器ID等于该控制器的控制器ID,则执行步骤917,否则执行步骤916;

步骤916:控制器选择一个接口,该接口的接口ID等于该响应消息负载中的路径集合的第一个元素,然后从该响应消息负载中的路径集合中删除第一个元素,从选中的接口发送该响应消息,执行步骤915;

步骤917:控制器查看路由表,选择一个路由表项,该路由表项的交换机ID域值等于该响应消息的目的节点ID的交换机ID,将该路由表项的路径集合加入到该响应消息负载中,从与交换机相连的接口发送该响应消息;

步骤918:交换机接收到该响应消息后,如果该响应消息的目的节点ID的交换机ID等于该交换机的交换机ID,则执行步骤920,否则执行步骤919;

步骤919:交换机选择一个接口,该接口的接口ID等于该响应消息负载中的路径集合的第一个元素,然后从该响应消息负载中的路径集合中删除第一个元素,从选中的接口发送该响应消息,执行步骤918;

步骤920:交换机查看分配表,选择一个分配表项,该分配表项的节点ID等于该响应消息的目的节点ID,然后从该分配表项的接口ID域值所标识的接口发送该响应消息;移动节点M1接收到该响应消息后,保存该响应消息中的数据;

步骤921:结束。

移动节点通过上述过程能够快速获取数据。

有益效果:本发明提供了一种可靠的软件定义网络实现方法,所述网络通过本发明所提供的实现方法可快速获取网络数据,缩短路由延迟,降低数据包丢失率,提高服务质量,本发明可应用于道路路况监测、环境监测等领域,具有广泛的应用前景。

附图说明

下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。

图1为本发明所述的建立控制器表流程示意图。

图2为本发明所述的获取家乡节点ID流程示意图。

图3为本发明所述的获取临时节点ID流程示意图。

图4为本发明所述的建立路由表流程示意图。

图5为本发明所述的上传数据流程示意图。

图6为本发明所述的建立控制器路由表流程示意图。

图7为本发明所述的域内更新流程示意图。

图8为本发明所述的域间更新流程示意图。

图9为本发明所述的数据通信流程示意图。

具体实施方式:

本发明提供了一种可靠的软件定义网络实现方法,所述网络通过本发明所提供的实现方法可快速获取网络数据,缩短路由延迟,降低数据包丢失率,提高服务质量,本发明可应用于道路路况监测、环境监测等领域,具有广泛的应用前景。

图1为本发明所述的建立控制器表流程示意图。所述网络包括控制器和交换机;一个控制器具有唯一的坐标,一个交换机具有唯一的坐标;一个控制器由控制器ID唯一标识,该控制器ID等于该控制器的坐标;一个交换机由交换机ID唯一标识,该交换机ID等于该交换机的坐标;控制器分布在所述网络中,所述网络构建成两个以上的域,一个域由一个控制器和两个以上的交换机构成,其中,一个域中的交换机在网络中所有控制器中与相同域中的控制器距离最近;

每个控制器或者交换机配置两个以上的接口,每个接口由接口ID唯一标识,该接口ID预先配置;一个控制器与所在域中的一个交换机的一个接口相连,该交换机的其余接口与其他控制器链路相连,该交换机称为主交换机;

每个交换机保存一个控制器表,一个控制器表项由控制器ID域和路径集合域构成;控制器执行下述步骤建立控制器表项:

步骤101:开始;

步骤102:控制器从与交换机相连的接口发送一个发布消息,该发布消息的负载为路径集合和自己的控制器ID,路径集合为空集;

步骤103:交换机从自己的接口f1接收到该发布消息后,如果该交换机与接收到的发布消息负载中的控制器ID距离最近,即属于该控制器ID所标识的控制器所在的域,则执行步骤104,否则执行步骤108;

步骤104:从接口f1接收到发布消息的交换机将接口f1加入到发布消息的路径集合中且作为该路径集合的第一个元素;如果该交换机的控制器表为空,则执行步骤105,否则执行步骤106;

步骤105:交换机创建一个控制器表项,该控制器表项的控制器ID域值设置为该发布消息中的控制器ID,路径集合设置为该发布消息负载中的路径集合,交换机从除了接口f1以外的接口路由该发布消息,执行步骤103;

步骤106:交换机判断控制器表项的路径集合元素个数是否大于接收到的发布消息负载中的路径集合的元素个数,如果是,则执行步骤107,否则执行步骤108;

步骤107:交换机将控制器表项的路径集合设置为该发布消息负载中的路径集合,交换机从除了接口f1以外的接口路由该发布消息,执行步骤103;

步骤108:结束。

图2为本发明所述的获取家乡节点ID流程示意图。一个移动节点由节点ID唯一标识,节点ID包括三个部分,控制器ID、交换机ID和设备ID,设备ID为该移动节点的硬件ID,具有网络唯一性;一个移动节点的硬件ID不变化;一个移动节点配置一个家乡节点ID和一个临时节点ID;每个交换机维护一个地址表,每个地址表项包含节点ID域、类型域、接口ID域和生命周期域,其中类型域值为0时,表明该节点ID为家乡节点ID,类型域值为1时,表明该节点ID为临时节点ID;

如果一个地址表项的生命周期衰减为0,则删除该地址表项;

移动节点M1启动后,与交换机SW1关联,交换机SW1所在域的控制器为C1,移动节点M1执行下述步骤获取家乡节点ID:

步骤201:开始;

步骤202:移动节点M1发送家乡请求消息,家乡请求消息负载为自己的设备ID和生命周期值;

步骤203:交换机SW1从自己的接口f2接收到家乡请求消息后,构建一个节点ID,该节点ID的控制器ID为控制器C1的控制器ID,交换机ID为自己的交换机ID,设备ID为家乡请求消息中的设备ID;交换机SW1创建一个地址表项,该地址表项的节点ID域值为构建的节点ID,类型域值为0,接口ID为f2,生命周期域值为接收到的家乡请求消息负载中的生命周期值;交换机SW1从接口f2发送家乡响应消息,该家乡响应消息的负载为构建的节点ID;

步骤204:移动节点M1接收到家乡响应消息后,将负载中的节点ID设置为自己的家乡节点ID;

步骤205:结束。

图3为本发明所述的获取临时节点ID流程示意图。移动节点M1获取家乡节点ID后,如果与交换机SW4关联,交换机SW4所在域的控制器为C4,移动节点M1执行下述步骤临时节点ID:

步骤301:开始;

步骤302:移动节点M1发送临时请求消息,消息负载为自己的设备ID和生命周期值;

步骤303:交换机SW4从自己的接口f3接收到临时请求消息后,构建一个节点ID,该节点ID的控制器ID为控制器C4的控制器ID,交换机ID为自己的交换机ID,设备ID为临时请求消息中的设备ID;交换机SW4创建一个地址表项,该地址表项的节点ID域值为构建的节点ID,类型域值为1,接口ID为f3,生命周期域值为接收到的临时请求消息负载中的生命周期值;交换机SW4从接口f3发送临时响应消息,该临时响应消息的负载为构建的节点ID;

步骤304:移动节点M1接收到临时响应消息后,将负载中的节点ID设置为自己的临时节点ID;

步骤305:结束。

图4为本发明所述的建立路由表流程示意图。每个交换机包含一个路由表,路由表的表名为交换机自己的坐标,每个路由表项包含交换机ID域和路径集合域;如果交换机SW1所在域的控制器为C1,则执行下述步骤建立路由表:

步骤401:开始;

步骤402:交换机发送一个路由消息,该路由消息的负载为控制器C1的坐标,交换机自己的坐标和路径集合;路径集合为空;

步骤403:交换机从自己的接口f4接收到该路由消息后,如果该交换机的坐标在所有控制器中与控制器C1距离最近,则执行步骤404,否则执行步骤410;

步骤404:交换机将接口f4加入到该路由消息的路径集合中且接口f4作为路径集合的第一个元素,如果该交换机的一个接口与控制器相连,则执行步骤406,否则执行步骤405;

步骤405:交换机从除了接口f4以外的所有接口发送该路由消息,执行步骤403;

步骤406:交换机查看路由表,如果存在一个路由表项,该路由表项的交换机ID域值等于该路由消息中的坐标,则执行步骤408,否则执行步骤407;

步骤407:交换机创建一个路由表项,该路由表项的交换机ID域值等于该路由消息中的坐标,路径集合域值等于该路由消息中的路径集合,执行步骤410;

步骤408:交换机选择一个路由表项,该路由表项的交换机ID域值等于该路由消息中的坐标,如果该路由表项的路径集合元素个数大于该路由消息中的路径集合元素个数,则执行步骤409,否则执行步骤410;

步骤409:交换机选择一个路由表项,该路由表项的交换机ID域值等于该路由消息中的坐标,将该路由表项的路径集合更新为该路由消息中的路径集合;

步骤410:结束。

图5为本发明所述的上传数据流程示意图。如果交换机SW3为主交换机,与控制器C3相连,则执行下述步骤执行上传操作:

步骤501:开始;

步骤502:交换机SW3构建一个上传消息,该上传消息的负载为交换机SW3的路由表;交换机SW3选择一个接口,该接口与控制器C3相连,然后从该接口发送上传消息;

步骤503:控制器接收到该上传消息后,保存该上传消息负载中的路由表;

步骤504:结束。

图6为本发明所述的建立控制器路由表流程示意图。每个控制器包含一个控制器路由表,控制器路由表的名称为该控制器的坐标,每个控制器路由表项包含控制器ID域和路径集合域;控制器执行下述步骤建立控制器路由表:

步骤601:开始;

步骤602:控制器从除了与交换机相连的接口以外的所有接口发送一个发布消息,该发布消息的负载为自己的坐标和路径集合;路径集合为空;

步骤603:除步骤602以外的其他控制器从自己的接口f6接收到该发布消息后,将接口f6加入到该发布消息的路径集合中且接口f6作为路径集合的第一个元素,查看控制器路由表,如果存在一个控制器路由表项,该控制器路由表项的控制器ID域值等于该发布消息中的坐标,则执行步骤605,否则执行步骤604;

步骤604:从接口f6接收到发布消息的控制器创建一个控制器路由表项,该控制器路由表项的控制器ID域值等于接收到的发布消息中的坐标,路径集合域值等于该发布消息中的路径集合;然后从除了接口f6以及与交换机相连的接口以外的所有接口发送该发布消息,执行步骤603;

步骤605:从接口f6接收到发布消息的控制器选择一个控制器路由表项,该控制器路由表项的控制器ID域值等于该发布消息中的坐标,如果该控制器路由表项的路径集合元素个数大于该发布消息中的路径集合的元素个数,则执行步骤606,否则执行步骤607;

步骤606:控制器选择一个控制器路由表项,该控制器路由表项的控制器ID域值等于该发布消息中的坐标,将该控制器路由表项的路径集合更新为该发布消息中的路径集合,然后从除了接口f6以及与交换机相连的接口以外的所有接口发送该发布消息,执行步骤603;

步骤607:结束。

图7为本发明所述的域内更新流程示意图。在每个控制器维护一个映射表,每个映射表项包含家乡节点ID域、临时节点ID域和生命周期域,移动节点M1位于域O1中,域O1的控制器为C1,交换机SW1和SW2位于域O1内,移动节点M1与交换机SW1关联的条件下,如果移动节点M1位置发生移动与交换机SW2关联,则执行下述域内更新步骤:

步骤701:开始;

步骤702:移动节点M1执行步骤301~305从交换机SW2获取临时节点ID,移动节点M1发送一条更新消息,该更新消息的负载为移动节点M1的家乡节点ID和临时节点ID;

步骤703:交换机SW2接收到该更新消息后,查看控制器表项,将该控制器表项的路径集合加入到该更新消息的负载中,选择一个接口,该接口的接口ID等于该更新消息负载中的路径集合的第一个元素,然后从该更新消息负载中的路径集合中删除第一个元素,从选中的接口发送该更新消息;

步骤704:判断是交换机还是控制器C1接收到该更新消息,如果是交换机则执行步骤705,否则执行步骤706;

步骤705:交换机接收到更新消息后,选择一个接口,该接口的接口ID等于该更新消息负载中的路径集合的第一个元素,然后交换机从该更新消息负载中的路径集合中删除第一个元素,从选中的接口发送该更新消息,执行步骤704;

步骤706:控制器C1接收到更新消息后,查看映射表,如果存在一个映射表项,该映射表项的家乡节点ID等于更新消息中的家乡节点ID,将该映射表项的临时节点ID更新为该更新消息中的临时节点ID;否则,控制器C1创建一个映射表项,该映射表项的家乡节点ID等于更新消息中的家乡节点ID,临时节点ID等于该更新消息中的临时节点ID;

步骤707:结束。

图8为本发明所述的域间更新流程示意图。在移动节点M1位于域O1中,域O1的控制器为C1,交换机SW1位于域O1内,交换机SW3位于域O3内,域O3的控制器为C3,移动节点M1与交换机SW1关联的条件下,如果移动节点M1位置发生移动与交换机SW3关联,则执行下述域间更新步骤:

步骤801:开始;

步骤802:移动节点M1执行步骤301~305从交换机SW3获取临时节点ID,移动节点M1发送一条更新消息,该更新消息的负载为移动节点M1的家乡节点ID和临时节点ID;

步骤803:交换机SW3接收到该更新消息后,查看控制器表项,将该控制器表项的路径集合加入到该更新消息的负载中,交换机SW3选择一个接口,该接口的接口ID等于该更新消息负载中的路径集合的第一个元素,然后从该更新消息负载中的路径集合中删除第一个元素,从选中的接口发送该更新消息;

步骤804:判断是交换机还是控制器C1接收到该更新消息,如果是交换机则执行步骤805,否则执行步骤806;

步骤805:交换机接收到更新消息后,选择一个接口,该接口的接口ID等于该更新消息负载中的路径集合的第一个元素,然后从该更新消息负载中的路径集合中删除第一个元素,从选中的接口发送该更新消息,执行步骤804;

步骤806:控制器C1接收到更新消息后,查看控制器路由表,选择一个控制器路由表项,该控制器路由表项中的控制器ID域值等于该更新消息中家乡节点ID中的控制器ID,将该控制器路由表项的路径集合加入到该更新消息中,选择一个接口,该接口的接口ID等于该更新消息负载中的路径集合的第一个元素,然后从该更新消息负载中的路径集合中删除第一个元素,从选中的接口发送该更新消息;

步骤807:除步骤806中的控制器C1以外的其他控制器接收到该更新消息后,如果该更新消息的家乡节点ID中的控制器ID等于该控制器的控制器ID,则执行步骤809,否则执行步骤808;

步骤808:控制器接收到该更新消息后,选择一个接口,该接口的接口ID等于该更新消息负载中的路径集合的第一个元素,然后从该更新消息负载中的路径集合中删除第一个元素,从选中的接口发送该更新消息,执行步骤807;

步骤809:控制器查看映射表,如果存在一个映射表项,该映射表项的家乡节点ID等于更新消息中的家乡节点ID,则将该映射表项的临时节点ID更新为该更新消息中的临时节点ID;否则,该控制器创建一个映射表项,该映射表项的家乡节点ID等于更新消息中的家乡节点ID,临时节点ID等于该更新消息中的临时节点ID;

步骤810:结束。

图9为本发明所述的数据通信流程示意图。在移动节点M1位于域O1中,域O1的控制器为C1,交换机SW1位于域O1内,移动节点M1与交换机SW1关联,移动节点M5位于域O5中,域O5的控制器为C5,交换器SW5位于域O5中,移动节点M5与交换机SW5关联的条件下,移动节点M1与移动节点M5通过下述过程实现通信:

步骤901:开始;

步骤902:移动节点M1发送一条请求消息,该请求消息的负载为源地址和目的地址,源地址为移动节点M1的临时节点ID,目的地址为移动节点M5的家乡节点ID;交换机SW1接收到该请求消息后,查看控制器表项,将该控制器表项的路径集合加入到该更新消息的负载中,交换机SW1选择一个接口,该接口的接口ID等于该请求消息负载中的路径集合的第一个元素,然后从该请求消息负载中的路径集合中删除第一个元素,从选中的接口发送该请求消息;

步骤903:判断是交换机还是控制器C1接收到该更新消息,如果是交换机执行步骤904,否则执行步骤905;

步骤904:交换机接收到请求消息后,选择一个接口,该接口的接口ID等于该请求消息负载中的路径集合的第一个元素,然后从该请求消息负载中的路径集合中删除第一个元素,从选中的接口发送该请求消息,执行步骤903;

步骤905:控制器C1接收到请求消息后,查看控制器路由表,选择一个控制器路由表项,该控制器路由表项的控制器ID域值等于该请求消息的目的节点ID的控制器ID,控制器C1将该控制器路由表项的路径集合加入到该请求消息中,选择一个接口,该接口的接口ID等于该请求消息负载中的路径集合的第一个元素,然后从该请求消息负载中的路径集合中删除第一个元素,从选中的接口发送该请求消息;

步骤906:除步骤905中控制器C1以外的其他控制器接收到该请求消息后,如果它的控制器ID等于该请求消息中的目的节点ID的控制器ID,则执行步骤908,否则执行步骤907;

步骤907:控制器接收到该请求消息后,选择一个接口,该接口的接口ID等于该请求消息负载中的路径集合的第一个元素,然后从该请求消息负载中的路径集合中删除第一个元素,从选中的接口发送该请求消息,执行步骤906;

步骤908:控制器查看映射表,如果存在一个映射表项,该映射表项的家乡节点ID等于请求消息的目的节点ID,则执行步骤909,否则执行步骤910;

步骤909:控制器选择一个映射表项,该映射表项的家乡节点ID等于请求消息中的目的节点ID,控制器将该请求消息中的目的节点ID更新为该映射表项中的临时节点ID,该控制器查看控制器路由表,控制器选择一个控制器路由表项,该控制器路由表项的控制器ID域值等于该请求消息的目的节点ID的控制器ID,将该控制器路由表项的路径集合加入到该请求消息中,控制器选择一个接口,该接口的接口ID等于该请求消息负载中的路径集合的第一个元素,然后从该请求消息负载中的路径集合中删除第一个元素,从选中的接口发送该请求消息,执行步骤906;

步骤910:控制器查看路由表,选择一个路由表项,该路由表项的交换机ID域值等于该请求消息中的目的节点ID的交换机ID值,控制器将该路由表项的路径集合加入到该请求消息负载中,从与交换机相连的接口发送该请求消息;

步骤911:交换机接收到该请求消息后,如果该交换机的交换机ID等于该请求消息的目的节点ID的交换机ID,则执行步骤913,否则执行步骤912;

步骤912:交换机选择一个接口,该接口的接口ID等于该请求消息负载中的路径集合的第一个元素,然后从该请求消息负载中的路径集合中删除第一个元素,从选中的接口发送该请求消息,执行步骤911;

步骤913:交换机查看分配表,选择一个分配表项,该分配表项的节点ID等于该请求消息的目的节点ID,然后从该分配表项的接口ID域值所标识的接口发送该请求消息;移动节点M5接收到该请求消息后,发送一个响应消息,该响应消息包括源节点ID,目的节点ID以及响应数据,其中,源节点ID等于接收到的请求消息中的目的节点ID,目的节点ID等于接收到的请求消息中的源节点ID;与移动节点M5关联的交换机SW5接收到响应消息后,选择控制器路由表项,将该控制器路由表项的路径集合加入到该响应消息的负载中,交换机SW5选择一个接口,该接口的接口ID等于该响应消息负载中的路径集合的第一个元素,然后从该响应消息负载中的路径集合中删除第一个元素,从选中的接口发送该响应消息;

步骤914:控制器C5接收到响应消息后,查看控制器路由表,选择一个控制器路由表项,该控制器路由表项的控制器ID域等于该响应消息的目的节点ID的控制器ID,将该控制器路由表项的路径集合加入到该响应消息中,控制器C5选择一个接口,该接口的接口ID等于该响应消息负载中的路径集合的第一个元素,然后从该响应消息负载中的路径集合中删除第一个元素,从选中的接口发送该响应消息;

步骤915:除步骤914中的控制器C5以外的其他控制器接收到该响应消息后,如果该响应消息的目的节点ID的控制器ID等于该控制器的控制器ID,则执行步骤917,否则执行步骤916;

步骤916:控制器选择一个接口,该接口的接口ID等于该响应消息负载中的路径集合的第一个元素,然后从该响应消息负载中的路径集合中删除第一个元素,从选中的接口发送该响应消息,执行步骤915;

步骤917:控制器查看路由表,选择一个路由表项,该路由表项的交换机ID域值等于该响应消息的目的节点ID的交换机ID,将该路由表项的路径集合加入到该响应消息负载中,从与交换机相连的接口发送该响应消息;

步骤918:交换机接收到该响应消息后,如果该响应消息的目的节点ID的交换机ID等于该交换机的交换机ID,则执行步骤920,否则执行步骤919;

步骤919:交换机选择一个接口,该接口的接口ID等于该响应消息负载中的路径集合的第一个元素,然后从该响应消息负载中的路径集合中删除第一个元素,从选中的接口发送该响应消息,执行步骤918;

步骤920:交换机查看分配表,选择一个分配表项,该分配表项的节点ID等于该响应消息的目的节点ID,然后从该分配表项的接口ID域值所标识的接口发送该响应消息;移动节点M1接收到该响应消息后,保存该响应消息中的数据;

步骤921:结束。

实施例1

基于表1的仿真参数,本实施例模拟了本发明中的一种可靠的软件定义网络实现方法,性能分析如下:当网络数据传输量较小时,移动节点获取数据的延迟较低,当网络数据传输量较大时,移动节点获取数据的延迟较高;网络获取数据的平均延迟为1.57s。

表1仿真参数

本发明提供了一种可靠的软件定义网络实现方法的思路,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部份均可用现有技术加以实现。

一种可靠的软件定义网络实现方法专利购买费用说明

专利买卖交易资料

Q:办理专利转让的流程及所需资料

A:专利权人变更需要办理著录项目变更手续,有代理机构的,变更手续应当由代理机构办理。

1:专利变更应当使用专利局统一制作的“著录项目变更申报书”提出。

2:按规定缴纳著录项目变更手续费。

3:同时提交相关证明文件原件。

4:专利权转移的,变更后的专利权人委托新专利代理机构的,应当提交变更后的全体专利申请人签字或者盖章的委托书。

Q:专利著录项目变更费用如何缴交

A:(1)直接到国家知识产权局受理大厅收费窗口缴纳,(2)通过代办处缴纳,(3)通过邮局或者银行汇款,更多缴纳方式

Q:专利转让变更,多久能出结果

A:著录项目变更请求书递交后,一般1-2个月左右就会收到通知,国家知识产权局会下达《转让手续合格通知书》。

动态评分

0.0

没有评分数据
没有评价数据
×

打开微信,点击底部的“发现”

使用“扫一扫”即可将网页分享至朋友圈

×
复制
用户中心
我的足迹
我的收藏

您的购物车还是空的,您可以

  • 微信公众号

    微信公众号
在线留言
返回顶部