CN116633828A - 基于时钟计数和系统时间戳映射关系的网络收包计时方法 - Google Patents

基于时钟计数和系统时间戳映射关系的网络收包计时方法 Download PDF

Info

Publication number
CN116633828A
CN116633828A CN202210128659.XA CN202210128659A CN116633828A CN 116633828 A CN116633828 A CN 116633828A CN 202210128659 A CN202210128659 A CN 202210128659A CN 116633828 A CN116633828 A CN 116633828A
Authority
CN
China
Prior art keywords
tsc
time stamp
count value
network
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210128659.XA
Other languages
English (en)
Inventor
韩韶华
陈志明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuxi Changyun Network Co ltd
Original Assignee
Wuxi Changyun Network Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuxi Changyun Network Co ltd filed Critical Wuxi Changyun Network Co ltd
Priority to CN202210128659.XA priority Critical patent/CN116633828A/zh
Publication of CN116633828A publication Critical patent/CN116633828A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • H04L43/106Active monitoring, e.g. heartbeat, ping or trace-route using time related information in packets, e.g. by adding timestamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请提供了一种基于时钟计数和系统时间戳映射关系的网络收包计时方法。该方法包括:先设置CPU运行在固定频率,并定时维护当前时间前后若干秒范围内系统时间戳整秒对应的TSC基准计数值。查询TSC计数值对应时间戳时,数值依次同维护好的TSC基准计数值进行比对,得到不大于且最接近查询计数值的基准计数值,然后读取该基准计数值对应的时间戳秒数,即得到TSC计数值对应的时间戳秒数。本申请提供的计算方法可以应用到旁路或者串行部署的网络流量分析设备中,也可以应用到网络报文分析软件中,以及应用到多采集点的网络故障分析系统中。

Description

基于时钟计数和系统时间戳映射关系的网络收包计时方法
技术领域
本申请涉及计算机网络技术领域,尤其是高带宽网络的实时流量分析。
背景技术
随着计算机网络技术的发展,万物互联成为物联网、大数据和人工智能等新兴应用的基础。网络硬件性能越来越高,网络流量越来越大。网络的开放性、互连性等特征,也使网络易受黑客、恶意软件的攻击和入侵,构成网络安全威胁。
全流量实时网络分析通过对网络信息流的采集并分析,帮助网络管理者及时获得网络流量的特征信息,有助于进行网络容量规划、网络性能监控、网络行为分析以及网络攻击溯源,为网络的稳定、安全、高效运行提供技术保障。
全流量网络实时分析提供完整并相互关联的数据包分析,因此需要精确、实时地处理每个网络流和数据包,尤其是同一条流所包含的数据包,其中每个数据包的时间戳必须精准,否则无法保障分析的精确性。但是对于万兆级网络流量的实时分析来说,每个数据包的接收和处理时间必须要足够短,否则会造成网络丢包或堵塞。因此数据包分析需要尽可能避免耗时操作,例如通过浮点运算获取数据包的时间戳。如果每个数据包的接收处理时间能节省几个微秒甚至几十个纳秒,那么对于万兆级网络流量分析的性能提升也是十分可观的,有助于以最小的计算资源实现无丢包的实时而精准的数据包分析。
发明内容
本申请提供了一种通过定时维护CPU TSC计数和系统时间戳的映射关系,快速获得网络收包时间的简易方法。
具体本申请是通过如下技术方案实现的:
l 选用支持TSC计数的CPU,例如x86或ARM处理器。
l 设置CPU工作频率为固定频率,应用程序获取CPU工作频率值。
l 应用程序定时维护当前时间前后若干秒内的系统时间戳整秒及其对应时间点的CPU TSC计数值的映射表。(注:用户可以根据实际工作环境自定义若干秒的数值)
l 网卡驱动收包时读取并存储即时的CPU TSC计数值。
l 实时包处理模块计算数据包接收时间时,使用收包时读取的TSC计数值从维护好的映射表中依次比对,得到不大于且最接近计数值的映射表项,映射表项中的时间戳数值即为所求数据包的时间戳。整个过程无需执行耗时的浮点运算指令。
附图说明
图1是定时维护最近系统时间戳与TSC计数值之间映射关系的流程图;
图2是定时操作完成后,队列的数据示例图;
图3是搜索系统时间戳与TSC计数映射表,并找到当前TSC计数值最匹配的系统时间戳的流程图;
具体实施方式
本申请涉及的技术和术语:
l TSC, Time Stamp Counter,CPU维护的自启动以来的时钟周期计数。
l 系统时间戳(例如Unix timestamp),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数。其中Unix系统时间戳不仅被使用在Unix系统、也在许多其他操作系统中被广泛采用。
l 包(Packet)是TCP/IP协议通信传输中的数据单位,一般也称"数据包"。
下面以Unix系统为示例,详细说明如何定时维护Unix时间戳与TSC计数值之间的映射关系。
参见图1,描述操作的流程图
S101、获取当前时间戳和TSC计数值:通过系统调用或API获得当前Unix时间戳和CPUTSC计数值。
S102、时间戳和TSC计数值对齐秒数:S101读取的时间戳不是整数秒的,是带有小数点的值,可以通过去掉小数得到整秒数值。对应同时读取的TSC数值,可以减去CPU频率乘以时间戳小数点的乘积,得到整秒对应的TSC数值。
S103、设置队列各项的值:空队列时,队列中间的项存储S102中得到的时间戳和TSC数值。然后前后的项,分别依次存储时间戳加和减一秒后的值,对应存储TSC值加和减CPU工作频率后得到的值。循环把队列填满。由于面向实时应用,维护的队列时间范围在当前时间前后若干秒(比如3秒)即可。
S104、去除队列首项,追加的项设置最新值:队列非空时,由于是定时操作,可以老化去掉最早时间的一项,并在队列末尾加上最新时间的一项。更新项的TSC值,基于S102中重新计算得到的值,不使用前面已生成的TSC加上CPU工作频率来得到,避免长时间开机后CPU工作频率不稳定引起的误差。队列操作可以使用循环队列数据结构来优化性能。
参见图2,描述定时操作完成后,队列项的数据示例
可以加入指针变量指向队列中当前时间戳的项。
搜索Unix时间戳与TSC计数映射表找到现在TSC计数值最匹配的Unix时间戳
当带有TSC数值的数据包需要确定具体时间时,使用本操作。
本操作示例可以使用二分搜索法,但不是必须,使用循环依次搜索也可以,性能差别可忽略。
参见图3,描述操作示例流程图
S301、比较队列当前项与搜索TSC值大小:从维护好的时间戳与TSC数值的映射表中读取最近一次更新项的TSC数值,同当前待查询的TSC数值进行比较。
S302、顺着队列向前搜索:如果待查询数值小于当前项的TSC数值,则顺着队列向前搜索,直至找到搜索值大于等于队列项存储的TSC值,则该队列项存储的时间戳即为期望的时间戳。
S303、顺着队列向后搜索:如果待查询数值大于当前项的TSC数值,则顺着队列向后搜索,直至找到搜索值小于队列项存储的TSC值,则该队列项的前一项存储的时间戳即为期望的时间戳。

