网络设备报文观测数据采集方法
技术领域
本发明专利涉及通信领域中的网络测量,具体涉及网络设备报文观测数据采集方法。
背景技术
在数据中心等应用场景中,为了更好的管控网络。网络管理者需要对网络中的各个TCP流的大小(即,传输的数据量)进行监控和统计,以便检测网络攻击、诊断网络故障、优化网络路由等。针对这样的流量测量需求,现有网络设备所支持的测量工具主要有netflow和sflow。netflow需要在网络设备上进行复杂的数据处理,在高速网络上需要特殊硬件的支持,因此目前支持并不广。为了减少需要采集和处理的数据量,sflow对经过的数据进行随机采样,再发送到远端服务器做进一步分析。这样设计降低了测试引入的额外开销,但是测量的精度受限,对突发小流不友好。此外,有一些研究性方案采用选择性数据镜像的方案,将部分或者全部数据mirror到远端服务器进行处理,他们同样存在测试开销大的问题;另外的一些研究性方案对数据进行sketch计算,将sketch结果汇报给控制,存在测量精度损失的问题。综上,现有网络设备的TCP报文观测数据采集方案要么计算处理复杂,需要高性能的网络硬件实现高速网络中的测量,要么测量的精度粗,对突发小流的测量不友好,测量引入的带宽开销和CPU处理开销大,扩展性弱。
发明内容
本发明的主要目的在于提供一种细粒度、低开销、高扩展性的网络设备报文观测数据采集方法。
为了实现上述目的,本申请采用的技术方案是一种网络设备报文观测数据采集方法,包括以下操作:
网络设备数据转发面当收到一个TCP报文后,如该报文为SYN报文、FIN报文或SEQ=0的报文中的任意一种,则为该TCP报文生成观测数据,发送给网络设备的控制面;
网络设备的控制面缓存数据转发面提交的报文观测数据;
控制面接收所述报文观测数据后,控制面对报文观测数据进行以下处理:
S1.对所述报文观测数据中的五元组字段进行哈希计算,获得一个0到N-1之间的整数编号f;
S2.当缓存中第f个单元中缓存有报文观测数据,将该单元中缓存的观测数据和当前报文观测数据一起发送给远端控制器,并将该第f个单元中缓存的内容清空;
当缓存中第f个单元中没有缓存有报文观测数据,将当前报文观测数据缓存到f单元中;
S3.处理结束。
相比于其他报文观测数据采集方法,本方法是一种支持细粒度、低开销,具备可扩展性的测量方法,能够对包括小流在内的TCP流的传输数据量进行精确测量,并且能够在现有硬件上实现。
进一步的是,所述报文观测数据包括TCP报文的类型、报文到达时间、五元组信息和SEQ值。
进一步的是,所述控制面接收所述报文观测数据后,每隔一段时间,扫描一次缓存的所有报文观测数据并将其发送给远端控制器并清空控制面所缓存观测数据。
进一步的是,所述控制面向远端控制器发送数据时,该数据同时包含所述网络设备的身份编号。
进一步的是,网络设备的控制面通过一片连续内存以缓存数据转发面提交的报文观测数据。
进一步的是,所述一片连续内存包括N个存储单元,N个存储单元中的每个单元存储的内容包括所缓存观测数据的类型、报文到达时间、TCP五元组信息和SEQ值。
进一步的是,所述内存中缓存的观测数据类型包括四种,分别为:
NUL(0),表示未缓存内容;
SYN(1),表示缓存的内容为SYN报文的观测数据信息;
SEQ=0(2),表示缓存的内容为SEQ=0的报文的观测数据信息;
FIN(3),表示缓存的内容为FIN报文的观测数据信息。
本发明还提供一种显著减少网络设备和控制器之间的通信开销、提供细粒度测量能力的TCP流量测量方法。
为了实现上述目的,本申请采用的技术方案是一种事件驱动的细粒度TCP流量测量方法,包括在网络设备上进行TCP报文观测数据的识别和获取,在远端逻辑集中控制器上进行TCP已发送数据量的分析和估计;
其中,当网络设备在收到指定类型的TCP报文后,进行该操作:将该报文的观测数据缓存在本地网络设备;
如果所要缓存的位置已经存有内容,则上述报文观测数据内容缓存失败;直接将准备要缓存的报文观测数据内容和缓存中对应位置的内容一并发送给控制器,并将该缓存位置内容置空;
如果所要缓存的位置未存有内容,该报文观测数据内容缓存成功。
进一步的是,上述直接将准备要缓存的报文观测数据内容和缓存中对应位置的内容一并发送给控制器时,上述网络设备周期性的将上述报文观测数据内容和缓存中对应位置的内容上报给控制器,这样以减少内容上报的频率和传输开销。
进一步的是,当网络中有多个网络设备均具备TCP报文观测数据采集能力时,远端控制器根据TCP流的路由,将不同TCP流的报文观测数据采集任务进行分割并分配到不同的设备上处理。
进一步的是,在网络设备每当收到指定类型的TCP报文后,将该TCP报文的类型、报文到达时间、五元组信息和SEQ值,即该报文的观测数据,发送给网络设备的控制面。
进一步的是,上述网络设备控制面将上述报文观测数据与其设备身份标识一并发送给远端控制器;远端控制器根据所有网络设备反馈的报文观测数据计算出各个TCP流的大小信息。
进一步的是,在远端控制器根据所有网络设备反馈的报文观测数据计算出各个TCP流的大小信息时,对于设定的时间段T内重复出现的五元组信息相同的报文观测数据,远端控制器不重复进行计算。
进一步的是,本方法可用于一种事件驱动的细粒度TCP流量测量方法中,在进行数据采集之前,进行网络设备测量采集任务的划分,提供一种减少带宽开销的网络设备报文观测数据采集任务划分方法,包括以下操作:
统计出所有能对TCP流生成报文观测数据的网络设备;
设定具有相同发送节点和接收节点的一组通信需求为一个通信对;
对所有的通信对按照估计包含的TCP流数目由大到小进行排序;
按照排序后获得的顺序,依次确定各个通信对所对应的报文观测数据采集任务,并将报文观测数据采集任务分配到不同的网络设备;
其中,将同时拥有多条传输路径且经过每条传输路径的TCP流数目已知的通信对组成的所有路径,构建一个有向无环图,该有向无环图的一条有向边对应传输路径上的一条单向链路;对该通信节点传输路径经过链路上的报文观测数据采集任务进行测量得到测量值,并根据每条链路上的测量值,依次为每个通信对的每个传输路径的上TCP流选择具体的报文观测数据采集节点。
即网络中有多个设备具备细粒度TCP报文观测数据采集能力,那么控制器可以对所有TCP流的报文观测数据采集任务进行划分,分发到不同设备,减少每个设备的处理负担。通过采用本报文观测数据采集任务划分方法,可以避免重复测量,均衡各个网络设备的报文观测数据采集任务负载。
进一步的是,上述通信对为一个子网或者主机到另外一个子网或者主机之间的传输路径。
进一步的是,对上述对所有的通信对按照估计包含的TCP流数目由大到小进行排序,上述通信对还包括上述一个子网或者主机到另外一个子网或者主机之间的TCP流数目的信息。
进一步的是,只有在某个TCP流在一个上述网络设备上设置为检测时,该网络设备才对TCP流进行报文检测处理并按需生成报文观测数据。
进一步的是,对于发送节点为s,接收节点为d的一组通信需求,其报文观测数据生成任务采集节点的选择操作包括以下步骤:
1)为有向无环图中每个边设置一个权重,取值代表由该链路上已安排的报文观测数据采集任务需要处理TCP流数目的估计值;
2)使用最小割算法,计算有向图中s到d的最小边割集E,使得删除该集合中的有向边后,s到d不再可达;如果存在多个最小割边集合,随机选择一个即可;
3)对于被选中的有向边集合E中从节点u到节点v的有向边u-v,将节点v设置为s到d的通信对所包含的流的报文观测数据采集节点,将该通信对中经过链路u-v的TCP流数目,累加到网络中有向边u-v对应的权重值并更新。
进一步的是,上述有向边集合E为选择的边割集中有向边权重之和最小的有向边集合。
进一步的是,采集到网络设备上的报文观测数据后,对每个TCP流已传输的数据量进行估计,包括:
将TCP报文的观测数据按照与流的隶属关系进行拆分;
针对隶属与每个流的TCP报文观测数据返估该流已发送的数据量。
进一步的是,上述报文观测数据包括TCP报文的类型、报文到达时间、五元组信息和SEQ值,该TCP流已传输数据量估计方法包括以下操作步骤:
S1.控制器接收采集设备汇报的TCP报文观测数据并根据报文观测数据的五元组值对报文观测数据进行分组;
S2.对于每组报文观测数据,如果有多个观测数据具有相同的类型以及SEQ值,且捕获时间(即报文到达时间)之差小于设定的时间T,则该多个报文观测数据为重传数据的观测数据或者同一报文在不同设备上重复捕获的观测数据,只保留一个;
S3.对于去冗后的报文观测数据,挑选出其中类型为SYN的观测数据,按其捕获时间的先后顺序进行排序;
S4.按照SYN类型报文观测数据的捕获时间将时间划分为多个区间,将位于一个时间区间内的TCP报文观测数据划分为一个流,最后一个区间的报文观测数据划分为最后一个流;
S5.控制器针对隶属与每个流的报文观测数据,返估该TCP流已传输的数据量。
相比于其他方法,本发明上述方法能够正确识别SEQ可能出现的回绕,同时能够消除路由变更、重复报文观测引入的干扰,提高TCP已发送数据量估计的准确度。
进一步的是,远端控制器TCP流已传输数据量估计方法,上述报文观测数据包括TCP报文的类型、报文到达时间、五元组信息和SEQ值,包括以下操作步骤:
S1.控制器接收报文观测数据并根据报文观测数据的五元组值对报文数据进行分组;
S2.对于每组报文观测数据,如果有多个报文观测数据具有相同的类型和SEQ值,且捕获时间之差小于设定的时间T,则该多个报文观测数据为重传数据的观测数据,或者同一报文在不同设备上重复捕获的观测数据,只保留一个;上述的时间T为设定的阈值;
S3.对于去冗后的所有报文观测数据,挑选出其中类型为SYN的观测数据,按其捕获时间的先后顺序进行排序;
S4.将位于一个时间区间的报文观测数据划分为一个流,将位于最后一个区间的报文观测数据划分为最后一个流;
S5.控制器针对隶属与每个TCP流的报文观测数据,估计该TCP流已发送的数据量。
进一步的是,控制器针对隶属与每个TCP流的报文观测数据,估计其已发送的数据量时,包括以下操作:
设SYN报文中的SEQ为SEQ1,FIN中的报文中的SEQ值为SEQ2,SEQ=0的报文出现的次数为k;
进行如下计算:
1)如果该流存在FIN报文观测数据,则该流大小=SEQ2-SEQ1+k*2^32;
2)如果该流不存在FIN报文观测数据且k>0,则该流大小=k*2^32-SEQ1,为不精确估计;
3)如果该流不存在FIN报文观测数据且k=0,则不进行估计。
进一步的是,将位于一个时间区间内的报文观测数据划分为一个TCP流,具体为:
控制器从去冗后的所有报文观测数据中,挑选出其中类型为SYN的报文观测数据,按其捕获时间的先后顺序进行排序。
进一步的是,上述进行排序具体为:
设共有多个SYN报文观测数据,排序后据根这些SYN报文观测数据的据捕获时间将时间划分为多段,位于一时间区间内的多个连续捕获的报文观测数据划分为一个单独的TCP流,位于最后一个区间的报文观测数据划分为最后一个流。
进一步的是,上述进行排序具体的步骤为:
1)设共有m个SYN报文观测数据观测数据,排序后它们的捕获时间分别为t[1],t[2],...,t[i],...,t[m];
2)控制器将所有位于时间区间[t[i]-T1-T2,t[i+1]-T1-T2)内的所有报文观测数据,划分为属于第i个流,其中i=1,2,...,m-1,共m-1个流;对于t[m]-T1-T2之后的所有报文观测数据,认为其属于最后一个流,即第m个流。
下面结合具体实施方式对本发明做进一步的说明。本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显。或通过本发明的实践了解到。
附图说明
构成本发明的一部分的附图用来辅助对本发明的理解,附图中所提供的内容及其在本发明中有关的说明可用于解释本发明,但不构成对本发明的不当限定。在附图中:
图1为用于说明本实施例中的事件驱动的细粒度TCP流量测量方法总体流程图;
图2为用于说明本实施例中的事件驱动的细粒度TCP流量测量方法中报文观测数据采集任务进行划分的流程图;
图3为用于说明本实施例中的事件驱动的细粒度TCP流量测量方法中数据采集的流程图;
图4为用于说明本实施例中的事件驱动的细粒度TCP流量测量方法中控制器将观测数据按照流的隶属关系进行拆分的流程图;
图5为用于说明本实施例中采集任务进行划分的通信对所在网络的示意图;
图6为用于说明本实施例中采集任务进行划分的处理通信对b-h请求时对应的有向无环图;
图7为用于说明本实施例中采集任务进行划分的处理通信对a-g请求时对应的有向无环图。
具体实施方式
下面结合附图对本发明进行清楚、完整的说明。本领域普通技术人员在基于这些说明的情况下将能够实现本发明。在结合附图对本发明进行说明前,需要特别指出的是:
本发明中在包括下述说明在内的各部分中所提供的技术方案和技术特征,在不冲突的情况下,这些技术方案和技术特征可以相互组合。
此外,下述说明中涉及到的本发明的实施例通常仅是本发明一分部的实施例,而不是全部的实施例。因此,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
关于本发明中术语和单位。本发明的说明书和权利要求书及有关的部分中的术语“包括”以及它的任何变形,意图在于覆盖不排他的包含。
以上对本发明的有关内容进行了说明。本领域普通技术人员在基于这些说明的情况下将能够实现本发明。基于本发明的上述内容,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
下面结合附图对本发明进行清楚、完整的说明。本领域普通技术人员在基于这些说明的情况下将能够实现本发明。在结合附图对本发明进行说明前,需要特别指出的是:
本发明中在包括下述说明在内的各部分中所提供的技术方案和技术特征,在不冲突的情况下,这些技术方案和技术特征可以相互组合。
此外,下述说明中涉及到的本发明的实施例通常仅是本发明一分部的实施例,而不是全部的实施例。因此,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
关于本发明中术语和单位。本发明的说明书和权利要求书及有关的部分中的术语“包括”以及它的任何变形,意图在于覆盖不排他的包含。
以上对本发明的有关内容进行了说明。本领域普通技术人员在基于这些说明的情况下将能够实现本发明。基于本发明的上述内容,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
本实施方式采用了一种事件驱动的细粒度TCP流量测量方法,在网络设备上进行TCP报文观测数据的采集,在远端逻辑集中控制器进行网络中TCP流已传输数据量的分析和估计;
其中,当网络设备在收到指定类型的TCP报文后,进行该操作:为该报文生成报文观测数据并缓存在网络设备本地;
如果所要缓存的位置已经存有内容,则上述报文观测数据内容缓存失败;直接将准备要缓存的报文观测数据内容和缓存中对应位置的内容一并发送给控制器,并将该缓存位置内容置空;
如果所要缓存的位置未存有内容,该报文观测数据内容缓存成功。
本方法的数据面功能能够在现有诸如P4可编程交换机上实现。
如图1,实施步骤:
S1、进行网络设备测量采集任务的划分;
S2、网络设备的数据转发面进行报文观测数据的采集;
S3、在远端控制器上对TCP流已传输的数据量进行分析和估计;
在本实施方式的细粒度TCP流量测量方法中,还采用了一种网络设备报文观测数据采集任务划分方法,可以避免重复测量,均衡各个网络设备的测量任务负载。这里考虑控制器知道网络中从一个子网或者主机,到另外一个子网或者主机之间的传输路径,以及对应的TCP流数目的场景(无需非常精确)。
我们将这样的一组通信需求,叫做一个通信对。
如图2,总体而言步骤为:
S101、统计出所有能对TCP流生成报文观测数据的网络设备;
S102、设定具有相同发送节点和接收节点的一组通信需求为一个通信对;
S103、对所有的通信对按照估计包含的TCP流数目由大到小进行排序;
S104、按照排序后获得的顺序,依次确定各个通信对所对应的报文观测数据采集任务,并将报文观测数据采集任务分配到不同的网络设备。
网络中有多个设备具备报文观测数据采集能力,那么控制器可以对报文观测数据的采集任务进行划分,分发到不同设备,减少每个设备的处理负担。此时,某个TCP在一个设备上只有当设置为检测时,该设备才对其进行上述报文检测和观测报文生成处理。
所以相应的,每个报文观测数据采集任务的具体划分方法如下:
1)对所有的通信对按照估计值包含的TCP流数目,从大到小进行排序;
2)按照排序后获得的顺序,依次决定各个通信对所对应的报文观测数据采集任务的安排。
对于每个通信对,假设为src到dst(这里的s和d可以是一个主机IP地址,也可以是一个子网地址前缀),该节点对在网络中的所有可行路形成了一个有向无环图(因为可能采用等价多路径路由,因此可能不止一条)。例如,参照图5,src标记为a,dst标记为g:
网络中有两个通信对a-g,以及b-h,此时网络中各有向边上均未安排测量任务。
其中,通信对a到g一共包含的流数目为3。其中,约有1.5经过路径a->c->e->g传输,另外1.5经过路径a->d->f->g传输(由于流数目是估计值,因此可以出现数目为小数的情况);
通信对b到h一共包含的流数目为5,其中,约有3经过路径b->c->e->h传输,另外该2经过路径b->d->f->h传输。
src在图中对应节点a,dst在图中对应节点g。
任务分配过程如下:
根据包含的流数对通信对进行排序,先多后少进行处理,所以首先处理通信对b-h的报文观测数据采集任务分配。
处理b-h请求时,对应的有向无环图为图6。
此时有向图中b-h有多个最小割,任意一个均可。
假设所使用的最小割算法恰好选中边b->c和d->f。
那么,节点c和f,分别将作为通信对b-h的报文观测数据采集节点,且有向边b->c的权重将更新为3,有向边d->f的权重更新为2。
之后,处理通信对a-g的报文观测数据采集任务,其对应的有向图为图7;
此时有向图中a-g有多个最小割,任意一个均可。
假设所使用的最小割算法恰好选中边a->c和a->d。
那么,节点c和d,分别将作为通信对a-g的报文观测数据采集节点,且有向边a->c的权重将更新为1.5,有向边a->d的权重更新为1.5。
其报文观测数据采集节点的选择决策过程如下:
1)为有向图中每个有向边设置一个权重,取值代表由该有向边(即链路)对应下一跳节点上对应入端口上需要测量的TCP流数目的估计值;
2)找到一个权重最小的有向边集合,假设为E,使得删除该集合中的有向边后,a到g不再可达;如果同时存在多个这样的有向边集合,随机挑选一个即可;
3)将E中的有向边对应的下跳网络设备作为该通信对中经过该链路的TCP流的报文观测数据采集节点,并更新对应有向边的测量任务负载权重值。
依次处理所有通信对的需求,最终即为每个需求都选择好了报文观测数据采集节点。
由此,通过该任务划分的方法能做到避免重复测量,均衡各个网络设备观测数据采集任务负载的目的。
如图3,对于每个收到的TCP报文,网络设备的数据转发面进行报文观测数据的采集,总体流程如下:
S201、网络设备数据转发面当收到一个TCP报文;
S201a、如当前报文为SYN报文、FIN报文或SEQ=0的报文中的任意一种,则为该TCP报文生成观测数据,发送给网络设备的控制面,进行S202;
S201b、如当前报文不为SYN报文、FIN报文或SEQ=0的报文中的任意一种,跳转S206;
S202、网络设备的控制面缓存数据转发面提交的报文观测数据;控制面接收上述报文观测数据;
S204、控制面对上述报文观测数据中的五元组字段进行哈希计算,获得一个0到N-1之间的整数编号f;
S205、当缓存中第f个单元中缓存有报文观测数据,将该单元中缓存的观测数据和当前报文观测数据一起发送给远端控制器,并将该第f个单元中缓存的内容清空;
当缓存中第f个单元中没有缓存有报文观测数据,将当前报文观测数据缓存到f单元中;
S206、处理结束。
具体流程可按下列方式进行:
1)当收到一个报文后,判断当前报文是否为TCP报文中的SYN报文、FIN报文,或SEQ=0的报文,如果是则进行2),否则进行3);
2)为该TCP报文生成观测数据,发送给网络设备的控制面;
3)处理结束。
网络设备的控制面采用一片连续内存缓存数据面提交的报文观测数据信息,一共有N个存储单元,每个单元存储的内容包括:
1)报头类型(2bit):表示有4种可能的存储内容类型,即NUL(0),表示未缓存内容;SYN(1),表示缓存的内容为SYN报文的观测数据信息;SEQ=0(2),表示缓存的内容为SEQ=0报文的观测数据信息;以及FIN(3),表示缓存的内容为FIN报文的观测数据信息;
2)报文到达时间(32bit);
3)TCP五元组信息(对于IPv4,为104bit);即源IP地址(32bit)、目的IP地址(32bit)、源端口号(16bit)、目的端口号(16bit)、协议号(8bit);
4)SEQ值(32bit)
控制面对应的处理包含两种:
(一)在收到数据面发来的报文观测数据后,控制面:
1)对该报文五元组字段进行哈希计算,获得一个0到N-1之间的整数编号,作为该流在网络设备中的身份标识,假设为f;
2)判断缓存中第f个单元中是否缓存有观测数据,如果有,跳转到3),否者跳转到4)
3)将该单元中缓存的"报文类型、到达时间、五元组信息、以及SEQ值",和当前报文的"报文类型、到达时间、五元组信息、以及SEQ值"一起发送给远端控制器,并将该单元中缓存的内容清空;跳转到5);
4)当前报文的"报文类型、到达时间、五元组信息、以及SEQ值"缓存到f单元中;
5)处理结束;
(二)每隔时间T0,周期性地扫描一次缓存的所有报文观测数据,将其发送给远端控制器并清空。
网络设备控制面向远端控制器发送数据时,同时含本设备的身份标识,以便控制器识别和区分。
相比于其他报文观测数据采集方法,本方法是一种支持细粒度、低开销,具备可扩展性的测量方法,能够对包括小流在内的TCP流的传输数据量进行精确测量,并且能够在现有硬件上实现。
控制器收到的报文观测数据含以下几项信息:报文类型、到达时间、五元组信息、SEQ值、以及检测设备的编号。
从很长的时间周期来看,同一对发送主机和接收主机之间可能会进行多次通信,发生在不同时间的多个TCP流可能使用相同的端口号。
相应的,控制器需要对具有相同五元组的报文观测数据进分组,让每组内的报文观测数据对应一个流。
由于网络中不同设备的时钟之间不可能完全一样,并且一个TCP流的一些报文因为路由的变更,可能由不同设备捕获。为了减少时间设备之间时间误差的影响,网络中的所有设备需要进行时间同步。这里,假设不同设备之间时钟之间的最大差异为T1,网络的最大单向延迟为T2。
此外,TCP可能触发数据重传,对于这类重传数据的报文观测数据,控制器也需要去冗。
在该事件驱动的细粒度TCP流量测量方法中,完成数据采集后,便可采用TCP流已传输数据量估计方法,用于远端控制器,具体操作如下:
远端控制器对获得的观测数据进行分类操作,控制器首先将这些观测数据按照流的隶属关系进行拆分,参照图4,处理流程如下:
S301、控制器将所有收到的观测数据,根据他们的五元组值进行分组;
S302、对于每组报文观测数据,如果有多个报文观测数据具有相同五元组信息,且捕获时间小于T3(该值可配置),则认为他们为重传数据的报文观测数据,或者不同设备对同一个数据重复捕获的报文观测数据,只保留一个;
S303、对于去冗后的所有报文观测数据,挑选出其中类型为SYN的报文观测数据,按其捕获时间的先后顺序进行排序。假设一共有m个SYN报文观测数据观测数据,排序后它们的捕获时间分别为t[1],t[2],...,t[i],...,t[m];
S304、控制器将所有位于时间区间[t[i]-T1-T2,t[i+1]-T1-T2)内的所有报文的观测数据对应的TCP报文观测数据划分为属于一个单独的流,其中i=1,2,...,m-1,共m-1个流;对于t[m]-T1-T2之后的所有报文观测数据,认为其属于最后一个流。
S305、控制器针对隶属与每个流的报文观测数据,返估该TCP流已传输的数据量。
假设SYN报文观测数据中的SEQ为SEQ1,FIN报文观测数据的SEQ值为SEQ2,SEQ=0的报文观测数据出现的次数为k。那么计算过程如下:
1)如果该流存在FIN报文观测数据,则该流大小=SEQ2-SEQ1+k*2^32;
2)如果该流不存在FIN报文观测数据且k>0,则该流大小=k*2^32-SEQ1,为不精确估计;
3)如果该流不存在FIN报文观测数据且k=0,则不进行估计。
以上对本发明的有关内容进行了说明。本领域普通技术人员在基于这些说明的情况下将能够实现本发明。基于本发明的上述内容,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应当属于本发明保护的范围。