专利摘要
本发明提供了一种软件定义网络的数据通信实现方法,所述网络包括控制器、交换机和移动节点,所述网络划分为两个以上的域,每个域包含一个控制器和两个以上的交换机;一个移动节点使用节点ID通过与自己关联的交换机实现通信;移动节点通过本发明所提供的数据通信实现方法可快速获取网络数据,降低数据包丢失率,提高服务质量,本发明可应用于道路路况监测、环境监测等领域,具有广泛的应用前景。
权利要求
1.一种软件定义网络的数据通信实现方法,其特征在于,所述网络包括控制器、交换机和移动节点,所述网络划分为两个以上的域,每个域包含一个控制器和两个以上的交换机;一个移动节点使用节点ID通过与自己关联的交换机实现通信;
一个控制器或者交换机配置两个以上的接口,每个接口由接口ID唯一标识,该接口ID预先配置;一个控制器与所在域中的一个交换机的接口相连,该交换机的其余接口与其他控制器链路相连,该交换机称为主交换机;
每个控制器维护一个节点ID空间,节点ID的长度为i比特,i为大于1的正整数;如果所述网络包含M个域,即包含M个控制器,M,1<M<<2
一个移动节点配置一个家乡节点ID和一个临时节点ID;每个交换机维护一个分配表,每个分配表项包含节点ID域、类型域、接口ID域和生命周期域,其中类型域值为0时,表明该节点ID为家乡节点ID,类型域值为1时,表明该节点ID为临时节点ID;如果一个分配表项的生命周期衰减为0,则删除该分配表项;如果移动节点M1启动后与交换机SW1关联,则执行下述操作获取家乡节点ID:
步骤101:开始;
步骤102:移动节点M1发送家乡节点ID请求消息,消息负载为生命周期值;
步骤103:交换机SW1从自己的接口f接收到家乡节点ID请求消息后,查看自己的节点ID空间以及分配表,选择一个节点ID,该节点ID属于节点ID空间且不等于所有分配表项的节点ID域值;交换机SW1从接口f发送家乡节点ID响应消息,该家乡节点ID响应消息的负载为选择的节点ID;创建一个分配表项,该分配表项的节点ID域值为选中的节点ID,类型域值为0,接口ID为f,生命周期域值为接收到的家乡节点ID请求消息负载中的生命周期值;
步骤104:移动节点M1接收到家乡节点ID响应消息后,将负载中的节点ID设置为自己的家乡节点ID;
步骤105:结束;
移动节点M1获取家乡节点ID后,如果与交换机SW2关联,执行下述过程获取临时节点ID:
步骤201:开始;
步骤202:移动节点M1发送临时节点ID请求消息,临时节点ID请求消息负载为生命周期值;
步骤203:交换机SW2从自己的接口f0接收到临时节点ID请求消息后,查看自己的节点ID空间以及分配表,选择一个节点ID,该节点ID属于节点ID空间且不等于所有分配表项的节点ID域值;交换机SW2向移动节点M1发送临时节点ID响应消息,该临时节点ID响应消息的负载为选择的节点ID;交换机SW2创建一个分配表项,该分配表项的节点ID域值为选中的节点ID,类型域值为1,接口ID为f0,生命周期域值为接收到的临时节点ID请求消息负载中的生命周期值;
步骤204:移动节点M1接收到临时节点ID响应消息后,将负载中的节点ID设置为自己的临时节点ID;
步骤205:结束;
移动节点M1获取临时节点ID后,如果检测到该临时节点ID的生命周期低于一定阈值,且仍然需要继续使用该临时节点ID,则执行下述过程延长临时节点ID的生命周期:
步骤301:开始;
步骤302:移动节点M1发送临时节点ID延长消息,临时节点ID延长消息负载为移动节点M1的临时节点ID和生命周期值;
步骤303:交换机SW2接收到临时节点ID延长消息后,查看分配表,选择一个分配表项,该分配表项的节点ID等于接收到的临时节点ID延长消息负载中的节点ID,将该分配表项的生命周期域值设置为接收到的临时节点ID延长消息负载中的生命周期值;
步骤304:结束;
一个控制器由它的节点ID空间唯一标识,一个域由该域的控制器唯一标识,一个交换机由它的节点ID空间唯一标识;每个交换机保存一个控制器表,一个控制表项由控制器域和路径集合域构成;一个域中的控制器和交换机获取节点ID空间后,建立一个控制器表项,该控制器表项的控制器域值为空,路径集合域值为空,执行下述操作建立控制器表项:
步骤401:开始;
步骤402:控制器从与交换机相连的接口发送一个控制器消息,该控制器消息的负载为路径集合和自己的节点ID空间,路径集合为空集;
步骤403:交换机从接口f1接收到该控制器消息后,如果该交换机的节点ID空间为接收到的控制器消息负载中的节点ID空间的子集,则执行步骤404,否则执行步骤408;
步骤404:从接口f1接收到控制器消息的交换机将接口f1加入到控制器消息的路径集合中且作为该路径集合的第一个元素;如果该交换机的控制器表项中的控制器域值为空,则执行步骤405,否则执行步骤406;
步骤405:交换机将控制器表项的控制器域值设置为该控制器消息中的节点ID空间,路径集合设置为该控制器消息负载中的路径集合,从除了接口f1以外的接口转发该控制器消息,执行步骤403;
步骤406:交换机判断控制器表项的路径集合元素个数是否大于接收到的控制器消息负载中的路径集合的元素个数,如果是,则执行步骤407,否则执行步骤408;
步骤407:交换机将控制器表项的路径集合设置为该控制器消息负载中的路径集合,从除了接口f1以外的接口转发该控制器消息,执行步骤403;
步骤408:结束;
每个交换机包含一个转发表,转发表名为自己的节点ID空间,每个转发表项包含控制器域、交换机域和路径集合域;交换机建立控制器表后,执行下述操作建立转发表:
步骤501:开始;
步骤502:交换机发送一个转发消息,该转发消息的负载为控制器表项中的控制器域值,自己的节点ID空间和路径集合,路径集合为空;
步骤503:交换机从自己的接口f2接收到该转发消息后,如果该交换机的节点ID空间为接收到的转发消息负载中的控制器域值的子集,则执行步骤504,否则执行步骤508;
步骤504:从接口f2接收到该转发消息的交换机将接口f2加入到该转发消息的路径集合中且接口f2作为路径集合的第一个元素,查看转发表,如果存在一个转发表项,该转发表项的交换机域值等于该转发消息中的节点ID空间,则执行步骤506,否则执行步骤505;
步骤505:交换机创建一个转发表项,该转发表项的控制器域值等于接收到的转发消息中的控制器域值,交换机域值等于该转发消息中的节点ID空间,路径集合域值等于该转发消息中的路径集合;然后从除了接口f2以外的所有接口发送该转发消息,执行步骤503;
步骤506:交换机选择一个转发表项,该转发表项的交换机域值等于该转发消息中的节点ID空间,如果该转发表项的路径集合元素个数大于该转发消息中的路径集合个数,则执行步骤507,否则执行步骤508;
步骤507:交换机选择一个转发表项,该转发表项的交换机域值等于该转发消息中的节点ID空间,将该转发表项的路径集合更新为该转发消息中的路径集合,然后从除了接口f2以外的所有接口发送该转发消息,执行步骤503;
步骤508:结束;
与控制器相连的交换机建立转发表后,执行下述操作执行注册操作:
步骤601:开始;
步骤602:交换机构建一个注册消息,该注册消息的负载为该交换机的控制器表项中的路径集合和自己的转发表;选择一个接口,该接口的接口ID等于注册消息负载中的控制器表项中的路径集合的第一个元素,从注册消息负载中的控制器表项中的路径集合中删除第一个元素,从选中的接口发送注册消息;
步骤603:如果控制器接收到该注册消息,则执行步骤605,否则执行步骤604;
步骤604:交换机接收到该注册消息后,选择一个接口,该接口的接口ID等于注册消息负载中的控制器表项中的路径集合的第一个元素,然后从注册消息负载中的控制器表项中的路径集合中删除第一个元素,从选中的接口发送注册消息,执行步骤603;
步骤605:控制器接收到该注册消息后,保存该注册消息负载中的转发表;
步骤606:结束;
每个控制器包含一个控制器转发表,控制器转发表名为自己的节点ID空间,每个控制器转发表项包含控制器域和路径集合域;控制器执行下述操作建立控制器转发表:
步骤701:开始;
步骤702:控制器发送一个转发消息,该转发消息的负载为自己的节点ID空间和路径集合;路径集合为空;
步骤703:控制器从自己的接口f3接收到该转发消息后,将接口f3加入到该转发消息的路径集合中且接口f3作为路径集合的第一个元素,查看转发表,如果存在一个转发表项,该转发表项的控制器域值等于该转发消息中的节点ID空间,则执行步骤705,否则执行步骤704;
步骤704:从接口f3接收到转发消息的控制器创建一个转发表项,该转发表项的控制器域值等于接收到的转发消息中的控制器域值,路径集合域值等于该转发消息中的路径集合;然后从除了接口f3以外的所有接口发送该转发消息,执行步骤703;
步骤705:从接口f3接收到转发消息的控制器选择一个转发表项,该转发表项的控制器域值等于该转发消息中的节点ID空间,如果该转发表项的路径集合元素个数大于该转发消息中的路径集合个数,则执行步骤706,否则执行步骤707;
步骤706:控制器选择一个转发表项,该转发表项的控制器域值等于该转发消息中的节点ID空间,将该转发表项的路径集合更新为该转发消息中的路径集合,然后从除了接口f3以外的所有接口发送该转发消息,执行步骤703;
步骤707:结束;
每个控制器维护一个切换表,每个切换表项包含家乡节点ID域,临时节点ID域和生命周期域;
在移动节点M1位于域O1中,域O1的控制器为C1,交换机SW1和SW2位于域O1内,移动节点M1与交换机SW1关联的条件下,如果移动节点M1位置发生移动,移动节点M1与交换机SW2关联,则执行下述移动切换操作:
步骤801:开始;
步骤802:移动节点M1执行步骤201~205从交换机SW2获取临时地址,然后发送一条切换消息,该切换消息的负载为移动节点M1的家乡节点ID和临时节点ID;
步骤803:交换机SW2接收到该切换消息后,查看控制器表项,将该控制器表项的路径集合加入到该切换消息的负载中,选择一个接口,该接口的接口ID等于该切换消息负载中的路径集合的第一个元素,然后从该切换消息负载中的路径集合中删除第一个元素,从选中的接口发送该切换消息;
步骤804:如果控制器C1接收到该切换消息,执行步骤806,否则执行步骤805;
步骤805:交换机接收到该切换消息后,选择一个接口,该接口的接口ID等于该切换消息负载中的路径集合的第一个元素,然后从该切换消息负载中的路径集合中删除第一个元素,从选中的接口发送该切换消息,执行步骤804;
步骤806:控制器C1查看切换表,如果存在一个切换表项,该切换表项的家乡节点ID等于切换消息中的家乡节点ID,则执行步骤807,否则执行步骤808;
步骤807:控制器C1选择一个切换表项,该切换表项的家乡节点ID等于切换消息中的家乡节点ID,将该切换表项的临时节点ID更新为该切换消息中的临时节点ID,执行步骤809;
步骤808:控制器C1创建一个切换表项,该切换表项的家乡节点ID等于切换消息中的家乡节点ID,临时节点ID等于该切换消息中的临时节点ID;
步骤809:结束;
在移动节点M1位于域O1中,域O1的控制器为C1,交换机SW1位于域O1内,域O1的主交换机为MSW1,移动节点M1与交换机SW1关联,移动节点M3位于域O3中,域O3的控制器为C3,交换器SW3位于域O3中,域O3的主交换机为MSW3,移动节点M3与交换机SW3关联的条件下,移动节点M1与移动节点M3通过下述过程实现通信:
步骤901:开始;
步骤902:移动节点M1发送一条请求消息,该请求消息的负载为源地址和目的地址,源地址为移动节点M1的临时节点ID,目的地址为移动节点M3的家乡节点ID;交换机SW1接收到该请求消息后,选择一个转发表项,该转发表项的交换机域值等于主交换机MSW1的节点ID空间,将该转发表项的路径集合加入到该请求消息的负载中,选择一个接口,该接口的接口ID等于该请求消息负载中的路径集合的第一个元素,然后从该请求消息负载中的路径集合中删除第一个元素,从选中的接口发送该请求消息;
步骤903:主交换机MSW1接收到该请求消息后,执行步骤905,否则执行步骤904;
步骤904:接收到请求消息的交换机选择一个接口,该接口的接口ID等于该请求消息负载中的路径集合的第一个元素,然后从该请求消息负载中的路径集合中删除第一个元素,从选中的接口发送该请求消息,执行步骤903;
步骤905:主交换机MSW1将该请求消息转发到控制器C1;控制器C1查看控制器转发表,选择一个控制器转发表项,该请求消息的目的节点ID属于该控制器转发表项的控制器域,将该控制器转发表项的路径集合加入到该请求消息中,选择一个接口,该接口的接口ID等于该请求消息负载中的路径集合的第一个元素,然后从该请求消息负载中的路径集合中删除第一个元素,从选中的接口发送该请求消息;
步骤906:控制器接收到该请求消息后,如果该请求消息的目的节点ID属于该控制器的节点ID空间,执行步骤908,否则执行步骤907;
步骤907:控制器接收到该请求消息后,选择一个接口,该接口的接口ID等于该请求消息负载中的路径集合的第一个元素,然后从该请求消息负载中的路径集合中删除第一个元素,从选中的接口发送该请求消息,执行步骤906;
步骤908:控制器查看切换表,如果存在一个切换表项,该切换表项的家乡节点ID等于请求消息的目的节点ID,则执行步骤909,否则执行步骤910;
步骤909:控制器选择一个切换表项,该切换表项的家乡节点ID等于请求消息中的目的节点ID,将该请求消息中的目的节点ID更新为该切换表项中的临时节点ID,该控制器查看控制器转发表,选择一个控制器转发表项,该请求消息的目的节点ID属于该控制器转发表项的控制器域,将该控制器转发表项的路径集合加入到该请求消息中,选择一个接口,该接口的接口ID等于该请求消息负载中的路径集合的第一个元素,然后从该请求消息负载中的路径集合中删除第一个元素,从选中的接口发送该请求消息,执行步骤906;
步骤910:控制器查看转发表,选择一个转发表项,该转发表项的交换机域值包含该请求消息的目的节点ID,将该转发表项的路径集合加入到该请求消息负载中,从与交换机相连的接口发送该请求消息;
步骤911:交换机接收到该请求消息后,如果该请求消息的目的节点ID属于该交换机的节点ID空间,执行步骤913,否则执行步骤912;
步骤912:交换机选择一个接口,该接口的接口ID等于该请求消息负载中的路径集合的第一个元素,然后从该请求消息负载中的路径集合中删除第一个元素,从选中的接口发送该请求消息,执行步骤911;
步骤913:交换机查看分配表,选择一个分配表项,该分配表项的节点ID等于该请求消息的目的节点ID,然后从该分配表项的接口ID域值所标识的接口发送该请求消息;移动节点M3接收到该请求消息后,发送一个响应消息,该响应消息包括源节点ID,目的节点ID以及响应数据,其中,源节点ID等于接收到的请求消息中的目的节点ID,目的节点ID等于接收到的请求消息中的源节点ID;与移动节点M3关联的交换机SW3接收到响应消息后,选择一个转发表项,该转发表项的交换机域值等于主交换机MSW3的节点ID空间,将该转发表项的路径集合加入到该响应消息的负载中,选择一个接口,该接口的接口ID等于该响应消息负载中的路径集合的第一个元素,然后从该响应消息负载中的路径集合中删除第一个元素,从选中的接口发送该响应消息;
步骤914:主交换机MSW3接收到该响应消息后,执行步骤916,否则执行步骤915;
步骤915:接收到响应消息的交换机选择一个接口,该接口的接口ID等于该响应消息负载中的路径集合的第一个元素,然后从该响应消息负载中的路径集合中删除第一个元素,从选中的接口发送该响应消息,执行步骤914;
步骤916:主交换机MSW3将该响应消息转发到相连的控制器;控制器查看控制器转发表,选择一个控制器转发表项,该响应消息的目的节点ID属于该控制器转发表项的控制器域,将该控制器转发表项的路径集合加入到该响应消息中,选择一个接口,该接口的接口ID等于该响应消息负载中的路径集合的第一个元素,然后从该响应消息负载中的路径集合中删除第一个元素,从选中的接口发送该响应消息;
步骤917:控制器接收到该响应消息后,如果该响应消息的目的节点ID属于该控制器的节点ID空间,执行步骤919,否则执行步骤918;
步骤918:控制器选择一个接口,该接口的接口ID等于该响应消息负载中的路径集合的第一个元素,然后从该响应消息负载中的路径集合中删除第一个元素,从选中的接口发送该响应消息,执行步骤917;
步骤919:控制器查看转发表,选择一个转发表项,该转发表项的交换机域值包含该响应消息的目的节点ID,将该转发表项的路径集合加入到该响应消息负载中,从与交换机相连的接口发送该响应消息;
步骤920:交换机接收到该响应消息后,如果该响应消息的目的节点ID属于该交换机的节点ID空间,执行步骤922,否则执行步骤921;
步骤921:交换机选择一个接口,该接口的接口ID等于该响应消息负载中的路径集合的第一个元素,然后从该响应消息负载中的路径集合中删除第一个元素,从选中的接口发送该响应消息,执行步骤920;
步骤922:交换机查看分配表,选择一个分配表项,该分配表项的节点ID等于该响应消息的目的节点ID,然后从该分配表项的接口ID域值所标识的接口发送该响应消息;移动节点M1接收到该响应消息后,保存该响应消息中的数据;
步骤923:结束。
说明书
技术领域
本发明涉及一种实现方法,尤其涉及的是一种软件定义网络的数据通信实现方法。
背景技术
软件定义网络作为一种新型通信网络,能够实现节点之间的多跳无线通信。随着网络技术的不断发展以及各种新应用的不断涌现,迫切需要提高网络性能。
目前,研究人员提出了通过软件定义网络获取网络服务的模式并定义了相应的协议栈,但是由于软件定义网路体系结构与传统网络的体系结构不同,现有的网络获取服务的方法具有一些局限性。因此需要提出一种低延迟的软件定义网络实现方法,从而提高服务质量。
发明内容
发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种软件定义网络的数据通信实现方法。
技术方案:本发明公开了一种软件定义网络的数据通信实现方法,所述网络包括控制器、交换机和移动节点,所述网络划分为两个以上的域,每个域包含一个控制器和两个以上的交换机;一个移动节点使用节点ID通过与自己关联的交换机实现通信;
一个控制器或者交换机配置两个以上的接口,每个接口由接口ID唯一标识,该接口ID预先配置,接口ID值为自然数,例如接口ID为1;一个控制器与所在域中的一个交换机的接口相连,该交换机的其余接口与其他控制器链路相连,该交换机称为主交换机;
每个控制器维护一个节点ID空间,节点ID的长度为i比特,i为大于1的正整数;如果所述网络包含M个域,即包含M个控制器,M,1<M<<2
一个移动节点配置一个家乡节点ID和一个临时节点ID;每个交换机维护一个分配表,每个分配表项包含节点ID域、类型域、接口ID域和生命周期域,其中类型域值为0时,表明该节点ID为家乡节点ID,类型域值为1时,表明该节点ID为临时节点ID;如果一个分配表项的生命周期衰减为0,则删除该分配表项;如果移动节点M1启动后与交换机SW1关联,则执行下述操作获取家乡节点ID:
步骤101:开始;
步骤102:移动节点M1发送家乡节点ID请求消息,消息负载为生命周期值,例如24小时;
步骤103:交换机SW1从自己的接口f接收到家乡节点ID请求消息后,查看自己的节点ID空间以及分配表,选择一个节点ID,该节点ID属于节点ID空间且不等于所有分配表项的节点ID域值;交换机SW1从接口f发送家乡节点ID响应消息,该家乡节点ID响应消息的负载为选择的节点ID;创建一个分配表项,该分配表项的节点ID域值为选中的节点ID,类型域值为0,接口ID为f,生命周期域值为接收到的家乡节点ID请求消息负载中的生命周期值;
步骤104:移动节点M1接收到家乡节点ID响应消息后,将负载中的节点ID设置为自己的家乡节点ID;
步骤105:结束。
本发明所述方法中,移动节点M1获取家乡节点ID后,如果与交换机SW2关联,执行下述获取临时节点ID:
步骤201:开始;
步骤202:移动节点M1发送临时节点ID请求消息,临时节点ID请求消息负载为生命周期值,例如1小时;
步骤203:交换机SW2从自己的接口f0接收到临时节点ID请求消息后,查看自己的节点ID空间以及分配表,选择一个节点ID,该节点ID属于节点ID空间且不等于所有分配表项的节点ID域值;交换机SW2向移动节点M1发送临时节点ID响应消息,该临时节点ID响应消息的负载为选择的节点ID;交换机SW2创建一个分配表项,该分配表项的节点ID域值为选中的节点ID,类型域值为1,接口ID为f0,生命周期域值为接收到的临时节点ID请求消息负载中的生命周期值;
步骤204:移动节点M1接收到临时节点ID响应消息后,将负载中的节点ID设置为自己的临时节点ID;
步骤205:结束。
本发明所述方法中,移动节点M1获取临时节点ID后,如果检测到该临时节点ID的生命周期低于一定阈值,例如10s,且仍然需要继续使用该临时节点ID,则执行下述过程延长临时节点ID的生命周期:
步骤301:开始;
步骤302:移动节点M1发送临时节点ID延长消息,临时节点ID延长消息负载为移动节点M1的临时节点ID和生命周期值,例如30分钟;
步骤303:交换机SW2接收到临时节点ID延长消息后,查看分配表,选择一个分配表项,该分配表项的节点ID等于接收到的临时节点ID延长消息负载中的节点ID,将该分配表项的生命周期域值设置为接收到的临时节点ID延长消息负载中的生命周期值;
步骤304:结束。
本发明所述方法中,一个控制器由它的节点ID空间唯一标识,一个域由该域的控制器唯一标识,一个交换机由它的节点ID空间唯一标识;每个交换机保存一个控制器表,一个控制表项由控制器域和路径集合域构成;一个域中的控制器和交换机获取节点ID空间后,建立一个控制器表项,该控制器表项的控制器域值为空,路径集合域值为空,执行下述操作建立控制器表项:
步骤401:开始;
步骤402:控制器从与交换机相连的接口发送一个控制器消息,该控制器消息的负载为路径集合和自己的节点ID空间,路径集合为空集;
步骤403:交换机从接口f1接收到该控制器消息后,如果该交换机的节点ID空间为接收到的控制器消息负载中的节点ID空间的子集,则执行步骤404,否则执行步骤408;
步骤404:从接口f1接收到控制器消息的交换机将接口f1加入到控制器消息的路径集合中且作为该路径集合的第一个元素;如果该交换机的控制器表项中的控制器域值为空,则执行步骤405,否则执行步骤406;
步骤405:交换机将控制器表项的控制器域值设置为该控制器消息中的节点ID空间,路径集合设置为该控制器消息负载中的路径集合,从除了接口f1以外的接口转发该控制器消息,执行步骤403;
步骤406:交换机判断控制器表项的路径集合元素个数是否大于接收到的控制器消息负载中的路径集合的元素个数,如果是,则执行步骤407,否则执行步骤408;
步骤407:交换机将控制器表项的路径集合设置为该控制器消息负载中的路径集合,从除了接口f1以外的接口转发该控制器消息,执行步骤403;
步骤408:结束。
上述过程可以快速建立控制器表从而实现正确的数据通信。
本发明所述方法中,每个交换机包含一个转发表,转发表名为自己的节点ID空间,每个转发表项包含控制器域、交换机域和路径集合域;交换机建立控制器表后,执行下述操作建立转发表:
步骤501:开始;
步骤502:交换机发送一个转发消息,该转发消息的负载为控制器表项中的控制器域值,自己的节点ID空间和路径集合,路径集合为空;
步骤503:交换机从自己的接口f2接收到该转发消息后,如果该交换机的节点ID空间为接收到的转发消息负载中的控制器域值的子集,则执行步骤504,否则执行步骤508;
步骤504:从接口f2接收到该转发消息的交换机将接口f2加入到该转发消息的路径集合中且接口f2作为路径集合的第一个元素,查看转发表,如果存在一个转发表项,该转发表项的交换机域值等于该转发消息中的节点ID空间,则执行步骤506,否则执行步骤505;
步骤505:交换机创建一个转发表项,该转发表项的控制器域值等于接收到的转发消息中的控制器域值,交换机域值等于该转发消息中的节点ID空间,路径集合域值等于该转发消息中的路径集合;然后从除了接口f2以外的所有接口发送该转发消息,执行步骤503;
步骤506:交换机选择一个转发表项,该转发表项的交换机域值等于该转发消息中的节点ID空间,如果该转发表项的路径集合元素个数大于该转发消息中的路径集合个数,则执行步骤507,否则执行步骤508;
步骤507:交换机选择一个转发表项,该转发表项的交换机域值等于该转发消息中的节点ID空间,将该转发表项的路径集合更新为该转发消息中的路径集合,然后从除了接口f2以外的所有接口发送该转发消息,执行步骤503;
步骤508:结束。
上述过程可以快速建立转发表从而实现正确的数据通信。
本发明所述方法中,与控制器相连的交换机建立转发表后,执行下述操作执行注册操作:
步骤601:开始;
步骤602:交换机构建一个注册消息,该注册消息的负载为该交换机的控制器表项中的路径集合和自己的转发表;选择一个接口,该接口的接口ID等于注册消息负载中的控制器表项中的路径集合的第一个元素,从注册消息负载中的控制器表项中的路径集合中删除第一个元素,从选中的接口发送注册消息;
步骤603:如果控制器接收到该注册消息,则执行步骤605,否则执行步骤604;
步骤604:交换机接收到该注册消息后,选择一个接口,该接口的接口ID等于注册消息负载中的控制器表项中的路径集合的第一个元素,然后从注册消息负载中的控制器表项中的路径集合中删除第一个元素,从选中的接口发送注册消息,执行步骤603;
步骤605:控制器接收到该注册消息后,保存该注册消息负载中的转发表;
步骤606:结束。
本发明所书方法中,每个控制器包含一个控制器转发表,控制器转发表名为自己的节点ID空间,每个控制器转发表项包含控制器域和路径集合域;控制器执行下述操作建立控制器转发表:
步骤701:开始;
步骤702:控制器发送一个转发消息,该转发消息的负载为自己的节点ID空间和路径集合;路径集合为空;
步骤703:控制器从自己的接口f3接收到该转发消息后,将接口f3加入到该转发消息的路径集合中且接口f3作为路径集合的第一个元素,查看转发表,如果存在一个转发表项,该转发表项的控制器域值等于该转发消息中的节点ID空间,则执行步骤705,否则执行步骤704;
步骤704:从接口f3接收到转发消息的控制器创建一个转发表项,该转发表项的控制器域值等于接收到的转发消息中的控制器域值,路径集合域值等于该转发消息中的路径集合;然后从除了接口f3以外的所有接口发送该转发消息,执行步骤703;
步骤705:从接口f3接收到转发消息的控制器选择一个转发表项,该转发表项的控制器域值等于该转发消息中的节点ID空间,如果该转发表项的路径集合元素个数大于该转发消息中的路径集合个数,则执行步骤706,否则执行步骤707;
步骤706:控制器选择一个转发表项,该转发表项的控制器域值等于该转发消息中的节点ID空间,将该转发表项的路径集合更新为该转发消息中的路径集合,然后从除了接口f3以外的所有接口发送该转发消息,执行步骤703;
步骤707:结束。
上述过程能够快速建立控制器转发表从而实现正确的数据通信。
本发明所述方法中,每个控制器维护一个切换表,每个切换表项包含家乡节点ID域,临时节点ID域和生命周期域;
在移动节点M1位于域O1中,域O1的控制器为C1,交换机SW1和SW2位于域O1内,移动节点M1与交换机SW1关联的条件下,如果移动节点M1位置发生移动与交换机SW2关联,则执行下述移动切换操作:
步骤801:开始;
步骤802:移动节点M1执行步骤201~205从交换机SW2获取临时地址,然后发送一条切换消息,该切换消息的负载为移动节点M1的家乡节点ID和临时节点ID;
步骤803:交换机SW2接收到该切换消息后,查看控制器表项,将该控制器表项的路径集合加入到该切换消息的负载中,选择一个接口,该接口的接口ID等于该切换消息负载中的路径集合的第一个元素,然后从该切换消息负载中的路径集合中删除第一个元素,从选中的接口发送该切换消息;
步骤804:如果控制器C1接收到该切换消息,执行步骤806,否则执行步骤805;
步骤805:交换机接收到该切换消息后,选择一个接口,该接口的接口ID等于该切换消息负载中的路径集合的第一个元素,然后从该切换消息负载中的路径集合中删除第一个元素,从选中的接口发送该切换消息,执行步骤804;
步骤806:控制器C1查看切换表,如果存在一个切换表项,该切换表项的家乡节点ID等于切换消息中的家乡节点ID,则执行步骤807,否则执行步骤808;
步骤807:控制器C1选择一个切换表项,该切换表项的家乡节点ID等于切换消息中的家乡节点ID,将该切换表项的临时节点ID更新为该切换消息中的临时节点ID,执行步骤809;
步骤808:控制器C1创建一个切换表项,该切换表项的家乡节点ID等于切换消息中的家乡节点ID,临时节点ID等于该切换消息中的临时节点ID;
步骤809:结束。
上述过程能够快速实现移动切换从而确保了数据通信的正确性。
本发明所述方法中,在移动节点M1位于域O1中,域O1的控制器为C1,交换机SW1位于域O1内,域O1的主交换机为MSW1,移动节点M1与交换机SW1关联,移动节点M3位于域O3中,域O3的控制器为C3,交换器SW3位于域O3中,域O3的主交换机为MSW3,移动节点M3与交换机SW3关联的条件下,移动节点M1与移动节点M3通过下述过程实现通信:
步骤901:开始;
步骤902:移动节点M1发送一条请求消息,该请求消息的负载为源地址和目的地址,源地址为移动节点M1的临时节点ID,目的地址为移动节点M3的家乡节点ID;交换机SW1接收到该请求消息后,选择一个转发表项,该转发表项的交换机域值等于主交换机MSW1的节点ID空间,将该转发表项的路径集合加入到该请求消息的负载中,选择一个接口,该接口的接口ID等于该请求消息负载中的路径集合的第一个元素,然后从该请求消息负载中的路径集合中删除第一个元素,从选中的接口发送该请求消息;
步骤903:主交换机MSW1接收到该请求消息后,执行步骤905,否则执行步骤904;
步骤904:接收到请求消息的交换机选择一个接口,该接口的接口ID等于该请求消息负载中的路径集合的第一个元素,然后从该请求消息负载中的路径集合中删除第一个元素,从选中的接口发送该请求消息,执行步骤903;
步骤905:主交换机MSW1将该请求消息转发到控制器C1;控制器C1查看控制器转发表,选择一个控制器转发表项,该请求消息的目的节点ID属于该控制器转发表项的控制器域,将该控制器转发表项的路径集合加入到该请求消息中,选择一个接口,该接口的接口ID等于该请求消息负载中的路径集合的第一个元素,然后从该请求消息负载中的路径集合中删除第一个元素,从选中的接口发送该请求消息;
步骤906:控制器接收到该请求消息后,如果该请求消息的目的节点ID属于该控制器的节点ID空间,执行步骤908,否则执行步骤907;
步骤907:控制器接收到该请求消息后,选择一个接口,该接口的接口ID等于该请求消息负载中的路径集合的第一个元素,然后从该请求消息负载中的路径集合中删除第一个元素,从选中的接口发送该请求消息,执行步骤906;
步骤908:控制器查看切换表,如果存在一个切换表项,该切换表项的家乡节点ID等于请求消息的目的节点ID,则执行步骤909,否则执行步骤910;
步骤909:控制器选择一个切换表项,该切换表项的家乡节点ID等于请求消息中的目的节点ID,将该请求消息中的目的节点ID更新为该切换表项中的临时节点ID,该控制器查看控制器转发表,选择一个控制器转发表项,该请求消息的目的节点ID属于该控制器转发表项的控制器域,将该控制器转发表项的路径集合加入到该请求消息中,选择一个接口,该接口的接口ID等于该请求消息负载中的路径集合的第一个元素,然后从该请求消息负载中的路径集合中删除第一个元素,从选中的接口发送该请求消息,执行步骤906;
步骤910:控制器查看转发表,选择一个转发表项,该转发表项的交换机域值包含该请求消息的目的节点ID,将该转发表项的路径集合加入到该请求消息负载中,从与交换机相连的接口发送该请求消息;
步骤911:交换机接收到该请求消息后,如果该请求消息的目的节点ID属于该交换机的节点ID空间,执行步骤913,否则执行步骤912;
步骤912:交换机选择一个接口,该接口的接口ID等于该请求消息负载中的路径集合的第一个元素,然后从该请求消息负载中的路径集合中删除第一个元素,从选中的接口发送该请求消息,执行步骤911;
步骤913:交换机查看分配表,选择一个分配表项,该分配表项的节点ID等于该请求消息的目的节点ID,然后从该分配表项的接口ID域值所标识的接口发送该请求消息;移动节点M3接收到该请求消息后,发送一个响应消息,该响应消息包括源节点ID,目的节点ID以及响应数据,其中,源节点ID等于接收到的请求消息中的目的节点ID,目的节点ID等于接收到的请求消息中的源节点ID;与移动节点M3关联的交换机SW3接收到响应消息后,选择一个转发表项,该转发表项的交换机域值等于主交换机MSW3的节点ID空间,将该转发表项的路径集合加入到该响应消息的负载中,选择一个接口,该接口的接口ID等于该响应消息负载中的路径集合的第一个元素,然后从该响应消息负载中的路径集合中删除第一个元素,从选中的接口发送该响应消息;
步骤914:主交换机MSW3接收到该响应消息后,执行步骤916,否则执行步骤915;
步骤915:接收到响应消息的交换机选择一个接口,该接口的接口ID等于该响应消息负载中的路径集合的第一个元素,然后从该响应消息负载中的路径集合中删除第一个元素,从选中的接口发送该响应消息,执行步骤914;
步骤916:主交换机MSW3将该响应消息转发到相连的控制器;控制器查看控制器转发表,选择一个控制器转发表项,该响应消息的目的节点ID属于该控制器转发表项的控制器域,将该控制器转发表项的路径集合加入到该响应消息中,选择一个接口,该接口的接口ID等于该响应消息负载中的路径集合的第一个元素,然后从该响应消息负载中的路径集合中删除第一个元素,从选中的接口发送该响应消息;
步骤917:控制器接收到该响应消息后,如果该响应消息的目的节点ID属于该控制器的节点ID空间,执行步骤919,否则执行步骤918;
步骤918:控制器选择一个接口,该接口的接口ID等于该响应消息负载中的路径集合的第一个元素,然后从该响应消息负载中的路径集合中删除第一个元素,从选中的接口发送该响应消息,执行步骤917;
步骤919:控制器查看转发表,选择一个转发表项,该转发表项的交换机域值包含该响应消息的目的节点ID,将该转发表项的路径集合加入到该响应消息负载中,从与交换机相连的接口发送该响应消息;
步骤920:交换机接收到该响应消息后,如果该响应消息的目的节点ID属于该交换机的节点ID空间,执行步骤922,否则执行步骤921;
步骤921:交换机选择一个接口,该接口的接口ID等于该响应消息负载中的路径集合的第一个元素,然后从该响应消息负载中的路径集合中删除第一个元素,从选中的接口发送该响应消息,执行步骤920;
步骤922:交换机查看分配表,选择一个分配表项,该分配表项的节点ID等于该响应消息的目的节点ID,然后从该分配表项的接口ID域值所标识的接口发送该响应消息;移动节点M1接收到该响应消息后,保存该响应消息中的数据;
步骤923:结束。
移动节点通过上述过程可以快速获取数据。
有益效果:本发明提供了一种软件定义网络的数据通信实现方法,移动节点通过本发明所提供的数据通信实现方法可快速获取网络数据,降低数据包丢失率,提高服务质量,本发明可应用于道路路况监测、环境监测等领域,具有广泛的应用前景。
附图说明
下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
图1为本发明所述的获取家乡节点ID流程示意图。
图2为本发明所述的获取临时节点ID流程示意图。
图3为本发明所述的延长临时节点ID流程示意图。
图4为本发明所述的建立控制器表流程示意图。
图5为本发明所述的建立转发表流程示意图。
图6为本发明所述的执行注册操作流程示意图。
图7为本发明所述的建立控制器转发表流程示意图。
图8为本发明所述的移动切换流程示意图。
图9为本发明所述的通信流程示意图。
具体实施方式:
本发明提供了一种软件定义网络的数据通信实现方法,移动节点通过本发明所提供的数据通信实现方法可快速获取网络数据,降低数据包丢失率,提高服务质量,本发明可应用于道路路况监测、环境监测等领域,具有广泛的应用前景。
图1为本发明所述的获取家乡节点ID流程示意图。所述网络包括控制器、交换机和移动节点,所述网络划分为两个以上的域,每个域包含一个控制器和两个以上的交换机;一个移动节点使用节点ID通过与自己关联的交换机实现通信;
一个控制器或者交换机配置两个以上的接口,每个接口由接口ID唯一标识,该接口ID预先配置;一个控制器与所在域中的一个交换机的接口相连,该交换机的其余接口与其他控制器链路相连,该交换机称为主交换机;
每个控制器维护一个节点ID空间,节点ID的长度为i比特,i为大于1的正整数;如果所述网络包含M个域,即包含M个控制器,M,1<M<<2
一个移动节点配置一个家乡节点ID和一个临时节点ID;每个交换机维护一个分配表,每个分配表项包含节点ID域、类型域、接口ID域和生命周期域,其中类型域值为0时,表明该节点ID为家乡节点ID,类型域值为1时,表明该节点ID为临时节点ID;如果一个分配表项的生命周期衰减为0,则删除该分配表项;如果移动节点M1启动后与交换机SW1关联,则执行下述操作获取家乡节点ID:
步骤101:开始;
步骤102:移动节点M1发送家乡节点ID请求消息,消息负载为生命周期值;
步骤103:交换机SW1从自己的接口f接收到家乡节点ID请求消息后,查看自己的节点ID空间以及分配表,选择一个节点ID,该节点ID属于节点ID空间且不等于所有分配表项的节点ID域值;交换机SW1从接口f发送家乡节点ID响应消息,该家乡节点ID响应消息的负载为选择的节点ID;创建一个分配表项,该分配表项的节点ID域值为选中的节点ID,类型域值为0,接口ID为f,生命周期域值为接收到的家乡节点ID请求消息负载中的生命周期值;
步骤104:移动节点M1接收到家乡节点ID响应消息后,将负载中的节点ID设置为自己的家乡节点ID;
步骤105:结束。
图2为本发明所述的获取临时节点ID流程示意图。移动节点M1获取家乡节点ID后,如果与交换机SW2关联,执行下述获取临时节点ID:
步骤201:开始;
步骤202:移动节点M1发送临时节点ID请求消息,临时节点ID请求消息负载为生命周期值;
步骤203:交换机SW2从自己的接口f0接收到临时节点ID请求消息后,查看自己的节点ID空间以及分配表,选择一个节点ID,该节点ID属于节点ID空间且不等于所有分配表项的节点ID域值;交换机SW2向移动节点M1发送临时节点ID响应消息,该临时节点ID响应消息的负载为选择的节点ID;交换机SW2创建一个分配表项,该分配表项的节点ID域值为选中的节点ID,类型域值为1,接口ID为f0,生命周期域值为接收到的临时节点ID请求消息负载中的生命周期值;
步骤204:移动节点M1接收到临时节点ID响应消息后,将负载中的节点ID设置为自己的临时节点ID;
步骤205:结束。
图3为本发明所述的延长临时节点ID流程示意图。移动节点M1获取临时节点ID后,如果检测到该临时节点ID的生命周期低于一定阈值,且仍然需要继续使用该临时节点ID,则执行下述过程延长临时节点ID的生命周期:
步骤301:开始;
步骤302:移动节点M1发送临时节点ID延长消息,临时节点ID延长消息负载为移动节点M1的临时节点ID和生命周期值;
步骤303:交换机SW2接收到临时节点ID延长消息后,查看分配表,选择一个分配表项,该分配表项的节点ID等于接收到的临时节点ID延长消息负载中的节点ID,将该分配表项的生命周期域值设置为接收到的临时节点ID延长消息负载中的生命周期值;
步骤304:结束。
图4为本发明所述的建立控制器表流程示意图。一个控制器由它的节点ID空间唯一标识,一个域由该域的控制器唯一标识,一个交换机由它的节点ID空间唯一标识;每个交换机保存一个控制器表,一个控制表项由控制器域和路径集合域构成;一个域中的控制器和交换机获取节点ID空间后,建立一个控制器表项,该控制器表项的控制器域值为空,路径集合域值为空,执行下述操作建立控制器表项:
步骤401:开始;
步骤402:控制器从与交换机相连的接口发送一个控制器消息,该控制器消息的负载为路径集合和自己的节点ID空间,路径集合为空集;
步骤403:交换机从接口f1接收到该控制器消息后,如果该交换机的节点ID空间为接收到的控制器消息负载中的节点ID空间的子集,则执行步骤404,否则执行步骤408;
步骤404:从接口f1接收到控制器消息的交换机将接口f1加入到控制器消息的路径集合中且作为该路径集合的第一个元素;如果该交换机的控制器表项中的控制器域值为空,则执行步骤405,否则执行步骤406;
步骤405:交换机将控制器表项的控制器域值设置为该控制器消息中的节点ID空间,路径集合设置为该控制器消息负载中的路径集合,从除了接口f1以外的接口转发该控制器消息,执行步骤403;
步骤406:交换机判断控制器表项的路径集合元素个数是否大于接收到的控制器消息负载中的路径集合的元素个数,如果是,则执行步骤407,否则执行步骤408;
步骤407:交换机将控制器表项的路径集合设置为该控制器消息负载中的路径集合,从除了接口f1以外的接口转发该控制器消息,执行步骤403;
步骤408:结束。
图5为本发明所述的建立转发表流程示意图。每个交换机包含一个转发表,转发表名为自己的节点ID空间,每个转发表项包含控制器域、交换机域和路径集合域;交换机建立控制器表后,执行下述操作建立转发表:
步骤501:开始;
步骤502:交换机发送一个转发消息,该转发消息的负载为控制器表项中的控制器域值,自己的节点ID空间和路径集合,路径集合为空;
步骤503:交换机从自己的接口f2接收到该转发消息后,如果该交换机的节点ID空间为接收到的转发消息负载中的控制器域值的子集,则执行步骤504,否则执行步骤508;
步骤504:从接口f2接收到该转发消息的交换机将接口f2加入到该转发消息的路径集合中且接口f2作为路径集合的第一个元素,查看转发表,如果存在一个转发表项,该转发表项的交换机域值等于该转发消息中的节点ID空间,则执行步骤506,否则执行步骤505;
步骤505:交换机创建一个转发表项,该转发表项的控制器域值等于接收到的转发消息中的控制器域值,交换机域值等于该转发消息中的节点ID空间,路径集合域值等于该转发消息中的路径集合;然后从除了接口f2以外的所有接口发送该转发消息,执行步骤503;
步骤506:交换机选择一个转发表项,该转发表项的交换机域值等于该转发消息中的节点ID空间,如果该转发表项的路径集合元素个数大于该转发消息中的路径集合个数,则执行步骤507,否则执行步骤508;
步骤507:交换机选择一个转发表项,该转发表项的交换机域值等于该转发消息中的节点ID空间,将该转发表项的路径集合更新为该转发消息中的路径集合,然后从除了接口f2以外的所有接口发送该转发消息,执行步骤503;
步骤508:结束。
图6为本发明所述的执行注册操作流程示意图。与控制器相连的交换机建立转发表后,执行下述操作执行注册操作:
步骤601:开始;
步骤602:交换机构建一个注册消息,该注册消息的负载为该交换机的控制器表项中的路径集合和自己的转发表;选择一个接口,该接口的接口ID等于注册消息负载中的控制器表项中的路径集合的第一个元素,从注册消息负载中的控制器表项中的路径集合中删除第一个元素,从选中的接口发送注册消息;
步骤603:如果控制器接收到该注册消息,则执行步骤605,否则执行步骤604;
步骤604:交换机接收到该注册消息后,选择一个接口,该接口的接口ID等于注册消息负载中的控制器表项中的路径集合的第一个元素,然后从注册消息负载中的控制器表项中的路径集合中删除第一个元素,从选中的接口发送注册消息,执行步骤603;
步骤605:控制器接收到该注册消息后,保存该注册消息负载中的转发表;
步骤606:结束。
图7为本发明所述的建立控制器转发表流程示意图。每个控制器包含一个控制器转发表,控制器转发表名为自己的节点ID空间,每个控制器转发表项包含控制器域和路径集合域;控制器执行下述操作建立控制器转发表:
步骤701:开始;
步骤702:控制器发送一个转发消息,该转发消息的负载为自己的节点ID空间和路径集合;路径集合为空;
步骤703:控制器从自己的接口f3接收到该转发消息后,将接口f3加入到该转发消息的路径集合中且接口f3作为路径集合的第一个元素,查看转发表,如果存在一个转发表项,该转发表项的控制器域值等于该转发消息中的节点ID空间,则执行步骤705,否则执行步骤704;
步骤704:从接口f3接收到转发消息的控制器创建一个转发表项,该转发表项的控制器域值等于接收到的转发消息中的控制器域值,路径集合域值等于该转发消息中的路径集合;然后从除了接口f3以外的所有接口发送该转发消息,执行步骤703;
步骤705:从接口f3接收到转发消息的控制器选择一个转发表项,该转发表项的控制器域值等于该转发消息中的节点ID空间,如果该转发表项的路径集合元素个数大于该转发消息中的路径集合个数,则执行步骤706,否则执行步骤707;
步骤706:控制器选择一个转发表项,该转发表项的控制器域值等于该转发消息中的节点ID空间,将该转发表项的路径集合更新为该转发消息中的路径集合,然后从除了接口f3以外的所有接口发送该转发消息,执行步骤703;
步骤707:结束。
图8为本发明所述的移动切换流程示意图。每个控制器维护一个切换表,每个切换表项包含家乡节点ID域,临时节点ID域和生命周期域;
在移动节点M1位于域O1中,域O1的控制器为C1,交换机SW1和SW2位于域O1内,移动节点M1与交换机SW1关联的条件下,如果移动节点M1位置发生移动与交换机SW2关联,则执行下述移动切换操作:
步骤801:开始;
步骤802:移动节点M1执行步骤201~205从交换机SW2获取临时地址,然后发送一条切换消息,该切换消息的负载为移动节点M1的家乡节点ID和临时节点ID;
步骤803:交换机SW2接收到该切换消息后,查看控制器表项,将该控制器表项的路径集合加入到该切换消息的负载中,选择一个接口,该接口的接口ID等于该切换消息负载中的路径集合的第一个元素,然后从该切换消息负载中的路径集合中删除第一个元素,从选中的接口发送该切换消息;
步骤804:如果控制器C1接收到该切换消息,执行步骤806,否则执行步骤805;
步骤805:交换机接收到该切换消息后,选择一个接口,该接口的接口ID等于该切换消息负载中的路径集合的第一个元素,然后从该切换消息负载中的路径集合中删除第一个元素,从选中的接口发送该切换消息,执行步骤804;
步骤806:控制器C1查看切换表,如果存在一个切换表项,该切换表项的家乡节点ID等于切换消息中的家乡节点ID,则执行步骤807,否则执行步骤808;
步骤807:控制器C1选择一个切换表项,该切换表项的家乡节点ID等于切换消息中的家乡节点ID,将该切换表项的临时节点ID更新为该切换消息中的临时节点ID,执行步骤809;
步骤808:控制器C1创建一个切换表项,该切换表项的家乡节点ID等于切换消息中的家乡节点ID,临时节点ID等于该切换消息中的临时节点ID;
步骤809:结束。
图9为本发明所述的通信流程示意图。在移动节点M1位于域O1中,域O1的控制器为C1,交换机SW1位于域O1内,域O1的主交换机为MSW1,移动节点M1与交换机SW1关联,移动节点M3位于域O3中,域O3的控制器为C3,交换器SW3位于域O3中,域O3的主交换机为MSW3,移动节点M3与交换机SW3关联的条件下,移动节点M1与移动节点M3通过下述过程实现通信:
步骤901:开始;
步骤902:移动节点M1发送一条请求消息,该请求消息的负载为源地址和目的地址,源地址为移动节点M1的临时节点ID,目的地址为移动节点M3的家乡节点ID;交换机SW1接收到该请求消息后,选择一个转发表项,该转发表项的交换机域值等于主交换机MSW1的节点ID空间,将该转发表项的路径集合加入到该请求消息的负载中,选择一个接口,该接口的接口ID等于该请求消息负载中的路径集合的第一个元素,然后从该请求消息负载中的路径集合中删除第一个元素,从选中的接口发送该请求消息;
步骤903:主交换机MSW1接收到该请求消息后,执行步骤905,否则执行步骤904;
步骤904:接收到请求消息的交换机选择一个接口,该接口的接口ID等于该请求消息负载中的路径集合的第一个元素,然后从该请求消息负载中的路径集合中删除第一个元素,从选中的接口发送该请求消息,执行步骤903;
步骤905:主交换机MSW1将该请求消息转发到控制器C1;控制器C1查看控制器转发表,选择一个控制器转发表项,该请求消息的目的节点ID属于该控制器转发表项的控制器域,将该控制器转发表项的路径集合加入到该请求消息中,选择一个接口,该接口的接口ID等于该请求消息负载中的路径集合的第一个元素,然后从该请求消息负载中的路径集合中删除第一个元素,从选中的接口发送该请求消息;
步骤906:控制器接收到该请求消息后,如果该请求消息的目的节点ID属于该控制器的节点ID空间,执行步骤908,否则执行步骤907;
步骤907:控制器接收到该请求消息后,选择一个接口,该接口的接口ID等于该请求消息负载中的路径集合的第一个元素,然后从该请求消息负载中的路径集合中删除第一个元素,从选中的接口发送该请求消息,执行步骤906;
步骤908:控制器查看切换表,如果存在一个切换表项,该切换表项的家乡节点ID等于请求消息的目的节点ID,则执行步骤909,否则执行步骤910;
步骤909:控制器选择一个切换表项,该切换表项的家乡节点ID等于请求消息中的目的节点ID,将该请求消息中的目的节点ID更新为该切换表项中的临时节点ID,该控制器查看控制器转发表,选择一个控制器转发表项,该请求消息的目的节点ID属于该控制器转发表项的控制器域,将该控制器转发表项的路径集合加入到该请求消息中,选择一个接口,该接口的接口ID等于该请求消息负载中的路径集合的第一个元素,然后从该请求消息负载中的路径集合中删除第一个元素,从选中的接口发送该请求消息,执行步骤906;
步骤910:控制器查看转发表,选择一个转发表项,该转发表项的交换机域值包含该请求消息的目的节点ID,将该转发表项的路径集合加入到该请求消息负载中,从与交换机相连的接口发送该请求消息;
步骤911:交换机接收到该请求消息后,如果该请求消息的目的节点ID属于该交换机的节点ID空间,执行步骤913,否则执行步骤912;
步骤912:交换机选择一个接口,该接口的接口ID等于该请求消息负载中的路径集合的第一个元素,然后从该请求消息负载中的路径集合中删除第一个元素,从选中的接口发送该请求消息,执行步骤911;
步骤913:交换机查看分配表,选择一个分配表项,该分配表项的节点ID等于该请求消息的目的节点ID,然后从该分配表项的接口ID域值所标识的接口发送该请求消息;移动节点M3接收到该请求消息后,发送一个响应消息,该响应消息包括源节点ID,目的节点ID以及响应数据,其中,源节点ID等于接收到的请求消息中的目的节点ID,目的节点ID等于接收到的请求消息中的源节点ID;与移动节点M3关联的交换机SW3接收到响应消息后,选择一个转发表项,该转发表项的交换机域值等于主交换机MSW3的节点ID空间,将该转发表项的路径集合加入到该响应消息的负载中,选择一个接口,该接口的接口ID等于该响应消息负载中的路径集合的第一个元素,然后从该响应消息负载中的路径集合中删除第一个元素,从选中的接口发送该响应消息;
步骤914:主交换机MSW3接收到该响应消息后,执行步骤916,否则执行步骤915;
步骤915:接收到响应消息的交换机选择一个接口,该接口的接口ID等于该响应消息负载中的路径集合的第一个元素,然后从该响应消息负载中的路径集合中删除第一个元素,从选中的接口发送该响应消息,执行步骤914;
步骤916:主交换机MSW3将该响应消息转发到相连的控制器;控制器查看控制器转发表,选择一个控制器转发表项,该响应消息的目的节点ID属于该控制器转发表项的控制器域,将该控制器转发表项的路径集合加入到该响应消息中,选择一个接口,该接口的接口ID等于该响应消息负载中的路径集合的第一个元素,然后从该响应消息负载中的路径集合中删除第一个元素,从选中的接口发送该响应消息;
步骤917:控制器接收到该响应消息后,如果该响应消息的目的节点ID属于该控制器的节点ID空间,执行步骤919,否则执行步骤918;
步骤918:控制器选择一个接口,该接口的接口ID等于该响应消息负载中的路径集合的第一个元素,然后从该响应消息负载中的路径集合中删除第一个元素,从选中的接口发送该响应消息,执行步骤917;
步骤919:控制器查看转发表,选择一个转发表项,该转发表项的交换机域值包含该响应消息的目的节点ID,将该转发表项的路径集合加入到该响应消息负载中,从与交换机相连的接口发送该响应消息;
步骤920:交换机接收到该响应消息后,如果该响应消息的目的节点ID属于该交换机的节点ID空间,执行步骤922,否则执行步骤921;
步骤921:交换机选择一个接口,该接口的接口ID等于该响应消息负载中的路径集合的第一个元素,然后从该响应消息负载中的路径集合中删除第一个元素,从选中的接口发送该响应消息,执行步骤920;
步骤922:交换机查看分配表,选择一个分配表项,该分配表项的节点ID等于该响应消息的目的节点ID,然后从该分配表项的接口ID域值所标识的接口发送该响应消息;移动节点M1接收到该响应消息后,保存该响应消息中的数据;
步骤923:结束。
实施例1
基于表1的仿真参数,本实施例模拟了本发明中的一种软件定义网络的数据通信实现方法,性能分析如下:当数据传输量增加时,移动节点获取数据的延迟较高,当数据传输量减少时,移动节点获取数据的延迟较低,网络获取数据的平均延迟为1.17s。
表1仿真参数
本发明提供了一种软件定义网络的数据通信实现方法的思路,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部份均可用现有技术加以实现。
一种软件定义网络的数据通信实现方法专利购买费用说明
Q:办理专利转让的流程及所需资料
A:专利权人变更需要办理著录项目变更手续,有代理机构的,变更手续应当由代理机构办理。
1:专利变更应当使用专利局统一制作的“著录项目变更申报书”提出。
2:按规定缴纳著录项目变更手续费。
3:同时提交相关证明文件原件。
4:专利权转移的,变更后的专利权人委托新专利代理机构的,应当提交变更后的全体专利申请人签字或者盖章的委托书。
Q:专利著录项目变更费用如何缴交
A:(1)直接到国家知识产权局受理大厅收费窗口缴纳,(2)通过代办处缴纳,(3)通过邮局或者银行汇款,更多缴纳方式
Q:专利转让变更,多久能出结果
A:著录项目变更请求书递交后,一般1-2个月左右就会收到通知,国家知识产权局会下达《转让手续合格通知书》。
动态评分
0.0