Claims (1)

1. 基于时钟计数和系统时间戳映射关系的网络收包计时方法,其特征在于,包括: 应用于收取高流量网络报文并进行深度包解析场景;定时维护当前时间前后若干秒内的系统时间戳整秒数及其对应的CPU TSC计数值的映射表;收取网络数据包时读取即时CPU TSC计数值;
解析数据包需要确定数据包到达时间戳时,通过对维护好的映射表进行查表操作来获取数据包TSC数值对应的时间戳信息,避免使用浮点指令来提高操作性能。
CN202210128659.XA 2022-02-11 2022-02-11 基于时钟计数和系统时间戳映射关系的网络收包计时方法 Pending CN116633828A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210128659.XA CN116633828A (zh) 2022-02-11 2022-02-11 基于时钟计数和系统时间戳映射关系的网络收包计时方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210128659.XA CN116633828A (zh) 2022-02-11 2022-02-11 基于时钟计数和系统时间戳映射关系的网络收包计时方法

Publications (1)

Publication Number Publication Date
CN116633828A true CN116633828A (zh) 2023-08-22

Family

ID=87637001

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210128659.XA Pending CN116633828A (zh) 2022-02-11 2022-02-11 基于时钟计数和系统时间戳映射关系的网络收包计时方法

Country Status (1)

Country Link
CN (1) CN116633828A (zh)

Similar Documents

Publication Publication Date Title
US9170984B2 (en) Computing time-decayed aggregates under smooth decay functions
JP2020529171A (ja) トラフィック測定方法、デバイス、およびシステム
CN110287163B (zh) 安全日志采集解析方法、装置、设备及介质
CN111124819A (zh) 全链路监控的方法和装置
CN109684052B (zh) 事务分析方法、装置、设备及存储介质
CN112434039A (zh) 数据的存储方法、装置、存储介质以及电子装置
EP3282643B1 (en) Method and apparatus of estimating conversation in a distributed netflow environment
US10313209B2 (en) System and method to sample a large data set of network traffic records
EP3679473B1 (en) A system and method for stream processing
US7032073B2 (en) Cache system for network and multi-tasking applications
Amer et al. Management of sampled real-time network measurements
CN110990438A (zh) 数据处理方法、装置、电子设备和存储介质
WO2020123030A1 (en) Discovering a computer network topology for an executing application
EP4075749A1 (en) Detection method and detection device for heavy flow data stream
EP2634699B1 (en) Application monitoring
US11709619B2 (en) Method, electronic device, and computer program product for processing data
CN114398520A (zh) 数据检索方法、系统、装置、电子设备及存储介质
KR20050052636A (ko) 인터넷 트래픽 측정을 위한 플로우 생성 방법
CN111464629B (zh) 热点数据确定方法及装置
CN117176802A (zh) 一种业务请求的全链路监控方法、装置、电子设备及介质
CN116633828A (zh) 基于时钟计数和系统时间戳映射关系的网络收包计时方法
CN114625805B (zh) 一种回测配置方法、装置、设备及介质
CN110022343B (zh) 自适应事件聚合
CN115225544A (zh) 一种网络流量统计和监测方法、装置、电子设备及介质
CN114449031A (zh) 信息获取方法、装置、设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication