一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种地址分配方法及装置与流程

2023-01-17 12:32:21 来源:中国专利 TAG:


1.本技术涉及通信技术领域,尤其涉及一种地址分配方法及装置。


背景技术:

2.在客户端-中继-服务器(client-relay-server,c-r-s)组网中,中继连接多个服务器,每个服务器配置的地址池是相同的。
3.客户端上线时,会通过中继向服务器请求地址。在第一个服务器(称为服务器1)按照地址从小到大的顺序已经为n个客户端分配地址后,该服务器1断开连接或者无法分配地址时,中继就会切换到第二个服务器(称为服务器2)进行地址分配。
4.由于服务器2从未分配过地址,其会从地址池中的最小地址开始分配,但是实际上最小的n个地址已经被分配给前n个客户端了。中继接收到该最小地址后,发现该地址已经被分配了,中继将丢弃该地址,不向客户端发送反馈信息,客户端接收不到反馈信息,本次上线失败。当下一个客户端前来上线时,服务器2将第二小的地址分配给该客户端,中继接收到该第二小的地址后,将其丢弃,依此类推,直到第n 1个客户端前来上线时,才会正常上线,期间发生n次客户端上线失败的情况。


技术实现要素:

5.有鉴于此,本技术实施例提供一种地址分配方法及装置,以避免服务器切换时,导致出现n次客户端上线失败的情况。
6.根据本技术实施例的第一方面,提供一种地址分配方法,所述方法应用于中继设备,所述中继设备与处于同一网段的至少两个服务器连接,各服务器已配置相同的地址池,所述方法包括:接收目标客户端发送的第一地址请求报文;当所述第一地址请求报文未携带所述目标客户端的客户端地址时,若已检测到服务器切换事件,则从所述地址池中,选择待分配给所述目标客户端的参考地址;所述参考地址为所述地址池中的一空闲地址;向第一服务器发送携带了所述参考地址的第二地址请求报文,以请求所述第一服务器基于所述参考地址为所述目标客户端分配地址;其中,所述服务器切换事件是指服务器从正常工作状态切换为异常状态。
7.根据本技术实施例的第二方面,提供一种地址分配装置,所述装置应用于中继设备,所述中继设备与处于同一网段的至少两个服务器连接,各服务器已配置相同的地址池,所述装置包括:第一地址请求报文接收模块,用于接收目标客户端发送的第一地址请求报文;参考地址确定模块,用于当所述第一地址请求报文未携带所述目标客户端的客户端地址时,若已检测到服务器切换事件,则从所述地址池中,选择待分配给所述目标客户端的参考地址;所述参考地址为所述地址池中的一空闲地址;
第一地址分配模块,用于向第一服务器发送携带了所述参考地址的第二地址请求报文,以请求所述第一服务器基于所述参考地址为所述目标客户端分配地址;所述服务器切换事件是指服务器从正常工作状态切换为异常状态。
8.根据本技术实施例的第三方面,提供一种电子设备,电子设备包括:处理器和存储器;其中,所述存储器,用于存储机器可执行指令;所述处理器,用于读取并执行所述存储器存储的机器可执行指令,以实现如第一方面的方法。
9.本技术实施例提供的地址分配方法,通过在检测到服务器切换事件时,从地址池中确定一个参考地址,并将携带该参考地址的第二地址请求报文发送给第一服务器,以使得第一服务器依据参考地址为客户端分配地址,避免了服务器切换时,从最小地址开始分配导致出现客户端上线失败的情况;进一步地,将携带参考地址的第二地址请求报文发送给第一服务器,以使得第一服务器依据参考地址为客户端分配地址,避免了服务器从最小地址开始分配,导致网络中大量无效报文的传输,减少了网络中传输的报文数据,降低网络负载。
附图说明
10.图1是本技术实施例提供的c-r-s组网示意图;图2是本技术实施例提供的方法流程图;图3是本技术实施例提供的客户端上线组网示例图;图4是本技术实施例提供的装置的框图;图5是本技术实施例提供的电子设备的硬件结构图。
具体实施方式
11.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
12.在本技术使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本技术。在本技术和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
13.应当理解,尽管在本技术可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本技术范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
14.接下来对本技术实施例进行详细说明。
15.如图1所示,图1为本技术实施例示出的c-r-s组网示意图。在本实施例中,中继设
备通过交换机与多个服务器相连,多个服务器均是处于同一网段且配置有相同地址池,即上述多个服务器可分配地址范围相同,这里的地址指的是ip地址。例如,中继设备和客户端的接口地址为20.1.1.1,中继设备与交换机的接口地址为10.1.1.10,三个服务器地址分别为10.1.1.1 、10.1.1.2 以及10.1.1.3,各服务器被配置的地址池中的最小地址为20.1.1.2。
16.在本实施例中,服务器基于动态主机配置协议(dynamic host configuration protocol,dhcp)进行ip地址分配。
17.基于图1所示的组网,下面通过图2对本技术实施例提供的方法进行描述:参见图2,图2为本技术实施例提供的方法流程图。该方法应用于上述中继设备,与中继设备连接的多个服务器均处于工作状态,如图2所示,该流程可包括以下步骤:s210:接收目标客户端发送的第一地址请求报文.示例性地,在本实施例中,上述目标客户端可以为从未在与中继设备连接的各服务器所处网段上线过的新客户端,也可以为掉线后重新上线的客户端,本技术实施例并不具体限定。
18.在本实施例中,上述第一地址请求报文为dhcp discover报文,其至少携带客户端标识等。这里,客户端标识可以为mac地址等,本技术实施例并不具体限定。
19.在本实施例中,目标客户端通过无线网络将第一地址请求报文以广播的形式发出。
20.s220:当第一地址请求报文未携带目标客户端的客户端地址时,若已检测到服务器切换事件,则从地址池中,选择待分配给目标客户端的参考地址;参考地址为地址池中的一空闲地址。
21.示例性地,在本实施例中,上述客户端地址指的是客户端的ip地址。
22.在本实施例中,服务器切换事件是指服务器从正常工作状态切换为异常状态。其中,正常工作状态表征该服务器可以正常为客户端分配地址,异常状态表征该服务器无法正常为客户端分配地址。
23.在本实施例中,在执行本步骤s220之前,检测是否发生服务器切换事件,检测服务器切换事件的方式有很多种,本技术实施例并不具体限定。作为一个实施例,当预设时间内(例如,1分钟)未收到服务器的反馈信息时,就认为该服务器处于异常状态,发生服务器切换事件。
24.示例性地,在本实施例中,从地址池中,确定待分配给目标客户端的参考地址可以有多种实现方式,例如可以将地址池中的任一空闲地址作为上述参考地址,还可以将地址池中最小的空闲地址作为参考地址,本技术实施例并不具体限定。
25.s230:向第一服务器发送携带了参考地址的第二地址请求报文,以请求第一服务器基于参考地址为目标客户端分配地址。
26.示例性地,在本实施例中,对于中继连接的多个服务器,其按照提前定义好的执行地址分配功能的顺序为前来上线的客户端分配地址,例如,第一个执行地址分配功能的服务器为执行地址分配功能的顺序中的首个服务器,当该服务器故障时,由执行地址分配功能的顺序中的第二个服务器执行地址分配功能。这里,执行地址分配功能的顺序例如可以为服务器编号顺序,本技术实施例并不具体限定。
27.基于上述描述,在本实施例中,第一服务器可以为上述执行地址分配功能的顺序中位于发送服务器切换事件的服务器后面的第一个服务器,本步骤s230中,向第一服务器发送携带了参考地址的第二地址请求报文,具体地,将参考地址封装到第一地址请求报文的option50字段,形成第二地址请求报文,并将该第二地址请求报文发送至第一服务器。
28.这里,option50字段是请求ip地址的字段,该字段的定义如下:type 0x32length 4option string其中,type字段填0x32固定值,标记该option为option50;length字段为固定值4,代表整个option长度为4;option字段为option50实际封装内容(即请求分配的参考地址),封装的数据类型为string。
29.第一服务器接收到第二地址请求报文后,基于第二地址请求报文中的参考地址为目标客户端分配地址,具体地,第一服务器可以直接将该参考地址作为为目标客户端分配的地址。
30.作为一个可选实施方式,第一服务器还可以比对该客户端地址和其地址池中的最小空闲地址,若一致,将该客户端地址分配给目标客户端,若不一致,将最小空闲地址分配给目标客户端。
31.至此,完成图2所示流程。
32.通过图2所示流程可以看出,本技术实施例中,通过在检测到服务器切换事件时,从地址池中确定一个参考地址,并将携带该参考地址的第二地址请求报文发送给第一服务器,以使得第一服务器依据目标参考为客户端分配地址,避免了服务器切换时,从最小地址开始分配导致出现客户端上线失败的情况;进一步地,将携带参考地址的第二地址请求报文发送给第一服务器,以使得第一服务器依据参考地址为客户端分配地址,避免了服务器从最小地址开始分配,导致网络中大量无效报文的传输,减少了网络中传输的报文数据,降低网络负载。
33.作为本技术实施例一个可选实施方式,若未检测到服务器切换事件,则该地址分配方法还包括:向第二服务器发送第一地址请求报文,以请求第二服务器基于第一地址请求报文为目标客户端分配地址。
34.示例性地,在本实施例中,若未检测到服务器切换事件,则直接向第二服务器发送第一地址请求报文,以请求第二服务器基于第一地址请求报文为目标客户端分配地址,这里,第二服务器是为上一个前来上线的客户端分配地址的服务器或者上述执行地址分配功能的顺序中的首个服务器,具体可以根据目标客户端确定,例如,当目标客户端为首个上线的客户端时,第二服务器为上述执行地址分配功能的顺序中的首个服务器;当目标客户端不为首个上线的客户端时,第二服务器是为上一个前来上线的客户端分配地址的服务器。
35.在本实施例中,第二服务器接收到第一地址请求报文后,基于第一地址请求报文为目标客户端分配地址,具体地,第二服务器可以将其地址池中任一空闲地址分配给目标客户端,也可以将其地址池中最小的空闲地址分配给目标客户端,本技术实施例并不具体限定。
36.作为本技术实施例一个可选实施方式,若未检测到服务器切换事件,则该地址分配方法还包括:检查地址池中的至少一个地址是否已经被分配。
37.示例性地,在本实施例中,检查地址池中的至少一个地址是否已经被分配具体可以为:依据已获得的客户端信息记录确定,例如,若已获得的客户端信息记录为空,则认为地址池中的地址均没有被分配,若已获得的客户端信息记录存在记录信息,则认为地址池中的至少一个地址已经被分配。至于已获得的客户端信息记录可参见下面实施例的具体描述,这里暂不赘述。
38.如果是,则将第一地址请求报文发送至第二服务器,以请求第二服务器基于第一地址请求报文为目标客户端分配地址;如果否,从地址池中,选择待分配给目标客户端的参考地址,向第二服务器发送携带了参考地址的第二地址请求报文,以请求第二服务器基于参考地址为目标客户端分配地址。
39.示例性地,在本实施例中,第二服务器是为上一个前来上线的客户端分配地址的服务器或者上述执行地址分配功能的顺序中的首个服务器,例如,当目标客户端为首个上线的客户端时,第二服务器为上述执行地址分配功能的顺序中的首个服务器;当目标客户端不为首个上线的客户端时,第二服务器是为上一个前来上线的客户端分配地址的服务器。
40.若地址池中的地址均没有被分配,则确定目标客户端为首个上线的客户端,直接将第一地址请求报文发送至第二服务器,以请求第二服务器基于第一地址请求报文为目标客户端分配地址,具体分配方法参见上面第二服务器基于第一地址请求报文为目标客户端分配地址的具体描述,这里不再赘述。
41.若地址池中的至少一个地址已经被分配,则确定目标客户端不为首个上线的客户端,从地址池中,确定待分配给目标客户端的参考地址后,向第二服务器发送携带了参考地址的第二地址请求报文,以请求第二服务器基于参考地址为目标客户端分配地址。至于待分配给目标客户端的参考地址的确定方法可参见上面实施例的举例描述,这里不再赘述。
42.作为本技术实施例一个可选实施方式,上述步骤s220中的从地址池中,选择待分配给目标客户端的参考地址,包括:首先,从已获得的客户端信息记录中,确定其他各客户端被分配的客户端地址。
43.示例性地,在本实施例中,上述客户端信息记录可以是在每个客户端上线后记录的,该客户端信息记录可以以表格的形式存储。具体地,上述客户端信息记录包括至少一条客户端信息,每条客户端信息至少包括:客户端标识、地址信息、服务器标识、服务器工作状态等。这里的地址信息为ip地址信息,服务端标识可以为服务器的mac地址、服务器的编号信息或者服务器的ip地址等,本技术实施例并不具体限定。
44.例如,上述客户端信息记录可以为:cid
ꢀꢀꢀ
ip
ꢀꢀꢀꢀꢀꢀ
server
ꢀꢀꢀꢀ
statuscid1
ꢀꢀ
20.1.1.2
ꢀꢀ
10.1.1.1
ꢀꢀꢀ
upcid2
ꢀꢀ
20.1.1.3
ꢀꢀ
10.1.1.1
ꢀꢀꢀ
up其中,cid为客户端标识,ip为客户端被分配的ip地址信息,server为服务器标识,
status为服务器标识对应的服务器的工作状态,其中,up表示服务器处于正常工作状态,down表示服务器处于异常状态。
45.其次,从地址池中选择一个除其他各客户端被分配的客户端地址之外的空闲地址作为参考地址。
46.示例性地,从地址池中选择一个除其他各客户端被分配的客户端地址之外的空闲地址作为参考地址可以有很多实现方式,例如可以将地址池中除其他各客户端被分配的客户端地址之外的任一空闲地址作为上述参考地址,还可以将地址池中除其他各客户端被分配的客户端地址之外最小的地址作为参考地址,本技术实施例并不具体限定。
47.作为本技术实施例一个可选实施方式,当第一地址请求报文携带目标客户端的客户端地址时,该地址分配方法还包括:从已获得的客户端信息记录中查询是否存在与目标客户端对应的目标客户端信息。
48.示例性地,在本实施例中,目标客户端信息至少包括:目标客户端标识、地址信息,服务器标识、服务器状态等,本技术实施例并不具体限定。
49.在本实施例中,从已获得的客户端信息记录中查询是否存在与目标客户端对应的目标客户端信息具体可以为:以第一地址请求报文携带的目标客户端标识为关键字,在已获得的客户端信息记录中查询是否存在与该关键字匹配的目标客户端信息。
50.如果否,且已检测到服务器切换事件,则将第一地址请求报文发送至第一服务器,以请求第一服务器基于第一地址请求报文为目标客户端分配地址。
51.示例性地,如果已获得的客户端信息记录中不存在目标客户端信息,且已检测到服务器切换事件,则直接第一地址请求报文发送至第一服务器,以请求第一服务器基于第一地址请求报文为目标客户端分配地址。
52.第一服务器接收到第一地址请求报文后,基于第一地址请求报文中的客户端地址为目标客户端分配地址,具体地,第一服务器可以直接将该客户端地址作为为目标客户端分配的地址。
53.如果否,且未检测到服务器切换事件,则直接第一地址请求报文发送至第二服务器,以请求第二服务器基于第一地址请求报文为目标客户端分配地址。
54.第二服务器接收到第一地址请求报文后,基于第一地址请求报文中的客户端地址为目标客户端分配地址,具体地,第一服务器可以直接将该客户端地址作为为目标客户端分配的地址。作为一个可选实施方式,第一服务器也可以比对该客户端地址和其地址池中的最小空闲地址,若一致,将该客户端地址分配给目标客户端,若不一致,将最小空闲地址分配给目标客户端。
55.如果是,且目标客户端信息中的客户端地址与第一地址请求报文携带目标客户端的客户端地址不相同时,丢弃第一地址请求报文。
56.如果是,且目标客户端信息中的客户端地址与第一地址请求报文携带目标客户端的客户端地址相同时,若已检测到服务器切换事件,则将第一地址请求报文发送至第一服务器,以请求第一服务器基于第一地址请求报文为目标客户端分配地址。
57.示例性地,如果已获得的客户端信息记录中存在目标客户端信息,则进一步比对目标客户端信息中的客户端地址与第一地址请求报文携带目标客户端的客户端地址是否
相同,若不相同,则认为该第一地址请求报文是攻击报文,丢弃该第一地址请求报文;若相同,且已检测到服务器切换事件,则将第一地址请求报文发送至第一服务器,以请求第一服务器基于第一地址请求报文为目标客户端分配地址,具体地址分配方法参见上述第一服务器基于第一地址请求报文为目标客户端分配地址的描述,这里不再赘述;若相同,且未检测到服务器切换事件,则将第一地址请求报文发送至第二服务器,以请求第二服务器基于第一地址请求报文为目标客户端分配地址,具体的地址分配方法参见上述第二服务器基于第一地址请求报文为目标客户端分配地址的描述,这里不再赘述。
58.作为本技术实施例一个可选实施方式,该地址分配方法还包括:首先,当接收到第一服务器向目标客户端返回的地址响应报文时,获取地址响应报文中携带的目标客户端被分配的地址以及被分配的地址的租约。
59.示例性地,在本实施例中,当接收到第一服务器向目标客户端返回的地址响应报文时,获得地址响应报文中携带的目标客户端被分配的地址以及被分配的地址的租约后,将该地址响应报文发送给目标客户端。
60.其次,在确定目标客户端成功上线时,将目标客户端被分配的地址、以及被分配的地址的租约、第一服务器的标识以及第一服务器的状态作为目标客户端信息并记录。
61.示例性地,在本实施例中,目标客户端上线的确定可以有很多实现方式,例如,接收到目标客户端针对地址响应报文的反馈报文,就认为该目标客户端已经上线,本技术实施例并不具体限定。
62.在本实施例中,本步骤中,当确定目标客户端上线后,将目标客户端被分配的地址、被分配的地址的租约、以及目标服务器的标识以及的第一服务器的状态作为目标客户端信息并记录。
63.作为本技术实施例一个可选实施方式,该地址分配方法还包括:首先,当接收到第二服务器向目标客户端返回的地址响应报文时,获取该地址响应报文中携带的目标客户端被分配的地址以及被分配的地址的租约。
64.其次,在确定目标客户端成功上线时,将目标客户端被分配的地址、以及被分配的地址的租约、第二服务器的标识以及第二服务器的状态作为目标客户端信息并记录。
65.下面对本技术实施例提供的方案的整体流程进行描述:当接收到目标客户端发送的第一地址请求报文时,判断该第一地址请求报文中是否携带目标客户端的客户端地址,若该第一地址请求报文中携带目标客户端的客户端地址,进一步判断已获得的客户端信息记录中是否存在与客户端标识对应的客户端信息,若不存在,进一步检测当前服务器是否处于正常工作状态,若当前服务器处于正常工作状态,将第一地址请求报文发送至当前服务器;若当前服务器处于异常状态,将第一地址请求报文发送至目标服务器。
66.若存在,且客户端信息中的地址与客户端地址不一致,直接丢弃该第一地址请求报文;若存在,且客户端信息中的地址与客户端地址一致,进一步检测当前服务器是否处于正常工作状态,若当前服务器处于正常工作状态,将第一地址请求报文发送至当前服务器;若当前服务器处于异常状态,将第一地址请求报文发送至目标服务器。
67.若该第一地址请求报文中未携带客户端地址,进一步判断已获得的客户端信息记录中是否存在与客户端标识对应的客户端信息,若不存在,确定该客户端为新上线的客户
端,若当前服务器处于正常工作状态,将携带参考地址的第二地址请求报文发送至当前服务器;若当前服务器处于异常状态,将携带参考地址的第二地址请求报文发送至目标服务器。若存在且当前服务器处于正常工作状态,将携带参考地址的第二地址请求报文发送至当前服务器;若存在且当前服务器处于异常状态,将携带参考地址的第二地址请求报文发送至目标服务器。
68.下面对本技术实施例提供的客户端上线进行举例描述:图3为客户端上线组网示例图,如图3所示:1.首个客户端cid1要上线时,向中继设备发送第一地址请求报文,此时,已获得的客户端信息记录为空,中继设备直接将第一地址请求报文发送至当前处于正常工作状态的服务器1,且第一地址请求报文不携带客户端地址,此时服务器1正常为该cid1分配地址,即将地址池中最小的空闲地址分配给cid1,当确定cid1上线成功后,将cid1被分配的地址、地址的租约、服务器1的标识以及服务器1的状态作为cid1信息并记录。还以图1中的地址池为例,在本实施例中,为cid1分配的地址为20.1.1.2。
69.记录的cid1信息如下:cid
ꢀꢀꢀꢀ
ip
ꢀꢀꢀꢀꢀꢀ
server
ꢀꢀꢀꢀꢀ
statuscid1
ꢀꢀꢀ
20.1.1.2
ꢀꢀꢀ
10.1.1.1
ꢀꢀꢀ
up2.当第二个客户端cid2要上线时,向中继设备发送第一地址请求报文,此时中继设备在已获得的客户端信息记录中没有查询到cid2信息,在地址池中,选择一个除其他各客户端被分配的客户端地址之外的空闲地址,作为待分配给cid2的参考地址,若服务器1的工作状态为正常工作状态,则将携带参考地址的第二地址请求报文发送至服务器1,当确定cid2上线成功后,将cid2被分配的地址、以及地址的租约、服务器1的标识以及服务器1的状态作为cid2信息并记录,还以图1中的地址池为例,在本实施例中,参考地址为20.1.1.3。若服务器1的工作状态为正常工作状态,则后面要上线的各个客户端的上线过程与上述cid2的上线过程一致,在此不再赘述。
70.记录的cid2信息以及其他客户端信息如下:cid
ꢀꢀꢀꢀ
ip
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
server
ꢀꢀꢀ
statuscid1
ꢀꢀꢀ
20.1.1.2
ꢀꢀꢀ
10.1.1.1
ꢀꢀꢀ
upcid2
ꢀꢀꢀ
20.1.1.3
ꢀꢀꢀ
10.1.1.1
ꢀꢀꢀ
up
……ꢀꢀꢀ……ꢀꢀꢀꢀꢀꢀꢀ……ꢀꢀꢀ……
3.假设服务器1已经为50个客户端分配地址后,服务器1的工作状态变为异常状态,此时若客户端cid51要上线,向中继设备发送第一地址请求报文,此时中继设备在已获得的客户端信息记录中没有查询到cid51信息,在目标池中选择一个除其他各客户端被分配的客户端地址之外的空闲地址,作为待分配给cid51的参考地址(例如,图1地址池中的20.1.1.52),将该参考地址封装到第一地址请求报文中,形成第二地址请求报文并发送至服务器2,当确定cid51上线成功后,将cid51被分配的地址、地址的租约、服务器2的标识以及服务器2的状态作为cid51信息并记录,同时刷新cid1信息-cid50信息中的服务器1的工作状态。
71.记录的cid51信息如下:cid
ꢀꢀꢀꢀꢀ
ip
ꢀꢀꢀꢀꢀꢀꢀ
server
ꢀꢀꢀ
status
cid1
ꢀꢀꢀꢀ
20.1.1.2
ꢀꢀꢀ
10.1.1.1
ꢀꢀꢀ
downcid2
ꢀꢀꢀꢀ
20.1.1.3
ꢀꢀꢀ
10.1.1.1
ꢀꢀꢀ
down
……ꢀꢀꢀꢀ……ꢀꢀꢀꢀꢀꢀ……ꢀꢀꢀꢀꢀ……
cid50
ꢀꢀ
20.1.1.51
ꢀꢀ
10.1.1.1
ꢀꢀꢀ
downcid51
ꢀꢀ
20.1.1.52
ꢀꢀ
10.1.1.2
ꢀꢀꢀ
up4. 假设服务器1已经为50个客户端分配地址后,此时cid2要上线(之前发生掉线),向中继设备发送第一地址请求报文,该第一地址请求报文携带客户端地址20.1.1.3,中继设备从已获得的客户端信息记录查询到cid2信息,但是cid2中的地址信息不为客户端地址,则认为该第一地址请求报文为攻击报文,丢弃该第一地址请求报文。
72.5. 假设服务器1已经为50个客户端分配地址后,服务器1的工作状态变为异常状态,此时若客户端cid51要上线,cid51向中继设备发送第一地址请求报文,该第一地址请求报文携带客户端地址20.1.1.100,此时中继设备在已获得的客户端信息记录中没有查询到cid51信息,中继设备直接将第一地址请求报文发送到服务器2,当确定cid51上线成功后,将cid51被分配的地址、地址的租约、服务器2的标识以及服务器2的状态作为cid51信息并记录,同时刷新cid1信息-cid50信息中的服务器1的工作状态。
73.记录的cid51信息如下:cid
ꢀꢀꢀꢀꢀ
ip
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
server
ꢀꢀꢀꢀꢀꢀ
statuscid1
ꢀꢀꢀꢀ
20.1.1.2
ꢀꢀꢀꢀ
10.1.1.1
ꢀꢀꢀꢀ
downcid2
ꢀꢀꢀꢀ
20.1.1.3
ꢀꢀꢀꢀ
10.1.1.1
ꢀꢀꢀꢀ
down
……ꢀꢀꢀꢀ……ꢀꢀꢀꢀꢀꢀꢀꢀ……ꢀꢀꢀꢀꢀꢀꢀꢀ……
cid50
ꢀꢀ
20.1.1.51
ꢀꢀꢀ
10.1.1.1
ꢀꢀꢀꢀ
downcid51
ꢀꢀ
20.1.1.100
ꢀꢀ
10.1.1.2
ꢀꢀꢀꢀ
up至此,完成对图3的描述。
74.与前述方法的实施例相对应,本技术实施例还提供了装置及其所应用的终端的实施例。
75.如图4所示,图4是本技术实施例提供的一种地址分配装置的框图,该地址分配装置应用于中继设备,中继设备与处于同一网段的至少两个服务器连接,各服务器已配置相同的地址池,该地址分配装置包括:第一地址请求报文接收模块,用于接收目标客户端发送的第一地址请求报文;参考地址确定模块,用于当第一地址请求报文未携带目标客户端的客户端地址时,若已检测到服务器切换事件,则从地址池中,选择待分配给目标客户端的参考地址;参考地址为地址池中的一空闲地址;第一地址分配模块,用于向第一服务器发送携带了参考地址的第二地址请求报文,以请求第一服务器基于参考地址为目标客户端分配地址;服务器切换事件是指服务器从正常工作状态切换为异常状态。
76.作为本技术实施例一个可选实施方式,若未检测到服务器切换事件,则地址分配装置还包括:第二地址分配模块,用于向第二服务器发送第一地址请求报文,以请求第二服务器基于第一地址请求报文为目标客户端分配地址。
77.作为本技术实施例一个可选实施方式,若未检测到服务器切换事件,则该地址分配装置还包括:检查模块,用于检查地址池中的至少一个地址是否已经被分配;第三地址分配模块,用于如果是,则将第一地址请求报文发送至第二服务器,以请求第二服务器基于第一地址请求报文为目标客户端分配地址;第四地址分配模块,用于如果否,从地址池中,选择待分配给目标客户端的参考地址,向第二服务器发送携带了参考地址的第二地址请求报文,以请求第二服务器基于参考地址为目标客户端分配地址。
78.作为本技术实施例一个可选实施方式,参考地址确定模块具体用于:从已获得的客户端信息记录中,确定其他各客户端被分配的客户端地址;从地址池中选择一个除其他各客户端被分配的客户端地址之外的空闲地址作为参考地址。
79.作为本技术实施例一个可选实施方式,当第一地址请求报文携带目标客户端的客户端地址时,该地址分配装置还包括:查询模块,用于从已获得的客户端信息记录中查询是否存在与目标客户端对应的目标客户端信息;第五地址分配模块,用于如果否,且已检测到服务器切换事件,则将第一地址请求报文发送至第一服务器,以请求第一服务器基于第一地址请求报文为目标客户端分配地址;第六地址分配模块,用于如果是,且目标客户端信息中的客户端地址与第一地址请求报文携带目标客户端的客户端地址不相同时,丢弃第一地址请求报文;第七地址分配模块,用于如果是,且目标客户端信息中的客户端地址与第一地址请求报文携带目标客户端的客户端地址相同时,若已检测到服务器切换事件,则将第一地址请求报文发送至第一服务器,以请求第一服务器基于第一地址请求报文为目标客户端分配地址。
80.作为本技术实施例一个可选实施方式,该地址分配装置还包括:获取模块,用于当接收到第一服务器向目标客户端返回的地址响应报文时,获取地址响应报文中携带的目标客户端被分配的地址、被分配的地址的租约以及;记录模块,用于在确定目标客户端成功上线时,将目标客户端被分配的地址、以及被分配的地址的租约、第一服务器的标识以及第一服务器的状态作为目标客户端信息并记录。
81.作为本技术实施例一个可选实施方式,参考地址在第二地址请求报文的option50字段。
82.至此,完成图4所示装置的描述。
83.上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
84.对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以
不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本技术实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
85.对应地,本技术实施例还提供了图4所示装置的硬件结构图,具体如图5所示,该电子设备可以为上述实施方法的设备。如图5所示,该硬件结构包括:处理器和存储器。
86.其中,所述存储器,用于存储机器可执行指令;所述处理器,用于读取并执行所述存储器存储的机器可执行指令,以实现如上所示的所对应的地址分配方法实施例。
87.作为一个实施例,存储器可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,存储器可以是:易失存储器、非易失性存储器或者类似的存储介质。具体地,存储器可以是ram(radom access memory,随机存取存储器)、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
88.至此,完成图5所示电子设备的描述。
89.上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。本领域技术人员在考虑说明书及实践这里申请的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。
90.应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。
91.以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献