CN106209830A - 一种基于xml网络协议表示的报文构造方法 - Google Patents

一种基于xml网络协议表示的报文构造方法 Download PDF

Info

Publication number
CN106209830A
CN106209830A CN201610537500.8A CN201610537500A CN106209830A CN 106209830 A CN106209830 A CN 106209830A CN 201610537500 A CN201610537500 A CN 201610537500A CN 106209830 A CN106209830 A CN 106209830A
Authority
CN
China
Prior art keywords
attribute
message
agreement
field
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.)
Granted
Application number
CN201610537500.8A
Other languages
English (en)
Other versions
CN106209830B (zh
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.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
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 National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN201610537500.8A priority Critical patent/CN106209830B/zh
Publication of CN106209830A publication Critical patent/CN106209830A/zh
Application granted granted Critical
Publication of CN106209830B publication Critical patent/CN106209830B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/03Protocol definition or specification 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/06Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Communication Control (AREA)

Abstract

本发明公开了一种基于XML网络协议表示的报文构造方法,具体包括以下步骤:第一步,采用基于XML的网络协议表示方法描述网络协议的MuPDM(Machine‑understandable Protocol Description Method)文档;第二步,基于XML协议表示方法建立网络协议报文构造***;第三步,基于网络协议报文构造***构造不同测试用例要求的网络测试报文。与现有技术相比,本发明能够方便实现协议内容修改和扩展,具有良好的通用性和可扩展性,适用于大多数目前提出的协议,可用于网络设备报文解析、安全检测设备的报文检测以及网络安全测试设备的自动报文构造等;且能够构造多协议、多种报文类型和报文内容多样性的网络数据报文,构造不同测试用例要求的网络测试报文,满足报文内容多样性的要求。

Description

一种基于XML网络协议表示的报文构造方法
技术领域
本发明属于计算机网络技术领域,特别是为网络设备测试和网络安全测试构造各种类型的网络数据包的报文构造方法。
背景技术
随着计算机网络技术的发展,人们对网络的质量和稳定性要求越来越高,而计算机网络的稳定性很大程度取决于设备网络(如路由器、交换机等)的稳定性,这样就对网络设备厂商和其网络设备的稳定性提出了更高的要求。因此网络设备的测试对网络设备厂商来说是非常重要的一个环节,特别是最后的***测试。通常在对网络产品(主要指路由器、交换机和网关),尤其是网络安全产品(网关)进行自动化测试(***测试或回归测试)时,必须达到一个要求:对这些网络产品的TCP/IP协议栈进行稳定性或安全性测试时,必须确保开发的产品在遇到各种不规则的、错误的、无意义的网络数据包时仍可正常稳定高效地工作。但是,在正常的网络环境中,很难产生错误的IP数据包,也很难产生我们想要的网络数据包类型。为此,要完成对网络产品的TCP/IP协议栈的稳定性和安全性测试,必须能够构造各种不规则的或者错误的网络数据包。
目前已实现网络数据包的生成方法有以下三种。第一种是使用抓包工具从网络中捕获数据,这种方法简单易行,但是很难获得我们需要的网络数据包。第二种是使用发包软件生成网络数据包,例如sendip、nessus、ippacket、sniffer等,但这些软件支持的协议数据包类型有限,且协议的载荷部分需要手动填写,如sendip软件,它支持的协议数据包类型只有:IPv4、TCP、UDP、RIP,并不能支持对路由器和交换机进行测试时常用的协议数据包类型,如:IPv6、ICMP、NTP、BGP、OSPF等数据报文格式。第三种是采用专用硬件器件实现,生成高速率的流量,满足高线速的速度环境要求,但设备复杂,成本昂贵,支持的协议数据包类型单一,数据包的内容基本是固定的。
以上现已实现的网络数据包构造方法不能满足多协议、多种报文类型和报文内容多样性的网络数据包构造的问题。
发明内容
本发明针对基于自然语言的网络协议描述文本不适于机器理解和自动化处理的问题,提供一种基于XML网络协议表示的报文构造方法,能够方便实现协议内容修改和扩展,且能够构造多协议、多种报文类型和报文内容多样性的网络数据报文。本发明适用于IETF提供的各种请求注解(RFC,Request for Comment)文本,以及国际电话与电报顾问委员会(CCITT,Consultative Committee on International Telephone and Telegraph)的通信协议相关文本。
为描述方便,将本发明基于XML的网络协议表示方法命名为MuPDM(Machine-understandable Protocol Description Method),使用本发明MuPDM描述的协议文档称为该协议的MuPDM文档。一个MuPDM文档仅描述一种协议类型,如ICMP、BGP协议。采用基于XML网络协议表示方法的MuPDM文档由四类元素构成:文档结构类元素、报文字段类元素、协议行为类元素和程序控制类元素。文档结构类元素定义MuPDM文档的结构块,用于区分文档各个部分。一种协议的MuPDM文档中,每个结构元素最多出现一次。报文字段类元素详细定义协议报文格式,此类元素在MuPDM文档中多次出现。协议行为类元素对协议处理行为进行描述。程序控制类元素用于标准化描述协议报文结构和行为中的分支、循环等复杂情况。上述四类元素分别包含多种描述元素,每个元素对应于XML中的一个标签名称,各元素需要说明的内容以标签属性的形式给出。
为实现上述目的,本发明提供需要提供一种基于XML网络协议表示的报文构造方法,步骤包括:
第一步,采用基于XML的网络协议表示方法描述网络协议的MuPDM文档,MuPDM即机器可理解的网络协议表示方法的简称;
第二步,基于XML协议表示方法建立网络协议报文构造***;
第三步,基于网络协议报文构造***构造不同测试用例要求的网络测试报文。
作为本发明技术方案的进一步改进:
所述第一步采用基于XML的网络协议表示方法描述网络协议的MuPDM文档,步骤包括:
步骤101、新建XML类型的MuPDM文档;
步骤102、添加文档结构类元素,根据步骤101新建MuPDM文档的需求添加对象描述元素、外层协议元素、报文定义元素和行为定义元素四类元素中的一类或多类元素;
步骤103、判断步骤102是否添加了变量声明元素,若步骤102添加了变量声明元素,则添加变量声明子元素;若步骤102未添加变量声明元素,则转步骤104;
步骤104、添加报文定义子元素,包括报文字段类元素和程序控制类元素;
步骤105、添加行为定义子元素,包括协议行为类元素和程序控制类元素,对协议行为进行详细的描述;
步骤106、保存MuPDM文档。
所述网络协议报文构造***由三部分组成:MuPDM库、用户定制文件单元、报文构造引擎;MuPDM库是采用本发明第一步基于XML的网络协议表示方法描述网络协议的MuPDM文档库;用户定制文件单元是可视化用户界面定制报文信息形成的XML文件,用户定制文件中描述了要构造的报文信息,包括协议类型、发送比例、报文类型、特定字段内容等用户定制报文内容;报文构造引擎的输入包括两部分:MuPDM库和用户定制文件;报文构造引擎对MuPDM库和用户定制文件进行解析,构造不同测试用例要求的网络测试报文;报文构造引擎根据用户定制文件内容选择合适的MuPDM库文件,确定需要构造的报文类型;根据协议描述文件中定义的报文格式,为字段填充内容,构造符合要求的网络数据报文;报文构造引擎根据MuPDM库文件中定义的报文格式,将各字段的值填入缓冲区中,输出用户定制文件中指定的多种类型的完整报文,存储在缓冲区中。
所述第三步基于网络协议报文构造***构造不同测试用例要求的网络测试报文,步骤包括:
步骤801、加载MuPDM库文件,建立协议名称、协议编号和库文件地址的映射关系;
步骤802、加载用户定制文件,根节点为upf_tree;
步骤803、判定upf_tree的协议描述子节点pkts_node是否为空;如果upf_tree下不存在协议描述子节点,pkts_node为空,输出用户定制文件中指定的多种类型的完整报文,结束;否则,执行步骤804;
步骤804、读取协议类型描述子节点pkts_node的属性,协议序号I和发送比例P,由协议序号I得到协议对应的库文件地址pdl_tree;
步骤805、通过步骤804得到发送比例P,计算待构造的协议报文数量pkt_num;
步骤806、判定pkts_node的报文类型描述子节点pkt_node是否为空;如果pkts_node下不存在报文类型描述子节点,pkt_node为空,执行步骤807,否则,执行步骤808;
步骤807、读取下一个协议类型描述子节点pkts_node,转步骤803;
步骤808、读取报文类型描述子节点pkt_node的属性,报文类型T;
步骤809、判定已构造的报文数量,如果已构造的报文数量num大于等于pkt_num,执行步骤810,否则执行步骤811;
步骤810、读取下一个报文类型描述子节点pkt_node,下一步执行步骤805;
步骤811、根据步骤808的报文类型T遍历pdl_tree,构造一个完整的报文,存储在缓冲区中,已构造的报文数num加一,转步骤809。
所述步骤102添加文档结构类元素,步骤包括:
步骤201、添加对象描述元素,作为MuPDM文档的根元素,名称为“obj”,用来描述协议文档相关信息;添加属性“name”、“comment”、“author”和“date”,它们分别表示协议的名称、MuPDM文档版本信息、作者或修改者、最近的更新日期;
步骤202、添加外层协议元素,名称为“nextp”;添加属性:“proname”、“procode”、“sport”和“dport”,分别表示外层协议的名称、IETF定义的协议号、所描述协议使用的源端口号和目的端口号;
步骤203、根据协议的性质,判断文档中是否需要使用变量,若文档中需要使用变量,则添加变量声明元素,名称为“declaration”,该元素没有属性;若文档中不需要使用变量,转步骤204;
步骤204、添加报文定义元素,名称为“form”,该元素没有属性;
步骤205、添加行为定义元素,名称为“behavior”,该元素没有属性,结束。
所述步骤103添加变量声明子元素,步骤包括:
步骤301、添加变量声明子元素节点,名称为“variable”;
步骤302、添加变量声明子元素的属性,包括“name”、“type”和“value”:“name”属性表示对应变量的名称;“type”属性表示对应变量的数据类型,该属性的值可以是两种:1)int(整型);2)string(字符串);“value”属性表示对应变量的初始值。
所述步骤104添加报文定义子元素,步骤包括:
步骤401、建立报文格式元素,名称为“fields”;该元素没有属性,协议报文格式的描述都包含在该元素下;
步骤402、根据协议的性质,选择建立程序控制元素:若当前有两种不同条件下协议报文格式存在差异,转步骤403;若当前有两种以上条件下协议报文格式存在差异,转步骤404;若当前有意义相同的字段或字段集循环重复排列,转步骤405;否则转步骤406;
步骤403、建立条件分支元素,条件分支元素的名称为“if”和“else”;根据协议性质,建立分支条件的“表达式”作为“if”元素的属性;在“if”元素下处理属性“expr”值为真的情况,在“else”元素下处理属性“expr”值为假的情况;转步骤406;
步骤404、建立多选分支元素,多选分支元素由分支条件判断元素、分支元素和默认分支元素组成,它们的名称分别为“switch”、“case”和“default”;其中“case”和“default”元素为“switch”元素的子元素,根据协议的性质可以没有“default”元素;为“switch”元素添加属性“expr”,表示分支选择的条件;为“case”元素添加属性“value”,表示该分支对应的值;当该分支对应的值为一个区间值时,还可以为“case”元素添加属性“maxvalue”,表示该区间值的最大值,此时,属性“value”表示该区间值的最小值;转步骤406;
步骤405、建立循环控制元素,循环控制元素的名称为“for”和“ctrl”;根据协议的性质,为“for”元素添加属性“type”和“expr”:属性type表示循环的类型,属性“expr”表示循环条件表达式;根据当前的性质,可以不建立“ctrl”元素;若当前建立了“ctrl”元素,还要为该元素添加属性“type”,表示退出循环类型;转步骤406;
步骤406、根据协议中字段的性质,选择建立报文字段类元素:若当前字段与其相连的其他字段相关,且这一组相关的字段已经建立了对应的字段集合元素,则执行步骤407;若当前字段与其相连的其他字段相关,且这一组相关的字段没有建立对应的字段集合元素,则执行步骤408;若当前字段与其相连的其他字段不相关,则执行步骤409;
步骤407、建立字段集引用元素,名称为“refer-fieldset”;添加字段集引用元素属性“name”,表示所引用的字段集合元素的名称;转步骤410;
步骤408、建立字段集合元素,名称为“fieldset”;添加字段集合元素属性“name”,表示对应的字段集合元素的名称;转步骤409,为对应的一组字段建立字段元素;
步骤409、根据协议中各字段的性质建立字段元素;协议中一个字段对应一个字段元素,名称为“field”;根据字段的性质给字段元素添加相应的属性,字段元素的基本属性有“name”、“type”、“数据类型”和“modifiable”四种属性,他们分别表示对应字段的性质:“name”属性表示对应字段的名称;“type”属性表示对应字段的长度类型,不同的“type”属性值还需添加相应的辅助属性以确定字段的长度;“数据类型”属性表示对应字段的值的数据类型或者对应字段的值的获取方式,不同的“数据类型”属性值还需添加相应的辅助属性以确定字段的取值;
步骤410、判断对应协议报文格式是否构建完成,若对应协议的报文格式未构建完成,则执行步骤402;若对应协议的报文格式构建完成,则报文定义子元素添加完毕,结束。
所述步骤105添加行为定义子元素,步骤包括:
步骤501、建立角色描述元素,名称为“part”;角色描述元素要添加的基本属性有“name”和“start_id”,分别表示角色的名称和对应角色的起始状态的标识;根据协议的性质,还可以添加属性“dport”、“sport”、“dip”和“sip”,分别表示目的端口、源端口、目的IP地址、源IP地址;
步骤502、建立状态描述元素,名称为“state”;状态描述元素要添加的属性有:属性“name”表示对应状态的名称;属性“id”表示对应状态的标识;属性“timeout”表示对应状态等待触发事件到来的超时时间;属性“timeout-action”表示对应状态等待了属性“timeout”的属性值的时间后,仍没等到对应状态下可能发生的事件,所执行的动作;属性“times”表示对应状态允许的超时次数;属性“times-action”表示对应状态等待超时的次数达到属性“times”指定的值时,做执行的动作;
步骤503、根据协议的性质,选择建立程序控制元素:若对应状态下,可能发生的事件为一种,则执行步骤506;若对应状态下可能发生的事件为两种,则执行步骤504;若对应状态下可能发生的事件在两种以上,则执行步骤505;
步骤504、建立条件分支元素,条件分支元素的名称为“if”和“else”;根据协议性质,建立分支条件的“表达式”做为“if”元素的属性;在“if”元素下处理属性“expr”值为真的情况,在“else”元素下处理属性“expr”值为假的情况;转步骤506;
步骤505、建立多选分支元素,多选分支元素由分支条件判断元素、分支元素和默认分支元素组成,它们的名称分别为“switch”、“case”和“default”;其中“case”和“default”元素为“switch”元素的子元素,根据协议的性质可以没有“default”元素;为“switch”元素添加属性“expr”,表示分支选择的条件;为“case”元素添加属性“value”,表示该分支对应的值;当该分支对应的值为一个区间值时,还可以为“case”元素添加属性“maxvalue”,表示该区间值的最大值,此时,属性“value”表示该区间值的最小值;转步骤506;
步骤506、在对应的分支元素下建立事件描述元素,名称为“event”;添加时间描述元素的属性有:属性“name”表示时间名称;属性“id”表示时间标识;属性“condition”表示事件触发的条件;属性“action”表示触发条件满足时所执行的动作;属性“next-state”表示当前时间发生后,所要迁移的下一个状态的状态标识。
所述报文构造引擎有多种构造方式填充字段内容,包括使用用户指定赋值和使用用户指定构造算法、使用默认值和使用默认构造算法;其中特殊格式的字段,允许随机的构造符合该字段基本特征的内容。
本发明的有益效果是:
●使用基于XML描述的协议简洁直观,能够完整覆盖协议报文格式及行为,而且能够被计算机理解并直接处理。它独立于操作***平台和程序设计语言,符合XML的组织规则。具有良好的通用性,适用于大多数目前提出的协议。具有良好的可扩充性,能够适应协议的发展,扩充到支持新的协议或者协议新的版本。通过本发明MuPDM描述各类网络协议形成的MuPDM协议文档库,可用于网络设备报文解析、安全检测设备的报文检测以及网络安全测试设备的自动报文构造等。
●使用基于XML的网络协议表示方法描述的网络协议,采用结构化标签定义报文格式及协议行为,形成适于计算机统一处理的协议描述文档,实现简单,易于扩展;报文构造***通过可视化用户界面定制各种协议类型和报文内容的网络测试报文,形成XML格式的用户定制文件,为特定字段内容提供多种构造方法,自动填充载荷内容,实现报文内容多样性的要求,可以构造不同测试用例要求的网络测试报文。
附图说明
图1是本发明基于XML网络协议表示的报文构造方法流程图。
图2是本发明第一步采用基于XML的网络协议表示方法描述网络协议的MuPDM文档的流程图。
图3是本发明第一步步骤102基于XML的MuPDM的文档结构类元素添加流程图。
图4是本发明第一步步骤103基于XML的MuPDM的变量声明子元素添加流程图。
图5是本发明第一步步骤104基于XML的MuPDMD的报文定义子元素添加流程图。
图6是本发明第一步步骤105基于XML的MuPDMD的行为定义子元素添加流程图。
图7是本发明第二步网络协议报文构造***的结构图和数据流向图。
图8是本发明第三步基于网络协议报文构造***构造网络报文的流程图。
图9是本发明实施例TCP协议报文格式。
图10是本发明实施例TCP协议三次握手的连接建立过程。
图11是本发明实施例中TCP协议连接建立的流程图。
图12是本发明实施例中TCP握手协议的MuPDM文档的文档结构类元素示意图。
图13是本发明实施例中TCP握手协议的MuPDM文档的变量声明子元素示意图。
图14是本发明实施例中TCP握手协议的MuPDM文档的报文定义子元素示意图。
图15是本发明实施例中TCP握手协议的MuPDM文档的行为定义子元素示意图。
图16是本发明实施例的字段元素处理流程图。
具体实施方式
为使本领域技术人员更好地理解本发明,下面结合具体的实施例对本发明提供的技术方案作具体说明。
本实施例中传输控制协议(Transmission Control Protocol,TCP)是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接。TCP协议的报文格式如图9所示。本实施例暂不考虑选项部分。TCP报文的控制字段各标志的说明如表1所示:
表1TCP报文的控制字段的标志及其说明
结合图10和图11,TCP协议的三次握手过程如下:
第一次握手:建立连接时,客户端发送SYN包(syn=j)到服务器,并进入SYN-SENT状态,等待服务器确认;这个SYN包中只有SYN标志置为1,客户端选择一个随机数(j)作为第一个序号发送给服务器。这个SYN包的作用是使序号同步。
第二次握手:服务器收到SYN包,必须确认客户端的SYN包(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;这个包中SYN和ACK两个标志置为1,服务器端选择一个随机数(k)做为第一个序号发送给客户端,同时给出期望从客户端收到了下一个序号。服务器使用这个SYN+ACK包同步初始序号。
第三次握手:客户端收到服务器的SYN+ACK报文段,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态;完成上次握手。
下面以TCP协议为实施例介绍本发明基于XML网络协议表示的报文构造方法。图1是本发明基于XML网络协议表示的报文构造方法流程图。
第一步,采用基于XML的网络协议表示方法描述网络协议的MuPDM文档。
采用基于XML网络协议表示方法的MuPDM文档由四类元素构成:文档结构类元素、报文字段类元素、协议行为类元素和程序控制类元素。文档结构类元素定义MuPDM文档的结构块,用于区分文档各个部分。一种协议的MuPDM文档中,每个结构元素最多出现一次。报文字段类元素详细定义协议报文格式,此类元素在MuPDM文档中多次出现。协议行为类元素对协议处理行为进行描述。程序控制类元素用于标准化描述协议报文结构和行为中的分支、循环等复杂情况。
如图2所示,采用基于XML的网络协议表示方法描述MuPDM文档,包括以下步骤:
步骤101、新建XML类型的MuPDM文档;
步骤102、添加文档结构类元素,根据步骤101新建MuPDM文档的需求添加对象描述元素、外层协议元素、报文定义元素和行为定义元素四类元素中的一类或多类元素;
步骤103、判断步骤102是否添加了变量声明元素,若步骤102添加了变量声明元素,则添加变量声明子元素;若步骤102未添加变量声明元素,则转步骤104;
步骤104、添加报文定义子元素,包括报文字段类元素和程序控制类元素;
步骤105、添加行为定义子元素,包括协议行为类元素和程序控制类元素,对协议行为进行详细的描述;
步骤106、保存MuPDM文档。
如图3所示,本发明步骤102添加文档结构类元素,具体步骤如下:
步骤201、添加对象描述元素,作为MuPDM文档的根元素,名称为“obj”,用来描述协议文档相关信息;需要添加属性“name”、“comment”、“author”和“date”,它们分别表示协议的名称、MuPDM文档版本信息、作者或修改者、最近的更新日期;
步骤202、添加外层协议元素,名称为“nextp”;根据所描述协议的性质,外层协议元素可以添加的属性有“proname”、“procode”、“sport”和“dport”,它们分别表示外层协议的名称、IETF定义的协议号、所描述协议使用的源端口号和目的端口号;
步骤203、根据协议的性质,判断文档中是否需要使用变量,若文档中需要使用变量,则添加变量声明元素,名称为“declaration”,该元素没有属性;若文档中不需要使用变量,转步骤204;
步骤204、添加报文定义元素,名称为“form”,该元素没有属性;
步骤205、添加行为定义元素,名称为“behavior”,该元素没有属性。
如图4所示,本发明步骤103添加变量声明子元素,具体步骤如下:
步骤301、添加变量声明子元素节点,名称为“variable”;
步骤302、添加变量声明子元素的属性,包括“name”、“type”和“value”:“name”属性表示对应变量的名称;“type”属性表示对应变量的数据类型,该属性的值可以是两种:1)int(整型);2)string(字符串);“value”属性表示对应变量的初始值。
如图5所示,本发明步骤104添加报文定义子元素,具体步骤如下:
步骤401、建立报文格式元素,名称为“fields”;该元素没有属性,协议报文格式的描述都包含在该元素下。
步骤402、根据协议的性质,选择建立程序控制元素:若当前有两种不同条件下协议报文格式存在差异,转步骤403;若当前有两种以上条件下协议报文格式存在差异,转步骤404;若当前有意义相同的字段或字段集循环重复排列,转步骤405;否则转步骤406;
步骤403、建立条件分支元素,条件分支元素的名称为“if”和“else”;根据协议性质,建立分支条件的“表达式”作为“if”元素的属性;在“if”元素下处理属性“expr”值为真的情况,在“else”元素下处理属性“expr”值为假的情况;转步骤406;
步骤404、建立多选分支元素,多选分支元素由分支条件判断元素、分支元素和默认分支元素组成,它们的名称分别为“switch”、“case”和“default”;其中“case”和“default”元素为“switch”元素的子元素,根据协议的性质可以没有“default”元素;为“switch”元素添加属性“expr”,表示分支选择的条件;为“case”元素添加属性“value”,表示该分支对应的值;当该分支对应的值为一个区间值时,还可以为“case”元素添加属性“maxvalue”,表示该区间值的最大值,此时,属性“value”表示该区间值的最小值;转步骤406;
步骤405、建立循环控制元素,循环控制元素的名称为“for”和“ctrl”;根据协议的性质,为“for”元素添加属性“type”和“expr”:属性type表示循环的类型,属性“expr”表示循环条件表达式;根据当前的性质,可以不建立“ctrl”元素;若当前建立了“ctrl”元素,还要为该元素添加属性“type”,表示退出循环类型;表2给出了“for-ctrl”元素的属性值和说明;转步骤406;
表2元素for-ctrl属性及属性值
步骤406、根据协议中字段的性质,选择建立报文字段类元素:若当前字段与其相连的其他字段相关,且这一组相关的字段已经建立了对应的字段集合元素,则执行步骤407;若当前字段与其相连的其他字段相关,且这一组相关的字段没有建立对应的字段集合元素,则执行步骤408;若当前字段与其相连的其他字段不相关,则执行步骤409;
步骤407、建立字段集引用元素,名称为“refer-fieldset”;添加字段集引用元素属性“name”,表示所引用的字段集合元素的名称;转步骤410;
步骤408、建立字段集合元素,名称为“fieldset”;添加字段集合元素属性“name”,表示对应的字段集合元素的名称;转步骤409,为对应的一组字段建立字段元素;
步骤409、根据协议中各字段的性质建立字段元素;协议中一个字段对应一个字段元素,名称为“field”;根据字段的性质给字段元素添加相应的属性,字段元素的基本属性有“name”、“type”、“数据类型”和“modifiable”四种属性,他们分别表示对应字段的性质:“name”属性表示对应字段的名称;“type”属性表示对应字段的长度类型,不同的“type”属性值还需添加相应的辅助属性以确定字段的长度,表3为“type”属性为不同值添加的辅助属性和对应字段长度的计算方法;“数据类型”属性表示对应字段的值的数据类型或者对应字段的值的获取方式,不同的“数据类型”属性值还需添加相应的辅助属性以确定字段的取值,表4为“数据类型”属性为不同值添加的辅助属性和对应字段的值的获得方法;
表3“type”属性值及辅助属性
表4“数据类型”属性值及辅助属性
步骤410、判断对应协议报文格式是否构建完成,若对应协议的报文格式未构建完成,则执行步骤402;若对应协议的报文格式构建完成,则报文定义子元素添加完毕,结束。
如图16所示,本发明实施例的字段元素处理流程,具体执行以下步骤:
步骤1601、判定一个协议字段描述节点field_node,如果field_node不为空,则执行步骤1602,否则结束当前节点的处理。
步骤1602、读取field元素所有属性,存入field结构体中。
步骤1603、判定field元素的modifiable属性值,如果该属性值为yes,则执行步骤1604,否则执行步骤1607。
步骤1604、判定用户定制文件中是否定制了该field元素,如果定制了该field元素,则执行步骤1605,否则执行步骤1607。
步骤1605、读取用户定制文件中setfield元素属性。
步骤1606、判定setfield元素valuetype属性值,如果该属性值为decimal或hex或binary或string,则执行步骤1608,如果该属性值为expr,则执行步骤1609,如果该属性值为func,则执行步骤1610。
步骤1607、判定field元素valuetype属性值,如果该属性值为decimal或hex或binary或string,则执行步骤1608,如果该属性值为expr,则执行步骤1609,如果该属性值为func,则执行步骤1610。
步骤1608、提取属性value的值作为该字段的内容。转步骤1611。
步骤1609、提取属性expression的值,计算得到表达式的值,将其作为该字段的内容。转步骤1611。
步骤1610、提取属性function的值,获取构造函数返回值,将其作为该字段的内容。
步骤1611、根据该field元素的fixed、valuetype等属性计算得到size的属性值,即该字段的长度。
步骤1612、将步骤1608或1609或1610提取的字段内容填入缓冲区当前位置,缓冲区当前位置向后偏移步骤1611计算的结果长度。至此,该字段元素处理完毕。
如图6所示,本发明步骤105添加行为定义子元素,具体步骤如下:
步骤501、建立角色描述元素,名称为“part”;角色描述元素要添加的基本属性有“name”和“start_id”,分别表示角色的名称和对应角色的起始状态的标识;根据协议的性质,还可以添加属性“dport”、“sport”、“dip”和“sip”,分别表示目的端口、源端口、目的IP地址、源IP地址;
步骤502、建立状态描述元素,名称为“state”;状态描述元素要添加的属性有:属性“name”表示对应状态的名称;属性“id”表示对应状态的标识;属性“timeout”表示对应状态等待触发事件到来的超时时间;属性“timeout-action”表示对应状态等待了属性“timeout”的属性值的时间后,仍没等到对应状态下可能发生的事件,所执行的动作;属性“times”表示对应状态允许的超时次数;属性“times-action”表示对应状态等待超时的次数达到属性“times”指定的值时,做执行的动作;
步骤503、根据协议的性质,选择建立程序控制元素:若对应状态下,可能发生的事件为一种,则执行步骤506;若对应状态下可能发生的事件为两种,则执行步骤504;若对应状态下可能发生的事件在两种以上,则执行步骤505;
步骤504、建立条件分支元素,条件分支元素的名称为“if”和“else”;根据协议性质,建立分支条件的“表达式”做为“if”元素的属性;在“if”元素下处理属性“expr”值为真的情况,在“else”元素下处理属性“expr”值为假的情况;转步骤506;
步骤505、建立多选分支元素,多选分支元素由分支条件判断元素、分支元素和默认分支元素组成,它们的名称分别为“switch”、“case”和“default”;其中“case”和“default”元素为“switch”元素的子元素,根据协议的性质可以没有“default”元素;为“switch”元素添加属性“expr”,表示分支选择的条件;为“case”元素添加属性“value”,表示该分支对应的值;当该分支对应的值为一个区间值时,还可以为“case”元素添加属性“maxvalue”,表示该区间值的最大值,此时,属性“value”表示该区间值的最小值;转步骤506;
步骤506、在对应的分支元素下建立事件描述元素,名称为“event”;添加时间描述元素的属性有:属性“name”表示时间名称;属性“id”表示时间标识;属性“condition”表示事件触发的条件;属性“action”表示触发条件满足时所执行的动作;属性“next-state”表示当前时间发生后,所要迁移的下一个状态的状态标识。
图12、图13、图14、图15是TCP握手协议的MuPDM文档的结构描述元素、变量声明子元素、报文定义子元素、行为定义子元素的示意图。在本示例中变量声明子元素“variable”所声明的变量大多数对应协议报文中的某个字段,这样,该元素的属性“name”的值与报文定义子元素“field”的属性“name”的值相同,因此的属性值以“$”开头,以区别协议报文中的其他未被声明为变量的字段。本示例中报文字段类元素使用的构造函数生成当前字段内容,使用表达式算数表达式计算字段的信息,表5、表6是本实施例用中使用的构造函数和表达式。表达式的操作数形式可以是数字如:1,2,87653;变量如:$thislen,$type;函数如:random_int(0,2)。
图12是TCP握手协议的MuPDM文档的结构描述元素。以图12为例,介绍步骤102添加文档结构类元素,以及图12所示TCP握手协议的MuPDM文档的结构描述元素的含义。
步骤201、添加对象描述元素,作为MuPDM文档的根元素。得到第一行:<objectname=“tcp”>,表示协议名称为TCP;
步骤202、添加外层协议元素,名称为“nextp”;添加属性:“proname”、“procode”。得到第二行:<nextp proname=“ipv4”procode=“4”>,表示外层协议的名称为ipv4、IETF定义的协议号为4;
步骤203、根据TCP协议的性质,文档中需要使用变量,添加变量声明元素,名称为“declaration”;得到第三行<declaration>。
步骤204、添加报文定义元素,名称为“form”,该元素没有属性;得到第四行<form>。
步骤205、添加行为定义元素,名称为“behavior”,该元素没有属性;得到第五行<behavior>。第六行</object>表示TCP握手协议的MuPDM文档的结构描述元素添加过程结束。
表5本实施例中使用的构造函数
表6本实施例中使用的表达式
运算符 操作数个数 操作数类型 说明
1 number 无运算符,例如:expr="random_int()"
+ 2 number 加法,例如:expr="$thislen+1"
- 2 number 减法,例如:expr="random_int()-$thislen"
* 2 number 乘法,例如:expr="random_int()*2"
div 2 number 除法,例如:expr="123div buf2int(type)"
mod 2 number 取模,例如:expr="123mod random_int()"
第二步,基于第一步基于XML协议表示方法建立网络协议报文构造***。
所述网络协议报文构造***由三部分组成:MuPDM库、用户定制文件单元、报文构造引擎;MuPDM库是采用本发明第一步基于XML的网络协议表示方法描述网络协议的MuPDM文档库;用户定制文件单元是可视化用户界面定制报文信息形成的XML文件,用户定制文件中描述了要构造的报文信息,包括协议类型、发送比例、报文类型、特定字段内容等用户定制报文内容;报文构造引擎的输入包括两部分:MuPDM库和用户定制文件;报文构造引擎对MuPDM库和用户定制文件进行解析,构造不同测试用例要求的网络测试报文;报文构造引擎根据用户定制文件内容选择合适的MuPDM库文件,确定需要构造的报文类型;根据协议描述文件中定义的报文格式,为字段填充内容,构造符合要求的网络数据报文;报文构造引擎根据MuPDM库文件中定义的报文格式,将各字段的值填入缓冲区中,输出用户定制文件中指定的多种类型的完整报文,存储在缓冲区中。
第三步,基于第二步构建的网络协议报文构造***构造不同测试用例要求的网络测试报文。如图8所示,流程如下:
步骤801、加载MuPDM库文件,建立协议名称、协议编号和库文件地址的映射关系;
步骤802、加载用户定制文件,根节点为upf_tree;
步骤803、判定upf_tree的协议描述子节点pkts_node是否为空;如果upf_tree下不存在协议描述子节点,pkts_node为空,输出用户定制文件中指定的多种类型的完整报文,结束;否则,执行步骤804;
步骤804、读取协议类型描述子节点pkts_node的属性,协议序号I和发送比例P,由协议序号I得到协议对应的库文件地址pdl_tree;
步骤805、通过步骤804得到发送比例P,计算待构造的协议报文数量pkt_num;
步骤806、判定pkts_node的报文类型描述子节点pkt_node是否为空;如果pkts_node下不存在报文类型描述子节点,pkt_node为空,执行步骤807,否则,执行步骤808;
步骤807、读取下一个协议类型描述子节点pkts_node,转步骤803;
步骤808、读取报文类型描述子节点pkt_node的属性,报文类型T;
步骤809、判定已构造的报文数量,如果已构造的报文数量num大于等于pkt_num,执行步骤810,否则执行步骤811;
步骤810、读取下一个报文类型描述子节点pkt_node,下一步执行步骤805;
步骤811、根据步骤808的报文类型T遍历pdl_tree,构造一个完整的报文,存储在缓冲区中,已构造的报文数num加一,转步骤809;
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围。

