欢迎来到知嘟嘟! 联系电话:13095918853 卖家免费入驻,海量在线求购! 卖家免费入驻,海量在线求购!
知嘟嘟
我要发布
联系电话:13095918853
知嘟嘟经纪人
收藏
专利号: 2018102351104
申请人: 常熟理工学院
专利类型:发明专利
专利状态:已下证
专利领域: 电通信技术
更新日期:2024-04-29
缴费截止日期: 暂无
价格&联系人
年费信息
委托购买

摘要:

权利要求书:

1.一种软件定义网络的数据通信实现方法,其特征在于,所述网络包括控制器、交换机和移动节点,所述网络划分为两个以上的域,每个域包含一个控制器和两个以上的交换机;

一个移动节点使用节点ID通过与自己关联的交换机实现通信;

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

每个控制器维护一个节点ID空间,节点ID的长度为i比特,i为大于1的正整数;如果所i述网络包含M个域,即包含M个控制器,M,1

如果第m个控制器所在域中包含N个交换机,N为大于1的正整数,那么第n个交换机的节点ID空间[L(m,n),U(m,n)]如公式(3)和(4)所示,[L(m,n),U(m,n)]为交换机的节点ID空间的下限和上限,1≤n≤N;

一个移动节点配置一个家乡节点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:结束。