Ipv6报头接收装置和ipv6报头处理方法

文档序号:7591172阅读:117来源:国知局
专利名称:Ipv6报头接收装置和ipv6报头处理方法
技术领域
本发明涉及一种接收和处理IP报头的装置和方法,更具体地,涉及一种能够在硬件上实现的IPv6报头的接收装置和一种IPv6报头的处理方法。
背景技术
为了解决由网络和IP节点的快速增长所引起的32比特因特网协议(IP)地址的不足,因特网工程任务组(IETF)开始开发一种IPv6协议来取代IPv4协议并且在二十世纪60年代初就开始开发IPv6协议。在设计IPv4协议所积累的经验的基础上,IPv6协议是通过向IPv4协议添加新特征设计而成。
IPv6协议的大部分由软件实现。换句话说,在由传统的IP协议的软件实现中,从较低层接收到的分组被复制并且存储于存储器中随后进行处理。在传统的IP协议的软件实现中,层与层之间的数据传输是利用指针由存储缓冲器链式方法实现的。
图1示出了传统的IPv6协议输入模块的结构。当处理数据链路层和物理层的MAC控制器120,收集到对应于一帧的数据时,该MAC控制器120利用CRC校验和来确定该帧是否被损坏。如果帧没有受损,则MAC控制器120通过专用中断终端将分组传输至机器110。机器110中的处理器111利用指针112接收来自存储器113中的数据,处理所接收的数据,并且用所处理过的数据重写在存储器113中的位置。这样,每一层中的分组处理通过对存储器的重写来完成。
然而,在这样的IP的软件实现中,存储分组的存储器是必不可少的,于是,需要额外的时间来访问存储器。该额外时间意味着对分组的显著延迟,因此,在TCP/IP-端口的机器中产生很大的开销。
图2示出了扩展IPv6报头的格式。IPv6报头包括一个表示4位的IP版本号的版本字段;一个8位的业务类型字段(traffic class field);一个20位的流量标志字段(flow label field);一个有效负载长度字段(payload length field),该字段表示IPv6有效负载的长度,并且由无符号的16位整数组成;一个下一报头字段(next header field),该字段是一个8位的选择器,用于标识IPv6报头之后的扩展报头的类型;一个8位的中继限制字段(hop limit field);一个128位的表示分组源的源地址字段;以及一个128位的表示分组目的的目的地址字段。
IPv6分组可能没有扩展报头,或具有一个扩展报头或多个扩展报头。每个扩展报头均由包含在前一基本报头或扩展报头中的下一报头字段来标识。每个扩展报头具有8八位位组(octet)倍数的长度。
图2所示的扩展IPv6分组包括6个扩展报头。如果在一个分组中使用了多个扩展报头,则在IPv6报头和上一层报头(未示出)之间可以顺序排列一个逐段选择扩展报头(hop-by-hop option extended header)、一个目的地选择扩展报头(destination option extended header)、一个路由扩展报头(routing extendedheader)、一个分段扩展报头(fragment extended field)、一个验证扩展报头(authentication extended field)以及一个目的地选择扩展报头。
逐段选择扩展报头用于传送选择性信息,该信息在沿分组传输路径的每一个节点被检查。
逐段选择扩展报头中的下一报头字段是一个8位的选择器并且识别紧随在逐段选择扩展报头之后的报头的类型。逐段选择扩展报头中的扩展报头长度字段由无符号8位整数来表达,其表示以8个八位位组为单位形成的逐段选择扩展报头的长度。扩展报头长度字段的下一字段是可变长度字段,其包括一个选项。下一报头字段和扩展报头长度字段通常用于所有的扩展报头中。
路由扩展报头用于列出当一个分组从IPv6源地址传送到目的地址时必须访问的多个中间节点。
当分组的长度大于最大传送单位(MTU),而该分组又必须从IPv6的源地址传送到目的地址时,使用分段扩展报头。
目的地选择扩展报头用于传送选择性信息,该信息由分组中指定的目的节点进行检查。
图3A至3C示出了不同链路层实现IPv6的报头结构。如图3A所示,基于以太网的IPv6报头包括一个目的以太网地址、一个源以太网地址以及一个IPv6报头和有效负载。如图3B所示,基于光纤分布式数据接口(FDDI)的IPv6报头包括一个目的FDDI地址、一个源FDDI地址以及一个IPv6报头和有效负载。
如图3C所示,基于令牌环网上的IPv6报头包括一个目的地址、一个源地址以及一个IPv6报头和有效负载。从图3A至3C可以看出,IPv6报头以8个八位位组为单位被处理而不管链路层实现的类型。
传统的IPv6接收装置由于存储器接入所需的频率而具有一个增长的等待时间。当传统的IPv6接收装置在硬件上实现时,需要一个附加空间用于预测和计算可变扩展报头的长度。