Claims (9)

1.一种基于XML网络协议表示的报文构造方法,其特征在于,步骤包括:
第一步,采用基于XML的网络协议表示方法描述网络协议的MuPDM文档,MuPDM即机器可理解的网络协议表示方法的简称;
第二步,基于XML协议表示方法建立网络协议报文构造***;
第三步,基于网络协议报文构造***构造不同测试用例要求的网络测试报文。
2.如权利要求1所述的基于XML网络协议表示的报文构造方法,其特征在于,所述第一步采用基于XML的网络协议表示方法描述网络协议的MuPDM文档,步骤包括:
步骤101、新建XML类型的MuPDM文档;
步骤102、添加文档结构类元素,根据步骤101新建MuPDM文档的需求添加对象描述元素、外层协议元素、报文定义元素和行为定义元素四类元素中的一类或多类元素;
步骤103、判断步骤102是否添加了变量声明元素,若步骤102添加了变量声明元素,则添加变量声明子元素;若步骤102未添加变量声明元素,则转步骤104;
步骤104、添加报文定义子元素,包括报文字段类元素和程序控制类元素;
步骤105、添加行为定义子元素,包括协议行为类元素和程序控制类元素,对协议行为进行详细的描述;
步骤106、保存MuPDM文档。
3.如权利要求1所述的基于XML网络协议表示的报文构造方法,其特征在于,所述网络协议报文构造***由三部分组成:MuPDM库、用户定制文件单元、报文构造引擎;MuPDM库是采用本发明第一步基于XML的网络协议表示方法描述网络协议的MuPDM文档库;用户定制文件单元是可视化用户界面定制报文信息形成的XML文件,用户定制文件中描述了要构造的报文信息,包括协议类型、发送比例、报文类型、特定字段内容等用户定制报文内容;报文构造引擎的输入包括两部分:MuPDM库和用户定制文件;报文构造引擎对MuPDM库和用户定制文件进行解析,构造不同测试用例要求的网络测试报文;报文构造引擎根据用户定制文件内容选择合适的MuPDM库文件,确定需要构造的报文类型;根据协议描述文件中定义的报文格式,为字段填充内容,构造符合要求的网络数据报文;报文构造引擎根据MuPDM库文件中定义的报文格式,将各字段的值填入缓冲区中,输出用户定制文件中指定的多种类型的完整报文,存储在缓冲区中。
4.如权利要求1所述的基于XML网络协议表示的报文构造方法,其特征在于,所述第三步基于网络协议报文构造***构造不同测试用例要求的网络测试报文,步骤包括:
步骤801、加载MuPDM库文件,建立协议名称、协议编号和库文件地址的映射关系;
步骤802、加载用户定制文件,根节点为upf_tree;
步骤803、判定upf_tree的协议描述子节点pkts_node是否为空;如果upf_tree下不存在协议描述子节点,pkts_node为空,输出用户定制文件中指定的多种类型的完整报文,结束;否则,执行步骤804;
步骤804、读取协议类型描述子节点pkts_node的属性,协议序号I和发送比例P,由协议序号I得到协议对应的库文件地址pdl_tree;
步骤805、通过步骤804得到发送比例P,计算待构造的协议报文数量pkt_num;
步骤806、判定pkts_node的报文类型描述子节点pkt_node是否为空;如果pkts_node下不存在报文类型描述子节点,pkt_node为空,执行步骤807,否则,执行步骤808;
步骤807、读取下一个协议类型描述子节点pkts_node,转步骤803;
步骤808、读取报文类型描述子节点pkt_node的属性,报文类型T;
步骤809、判定已构造的报文数量,如果已构造的报文数量num大于等于pkt_num,执行步骤810,否则执行步骤811;
步骤810、读取下一个报文类型描述子节点pkt_node,下一步执行步骤805;
步骤811、根据步骤808的报文类型T遍历pdl_tree,构造一个完整的报文,存储在缓冲区中,已构造的报文数num加一,转步骤809。
5.如权利要求2所述的基于XML网络协议表示的报文构造方法,其特征在于,所述步骤102添加文档结构类元素,步骤包括:
步骤201、添加对象描述元素,作为MuPDM文档的根元素,名称为“obj”,用来描述协议文档相关信息;添加属性“name”、“comment”、“author”和“date”,它们分别表示协议的名称、MuPDM文档版本信息、作者或修改者、最近的更新日期;
步骤202、添加外层协议元素,名称为“nextp”;添加属性:“proname”、“procode”、“sport”和“dport”,分别表示外层协议的名称、IETF定义的协议号、所描述协议使用的源端口号和目的端口号;
步骤203、根据协议的性质,判断文档中是否需要使用变量,若文档中需要使用变量,则添加变量声明元素,名称为“declaration”,该元素没有属性;若文档中不需要使用变量,转步骤204;
步骤204、添加报文定义元素,名称为“form”,该元素没有属性;
步骤205、添加行为定义元素,名称为“behavior”,该元素没有属性。
6.如权利要求2所述的基于XML网络协议表示的报文构造方法,其特征在于,所述步骤103添加变量声明子元素,步骤包括:
步骤301、添加变量声明子元素节点,名称为“variable”;
步骤302、添加变量声明子元素的属性,包括“name”、“type”和“value”:“name”属性表示对应变量的名称;“type”属性表示对应变量的数据类型,该属性的值可以是两种:1)int(整型);2)string(字符串);“value”属性表示对应变量的初始值。
7.如权利要求2所述的基于XML网络协议表示的报文构造方法,其特征在于,所述步骤104添加报文定义子元素,步骤包括:
步骤401、建立报文格式元素,名称为“fields”;该元素没有属性,协议报文格式的描述都包含在该元素下;
步骤402、根据协议的性质,选择建立程序控制元素:若当前有两种不同条件下协议报文格式存在差异,转步骤403;若当前有两种以上条件下协议报文格式存在差异,转步骤404;若当前有意义相同的字段或字段集循环重复排列,转步骤405;否则转步骤406;
步骤403、建立条件分支元素,条件分支元素的名称为“if”和“else”;根据协议性质,建立分支条件的“表达式”作为“if”元素的属性;在“if”元素下处理属性“expr”值为真的情况,在“else”元素下处理属性“expr”值为假的情况;转步骤406;
步骤404、建立多选分支元素,多选分支元素由分支条件判断元素、分支元素和默认分支元素组成,它们的名称分别为“switch”、“case”和“default”;其中“case”和“default”元素为“switch”元素的子元素,根据协议的性质可以没有“default”元素;为“switch”元素添加属性“expr”,表示分支选择的条件;为“case”元素添加属性“value”,表示该分支对应的值;当该分支对应的值为一个区间值时,还可以为“case”元素添加属性“maxvalue”,表示该区间值的最大值,此时,属性“value”表示该区间值的最小值;转步骤406;
步骤405、建立循环控制元素,循环控制元素的名称为“for”和“ctrl”;根据协议的性质,为“for”元素添加属性“type”和“expr”:属性type表示循环的类型,属性“expr”表示循环条件表达式;根据当前的性质,可以不建立“ctrl”元素;若当前建立了“ctrl”元素,还要为该元素添加属性“type”,表示退出循环类型;转步骤406;
步骤406、根据协议中字段的性质,选择建立报文字段类元素:若当前字段与其相连的其他字段相关,且这一组相关的字段已经建立了对应的字段集合元素,则执行步骤407;若当前字段与其相连的其他字段相关,且这一组相关的字段没有建立对应的字段集合元素,则执行步骤408;若当前字段与其相连的其他字段不相关,则执行步骤409;
步骤407、建立字段集引用元素,名称为“refer-fieldset”;添加字段集引用元素属性“name”,表示所引用的字段集合元素的名称;转步骤410;
步骤408、建立字段集合元素,名称为“fieldset”;添加字段集合元素属性“name”,表示对应的字段集合元素的名称;转步骤409,为对应的一组字段建立字段元素;
步骤409、根据协议中各字段的性质建立字段元素;协议中一个字段对应一个字段元素,名称为“field”;根据字段的性质给字段元素添加相应的属性,字段元素的基本属性有“name”、“type”、“数据类型”和“modifiable”四种属性,他们分别表示对应字段的性质:“name”属性表示对应字段的名称;“type”属性表示对应字段的长度类型,不同的“type”属性值还需添加相应的辅助属性以确定字段的长度;“数据类型”属性表示对应字段的值的数据类型或者对应字段的值的获取方式,不同的“数据类型”属性值还需添加相应的辅助属性以确定字段的取值;
步骤410、判断对应协议报文格式是否构建完成,若对应协议的报文格式未构建完成,则执行步骤402;若对应协议的报文格式构建完成,则报文定义子元素添加完毕,结束。
8.如权利要求2所述的基于XML网络协议表示的报文构造方法,其特征在于,所述步骤105添加行为定义子元素,步骤包括:
步骤501、建立角色描述元素,名称为“part”;角色描述元素要添加的基本属性有“name”和“start_id”,分别表示角色的名称和对应角色的起始状态的标识;根据协议的性质,还可以添加属性“dport”、“sport”、“dip”和“sip”,分别表示目的端口、源端口、目的IP地址、源IP地址;
步骤502、建立状态描述元素,名称为“state”;状态描述元素要添加的属性有:属性“name”表示对应状态的名称;属性“id”表示对应状态的标识;属性“timeout”表示对应状态等待触发事件到来的超时时间;属性“timeout-action”表示对应状态等待了属性“timeout”的属性值的时间后,仍没等到对应状态下可能发生的事件,所执行的动作;属性“times”表示对应状态允许的超时次数;属性“times-action”表示对应状态等待超时的次数达到属性“times”指定的值时,做执行的动作;
步骤503、根据协议的性质,选择建立程序控制元素:若对应状态下,可能发生的事件为一种,则执行步骤506;若对应状态下可能发生的事件为两种,则执行步骤504;若对应状态下可能发生的事件在两种以上,则执行步骤505;
步骤504、建立条件分支元素,条件分支元素的名称为“if”和“else”;根据协议性质,建立分支条件的“表达式”做为“if”元素的属性;在“if”元素下处理属性“expr”值为真的情况,在“else”元素下处理属性“expr”值为假的情况;转步骤506;
步骤505、建立多选分支元素,多选分支元素由分支条件判断元素、分支元素和默认分支元素组成,它们的名称分别为“switch”、“case”和“default”;其中“case”和“default”元素为“switch”元素的子元素,根据协议的性质可以没有“default”元素;为“switch”元素添加属性“expr”,表示分支选择的条件;为“case”元素添加属性“value”,表示该分支对应的值;当该分支对应的值为一个区间值时,还可以为“case”元素添加属性“maxvalue”,表示该区间值的最大值,此时,属性“value”表示该区间值的最小值;转步骤506;
步骤506、在对应的分支元素下建立事件描述元素,名称为“event”;添加时间描述元素的属性有:属性“name”表示时间名称;属性“id”表示时间标识;属性“condition”表示事件触发的条件;属性“action”表示触发条件满足时所执行的动作;属性“next-state”表示当前时间发生后,所要迁移的下一个状态的状态标识。
9.如权利要求1至8中任意一项所述的基于XML网络协议表示的报文构造方法,其特征在于,所述报文构造引擎有多种构造方式填充字段内容,包括使用用户指定赋值和使用用户指定构造算法、使用默认值和使用默认构造算法;其中特殊格式的字段,允许随机的构造符合该字段基本特征的内容。
CN201610537500.8A 2016-07-08 2016-07-08 一种基于xml网络协议表示的报文构造方法 Active CN106209830B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610537500.8A CN106209830B (zh) 2016-07-08 2016-07-08 一种基于xml网络协议表示的报文构造方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610537500.8A CN106209830B (zh) 2016-07-08 2016-07-08 一种基于xml网络协议表示的报文构造方法

Publications (2)

Publication Number Publication Date
CN106209830A true CN106209830A (zh) 2016-12-07
CN106209830B CN106209830B (zh) 2019-12-10

Family

ID=57473951

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610537500.8A Active CN106209830B (zh) 2016-07-08 2016-07-08 一种基于xml网络协议表示的报文构造方法

Country Status (1)

Country Link
CN (1) CN106209830B (zh)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106657163A (zh) * 2017-03-02 2017-05-10 北京网藤科技有限公司 工业控制动态防御方法和***
CN107426053A (zh) * 2017-07-26 2017-12-01 成都科来软件有限公司 一种数据包负载的自动化构造方法
CN108933787A (zh) * 2018-07-02 2018-12-04 深圳市风云实业有限公司 报文生成方法及装置
CN108965300A (zh) * 2018-07-21 2018-12-07 中国人民解放军战略支援部队信息工程大学 一种数据包生成方法、装置及计算机可读存储介质
CN109525364A (zh) * 2018-10-30 2019-03-26 北京计算机技术及应用研究所 一种基于xml的通信数据协议通用化描述方法
CN109818926A (zh) * 2018-12-25 2019-05-28 西安长远电子工程有限责任公司 一种无需预先规划的通信方法
CN110198254A (zh) * 2019-05-31 2019-09-03 卡斯柯信号有限公司 一种通信协议在线诊断方法及诊断***
CN110198250A (zh) * 2018-02-27 2019-09-03 江苏迪纳数字科技股份有限公司 一种多协议自由组合报文的通讯协议网关性能测试工具
CN110266702A (zh) * 2019-06-25 2019-09-20 上海电气泰雷兹交通自动化***有限公司 基于XML的Wireshark用协议解析方法
CN110430184A (zh) * 2019-07-31 2019-11-08 腾讯科技(深圳)有限公司 数据模拟方法、装置、计算机可读存储介质和计算机设备
CN111464565A (zh) * 2020-05-13 2020-07-28 中国科学院自动化研究所 遵循通用信息交换协议规范的智能解码方法及解码器
CN111628975A (zh) * 2020-05-12 2020-09-04 中国人民银行清算总中心 一种组装xml报文的方法及装置
CN112052171A (zh) * 2020-09-03 2020-12-08 上海复深蓝软件股份有限公司 测试报文处理方法、装置、计算机设备及存储介质
CN112104634A (zh) * 2020-09-08 2020-12-18 中国电力科学研究院有限公司 数据报文处理方法、***、设备及可读存储介质
CN116320052A (zh) * 2023-05-23 2023-06-23 珠海星云智联科技有限公司 用于通用验证方法学验证平台的网络报文自动生成方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101188561A (zh) * 2007-12-20 2008-05-28 北京大学 基于自定义模板的通用业务数据通讯方法与***
CN101430661A (zh) * 2008-11-18 2009-05-13 阿里巴巴集团控股有限公司 一种批量生成测试数据的方法、***和装置
CN102014016A (zh) * 2010-08-31 2011-04-13 北京邮电大学 一种网络协议缺陷测试***及方法
CN105049256A (zh) * 2015-08-10 2015-11-11 北京思特奇信息技术股份有限公司 一种通用自定义接口报文实现方法及***
CN105528294A (zh) * 2015-12-29 2016-04-27 广东金赋信息科技有限公司 一种接口测试用例自动生成的方法及***

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101188561A (zh) * 2007-12-20 2008-05-28 北京大学 基于自定义模板的通用业务数据通讯方法与***
CN101430661A (zh) * 2008-11-18 2009-05-13 阿里巴巴集团控股有限公司 一种批量生成测试数据的方法、***和装置
CN102014016A (zh) * 2010-08-31 2011-04-13 北京邮电大学 一种网络协议缺陷测试***及方法
CN105049256A (zh) * 2015-08-10 2015-11-11 北京思特奇信息技术股份有限公司 一种通用自定义接口报文实现方法及***
CN105528294A (zh) * 2015-12-29 2016-04-27 广东金赋信息科技有限公司 一种接口测试用例自动生成的方法及***

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106657163A (zh) * 2017-03-02 2017-05-10 北京网藤科技有限公司 工业控制动态防御方法和***
CN107426053B (zh) * 2017-07-26 2021-01-05 成都科来软件有限公司 一种数据包负载的自动化构造方法
CN107426053A (zh) * 2017-07-26 2017-12-01 成都科来软件有限公司 一种数据包负载的自动化构造方法
CN110198250A (zh) * 2018-02-27 2019-09-03 江苏迪纳数字科技股份有限公司 一种多协议自由组合报文的通讯协议网关性能测试工具
CN108933787A (zh) * 2018-07-02 2018-12-04 深圳市风云实业有限公司 报文生成方法及装置
CN108933787B (zh) * 2018-07-02 2021-05-18 深圳市风云实业有限公司 报文生成方法及装置
CN108965300A (zh) * 2018-07-21 2018-12-07 中国人民解放军战略支援部队信息工程大学 一种数据包生成方法、装置及计算机可读存储介质
CN109525364A (zh) * 2018-10-30 2019-03-26 北京计算机技术及应用研究所 一种基于xml的通信数据协议通用化描述方法
CN109818926A (zh) * 2018-12-25 2019-05-28 西安长远电子工程有限责任公司 一种无需预先规划的通信方法
CN110198254A (zh) * 2019-05-31 2019-09-03 卡斯柯信号有限公司 一种通信协议在线诊断方法及诊断***
CN110266702A (zh) * 2019-06-25 2019-09-20 上海电气泰雷兹交通自动化***有限公司 基于XML的Wireshark用协议解析方法
CN110430184A (zh) * 2019-07-31 2019-11-08 腾讯科技(深圳)有限公司 数据模拟方法、装置、计算机可读存储介质和计算机设备
CN110430184B (zh) * 2019-07-31 2022-01-21 腾讯科技(深圳)有限公司 数据模拟方法、装置、计算机可读存储介质和计算机设备
CN111628975A (zh) * 2020-05-12 2020-09-04 中国人民银行清算总中心 一种组装xml报文的方法及装置
CN111464565A (zh) * 2020-05-13 2020-07-28 中国科学院自动化研究所 遵循通用信息交换协议规范的智能解码方法及解码器
CN111464565B (zh) * 2020-05-13 2021-09-28 中国科学院自动化研究所 遵循通用信息交换协议规范的智能解码方法及解码器
CN112052171A (zh) * 2020-09-03 2020-12-08 上海复深蓝软件股份有限公司 测试报文处理方法、装置、计算机设备及存储介质
CN112052171B (zh) * 2020-09-03 2021-05-28 上海复深蓝软件股份有限公司 测试报文处理方法、装置、计算机设备及存储介质
CN112104634A (zh) * 2020-09-08 2020-12-18 中国电力科学研究院有限公司 数据报文处理方法、***、设备及可读存储介质
CN116320052A (zh) * 2023-05-23 2023-06-23 珠海星云智联科技有限公司 用于通用验证方法学验证平台的网络报文自动生成方法
CN116320052B (zh) * 2023-05-23 2023-09-05 珠海星云智联科技有限公司 用于通用验证方法学验证平台的网络报文自动生成方法

Also Published As

Publication number Publication date
CN106209830B (zh) 2019-12-10

Similar Documents

Publication Publication Date Title
CN106209830A (zh) 一种基于xml网络协议表示的报文构造方法
EP1703701B1 (en) APIs to build peer to peer messaging applications
US7912959B2 (en) Architecture for building a peer to peer messaging platform
US8250658B2 (en) Syntax-based security analysis using dynamically generated test cases
US7570661B2 (en) Script-based parser
US20150156183A1 (en) System and method for filtering network communications
CN100493094C (zh) 基于特征码的p2p数据报文检测方法
WO2022007406A1 (zh) 一种基于k8s的服务部署方法、装置、设备、介质
US20190260631A1 (en) Deployable linear bitwise protocol transfromation
CN108023736A (zh) 通信方法、服务端设备、客户端设备、装置及***
CN108989480A (zh) 一种在服务器获取客户端地址的方法
JP6548823B2 (ja) 木グラフプロパティを適用するjsonデータのリアルタイムバリデーション
US11354491B1 (en) Systems and methods for improved data modeling and translation
Sarker et al. Learning Python Network Programming
Van Winkle Hands-On Network Programming with C: Learn socket programming in C and write secure and optimized network code
Lévai et al. Supercharge WebRTC: Accelerate TURN Services with eBPF/XDP
JP4986265B2 (ja) 通信装置、その動作方法、及び動作プログラム
Cisco NetWare Protocols
KR102134895B1 (ko) 멀티호밍 sctp노드 상에서 동작하는 sctp 유저 어플리케이션의 패킷 분석 시스템 및 그 방법
CN117768388B (zh) 在OpenStack下应用虚拟路由器的装置和方法
Gopalan et al. Web Technology: A Developer’s Perspective
Chodorek et al. Light-Weight Congestion Control for the DCCP: Implementation in the Linux Kernel
POX et al. POX Wiki
CN100571265C (zh) 一种对等文件共享程序的检测方法
CN107896233B (zh) 一种sctp流数据管理方法、***及设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant