处理数据包的方法及装置的制造方法_2

文档序号:9869878阅读:来源:国知局
似概率相对应。
[0046]202、数据接收端在与当前状态机存在最大转换概率的状态机上,解码数据包,得到解码后的结果。
[0047]对于本发明实施例,由当前状态机转换至下一个状态机,存在多个可供选择的状态机,首先通过最大的转换概率选择状态机,进入下一个状态机,进行解码。
[0048]203、数据接收端根据解码后的结果,判断选择的与当前状态机存在最大转换概率的状态机是否正确。
[0049]对于本发明实施例,数据接收端需要在当前状态机,判断所选择的状态机是否正确,若正确,则继续选择最大的转换概率,进入下一个状态状态机,进行解码该数据包。
[0050]204、若选择的与当前状态机存在最大转换概率的状态机不正确,则回滚至当前状态机,并选择另一个状态机。
[0051]其中,另一个状态机为除与当前状态机存在最大转换概率的状态机之外的任意一个状态机。
[0052]对于本发明实施例,若在最大转换概率的状态机上家吗后的数据包,经过验证,解码后的结果不正确,则胡一刀上一个得出正确解码结果的状态机,并选择除与当前状态机存在最大转换概率的状态机之外的任意一个状态机,重新对数据包进行解码。
[0053]205、数据接收端在另一个状态机上进行数据解码。
[0054]206、循环201至205,直至正确解码数据包。
[0055]对于本发明实施例,循环上述201-205,直至将接收到的数据包全部正确解码。
[0056]例如,如图3所示,在开始状态机,处理路径选择了最高匹配的概率(CFs2 = 90 % ),从而进入了状态机S2,同样的S2也选择了最高匹配概率的路径,进入状态S3。当在S3时的验证模块出现错误时,那么即回滚到原来的S2状态,下一步进入S4状态,直到后面决策又出现错误后回滚至状态。并最终选择了 S8—S9—最终(英文全称:Final)的一个过程。
[0057]对于本发明实施例,数据接收端按照状态机的方式,在每个状态均需要验证解码路径是否正确,即解码是否正确,若不正确,则回滚至原来的状态,选择另一条路径,以使得开始状态至结束状态,解码正确,而不需要按照现有技术的方式,对数据包中每个位串完全进行解码,均解码完成后才判断解码是否正确,从而可以进一步提高网络的利用率。
[0058]本发明实施例中另一种可能的实现方式,在如图2所示的基础上,步骤104、数据发送端按照状态机的方式,判断数据帧是否为确认字符ACK数据帧,具体包括如图4所示的步骤401-403。
[0059]401、数据发送端分别在第一状态机、第二状态机、第三状态机以及第四状态机,依次判断数据帧的字节数、类型、子类型以及接收地址是否均属于ACK数据帧,以判断数据帧是否为ACK数据帧。
[0060]对于本发明实施例,第一状态机用于判断该数据帧的字节数是否属于ACK数据帧的条件,第二状态机用于判断该数据帧的类型是否为ACK数据帧的类型,第三状态机用于判断该数据帧的子类型是否为ACK数据帧对应的子类型,第四状态机用于判断该数据帧对应的接收地址是否为数据发送端对应的地址。
[0061]402、若数据帧的字节数、类型、子类型以及接收地址均属于ACK数据包,则数据发送端判断数据帧为ACK数据帧。
[0062]对于本发明实施例,若第一状态机、第二状态机、第三状态机以及第四状态机判断出该数据帧对应的字节数、类型、子类型以及接收地址均属于该数据接收端接收到的ACK数据帧,则数据发送端判断该数据帧为ACK数据帧。
[0063]403、若数据帧的字节数、类型、子类型以及接收地址中的任意一个不属于ACK数据包,则数据发送端判断数据帧不是ACK数据帧。
[0064]例如,如图5所示,图中(S[?,SType)状态能够将控制帧与管理帧以及数据帧进行区分。其中,首先当MAC帧大小>20字节,或者帧的类型不是一个高confidence的01,则该处理即可以丢弃。后续处理则是将ACK从请求发送(英文全称:Request To Send,英文缩写:RTS)/允许发送(英文全称:Clear To send,英文缩写:CTS)这两类帧中进行区分,这个取决于subtype以及ACK的地址,因此后面将从Ssubtype进彳丁后续的处理。而最终的状态则是确定该帧是一个ACK或者是一个其它的某一个控制帧,如RTS/CTS。
[0065]对于本发明实施例,当数据处理中有多个选择时,则采用该跳转处理方法。原始处理时,只有一个选项,当该选项为“错误”时,则执行丢弃处理。与之相反的是,本发明中的跳转处理在分支点之前状态信息已被保存,如果处理路径中经过验证过程确认数据包最初是错误的,状态信息被实时保存下来,将会选择下一个最有可能的路径继续执行。
[0066]例如,如图5所示,当Subtype域显示有0.484的高confidence是CTS帧,接收地址与发送方的MAC地址就有高概率能够相符合(如高于0.9),那么跳转处理过程则会跳转到Subtype域,然后继续下一个最优可能的路径,即后面则是一个ACK的处理。
[0067]对于本发明实施例,当数据发送端判断不是ACK帧时,数据发送端需要发送数据包。在本发明实施例中,当假设为错误时,则采用的是回滚处理,一个ACK如果发生错误,取决于两个条件中的一个,其中,上述两个条件为ACK来自于另外一个接收者或者该帧是一个CTS。这里的验证/校正方法可以通过ACK里面一个累积的12序列号进行。当收到重复的ACK帧,错误即被检测出来。在这种情况下,协议处理就可以回滚,并且重新传输丢弃的帧。
[0068]对于本发明实施例,数据发送端通过按照状态机的方式,在每个状态均判断接收到的数据帧是否满足ACK数据帧的条件,能够当在前几个状态不满足ACK条件时,则确定接收到的数据帧不是ACK数据帧,而不需要均解码按完成以确定该数据帧是否为ACK数据帧,从而可以降低处理处理包的复杂度。
[0069]进一步地,本发明提供了一种处理数据包的方法,数据接收端按照状态机的方式,在每个状态均需要验证解码路径是否正确,即解码是否正确,若不正确,则回滚至原来的状态,选择另一条路径,以使得开始状态至结束状态,解码正确,而不需要按照现有技术的方式,对数据包中每个位串完全进行解码,均解码完成后才判断解码是否正确,从而可以进一步提高网络的利用率;数据发送端通过按照状态机的方式,在每个状态均判断接收到的数据帧是否满足ACK数据帧的条件,能够当在前几个状态不满足ACK条件时,则确定接收到的数据帧不是ACK数据帧,而不需要均解码按完成以确定该数据帧是否为ACK数据帧,从而可以降低处理处理包的复杂度。
[0070]作为对图1、图2以及图4所示方法的实现,本发明实施例还提供了一种处理数据包的装置,可以提高网络利用率。如图6所示,所述装置包括:接收单元61、处理单元62、第一发送单元63、判断单元64、第二发送单元65。
[0071 ]接收单元61,位于数据接收端中,用于接收数据发送端发送的数据包。
[0072]其中,数据包中包含多个位串,数据包中携带有每个位串处理的近似概率。
[0073]处理单元62,位于数据接收端中,用于根据每个位串处理的近似概率,并按照状态机的方式,处理数据包。
[0074]第一发送单元63,位于数据接收端中,用于向数据发送端发送数据帧。
[0075]判断单元64,位于数据发送端中,用于按照状态机的方式,判断数据帧是否为确认字符ACK数据帧。
[0076]第二发送单元65,位于数据发送端中,用于当数据帧不是ACK数据帧时,重新发送数据包。
[0077]其中,所述每个位串处理的近似概率为各个状态机之间进行转换的概率。
[0078]进一步地,如图7所示,处理单元62包括:选择模块621、解码模块622、判断模块623、回滚模块624、循环模块625。
[0079]选择模块621,位于数据接收端中,用于选择与当前状态机存在最大转换概率的状态机。
[0080]解码模块622,位于数据接收端中,用于在与当前状态机存在最大转换概率的状态机上,解码数据包,得到解码后的结果。
[0081]判断模块623,位于数据接收端中,用于根据解码后的结果,判断选择的与当前状态机存在最大转换概率的状态机是否正确。
[0082]回滚模块624,位于数据接收端中,用于当选择的与当前状态机存在最大转换概率的状态机不正确,回滚至当前状态机。
[0083]选择模块625,位于数据接收端,还用于选择另一个状态机,另一个状态机为除与当前状态机存在最大转换概率的状态机之外的任意一个状态机。
[0084]解码模块622,位于数据接收端中,还用于在另一个状态机上进行数据解码。
[0085]判断单元64
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1