发明内容
本发明的不同方面和/或优点将在以下的描述中被部分地提出,部分地,将从描述中明显地得到,或者可以由本发明的实践可以得知。
根据本发明的一个方面,提供一种不用花费存储器就能够实时处理IPv6报头的IPv6报头接收装置和一种IPv6报头处理方法。
根据本发明的一个方面,提供一种IPv6报头接收装置,该装置包括具有多个八位位组数据尺寸的寄存器,该寄存器以八位位组为单位接收IPv6报头数据,存储IPv6报头数据,并且传输所存储的IPv6报头数据至用来处理与IPv6报头数据相对应的IPv6报头的模块,以及用于IPv6基本报头或不同类型的IPv6扩展报头的模块,该模块从寄存器接收IPv6报头数据并处理IPv6报头数据。
根据本发明的一个方面,还提供一种IPv6报头接收装置,包括计数器,递增计数至每次以八位位组为单位可被传输的IPv6扩展报头数据量;具有多个八位位组的数据长度的寄存器,以八位位组为单位接收IPv6报头数据,存储IPv6报头数据,并且,如果计数器已经完成计数至一个特定数值,则传输所存储的IPv6报头数据至用于处理相应于IPv6报头数据的IPv6报头的模块,以及用于IPv6基本报头或不同类型的IPv6扩展报头的模块,该模块从寄存器接收IPv6报头数据并处理IPv6报头数据。
根据本发明的一个方面,还提供一种IPv6报头接收装置,包括八位位组指示器、具有多个八位位组的数据尺寸的寄存器、控制器以及用于IPv6基本报头或不同类型的IPv6扩展报头的模块。八位位组指示器递增计数至每次以八位位组为单位可被传输的IPv6扩展报头数据的数量。寄存器接收以八位位组为单位的IPv6报头数据并且存储IPv6报头数据。控制单元分析存储于寄存器中的IPv6报头数据以确定相应的IPv6报头数据的类型和长度。如果八位位组指示器已经完成递增计数至一个特定数值,则控制单元使具有特定长度的IPv6报头数据传输至用于处理相应于IPv6报头类型的IPv6报头的模块。用于IPv6基本报头或不同类型的IPv6扩展报头的模块从寄存器接收IPv6报头数据并处理IPv6报头数据。
根据本发明的一个方面,提供一种IPv6报头处理方法,该方法包括在寄存器中填充以预定尺寸为单位接收的IPv6报头数据,该数据为多个八位位组,然后由分析寄存器中填充的Pv6报头数据来识别IPv6报头类型,并传输IPv6报头数据至相应于已识别的Pv6报头类型的模块。


本发明的这些和/或其它方面和优点从以下实施例的描述中将变得清楚和容易评价,包括以下附图图1示出了一个传统IPv6输入模块的结构的示例。
图2示出了一个扩展IPv6报头的格式。
图3A至3C示出了以不同链路层实现的IPv6的报头结构。
图4是根据本发明的一个实施例的IPv6报头接收装置的框图。
图5示出了图4中的下一报头状态寄存器的详细结构;以及图6是用于说明根据本发明的一个实施例的IPv6报头处理方法的流程图。
具体实施例方式
现在详细描述本发明的实施例,其示例被图解在附图中,其中相同的附图标记自始至终表示相同的元件。下面说明实施例以通过参考附图解释本发明。
因为IPv6报头格式的处理是基于8个八位位组,根据本发明的IPv6实现装置是利用可以监视8个八位位组的额外装置以硬件实现的。
参考图4,根据本发明实施例的IPv6报头接收装置包括IP接收模块400和寄存器文件450。IP接收模块400以8个八位位组为单位接收IPv6报头并且传送所接收的8个八位位组的数据至寄存器文件450。寄存器文件450接收和处理IPv6报头。
IP接收模块400包括控制单元410、临时寄存器420、移位寄存器430和八位位组指示器440。临时寄存器420从链路层460接收数据并存储所接收的数据,其中数据量取决于接口的类型。例如,如果使用的是PCMCIA接口,则临时寄存器420的尺寸将是2个八位位组。
在数据被存储到临时寄存器420中之后,控制单元410立即分析数据,发出用于向移位寄存器430传输数据的传送命令,并且通知八位位组指示器440将被动态接收的数据量。
更具体地,控制单元410包括报头分析器411、下一报头状态寄存器412、长度寄存器413以及路径确定器414。
报头分析器411分析从临时寄存器420接收到的数据,确定与数据对应的报头的类型和长度,并且在下一报头状态寄存器412和长度寄存器413中分别设置下一报头的类型和下一报头的长度。更具体地,图2所示的扩展IPv6报头包括一个8位的下一报头字段和一个8位的扩展报头长度字段。当前扩展报头之后的下一扩展报头的类型可以由下一报头字段确定,并且下一扩展报头的长度可以由扩展报头长度字段确定。这些分析结果被设置在下一报头状态寄存器412和长度寄存器413中。
下一报头状态寄存器412存储表示现有扩展报头类型的数据。下一报头状态寄存器412的详细结构如图5中所示。
参考图5,下一报头状态寄存器412包括一个目的选择报头(DOH)位(目的节点位)、一个封装的安全净荷(ESP)位、一个验证报头(AH)位、一个分段报头(FH)位、一个路由报头(RH)位、一个DOH位(中间节点位)、一个逐段报头(HBH)位以及一个保留位。如果存在一个扩展报头,则相应的位就会被设置为真。当分组处理结束时,每一位被设置为假。
这样的下一报头状态寄存器提供了在网络层上用于校验和计算所需的字段信息,并且提供在由于报头字段的错误或网络媒体的错误,而产生ICMP消息时使用的控制信号。
长度寄存器413存储代表扩展报头长度的数据。
路径确定器414利用存储于下一报头状态寄存器412以及长度寄存器413中的信息来确定寄存器文件450中的哪一个模块来接收存储于移位寄存器430中的数据。一旦路径确定器414已经确定将传输的数据量,则它指示移位寄存器430来传输所确定数量的数据量至寄存器文件450的特定模块。
移位寄存器430每次从临时寄存器420接收2个八位位组的数据并且一直等到累积到8个八位位组。当已累积8个八位位组时,基于路径确定器414所确定的信息,移位寄存器430将该8个八位位组的数据移到寄存器文件450。
八位位组指示器440接收相应于一个八位位组的数据的计数量并且继续计数直到移位寄存器430接收到8个八位位组的数据。
辅助计数器441计数至8个八位位组的数据,该数据量相应于存储在移位寄存器430中的数量以及同时被传输至寄存器文件450的数量。主计数器442计算每一个扩展报头的最大有效长度。同时,主计数器442接收相应于来自报头分析器411的扩展报头长度的信息,并且帮助移位寄存器430接收并发送对应于扩展报头长度的正确数据量至寄存器文件450的一个模块,该模块能够处理相应数据的报头。
寄存器文件450包括基本报头模块451、路由报头模块452、AH模块453、ESP模块454、DOH模块455、HBH模块456以及上层模块457。
寄存器文件450的每个模块以预定单位从移位寄存器430中接收数据。当一个报头的内容被全部接收到时,每个模块处理该报头。
图6是用于说明根据本发明的IPv6报头处理方法的流程图。首先在操作S610中,IP接收模块400等待链路层460的数据传输。
在操作S620中,MAC层以预定单位向IP接收模块400发送数据。
在操作S630中,IP接收模块400在临时寄存器420中存储数据。例如,所接收的数据可以以2个八位位组为单元存储。
在操作S640中,控制单元410的报头分析器411接收并且分析存储于临时寄存器420中的数据,并使路径确定器414来确定移位寄存器430中的数据路径。换句话说,报头分析器411能够确定当前报头的下一扩展报头的类型和长度。下一扩展报头的类型被存储在下一报头状态寄存器412中,下一扩展报头的长度被存储在长度寄存器413中。同时,报头分析器411向主计数器442传输关于每个扩展报头的长度的信息并且通知移位寄存器430将被传至每个报头模块的数据量。当路径确定器414确定了哪一个模块接收存储于移位寄存器430的数据时,存储在下一报头状态寄存器412和长度寄存器413中的信息就被使用。
在操作S650中,存储于临时寄存器420中的报头数据被传输至移位寄存器430。
在操作S660中,确定辅助计数器441是否已停止。例如,如果临时寄存器420的长度是2个八位位组,移位寄存器430的长度是8个八位位组,当计数达到4时,辅助计数器441将停止计数。
如果在操作S660中确定辅助计数器441还未停止计数,则该方法回到操作S630,其中从MAC层所接收的数据被存储在临时存储器420中。
如果在操作S660中确定辅助计数器441已经停止计数,则接下来在操作S670中,路径确定器414指示移位寄存器430传输8个八位位组的数据至寄存器文件450的模块中。
在操作S680中,确定主计数器442的值是否已超过预定值。因为主计数器442保持代表下一扩展报头长度的信息,主计数器442帮助移位寄存器430传送所有构成下一扩展报头的数据至一个能够处理下一扩展报头的模块。
如果在操作S680中确定主计数器的值未超出预定值,即下一扩展报头的长度,则该方法回到操作S620,其中MAC层以预定单位传输L3数据。
如果在操作S680中确定主计数器的值己经超过预定值,在操作S690接收下一分组。如果主计数器的值已超出预定值,即如果实际接收数据量大于下一扩展报头长度指定的数据量,则可以确定在扩展报头中有错误产生。在这种情况下,取代所接收的、跟随在当前扩展报头之后的扩展报头,不使用相应于当前扩展报头的分组,并且接收和处理下一分组。
如上所述,根据本发明的IPv6接收装置不需要安装存储装置就可以在硬件上实现。因而,数据可以被实时处理,并且IPv6接收装置的数据处理时间、存储器容量以及生产成本被减少了。
尽管只显示和描述了本发明的几个实施例,但是对本领域的技术人员来说,在不脱离本发明的原理和精神的情况下,可以对实施例进行修改,本发明的范围由权利要求及其等价物来确定。
权利要求
1.一种IPv6报头接收装置,包括寄存器,具有多个八位位组的数据尺寸,所述寄存器以八位位组为单位接收IPv6报头数据,存储所述IPv6报头数据,并传输所存储的IPv6报头数据至对应于IPv6报头数据的IPv6处理模块;和用于IPv6基本报头或不同类型的IPv6扩展报头的模块,所述模块从所述寄存器接收所述IPv6报头数据并处理所述IPv6报头数据。
2.一种IPv6报头接收装置,包括计数器,计数至以八位位组为单位每次可发送的IPv6扩展报头数据的特定数量;寄存器,具有多个八位位组的数据尺寸,所述寄存器以八位位组为单位接收所述IPv6报头数据,存储IPv6报头数据,并且,如果所述计数器完成计数至所述特定数量,则所述寄存器传输所存储的IPv6报头数据至用于处理对应于IPv6报头数据的IPv6报头的模块;和用于IPv6基本报头或不同类型的IPv6扩展报头的模块,所述模块从所述寄存器接收IPv6报头数据并处理IPv6报头数据。
3.一种IPv6报头接收装置,包括八位位组指示器,计数至每次以八位位组为单位可传输的IPv6扩展报头数据的数量;寄存器,具有多个八位位组的数据尺寸,所述寄存器以8个八位位组为单位接收IPv6报头数据并存储所述IPv6报头数据;控制单元,分析存储在所述寄存器中的IPv6报头数据以确定对应于IPv6报头数据的类型和长度,并且,如果所述八位位组指示器完成递增计数至所述特定数量,所述八位位组指示器指示所述寄存器将具有所确定长度的IPv6报头数据传输至对应于IPv6报头类型的IP报头处理模块;和用于IPv6基本报头或不同类型的IPv6扩展报头的模块,所述模块从所述寄存器接收所述IPv6报头数据并处理所述IPv6报头数据。
4.如权利要求3所述的IPv6报头接收装置,其中所述寄存器包括临时寄存器,具有多个八位位组的数据长度,以八位位组为单位接收IPv6报头数据并存储所述IPv6报头数据;和移位寄存器,每次以八位位组为单位从所述临时寄存器接收所述IPv6报头数据,并且如果所述移位寄存器被填充每次将要传输给模块的数据量,则所述移位寄存器传输所填充的数据量至所述模块。
5.如权利要求4所述的IPv6报头接收装置,其中所述控制单元包括报头分析器,从所述临时寄存器接收数据并分析所述数据;下一报头状态寄存器,根据从所述报头分析器的分析而获得的信息,存储跟随在当前报头之后的下一报头类型的信息;长度寄存器,根据从所述分析获得的信息,存储所述下一报头的报头长度信息;和路径确定器,指示所述移位寄存器将被传输的数据量和接收数据的模块、存储在所述长度寄存器中的报头长度信息中指定的数据量和存储在下一报头状态寄存器中下一报头类型信息中指定的模块。
6.如权利要求5所述的IPv6报头接收装置,其中所述八位位组指示器包括辅助计数器,递增计数至存储在所述移位寄存器中的数据量;和主计数器,递增计数至与存储在所述长度寄存器中的报头长度信息对应的数据量,并且如果所述主计数器的当前计数超过相应于报头长度信息的值,则所述控制单元指示所述临时寄存器接收下一分组的数据。
7.如权利要求3所述的IPv6报头接收装置,其中所述模块是基本报头模块、路由报头模块、目的选择报头模块、验证报头模块、ESP报头模块、逐段报头模块和上层模块。
8.一种IPv6报头处理方法,包括用以预定尺寸为单位接收到的IPv6报头数据填充寄存器,所述预定尺寸为多个八位位组;通过分析存储在所述寄存器中的IPv6报头数据来识别IPv6报头类型;和传输所述IPv6报头数据至相应于已识别的IPv6报头类型的模块。
9.一种IPv6报头处理器,包括数据链路层,用于数据传输;IPv6控制器,响应于来自所述数据链路层的数据传输的报头数据,并且检测所述报头数据的类型和长度,根据在所述数据传输中所检测到的报头数据的类型和长度来输出所述报头数据;和具有多个IPv6报头模块的寄存器文件,被耦合到所述IPv6控制器,每个IPv6报头模块接收和处理由所述IPv6控制器传输的相应报头数据。
10.如权利要求9所述的处理器,其中所述IPv6控制器包括存储寄存器,用于存储数据传输中的报头数据;计数器,当接收到一个八位位组的报头数据时,增加所述指示器的值;和控制单元,检测所述报头数据的类型和长度,根据所述指示器的值,从所述存储寄存器输出报头数据至相应的IPv6报头模块,其中所述相应IPv6报头模块是根据所检测到的报头数据类型和长度来确定的,其中所述相应IPv6报头模块处理所述报头数据。
11.如权利要求10所述的处理器,其中所述存储寄存器和所述多个报头处理器均是多个八位位组。
12.如权利要求10所述的处理器,其中所述存储寄存器包括缓冲寄存器,用于接收以多个八位位组传输的数据;和传输寄存器,其中所述缓冲寄存器输出多个八位位组的报头数据至存储报头数据的传输寄存器,并且当所述指示器值等于预定值时,在所述控制单元的指示下,所述传输寄存器的内容被输出。
13.如权利要求12所述的处理器,所述控制单元包括报头分析器,从所述缓冲存储器中接收数据并确定所述报头数据的类型和长度;下一状态寄存器,存储由所述报头分析器所确定的报头数据的类型;长度寄存器,存储由所述报头分析器所确定的报头数据的长度;和输出路径确定器,响应于所述下一状态寄存器和所述长度寄存器的内容,指示所述传输寄存器的内容至相应的报头处理器。
14.一种处理报头数据的方法,包括以多个八位位组的长度的分组方式移动报头数据至第一寄存器;传输所述报头数据至第二寄存器,在所述第二寄存器中保存报头数据;确定所述报头数据的类型和长度,由此确定保持在所述第二寄存器中的报头数据的输出路径;当每次报头数据从第一寄存器传输至第二寄存器时,增加计数器值;当计数器达到一个预定值时,通过所确定的输出路径,将所述第二寄存器的内容移动至预定处理模块。
15.如权利要求14所述的方法,其中所述报头数据是IPv6的格式。
16.如权利要求15所述的方法,还包括计算每个报头数据的最大有效长度;和确定每个报头数据的最大有效长度是否超过预定值,其中,如果预定值被超过,则接收下一报头数据分组。
17.如权利要求16所述的方法,其中如果预定值未被超过,则附加报头数据被移至所述第一寄存器。
18.权利要求16的方法,还包括从媒体访问控制层接收报头数据。
全文摘要
一种IPv6报头接收装置和IPv6报头处理方法,包括具有多个八位位组数据尺寸的寄存器,以及用于IPv6基本报头或不同类型的IPv6扩展报头的模块。寄存器以八位位组为单位接收IPv6报头数据,存储IPv6报头数据,并且传输所存储的IPv6报头数据至IPv6处理模块,所述处理模块对应于IPv6报头数据。模块从寄存器接收IPv6报头数据并且处理IPv6报头数据。相应地,IPv6报头数据在不花费存储器的情况下被实时地处理。
文档编号H04L29/06GK1531285SQ20041003266
公开日2004年9月22日 申请日期2004年1月13日 优先权日2003年4月11日
发明者李旼宰, 林镛埈, 李 宰 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1