一种网络数据包传输及分析方法

文档序号:9846812阅读:376来源:国知局
一种网络数据包传输及分析方法
【技术领域】
[0001 ]本发明涉及数据传输技术,特别涉及一种数据分析技术,S卩,一种在所接收到的数据中,分离出正确信息的方法。
【背景技术】
[0002]网络在生活中起到的作用日益重大,越来越多的信息需要通过网络来传输。现有技术中传输大量数据主要通过将数据按照一定格式打包后进行传输。然而,如何保证网络对方端发来的数据包是完整的?或者说如何正确的对一批数据进行分包、过滤或者清除?接收到的数据包内容是正确的吗?目前在数据传输过程中都可能遇到以上问题。

【发明内容】

[0003]针对以上问题,本发明提供了一种网络数据包传输及分析的方法,在进行信息传输时进行以下步骤:
A.在传输的信息前加入一段与传输信息长度建立一一映射关系的消息代码;
B.将消息代码与传输信息一起打包成为一个数据包,其中消息代码作为数据包的包头,传输信息作为数据包的包体;
C.将整个数据包发送出去;
D.接收端收到信息后先解读所述数据包的消息代码,若所述消息代码显示的长度与所述传输信息的长度相同,则进一步读取传输信息,若所述消息代码显示的长度与所述传输信息的长度不相同,则不再读取传输信息。
[0004]本方法的进一步改进在于:所述步骤A中的所述信息代码中还包括业务流程代码。
[0005]本方法的进一步改进在于:在进行B步骤时,出于操作便易性以及统一数据结构的考虑,可在所述数据包的包头中再加入一段整包长度代码,所述整包长度代码位于信息代码之前。
[0006]本方法的进一步改进在于:在进行B步骤进行打包时,所述包头与所述包体之中的字节以某一最小字节为单位统一打包。
[0007]本方法的进一步改进在于:在进行B步骤进行打包时,传输过程中如果传输信息不足数据包最小字节的整数倍,则在所述传输信息后添加O作为补充,直到传输信息成为数据包最小字节的整数倍。
[0008]本方法的进一步改进在于:在进行B步骤进行打包时,若在同一服务器集群内部发送数据,则在所述数据包的包头前再添加主机标识字段。
[0009]本方法的进一步改进在于:同一服务器集群内部各服务器的主机标识,可预先分配,也可动态建立
本方法的进一步改进在于:步骤A中的所述消息代码可以用字符串命令进行代替。
[0010]本方法的进一步改进在于:步骤A中的所述消息代码与所述传输信息之间可以建立组合计算的关系。
[0011]本发明所设计的方案通过用户自定制的数据组织方法,用于在网络上传输各种定长和变长数据包,并将数据包与业务流程建立一一对应的映射关系,再由接收端进行对照检查接收,确保接收端只接收正确数据包、丢弃异常数据包,进而确保接收端不发生崩溃、死机或溢出之类的严重问题,保证了数据接收端的稳定性。
【附图说明】
[0012]图1是本具体实施例中传输数据使用的基本传输格式的示意图。
[0013]图2是本具体实施例中传输数据方法中数据从客户端发出时使用的传输格式的示意图。
[0014]图3是本具体实施例中传输数据方法中数据在同一服务器集群内部发出时使用的传输格式的不意图。
【具体实施方式】
[0015]下面详细说明本发明的具体实施方案。
[0016]本发明提供了一种网络数据包传输及分析的方法,在进行信息传输时进行以下步骤:
A.在传输的信息前加入一段与传输信息长度建立一一映射关系的消息代码;
B.将消息代码与传输信息一起打包成为一个数据包,其中消息代码作为数据包的包头,传输信息作为数据包的包体;
C.将整个数据包发送出去;
D.接收端收到信息后先解读所述数据包的消息代码,若所述消息代码显示的长度与所述传输信息的长度相同,则进一步读取传输信息,若所述消息代码显示的长度与所述传输信息的长度不相同,则不再读取传输信息。
[0017]本方法的进一步改进在于:所述步骤A中的所述信息代码中还包括业务流程代码。
[0018]图1是本具体实施例中传输数据使用的基本传输格式,在此称之为基本型。
[0019]基本型格式包括消息代码和有效负载两部分,其中消息代码是业务流程的抽象值,根据功能进行分段,与整个数据包长度建立映射关系,接收端根据此代码进行对照检查,再分包、组包,或过滤等。分为定长和变长两种类型。定长类型是指预先就可确定数据长度,变长类型指实时产生的一些数据,不能预先确定长度,比如:视频帧、聊天文字、剪贴画等等。定长类型直接指定长度数值即可,变长类型则根据代码分段范围,将一个数据块转换为多个数据包,即变为定长类型,接收后再还原。
[0020]有效负载是指要发送的实际数据,长度是可变的,与消息代码对应。
[0021 ]本方法的进一步改进在于:在进行B步骤进行打包时,所述包头与所述包体之中的字节以某一最小字节为单位统一打包。
[0022]按照操作系统位数、语言兼容性及业务复杂度,确定数据结构在内存中的布局,有利于提升执行速度和避免对齐错误等。例如:32位系统,对应4字节,64位对应8字节。另夕卜,这个数值也常常做为数据包的最小长度值。
[0023]我们以网络聊天为例对该数据传输方法进行讲解。假设网络两端均为32位操作系统,都采用C语言编程,最小数据包长度为4字节;业务功能为客户端/服务器模式的文字聊天工具。需要进行的操作包括用户登录,获取用户列表,文字聊天和退出。
[0024]用户登录、获取用户列表和退出,均为定长类型。虽然用户名称的长度不同,但有最大和最小长度限制,且最大长度都不大,所以,为了简化程序,一般都用定长数组表示。
[0025]文字聊天,是变长类型,消息代码从I到64。如果要发送105个文字,将转换为一个4+64字节数据包和一个4+41字节数据包。服务端将先收4+64字节,再收4+41字节。如果因为网络干扰等原因,服务端收到小于4字节的数据,则暂不做处理,继续接收后续数据。同理,如果收到4+?字节数据,则根据消息代码进行检查,小于对照长度,继续接收,大于对照长度,分段,直至不能再分,如果有剩余部分,继续接收。
[0026]综上所述,消息代码定长3种,变长64种,一共有67种。假设恶意用户发送这67种之外的消息代码,或者发送的数据长度与对照检查后的长度不符,服务端则忽略这些数据,并立刻
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1