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

路由端口分配方法以及数据流向的识别方法与流程

2022-08-28 03:58:42 来源:中国专利 TAG:


1.本发明涉及通信技术领域,尤其涉及一种路由端口分配方法以及数据流向的识别方法。


背景技术:

2.当有多个终端连接移动无线路由器时,会出现流量共享和竞争,为了保证连上的终端都能正常上网,需要做流量均衡。当某一终端使用流量超过平均流量,需要对它做限速,例如通过丢包实现限速。
3.在基于应用处理器和通信处理器共核的实时操作系统上实现的移动无线路由器,多个终端同时接入并上网时,系统处理器占用时间本身已经非常高,要实现流量均衡并尽量减少处理器占用时间,需要在tcp/ip协议栈收到上行和下行数据马上做流量均衡,而不是进入协议栈完成demux-路由-napt转换等一系列处理后做流量均衡。
4.要对终端做流量均衡,首先需要识别出tcp/ip数据包的流向,即识别出是哪一个终端的上行包或下行包。对于上行数据,在tcp/ip协议栈收到数据,napt转换前就可以识别出数据包是哪一个终端发起的,不用做特殊处理;对于下行数据,目的地址都是移动无线路由器外网网卡ip地址,需要在napt转换后才能识别出是送往哪一个终端。在这种情况下,下行数据只有在经过napt转换之后才能识别出数据是发送至哪一个终端,势必会增加处理器的占用时间。


技术实现要素:

5.本发明提供的路由端口分配方法以及数据流向的识别方法,能够在端口转换前获取下行数据对应的终端并实现流量均衡,减少处理器的占用时间,提高数据处理效率。
6.第一方面,本发明提供一种路由端口分配方法,执行于路由设备,包括:
7.对可用端口进行分组,并形成使用状态列表,以记录每组端口当前的使用状态;
8.建立并维护端口分配列表,以记录终端与端口分组的对应关系;
9.当终端连接成功时,依据所述使用状态列表为所述终端分配一组端口,并更新使用状态列表和端口分配列表;
10.当终端断开连接时,从所述端口分配列表中删除对应的记录条目,并更新使用状态列表。
11.可选地,所述对可用端口进行分组包括:
12.从可用端口中确定若干个预留端口;
13.对预留端口之外的可用端口进行分组,每组至少包括一个可用端口。
14.可选地,所述对可用端口进行分组包括:
15.依据所述路由设备的能同时连接的最大终端数量对所述可用端口分组,以使所述分组数量与所述最大终端数量相同。
16.可选地,所述对可用端口进行分组包括:
17.对所述可用端口均匀分组,以使每组的可用端口数量相同。
18.可选地,同一组内的可用端口的端口号是连续的。
19.可选地,采用起始端口号和结束端口号对所述同一组内的可用端口进行确定。
20.可选地,所述依据所述使用状态列表为所述终端分配一组端口包括:
21.将所述使用状态列表中的任一未使用分组分配给所述终端,以在端口转换过程中使用对应分组内的端口。
22.可选地,所述在端口转换过程中使用对应分组内的端口包括:
23.当终端发送上行数据包时,将对应分组内的任一端口分配给所述终端,并记录在端口转换列表中,以使服务器端向对应的端口回复响应消息。
24.第二方面,本发明提供一种数据流向的识别方法,执行于路由设备中,所述路由设备依上述任意一项所述的方法分配端口,包括:
25.获取服务器端发送的下行数据;
26.依据所述下行数据,确定目标端口所在的分组;
27.依据所述分组,确定所述下行数据对应的目标终端。
28.可选地,在依据所述分组,确定所述下行数据对应的目标终端之后,还包括:
29.判断所述目标终端的流量是否超过平均流量;
30.当所述目标终端的流量超过平均流量时,将所述下行数据丢弃;
31.当所述目标终端的流量未超出平均流量时,将所述下行数据的目标地址进行端口转换并发送至目标终端。
32.在本发明提供的技术方案中,通过对可用端口进行分组,为每个已连接的终端分配一组端口,当接收到服务器端发送的下行数据时,仅需要判断该下行数据的端口对应于哪一组就可以识别出数据流向,从而,在端口转换之前即可对终端进行流量均衡,能够有效的减少处理器的占用时间,提高数据的处理效率。
附图说明
33.图1为本发明一实施例路由端口分配方法的流程图;
34.图2为本发明另一实施例路由端口分配方法的端口分组的流程图;
35.图3为本发明另一实施例数据流向的识别方法的流程图;
36.图4为本发明另一实施例数据流向的识别方法的流量均衡的流程图
37.图5为本发明另一实施例数据流向的识别方法的交互示意图。
具体实施方式
38.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
39.本发明实施例提供一种路由端口分配方法,执行于路由设备,如图1所示,包括:
40.步骤100,对可用端口进行分组,并形成使用状态列表,以记录每组端口当前的使用状态;
41.在一些实施例中,对可用端口分组后,每组端口在后续的数据上行或下行过程中对应一个终端,为了确保每个终端具有足够的端口资源,每组端口具备至少一个可用端口。使用状态列表是指对每组端口的使用状态进行记录的列表。使用状态列表具有与分组数量相同的条目数量,每个条目对应于一组端口的使用状态,例如,使用状态列表可以采用如下的形式:
[0042][0043][0044]
其中,a为分组数量,b为每组端口的可用端口数量。在上述的表格中,以每组中的可用端口数量相同为例进行了展示,在另一些实施例中,也可以采用每组中的端口数量不同的方式。
[0045]
步骤200,建立并维护端口分配列表,以记录终端与端口分组的对应关系;
[0046]
在一些实施例中,端口分配列表是表明已经连接的终端与端口分组的对应关系的列表。由于在一组端口被分配之后,使用状态列表中将会对该组端口更改为已使用的状态,因此,每组端口仅能对应于一个终端。端口分配列表的形式例如可以如下表所示:
[0047]
station ip端口范围192.168.1.21025~1025 b-1192.168.1.31025 b~1025 2
×
b-1192.168.1.41025 2
×
b~1025 3
×
b-1
[0048]
其中,station ip为已连接的终端对应的内网ip,b为单个分组对应的端口数量。
[0049]
步骤310,当终端连接成功时,依据所述使用状态列表为所述终端分配一组端口,并更新使用状态列表和端口分配列表;
[0050]
在一些实施例中,在终端连接成功后,采用使用状态列表中未使用的端口分组为终端分配,分配完成后,将对应的端口分组的使用状态修改为已使用状态,而端口分配列表中,则添加终端与端口分组的对应关系。此时,终端并不对应具体的端口资源,而是在后续终端进行数据发送和接收的过程中,再从对应的分组中分配具体的端口资源进行占用。
[0051]
步骤320,当终端断开连接时,从所述端口分配列表中删除对应的记录条目,并更新使用状态列表。
[0052]
在一些实施例中,在终端断开连接时,对应的端口分组不再与终端具有对应关系,因此,应当从端口分配列表中予以删除,此时,使用状态列表中对应分组的状态修改为未使
用状态,以便后续其他终端连接时进行使用。
[0053]
本实施方式中,提供一种示例性的实施例,对终端连接和断开过程中的端口分配列表和使用状态列表变化过程进行展示,具体如下:
[0054]
在移动无线路由器的初始状态下,没有任何终端连接,因此,此时的使用状态列表如下:
[0055]
端口范围使用状态(未使用-false,已经使用-true)1025~1025 b-1false1025 b~1025 2
×
b-1false1025 2
×
b~1025 3
×
b-1false1025 4
×
b~1025 5
×
b-1false1025 4
×
b~1025 5
×
b-1false
…………
[0056]
而端口分配列表如下:
[0057]
station ip端口范围nullnull
[0058]
在第一个终端连接时,为该终端分配端口分组,此时使用状态列表如下:
[0059][0060][0061]
而端口分配列表如下:
[0062]
station ip端口范围192.168.1.21025~1025 b-1
[0063]
在第二个终端连接时,为该终端分配端口分组,此时使用状态列表如下:
[0064]
端口范围使用状态(未使用-false,已经使用-true)1025~1025 b-1true1025 b~1025 2
×
b-1true1025 2
×
b~1025 3
×
b-1false1025 4
×
b~1025 5
×
b-1false1025 4
×
b~1025 5
×
b-1false
…………
[0065]
而端口分配列表如下:
[0066]
station ip端口范围192.168.1.21025~1025 b-1192.168.1.31025 b~1025 2
×
b-1
[0067]
在第三个终端连接时,为该终端分配端口分组,此时使用状态列表如下:
[0068][0069][0070]
而端口分配列表如下:
[0071]
station ip端口范围192.168.1.21025~1025 b-1192.168.1.31025 b~1025 2
×
b-1192.168.1.41025 2
×
b~1025 3
×
b-1
[0072]
此时,如果第二个终端断开连接,则删除端口分配列表对应的条目并更新使用状态列表,此时,使用状态列表如下:
[0073]
端口范围使用状态(未使用-false,已经使用-true)1025~1025 b-1true1025 b~1025 2
×
b-1false1025 2
×
b~1025 3
×
b-1true1025 4
×
b~1025 5
×
b-1false1025 4
×
b~1025 5
×
b-1false
…………
[0074]
而端口分配列表如下:
[0075]
station ip端口范围192.168.1.21025~1025 b-1192.168.1.41025 2
×
b~1025 3
×
b-1
[0076]
当第四个终端连接时,为该终端分配端口分组,此时使用状态列表如下:
[0077]
端口范围使用状态(未使用-false,已经使用-true)
1025~1025 b-1true1025 b~1025 2
×
b-1true1025 2
×
b~1025 3
×
b-1true1025 4
×
b~1025 5
×
b-1false1025 4
×
b~1025 5
×
b-1false
…………
[0078]
而端口分配列表如下:
[0079]
station ip端口范围192.168.1.21025~1025 b-1192.168.1.41025 2
×
b~1025 3
×
b-1192.168.1.51025 b~1025 2
×
b-1
[0080]
上述示例性实施例示例性的展示了在终端连接和断开的过程中,端口分配列表和使用状态列表的变化过程。
[0081]
在本发明实施例提供的技术方案中,通过对可用端口进行分组,为每个已连接的终端分配一组端口,当接收到服务器端发送的下行数据时,仅需要判断该下行数据的端口对应于哪一组就可以识别出数据流向,从而,在端口转换之前即可对终端进行流量均衡,能够有效的减少处理器的占用时间,提高数据的处理效率。
[0082]
作为一种可选的实施方式,如图2所示,步骤100中,所述对可用端口进行分组包括:
[0083]
步骤110,从可用端口中确定若干个预留端口;
[0084]
在一些实施例中,在局域网中,通常需要保留部分端口作为预留端口,预留端口不能被占用,例如,在局域网中部分终端需要使用静态的端口时,被这部分终端配置的端口不应当被其他的终端动态占用,应当将其保留为预留端口。
[0085]
步骤120,对预留端口之外的可用端口进行分组,每组至少包括一个可用端口。
[0086]
在一些实施例中,在保留了预留端口之后,将其他的端口分组,由连接到路由设备的终端动态使用。为了保证连接到路由设备的终端具有充足的端口资源,应当保证每组至少有一个可用端口。
[0087]
在本实施方式中,保留了预留端口不参与分组,确保了具有特殊端口需求的终端能够正常使用。
[0088]
作为一种可选的实施方式,步骤100中,所述对可用端口进行分组包括:
[0089]
步骤130,依据所述路由设备的能同时连接的最大终端数量对所述可用端口分组,以使所述分组数量与所述最大终端数量相同。
[0090]
在一些实施例中,当可用端口的分组数量大于路由设备能同时连接的最大终端数量时,将会造成部分端口资源永远不被使用,形成端口资源的浪费。而当可用端口的分组数量小于路由设备能同时连接的最大终端数量时,将会降低路由设备同时连接的终端数量。因此,作为一种优选的实施方式,应当将可用端口的分组数量与路由设备能同时连接的最大终端数量相同。
[0091]
作为一种可选的实施方式,步骤100中,所述对可用端口进行分组包括:
[0092]
步骤140,对所述可用端口均匀分组,以使每组的可用端口数量相同。
[0093]
在一些实施例中,为了确保每个连接到路由设备的终端都具有充足的端口资源,在本实施方式中,对可用端口进行均匀分组,确保每组的可用端口数量相同。这种分组方式下,无论终端被分配哪一个端口分组,都具有充足的端口资源。
[0094]
作为一种可选的实施方式,同一组内的可用端口的端口号是连续的。
[0095]
在一些实施例中,将同一组内的可用端口的端口号设置为连续的,能够更方便的对端口分组的管理,同时,还有利于减少端口分配列表和使用列表中记录的信息。
[0096]
作为一种可选的实施方式,采用起始端口号和结束端口号对所述同一组内的可用端口进行确定。
[0097]
在一些实施例中,通过起始端口号和结束端口号的方式对端口分组的确定,能够以最少的信息实现端口的分组维护,有利于节省存储和计算资源。
[0098]
作为一种可选的实施方式,步骤310中,所述依据所述使用状态列表为所述终端分配一组端口包括:
[0099]
步骤311,将所述使用状态列表中的任一未使用分组分配给所述终端,以在端口转换过程中使用对应分组内的端口。
[0100]
在一些实施例中,对于新接入的终端来说,可以将使用状态列表中任何一个未使用的分组进行分配,作为一种优选的方式,为了便于管理,优先选择端口号靠前的分组向新接入的终端进行分配。
[0101]
作为一种可选的实施方式,步骤310中,所述在端口转换过程中使用对应分组内的端口包括:
[0102]
步骤312,当终端发送上行数据包时,将对应分组内的任一端口分配给所述终端,并记录在端口转换列表中,以使服务器端向对应的端口回复响应消息。
[0103]
在一些实施例中,在完成端口分组的分配后,终端并未实现对具体端口资源的占用。终端对于具体端口资源的占用,通常是终端在发送上行数据包时实现的。而端口分组的分配,则对终端发送上行数据包时对具体端口资源的占用形成了限制。当终端发送上行数据包时,仅能够占用对应分组内的端口资源。
[0104]
本发明实施还提供一种数据流向的识别方法,执行于路由设备中,所述路由设备依上述任意一项所述的方法分配端口,包括:
[0105]
步骤400,获取服务器端发送的下行数据;
[0106]
在一些实施例中,服务器端通常响应于终端的请求向终端发送消息,在服务器端发送消息时,其目标地址是路由设备的外网网卡的ip地址,并且具有具体的端口号。
[0107]
步骤500,依据所述下行数据,确定目标端口所在的分组;
[0108]
在一些实施例中,从下行数据中获得端口号之后,可以查询端口分配列表,确定该端口号对应于哪一个分组,由于端口分组与终端是一一对应的,获知端口分组后,即可进一步的获知下行数据的目标是哪一个终端。
[0109]
步骤600,依据所述分组,确定所述下行数据对应的目标终端。
[0110]
在一些实施例中,在端口分配列表中,端口分组与终端是一一对应的,在步骤500中获知了端口分组,在同一条目中查询对应的终端的字段,即可确定下行数据是流向哪一个终端。从而,在完成napt转换之前即可确定数据的流向。
[0111]
在本发明实施例提供的技术方案中,通过对可用端口进行分组,为每个已连接的
终端分配一组端口,当接收到服务器端发送的下行数据时,仅需要判断该下行数据的端口对应于哪一组就可以识别出数据流向,从而,在端口转换之前即可对终端进行流量均衡,能够有效的减少处理器的占用时间,提高数据的处理效率。
[0112]
作为一种可选的实施方式,如图4所示,在步骤600中,在依据所述分组,确定所述下行数据对应的目标终端之后,还包括:
[0113]
步骤700,判断所述目标终端的流量是否超过平均流量;
[0114]
在一些实施例中,当有多个终端连接路由设备时,会出现流量共享和竞争,为了保证连上的终端都能正常上网,需要做流量均衡。当某一终端使用流量超过平均流量,需要对它做限速。因此,在本实施方式中,在获知下行数据的数据流向之后,对目标终端的流量进行判断。
[0115]
步骤710,当所述目标终端的流量超过平均流量时,将所述下行数据丢弃;
[0116]
在一些实施例中,当目标终端的流量超过平均流量时,应当对目标终端进行限速,此时,可以通过将下行数据丢弃的方式实现。
[0117]
步骤720,当所述目标终端的流量未超出平均流量时,将所述下行数据的目标地址进行端口转换并发送至目标终端。
[0118]
在一些实施例中,当目标终端的流量未超出平均流量时,不需要对目标终端进行限速,直接将下行数据进行正常的转换和发送即可。
[0119]
图5示例性的示出了一种数据流向的识别方法,如图5所示,对于服务器端发送的下行数据,路由设备依据端口号首先判断该下行数据是发送到哪个终端的,并依据该判断结果直接进行流量均衡处理。即,无需进行napt转换即可实现流量的均衡,因而,能够减少处理器的占用时间,提高处理器的效率。
[0120]
本领域普通技术人员可以理解实现上述方法实施例中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)或随机存储记忆体(random access memory,ram)等。
[0121]
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献