发明内容
本发明是鉴于上述问题而进行的,其目的在于提供一种有效地进行伴随数据通信的信息包处理的技术。
本发明的一种形态涉及视频电话装置。该视频电话装置包括:接收经由网络发送来的信息包的接收部;在所接收的信息包是通过在数据的收发之前要求在装置间确立连接的通信方式发送来的TCP信息包时,利用软件来处理该信息包用的CPU;和在所接收的信息包是通过不要求确立装置间的连接的通信方式发送来的UDP信息包时,利用硬件来处理该信息包用的专用电路。
本发明的其他形态也涉及通信装置。该通信装置包括:接收经由网络发送来的信息包的接收部;在所接收的信息包是由进行发送信息包的到达确认的第一通信方式所发送的信息包时,利用软件来处理该信息包用的通用电路;和在所接收的信息包是由不进行发送信息包的到达确认的第二通信方式所发送的信息包时,利用硬件来处理该信息包用的专用电路。
通用电路可以是CPU、DSP等。第一通信方式,例如,可以是TCP。第二通信方式,例如,可以是UDP。通过只将UDP的处理硬件化,从而可以抑制电路规模的增大,同时可以将UDP的处理高速化。
该通信装置还包括:经由网络发送信息包的发送部;在所发送的信息包由所述第一通信方式发送时,可以利用所述通用电路来处理其信息包;在所发送的信息包由所述第二通信方式发送时,可以利用所述专用电路来处理其信息包。
该通信装置还可以包括:检测所接收的信息包是通过哪种通信方式发送的检测部。检测部可以参照信息包的标题来检测通信方式。该检测部也可以由专用的电路构成。
在由所述检测部检测出利用上述第一通信方式发送的信息包时,所述检测部不经由所述通用电路而可以将信息包直接送到专用电路。通过不经由软件处理而直接利用专用电路进行处理,从而可以实现高速的处理。另外,可以减轻CPU等通用电路的处理负担。
该通信装置还可以包括:将构成信息包的数据加密或解密的安全性处理部。安全性处理部也可以由专用的电路构成。
本发明的其他形态也涉及通信装置。该通信装置包括:接收经由网络发送来的信息包的接收部;和第一判别部,其在所接收的信息包是被分段化(fragment)的信息包时,为了利用软件来处理其信息包而传送到通用电路,在所接收的信息包不是被分段化的信息包时,为了用硬件来处理其信息包而传送到第一专用电路。
在IP信息包中,由于附有选择项(option)的IP信息包或被分段化的IP信息包等需要复杂的处理,故如果也想用专用电路来处理这些IP信息包,则导致电路规模增大、耗费电力或成本增多等问题。因此,通过用专用电路高速处理平常的IP信息包,用CPU等通用电路通过软件来处理比平常的IP信息报还需要复杂处理的特殊IP信息包,从而可以抑制专用电路的电路规模,可以减少耗费电力及成本。
该通信装置还可以包括第二判别部,其在由所述第一专用电路处理过的信息包是收发数据前要求确立装置间连接的第一通信方式所发送来的信息包时,将其信息包传送到所述通用电路;在由所述第一专用电路处理过的信息包为不要求确立装置间连接的第二通信方式所发送的信息包时,将该信息包传送到硬件处理用的第二专用电路。也可以在IP处理电路进行过平常的IP信息包的IP处理之后,判断信息包是UDP还是TCP,在UDP电路只处理UDP信息包,利用CPU等通用电路来软件处理TCP信息包。
本发明的其他形态也涉及通信装置。该通信装置包括:辨别经由网络接收的信息包是否为包括要求实时性处理的数据的信息包的辨别部;暂时保持所述信息包的缓冲器;和控制所述信息包向所述缓冲器的存储的控制部。所述控制部在所述缓冲器的空置区域少于规定阈值时,允许包含要求所述实时性处理的数据的信息包向缓冲器的存储,而禁止不包含要求实时性处理的数据的信息包向所述缓冲器的存储。
通过将要求实时性处理的信息包优先取入接收缓冲器并进行处理,从而可以抑制缓冲器饱和而废弃要求实时性处理的信息包的可能性。
本发明的其他形态也涉及通信装置。该通信装置包括:辨别部,其辨别经由网络接收的信息包是收发数据前要求确立装置间连接的第一通信方式所发送的信息包还是不要求确立装置间连接的第二通信方式所发送的信息包;暂时保持所述信息包的缓冲器;和控制所述信息包向所述缓冲器的存储的控制部,所述控制部在缓冲器的空置区域少于规定的阈值时,允许利用所述第二通信方式所传送的信息包向所述缓冲器的存储,而禁止利用第一通信方式传送来的信息包向所述缓冲器的存储。
在利用UDP收发电话装置中的通话声音信号或视频电话装置中的图像信号等的情况下,通过比TCP信息包优先选择性取入UDP信息包,从而可以抑制UDP信息包被废弃而遗漏通话声音信号等数据的可能性。
本发明的其他形态也涉及通信装置.该通信装置包括:辨别经由网络所接收的信息包的种类的辨别部;暂时保持所述信息包的缓冲器;和控制信息包向所述缓冲器的存储的控制部,所述控制部根据信息包的种类,保持多个用于判定信息包向所述缓冲器的存储允许与否的阈值,禁止所述缓冲器的空置区域少于阈值的信息包种类的信息包向所述缓冲器的存储.
可以将相对于要求实时性处理的信息包或重要度高的信息包的阈值设定得比相对于其他信息包的阈值还低。由此,在缓冲器的空置区域没有减少时,优先取入有实时性的信息包或重要度高的信息包,可以抑制信息包被废弃的可能性。
本发明的其他形态涉及电话装置。该电话装置包括:输入声音的输入部;将由所述输入部输入的声音发送到其他装置,并从其他装置接收声音的通信部;和输出从其他装置接收得声音的输出部,所述通信部包括:接收经由网络发送来的信息包的接收部;检测所接收的信息包的通信方式的检测部;在所述通信方式是在收发数据前要求确立装置间连接的第一通信方式时,利用软件处理该信息包的通用电路;和在所述通信方式是不要求确立装置间连接的第二通信方式时,利用硬件处理该信息包的专用电路;利用所述第二通信方式收发所述声音。输出部可以是扬声器,输入部可以是麦克风。
本发明的其他形态涉及视频电话装置。该视频电话装置,包括:输入图像和声音的输入部;将由所述输入部输入的图像和声音发送到其他装置,并从其他装置接收图像和声音的通信部;和输出从其他装置接收的图像和声音的输出部,所述通信部包括:接收经由网络发送来的信息包的接收部;检测所接收的信息包的通信方式的检测部;在所述通信方式是在收发数据前要求确立装置间连接的第一通信方式时,利用软件处理该信息包的通用电路;和在所述通信方式是不要求确立装置间连接的第二通信方式时,利用硬件处理该信息包的专用电路,利用所述第二通信方式收发所述图像及声音。
本发明的其他形态涉及摄像装置。该摄像装置,包括:摄像图像的摄像部;和将由所述摄像部所摄像的图像发送到其他装置,并从其他装置接收图像的通信部,所述通信部包括:接收经由网络发送来的信息包的接收部;检测所接收的信息包的通信方式的检测部;在所述通信方式是在收发数据前要求确立装置间连接的第一通信方式时,利用软件处理该信息包的通用电路;和在所述通信方式是不要求确立装置间连接的第二通信方式时,利用硬件处理该信息包的专用电路,利用所述第二通信方式收发所述图像。
本发明的其他形态涉及通信方法。该方法包括:接收信息包时,检测其信息包的通信方式的检测工序;和根据所述通信方式,将其信息包的数据传送到应处理其信息包的电路的工序,所述进行检测的工序通过分析信息包的标题,从而检测出该信息包是分段化的信息包还是未分段化的信息包;所述传送数据工序将所述分段化的信息包传送到软件处理用的通用电路,将所述未分段化的信息包传送到硬件处理该信息包用的专用电路。所述检测工序通过分析信息包的标题,从而检测出:是利用收发数据之前要求确立装置之间连接的第一通信方式的信息包还是利用不要求确立装置之间连接的第二通信方式的信息包;所述数据传送工序可以将所述第一通信方式的信息包传送到软件处理用的通用电路,将所述第二通信方式的信息包传送到硬件处理该信息包用的专用电路。
所述检测工序通过分析信息包的标题,从而检测出:是被分段化的信息包还是未被分段化的信息包,所述数据传送工序可以将所述被分段化的信息包传送到软件处理用的通用电路,把所述未被分段化的信息包传送到处理其信息包用的专用电路。
不要求实时性的数据利用所述第一通信方式来收发,而要求实时性的流式数据(stream data)可以利用所述第二通信方式来收发.所谓要求实时性的数据是指受时间制约的数据,另外,所谓不要求实时性的数据是指不受时间制约的数据.流式数据例如可以是通话声音数据、动态图像等.
本发明的另一形态涉及通信方法。该方法包括:在接收了信息包时,检测其信息包的种类的工序;根据设定在所述每一种类的条件,判断其信息包向暂时保持信息包的缓冲器的存储允许与否的工序;在允许存储时,将其信息包存储到所述缓冲器的工序;和在不允许存储时,废弃其信息包的工序。
本发明的其他形态涉及信息包处理装置。该信息包处理装置包括:暂时保持经由网络而取得的信息包的缓冲器;和控制所述信息包向所述缓冲器的存储的写入控制部;所述写入控制部废弃所述信息包的标题信息中的发送目标地址信息之后存储在所述接收缓冲器中。
存储在信息包的MAC标题内的发送目标地址,一旦接收其信息包,在以后的处理中就是不必要的,故通过废弃它,从而可以使缓冲器的使用效率提高。
所述写入控制部可以存储包含表示是否以单播(unicast)、多播(multicast,组播)、广播(broadcast)等任意方法发送信息包的发送种类信息的管理信息,来替代所述发送目标地址信息。所述管理信息还可以包含:表示信息包种类的信息包种类信息及表示下一个信息包的存储位置的地址信息。所述写入控制部可以将所述管理信息集中为一个字,以字为单位整形后续的数据之后,存储在所述缓冲器内。
MAC标题以32比特字为3.5个字,因为是半端的尺寸,故如果直接存储在缓冲器内,则后续的数据都变为偏移半个字。因此,通过废弃1.5个字的发送目标MAC地址后存储在缓冲器内,从而可以以字为单位校准后续的数据。此时,可以追加一个字份的信息包处理所需的管理信息。由此,硬件上和上都容易处理。
本发明的其他形态也涉及信息包处理装置。该信息包处理装置包括:暂时保持经由网络而取得的信息包的缓冲器;和控制所述信息包从所述缓冲器的读出的控制部,构成为在所述信息包的标题部分分配分别独立的寄存器,能随机存取,而所述信息包的数据部分经由存取端口寄存器来进行读出。
由于标题信息为了CPU决定信息包的转送目标而有必要读出,故分配给独立的寄存器而使其存取变为容易。只要决定转送目标,数据部分向转送目标复制就可以,所以利用存取端口寄存器,不用管理指针即可存取。
所述读出控制部可以根据读出信息包的种类,设定所述存取端口寄存器开始读出的位置。例如,在MAC信息包中,在MAC数据的前头位置;在IP信息包中,在IP数据的前头位置自动设定读出开始位置。由此,可以进一步减轻CPU的处理负荷。
还可以包括:在将所述信息包存储到所述缓冲器之前,通过分析其标题信息,从而废弃不需要的信息包的标题分析部;和在将所述信息包存储到所述缓冲器之前,计算出其检验和,验证是否与存储在标题内的检验和一致的检验和运算部。由此,CPU可以以保持在缓冲器内的信息包是有效信息包为前提进行处理。
本发明的其他形态涉及电话装置.该电话装置包括:输入声音的输入部;将由所述输入部输入的声音发送到其他装置,并从其他装置接收声音的通信部;和输出从其他装置接收的声音的输出部,所述通信部包括:接收经由网络发送来的信息包的接收部;和处理所接收的信息包的信息包处理部;所述信息包处理部包括:暂时保持所述信息包的缓冲器;和控制所述信息包向所述缓冲器的存储的写入控制部;所述写入控制部废弃所述信息包的标题信息中的发送目标地址信息而存储在所述接收缓冲器内.
本发明的另一形态也涉及电话装置。该电话装置包括:输入声音的输入部;将由所述输入部输入的声音发送到其他装置,并从其他装置接收声音的通信部;和输出从其他装置接收的声音的输出部,所述通信部包括:接收经由网络发送来的信息包的接收部;和处理所接收的信息包的信息包处理部;所述信息包处理部包括:暂时保持所述信息包的缓冲器;和控制所述信息包向所述缓冲器的存储的写入控制部;构成为在所述信息包的标题部分,分配分别独立的寄存器并能随机存取,而所述信息包的数据部分经由存取端口寄存器进行读出。
本发明的其他形态涉及信息包处理方法。该方法包括:接收了信息包时,将其信息包暂时存储在缓冲器内的工序;在所述存储工序之前,废弃所述信息包的标题信息中的发送目标地址信息的工序。
本发明的其他形态涉及检验和计算方法。该方法是为了向在规定定时内确定数据长的数据块提供检验和,而在所述定时之前,对每一个包含所述数据块的数据单元的规定长,计算从所述数据单元前头开始的检验和的累计值,并保持在存储装置中。
数据块例如可以是TCP中的有效载荷(pay load)。TCP信息包虽然是在即将发送之前确定数据长,但是,在通过对每个预先规定长存储检验和的累计值,而确定了数据长时,利用其数据块前后的累计值,可以在短时间内计算出检验和。
可以在确定了所述数据块的数据长之后,从所述存储装置读出其数据块前后的所述累计值,来计算其数据块的检验和。也可以从所述存储装置读出到所述数据块之前的数据为止的检验和的累计值、和到所述数据块最后数据为止的检验和的累计值,计算出那些差之后,作为其数据块的检验和。
本发明的其他形态也涉及检验和运算方法。该方法为了向在规定定时内确定数据长的数据块提供检验和,而在所述定时之前,将包含所述数据块的数据单元分割为规定长,在其各部分计算出检验和,并保持在存储装置中。
所述数据块的数据长可以限制为所述规定长的整数倍。
本发明的其他形态涉及检验和的记录方法。该方法是针对某一数据单元的多处,计算出从数据单元的前头到其处为止的检验和之后进行保持。即使在数据单元的尺寸大的情况下,通过对中途的多处记录检验和的中途结果,从而在接近数据单元前头的数据存在错误时,不用计算数据单元全体的检验和,即可检测出错误。
本发明的其他形态涉及通信装置。该通信装置包括:受理数据单元的输入的输入部;计算出从所述数据单元前头开始的检验和的累计值的计算部;和对每一个所述数据单元的规定长保持累计值的保持部。
还可以包括:将所述数据单元分割为多个数据块,并经由网络送出的输出部;控制下一次要送出的数据块尺寸的尺寸控制部;和取得下一次要送出的数据块的尺寸,并从所述保持部读出其数据块前后的所述累计值,计算出其数据块的检验和的第二运算部。
所述保持部可以在利用预先没有决定所发送数据块的尺寸的通信方式来送出数据单元的情况下,对每一个规定长保持从其数据单元前头开始的检验和的累计值;在利用预先决定所发送数据块的尺寸的通信方式来送出数据单元的情况下,保持其数据单元全体的检验和.预先没有决定所发送数据块的尺寸的通信方式,例如可以是TCP;预先决定所发送数据块的尺寸的通信方式,例如可以是UDP.
二汽,上述构成要素的任意组合,将本发明的表现在方法、装置、系统等之间进行过变换的形态,作为本发明的形态也是有效的。
上述的目的及其他目的、特征和优点,通过如下叙述的最佳实施方式和附图,变为更加清楚。
具体实施方式
(第一实施方式)
图1表示本发明的第一实施方式的通信装置一例的互联网电话装置100的全体构成。互联网电话装置100是经由互联网20,和其他的互联网电话装置100进行通话用的装置。互联网电话装置100主要包括:作为用来执行软件处理的通用电路的CPU110;作为程序区域或工作区域来利用的存储器120;经由互联网20收发信息包的网络接口部130;输入声音信号的麦克风150;输出声音信号的扬声器160;进行声音信号的压缩编码化处理和译码处理的编解码处理部140;进行对应于通信协议的各种处理的协议处理部170;和电连接这些构成的总线102。
在本实施方式的互联网电话装置100中,作为传送层(transport)的通信协议,利用UDP收发声音信号。由于UDP是不要求确立连接,能连续不断发送信息包的通信方式,故协议处理简单、且能进行高速通信,适用于发送通话声音等的实时性的通信。在本实施方式的互联网电话装置100中,通过使作为专用电路的协议处理部170执行由UDP发送过来的信息包的处理,可以进一步提高处理速度,实现通话声音的实时性的收发。
在互联网电话装置100收发的信息包中的、由TCP收发的信息包是利用CPU110由软件进行处理。对不要求实时性的TCP,不设专用电路,通过进行通用电路的软件处理,从而可以抑制电路规模的增大,可以将成本、消耗电力、热发生的增大抑制在最小限度内。根据本发明人的试算,可知:和利用专用电路来处理TCP和UDP双方的情况相比,电路面积和消耗电力约1/3即可。
网络接口部130所接收的信息包被传送到协议处理部170的IP处理部178。IP处理部178判断其信息包是否送到分配给自装置的IP地址的信息包,只将送到自装置的信息包传送到协议检测部176。协议检测部176参照附加在信息包上的IP标题内的表示协议种类的PROT,或参照TCP标题或UDP标题,检测协议种类。在信息包是利用TCP传送来的信息包的情况下,将其信息包的数据传送到总线102上,利用CPU110进行软件处理。在信息包为UDP的信息包的情况下,将其信息包传送到UDP处理部174,由为了进行UDP数据的处理而专用设置的电路来进行处理。
UDP处理部174是用来处理UDP信息包的专用电路,接收UDP信息包,分析其标题,执行必要的处理。安全性处理部172在对数据实施了加密等安全性对策的情况下,进行将密码译码等的处理。译码完的数据被传送到编解码处理部140。编解码处理部140将压缩编码的通话声音译码,并输出到扬声器160。
这样,在本实施方式的互联网电话装置100中,比正确性更重视实时性,在通话中,需要常时处理的通话声音数据,由UDP进行收发信号,由作为专用电路的UDP处理部174进行硬件处理,另一方面,比实时性更重视正确性的数据由TCP进行收发,由CPU110进行软件处理。由此,可以抑制电路的复杂化、电路规模、成本、消耗电力、热发生等的增大,同时能高速低处理通话声音数据。这样的优点在与多个对象通话或与通话声音一起传送图像等、有必要同时处理大量数据的情况下更为明显。另外,可以利用协议检测部176检测出信息包的种类,高速且恰当选择信息包的处理主体。并且,由于除了可以减轻CPU110的处理负担,实现低成本化、低消耗电力化以外,还可以在CPU110产生余力,故在通话中能执行其他应用程序,还可以提供新的服务。
以上说明了接收信息包时的动作,接着说明:将从麦克风150输入的声音信号进行信息包化之后进行发送的动作。从麦克风150输入的声音信号被传送到编解码处理部140而被编码。编码完的声音信号,如果有必要,则由安全性处理部172加密后,传送到UDP处理部174,附加UDP标题,而被信息包化。该UDP信息包经由网络接口部130发送到互联网20。
图2是表示本实施方式的通信方法的顺序的流程图.如果网络接口部130接收信息包(S100),则IP处理部178进行处理后,协议检测部176检测是UDP信息包还是TCP信息包(S102).在是TCP信息包的情况下(S102的是),由作为用来处理UDP信息包的专用电路的UDP处理部174进行信息包处理(S104).在是TCP信息包的情况下(S102的否),由作为通用电路的CPU110进行信息包处理(S106).然后,根据数据的种类,进行必要的处理.
在实施方式中,虽然以电话装置为例进行了说明,但是,本实施方式的技术能利用在计算机或移动电话等、收发流式数据的通信装置的所有方面。
可以在一个半导体基板上搭载具有IP处理部178、协议检测部176、UDP处理部174功能的电路。并且,还可以安装安全性处理部172、编解码处理部140、CPU110等电路。由此,可以谋求通信装置的小型化、轻量化、高速化。
根据本实施方式,可以有效地处理利用多个通信协议的数据通信。此外,可以利用比较简单的电路构成,以高速实现实时性的通信。
(第二实施方式)
图3表示第二实施方式的通信装置一例的视频电话装置200的全体构成。本实施方式的视频电话装置200是在图1所示的第一实施方式的互联网电话装置100构成的基础上,具备作为输入部一例的图像输入部180及作为输出部一例的显示装置190。对于其他的构成,和第一实施方式同样。对同样的构成附以相同的符号。在本实施方式中,图像数据也是利用UDP来进行收发。
图像输入部180和通话声音一起输入应向对方发送的图像。图像输入部180可以从外部照相机或视频再生装置等输入图像,也可以自身作为摄像装置来摄像图像。所输入的图像直接被传送到编解码处理部140,进行编码,由UDP处理部174整形为UDP信息包,由网络接口部130发送到互联网20。显示装置190显示:和通话声音一起从对方接收的图像。包含在网络接口部130所接收的UDP信息包内的图像数据是由UDP处理部174、安全性处理部172和编解码处理部140来处理,从编解码处理部140直接向显示装置190传送图像数据并显示。
(第三实施方式)
图4表示第三实施方式的通信装置一例的数码相机300的全体构成。本实施方式的数码相机300具有电话通信功能,在图1所示的第一实施方式的互联网电话装置100构成的基础上,具备摄像部182和显示装置190。其他的构成,和第一实施方式同样。对同样的构成附以相同的符号。
摄像部182包含CCD等摄像元件和控制它的构成,摄像静止图像或动态图像。所摄像的图像被直接传送到编解码处理部140,由UDP处理部174整形为UDP信息包,由网络接口部130发送到互联网20。显示装置190显示:和通话声音一起从对方接收的图像。包含在网络接口部130所接收的UDP信息包内的图像数据,由UDP处理部174、安全性处理部172、和编解码处理部140进行处理,从编解码处理部140传送到显示装置190并进行显示。
(第四实施方式)
图5表示第四实施方式的通信装置一例的视频电话装置200的全体构成。本实施方式的视频电话装置200和图3所示的第二实施方式的视频电话装置200相比,图像输入部180和显示装置190不是直接连接在编解码处理部140上,而是连接在总线102上。其他的构成和图3同样,对同样的构成附以相同的符号。
图像输入部180输入的图像保持在存储器120内,适当读出并由编解码处理部140进行编码.编码完的图像数据由UDP处理部174整形为UDP信息包,由网络接口部130发送到互联网20.包含在网络接口部130所接收的UDP信息包中的图像数据,由UDP处理部174、安全性处理部172、和编解码处理部140进行处理,经由总线102传送到显示装置190并进行显示.
(第五实施方式)
图6表示第五实施方式的通信装置一例的数码相机300的全体构成。本实施方式的数码相机300和图4所示的第三实施方式的数码相机300相比,摄像部182和显示装置190不是直接连接在编解码处理部140上,而是连接在总线102上。其他的构成和图4同样,对同样的构成附以相同的符号。
摄像部182所摄像的图像保持在存储器120内,适当读出,并由编解码处理部140进行编码。编码完的图像数据由UDP处理部174整形为UDP信息包,并由网络接口部130发送到互联网20。包含在网络接口部130所接收的UDP信息包内的图像数据由UDP处理部174、安全性处理部172、和编解码处理部140进行处理,经由总线102传送到显示装置190并进行显示。
(第六实施方式)
图7表示第六实施方式的通信装置一例的互联网电话装置100的全体构成。本实施方式的互联网电话装置100是在图1所示的第一实施方式的互联网电话装置100的构成的基础上,还具备IP辨别部186和信息包接收部192,具备UDP辨别部184而替代协议检测部176。其他的构成和图1同样,对同样的构成附以相同的符号。
即使在本实施方式的互联网电话装置100中,也和第一实施方式同样,通过用专用的硬件来处理包含声音信号的UDP信息包,从而使处理速度提高,实现通话声音的实时收发,但在本实施方式中提出一种进一步使实时性提高的技术。
信息包接收部192是为了将包含要求实时性的数据优先于不要求实时性的信息包,存储在接收缓冲器193内,对于不要求实时性的信息包,如果接收缓冲器193的空置区域少于阈值,则禁止向接收缓冲器193的存储,只存储要求实时性的信息包成为可能。由此,可以抑制要求实时性的信息包的接收延迟或信息包被废弃而数据遗漏的可能性。
IP辨别部186辨别IP信息包中的要求复杂处理的特殊信息包,将其信息包传送到CPU110并进行软件处理,另一方面,将平常的IP信息包传送到IP处理部178而由硬件进行处理。由此,可以回避IP处理部178的硬件规模的增大、复杂化、消耗电力的增大,同时可以由专用的硬件高速处理平常的IP信息包。一边参照附图,一边对每一个技术的详细内容进行后述。
图8表示信息包接收部192的内部构成。控制部195包括:读出位置管理部196、写入位置管理部197和缓冲器饱和检测部198。本实施方式的接收缓冲器193由FIFO(First In First Out先进先出)存储器构成,读出位置管理部196是保持接收缓冲器193的读出地址的寄存器,写入位置管理部197是保持接收缓冲器193的写入地址的寄存器。缓冲器饱和检测部198通过计算保持在读出位置管理部196内的读出地址与保持在写入位置管理部197内的写入地址之差,从而检测出接收缓冲器193的使用区域的大小,把握接收缓冲器193的空置区域。
缓冲器饱和检测部198保持有用来判定向接收缓冲器193的写入允许与否的多个阈值.阈值是根据信息包的种类来设定的,如果接收缓冲器193的空置区域少于对应于某一个信息包种类的阈值,则禁止其种类的信息包向接收缓冲器193的写入,废弃所接收的信息包.
在本实施方式中,为了将包含要求实时性处理的数据的信息包优先存储在接收缓冲器193中,而将相对于要求实时性处理的信息包的允许与否判定的阈值设定得比相对于不要求实时性处理的信息包的允许与否判定的阈值还低。例如,在将相对于要求实时性处理的信息包的阈值设为0,将相对于不要求实时性处理的信息包的阈值设为50%时,如果接收缓冲器193的空置区域少于50%,则缓冲器饱和检测部198对不要求实时性处理的信息包判定为饱和而禁止写入,另一方面,对要求实时性处理的信息包判定为有空置区域而允许写入。即,在接收缓冲器193的空置区域为50%以上时,要求实时性处理的信息包和不要求实时性处理的信息包都能存储在接收缓冲器193中,但若空置区域少于50%,则只允许要求实时性处理的信息包的存储。
在本实施方式中,要求实时性的声音信号是利用UDP来收发的。因此,信息包辨别部194辨别所接收的信息包是TCP信息包还是UDP信息包,如果是TCP信息包,则采用对不要求实时性处理的信息包的允许与否判定;如果是UDP信息包,则采用对要求实时性处理的信息包的允许与否判定。信息包辨别部194将允许了存储的信息包存储在接收缓冲器193内,并废弃拒绝存储的信息包。
在TCP中,在利用FTP(File Transfer Protocol文件传送协议)转送数据文件等的情况下,虽然有暂时接收大量的信息包的可能性,但此时,接收缓冲器193有被TCP信息包饱和而不能接收UDP信息包的危险。由于包含声音信号的UDP信息包有实时性地再生的必要,故通过使UDP信息包可以优先利用接收缓冲器193,从而将信息包的废弃所引起的数据的遗漏抑制在最小限度内。由于UDP不进行再发送控制,故一旦被废弃,就不能再度取得;但由于TCP可以进行再发送控制,故能通过再发送来补充遗漏的数据。
也可以构成为设置两个接收缓冲器193,在一方中存储要求实时性的信息包,在另一方中存储不要求实时性的信息包,但由于通过利用上述技术,从而用一个接收缓冲器193可以优先接收要求实时性处理的信息包,故和设置两个接收缓冲器193的情况相比,可以抑制硬件规模,可以降低消耗电力。
可以预先在信息包的标题信息里存储:表示是否包含要求实时性处理的数据的信息,参照其信息取得信息包的种类,判定:向接收缓冲器193的存储允许与否。不仅是实时性的有无,也可以根据其他的观点来设定阈值而决定向接收缓冲器193的存储的优先度。例如,将重要性高、不允许数据遗漏的信息包的阈值设定得比其他信息包的阈值还低,以便优先取得。信息包辨别部194保持阈值,从缓冲器饱和检测部198取得接收缓冲器193的剩余量,来判定写入接收缓冲器193的允许与否,也是可以的。
图9表示本实施方式的信息包接收顺序的流程图。如果网络接口部130接收信息包(S200),则信息包辨别部194辨别是否为包含要求实时性处理数据的信息包(S202)。在是实时性的信息包的情况下(S202的是),则利用相对实时性的信息包设定的阈值,判定向接收缓冲器193存储的允许与否(S204)。在不是实时性的信息包的情况下(S202的否),则利用相对非实时性的信息包设定的阈值,判定向接收缓冲器193存储的允许与否(S206)。然后,在允许所接收信息包向接收缓冲器193存储的情况下(S208的是),将信息包存储在接收缓冲器193中(S210),在没有允许存储的情况下(S208的否),废弃信息包(S212)。
图10表示IP辨别部的内部构成。作为第一辨别部一例的IP辨别部186包括:IP标题检测部187、IP标题判定部188和信息包输出转换部189。IP标题检测部187检测从信息包接收部192取得的信息包的IP标题,并传送到IP标题判定部188。IP标题判定部188参照IP标题等来判定其信息包是平常的IP信息包还是要求复杂处理的特殊IP信息包,向信息包输出转换部189通知其判定结果。特殊的IP信息包,例如可以是附加可选项的IP信息包、分段化的IP信息包。信息包输出切换部189根据IP标题判定部188的判定结果,切换IP标题检测部187所取得的IP信息包的输出目标。信息包输出切换部189,为了由硬件处理平常的IP信息包,而将其输出到作为第一专用电路一例的IP处理部178,为了由软件处理要求复杂处理的特殊IP信息包,而通过总线接口输出到作为第一通用电路一例的CPU110。
分段化的IP信息包有必要进行:信息包的顺序管理、有遗漏或重复时的处理等比平常的IP处理更复杂的处理。另外,附加可选项的IP信息包需要对应于所附加的可选项的处理。若这种例外的处理也由硬件来实现,则会增大电路规模,导致成本或消耗电力的增大。因此,通过只设置只能处理平常的IP信息包的硬件,从而抑制成本或消耗电力。
将由IP处理部178处理过的信息包传送到作为第二辨别部一例的UDP辨别部184。UDP辨别部184辨别所接收的信息包是TCP信息包还是UDP信息包,UDP信息包是利用作为第二辨别部一例的UDP处理部174来进行硬件处理,另一方面,TCP信息包是利用作为通用电路一例的CPU110来进行软件处理。在这里,UDP辨别部184虽然具有和第一实施方式中的协议检测部176同样的功能,但在本实施方式中,为了明示通信协议中的传送层的通信方式种类的辨别,而利用了该名称。
这样,在本实施方式的互联网电话装置100中,由IP辨别部186检测IP信息包的种类,可以高速且适当地选择信息包的处理主体。另外,通过将通话声音等包含要求实时性处理的数据的平常的IP信息包由作为专用电路的IP处理部178高速进行处理,同时,要求复杂处理的特殊的IP信息包由CPU110进行软件处理,从而可以抑制:电路的复杂化、电路规模、成本、消耗电力、热发生等的增大。
图11是表示本实施方式的信息包处理顺序的流程图。如果网络接口部130接收信息包(S300),则IP辨别部186辨别是否为平常的IP信息包(S302)。在为平常的IP信息包的情况下(S302的是),由作为专用电路的IP处理部178进行IP信息包的处理(S304)。在为要求复杂处理的特殊IP信息包的情况下(S302的否),传送到作为通用电路的CPU110,由软件进行信息包处理(S310)。UDP辨别部184辨别:由IP处理部178处理过的信息包是否为UDP信息包(S306)。在是UDP信息包的情况下(S302的是),由作为专用电路的UDP处理部174来进行UDP信息包的处理。在是TCP信息包的情况下(S306的否),传送到作为通用电路的CPU110,由软件进行信息包的处理(S310)。
即使根据本实施方式,也可以有效地处理利用多个通信协议的数据通信。另外,利用比较简便的电路构成而可以高速地实现实时性的通信。
(第七实施方式)
图12是表示第七实施方式的通信装置一例的互联网电话装置100的全体构成.互联网电话装置100是经由互联网20和其他互联网电话装置100进行通话的装置.互联网电话装置100主要包括:作为用来执行软件处理的通用电路的CPU110;作为程序区域或工作区域来利用的存储器120;经由互联网20收发信息包的网络接口部130;输入声音信号的麦克风150;输出声音信号的扬声器160;进行声音信号的压缩编码处理和译码处理的编解码处理部140;进行通信数据的加密处理或译码处理等的安全性处理部172;作为用来处理UDP信息包的专用电路的UDP处理部174;进行对应于通信协议的各种处理的协议引擎50;和电连接这些构成的总线102.
本实施方式的互联网电话装置100由于不是将接收的信息包的处理只让CPU110承担,而是在将信息包转送到CPU110之前,由专用的硬件所构成的协议引擎50进行标题分析、错误检查、数据的校准等处理,所以CPU110没有必要进行无用的信息包处理,可以大幅度减轻处理负荷。
在本实施方式的互联网电话装置100中,利用UDP收发声音信号。由于UDP不要求连接的确立,而是能连续地发送信息包的通信方式,所以协议处理简单,且能进行高速通信,适用于发送通话声音等实时性通信。在本实施方式的互联网电话装置100中,通过使作为专用电路的UDP处理部174执行UDP信息包的处理,从而使处理速度进一步提高,实现通话声音的实时性收发。
互联网电话装置100所收发的信息包中的、由TCP收发的信息包,利用CPU110软件来进行处理。对于不要求实时性的TCP信息包,不设置专用电路而通过进行利用通用电路的软件处理,从而可以抑制电路规模的增大,可以将成本、消耗电力、热发生的增大抑制在最小限度内。根据本发明人的试算,可知:和利用专用电路来处理TCP和UDP双方的情况相比,可以使电路面积和消耗电力减少到1/3(P27)。这样,在本实施方式中,通过由专用硬件和通用软件来协调处理,从而应处理的高速化和削减电路规模的谬论的希望。
将网络接口部130所接收的信息包传送到协议引擎50。协议引擎50判断信息包是否为发送到分配给自装置的IP地址的信息包,只通过发送到自装置的信息包,废弃其他的信息包。另外,参照附加在信息包上的标题信息检测出协议的种类,在信息包是由TCP传送来的信息包的情况下,将其信息包的数据传送到总线102上,由CPU110进行软件处理。在信息包是UDP信息包的情况下,将其信息包的数据传送到UDP处理部174,由为了进行UDP信息包处理而专门设计的电路来进行处理。
UDP处理部174是用来处理UDP信息包的专用电路,接收UDP信息包后,分析其标题,执行必要的处理。安全性处理部172在对数据实施了加密等安全性对策的情况下,进行将密码解密等处理。解密过的数据被传送到编解码处理部140。编解码处理部140将压缩编码的通话声音信号进行译码,并输出到扬声器160。
这样,在本实施方式的互联网电话装置100中,比正确性更重视实时性,通话中、常时处理成为必要的通话声音数据是由UDP来进行收发,由作为专用电路的UDP处理部174来进行硬件处理,另一方面,比实时性更重视正确性的数据是由TCP进行收发,由CPU110来进行软件处理。由此,可以抑制电路的复杂化、电路规模、成本、消耗电力、热发生等的增大,同时,能高速地处理通话声音数据。这种优点在和多个对象进行通话或与通话声音一起发送图像等、有必要同时处理大量数据的情况下更为显著。并且,利用协议引擎50来检测信息包的种类,可以高速且适当地选择信息包的处理主体。还有,由于除了可以减轻CPU110的处理负担,实现低成本、低消耗电力化以外,CPU110还有余力,所以通话中还能执行其他的应用程序,提供新的服务。
如上所述,说明了接收信息包时的动作,接着,对将从麦克风150输入的声音信号进行信息包化并发送时的动作进行说明。从麦克风150输入的声音信号被传送到编解码处理部140,以进行编码。编码过的信号,如果有必要,则由安全性处理部172进行加密后,被传送到UDP处理部174,附加UDP标题,以被信息包化。该UDP信息包由协议引擎50附加检验和值等标题信息,并经由网络接口部130发送到互联网20。
图13表示协议引擎50的内部构成。ARP控制部202在网络接口部130接收发送给自装置的IP地址的ARP(Address Resolution Protocol地址解析协议)信息包时,自动地设置自装置的数据链路层的地址(MAC地址)信息之后生成应答信息包,发送到ARP信息包的发送源。以往是ARP信息包也利用CPU110来进行软件处理,但在本实施方式中,通过使ARP控制部202不经由CPU110而自动应答,从而可以大幅度地减轻CPU110的负担,同时可以减少插入所引起的任务开关。
标题分析部210进行:分析信息包的标题信息,废弃不必要的信息包,而只通过必要的信息包的处理。例如,只通过发送给自装置的IP地址的信息包,废弃发送给其他IP地址的信息包。可以在只收发IP信息包的装置中装载本实施方式的协议引擎50的情况下,废弃IP以外通信方式的信息包。另外,也可以检测出特定的信息包,传送到处理其信息包的专用电路。在本实施方式中,因为由作为专用电路的UDP处理部174来处理UDP信息包,故如果标题解析部210通过分析标题信息而检测出UDP信息包,则其UDP信息包不经由CPU110而直接转送到UDP处理部174。此时,可以废弃标题信息之后只传送数据部分。由此,由于可以使CPU110只处理需要软件处理的信息包,故可以减轻CPU110的处理负担。另外,通过由适当的专用硬件来处理信息包,从而可以谋求处理的高速化。
检验和运算部212运算出信息包的检验和,验证是否和存储在标题聂的检验和的值相同。在一致的情况下,通过其信息包,在不一致的情况下,废弃其信息包。以往是CPU110进行了检验和的验证,但如本实施方式所示,在传送到CPU110之前的阶段,通过由专用电路进行检验和的验证,从而可以防止使CPU110进行无用的处理,可以减轻CPU110的处理负担。
写入控制部220将通过了标题分析部210的信息包存储在接收缓冲器230中。虽然由检验和计算部212检测出错误的信息包不是存储在接收缓冲器230内而是废弃,但并行向接收缓冲器230写入的方法的效率比在检验和计算部212计算检验和期间内待机向接收缓冲器230写入的方法。因此,写入控制部220不等待检验和计算部212的验证结果,而将通过了标题分析部210的信息包写入接收缓冲器230内,在利用检验和计算部212的验证中检测出错误的情况下,删除已写入的信息包,将写入指针返回到原来状态。读出控制部240控制存储在接收缓冲器230内的接收信息包的读出。在图15中详细叙述写入控制部220、接收缓冲器230和读出控制部240的构成及动作。
检验和生成部280计算发送信息包的检验和.因为UDP信息包在接通发送指令(cue)的时刻,信息包尺寸是确定的,故利用检验和生成部280预先计算并保持数据部的检验和,在发送信息包时,由标题合成部250在标题中设置检验和.因为TCP信息包是在发送信息包时确定信息包尺寸,故无法预先算出数据部的检验和,但通过对每一个规定区域算出检验和累计值并保持,从而可以简化信息包发送时的检验和计算处理.如果将TCP信息包的信息包尺寸限定在检验和累计值计算区间的整数倍内,则数据部的检验和的值是可以减法计算数据部区间前后的检验和累计值来获得.
第一发送缓冲器270存储发送信息包中的发送目标MAC地址未解决的信息包。第二发送缓冲器272存储发送信息包中的发送目标MAC地址清楚的信息包。ARP接口260针对存储在第一发送缓冲器270内的、发送目标的MAC地址不明的信息包,为了解决其MAC地址,生成ARP信息包并在网络上进行广播。由于到ARP信息包的应答返回为止的期间无法发送其信息包,故区别于不要求地址解决的信息包的指令,设置第一发送缓冲器270并使其待机,在此期间,由第二发送缓冲器272发送不要求待机中的地址解决的信息包。如果ARP的应答返回,则设置已解决的MAC地址,发送第一发送缓冲器270的信息包,接着针对待机中的信息包送出ARP信息包。然后,在到应答返回为止的期间内,再度发送第二发送缓冲器272的信息包。由此,减少整体的发送等待时间,可以有效地发送信息包。另外,由于即使是发送目标的MAC地址未解决的信息包,只要投入第一发送缓冲器270就可以自动地一边解决MAC地址,一边送出信息包,故CPU110方的处理变得简单,可以减轻处理负荷。
标题合成部250,为了将保持在第一发送缓冲器270或第二发送缓冲器272内的发送待机中的发送信息包经由网络接口部130送出,而生成其信息包的标题信息。标题合成部250自动生成不能频繁变更的参数或能容易推测的参数,以生成标题信息。例如,IP标题的识别符,即使CPU110不指定,标题合成部250也会自动增量而设置在标题中。CPU110除了数据以外,只要指定发送目标和信息包尺寸就可以。由此,使CPU110的缓冲管理简单化,可以减轻处理负担。
主机表204一一对应其他装置的MAC地址和IP地址并保持。图14表示主机表204的内部数据的例子。在主机表204中,设有主机ID栏205、MAC地址栏206和IP地址栏207。主机表204的内容可以登记有CPU110预先频繁进行通信的可能性的主机装置的信息,也可以在通信中登记CPU110。即使是MAC地址不明的主机装置,也可以首先只存储IP地址,利用ARP接口260发送ARP信息包,在取得其应答时登记MAC地址,。因为设有主机表204,故CPU110在指定信息包的发送目标时,可以利用主机ID、MAC地址、IP地址中的任意一个来进行指定。标题合成部250参照主机表204,可以取得标题生成所必需的信息。
主机接口部290在协议引擎50的构成要素与CPU110之间控制数据或指示的输入输出。
图15表示写入控制部20和读出控制部240的内部构成。写入控制部220包括:管理信息生成部222、数据转换部224、写入地址生成部226、延迟电路228和选择器229。通过了标题分析部210进行的信息包筛选的信息包由管理信息生成部222和数据转换部224进行整形,并存储在接收缓冲器230内。信息包的数据被整形的样子,将一边参照图16一边在后面叙述。写入地址生成部226管理接收缓冲器230的写入指针。如上所述,同时进行利用检验和计算部212的检验和的验证,将信息包的数据存储在接收缓冲器230内,但在检测出检验和的错误时,写入地址生成部226将写入指针返回原来的位置。如果没有检测出检验和的错误,向接收缓冲器230的存储正常结束,则写入地址生成部226向管理信息生成部222通知下一个信息包的地址。读出控制部240包括:读出地址生成部242和选择器244。
图16表示利用写入控制部220整形信息包的数据的样子.平常的IP信息包,前头的MAC标题占14比特,但在32比特的字中,变为3.5个字,成为不完整的字,故以后的数据变为各偏移16比特的形态.如果这样直接存储在接收缓冲器230内,则在存取时不方便,所以在本实施方式中,整形数据,以使MAC标题为3字之后,存储在接收缓冲器230内.即,只要将MAC标题减少16比特就可以.MAC标题中的发送目标MAC地址和自装置的MAC地址相同,因为已经接收信息包,故是不需要.因为MAC地址是48比特,故如果废弃这个,就剩下32比特的余地.根据应用程序,有时需要信息包以单播、多播(组播)、广播的哪一个来发送的信息,故将其作为标记,替代发送目标MAC地址而存储.由于该标记2比特就足够了,故还剩下30比特的余地.因此,将表示信息包种类的标记或表示下一个信息包的存储位置的地址信息等作为管理信息来存储.如上所述,由于MAC标题控制在3字内,故可以以字为单位来校正以后的数据,存取变得容易.
返回图15,对将所接收信息包写入的顺序和读出的顺序进行说明。管理信息生成部222生成上述管理信息。作为管理信息,例如,可以生成:表示该信息包是以单播、多播、广播的哪一个来发送的发送种类信息;表示该信息包是TCP信息包还是UDP信息包,是否为分段化过的IP信息包或附加选项的IP信息包等要求复杂处理的特殊IP信息包、的信息包种类信息;表示下一个信息包存储位置的地址信息等。在存储下一信息包的地址信息的情况下,由于完成自信息包的数据的存储之后,从写入地址生成部226取得下一个信息包的地址信息,所以管理信息向接收缓冲器230的写入是在结束信息包数据的存储之后。这些管理信息被整形为全体的1字,经由选择器229存储在接收缓冲器230内。
数据转换部224为了以32比特字将所接收的信息包数据中的除了MAC地址以外的数据进行整形,而转换高位16比特和低位16比特。通过由延迟电路228将数据转换部224的输出中的高位16比特延迟1个时钟并进行合成,从而可以校正原来各偏移16比特的数据。被整形的数据经由选择器229存储在接收缓冲器230内。
写入地址生成部226,首先将指针移动到写入位置的前头,但因为第一字的管理信息最后存储,故增量指针,一边将指针增量一边连续写入MAC标题中的除了发送目标MAC地址以外的2字、IP标题5字、IP数据。如果数据部分的写入结束,则向管理信息生成部222通知下一个写入开始位置,将指针返回写入位置的前头,写入管理信息。
包含管理信息的标题信息分配分别独立的寄存器,使CPU110随机地可以存取任意次。因为存储在接收缓冲器230内的信息包是已经由标题分析部210和检验和运算部212验证了有效性的信息包,所以CPU110可以直接向标题信息进行存取,判断应转交数据的应用程序。另一方面,从一个存取端口寄存器读出数据部分。即,在最初的向存取端口寄存器的读出中,读出数据部分的最初数据,之后,通过连续存取相同的寄存器,从而连续不断地读出数据。如果决定数据的转送目标,则由于之后只复制数据,故没有必要使随机存取成为可能。因此,通过采用存取接口方式,从而可以比需要指针管理的存储变换方式还要简便,还减轻处理负担。另外,和可以与不具备CPU110的硬件组合利用。
接收缓冲器的读出地址由高位地址和低位地址所构成.在CPU110对存储在接收缓冲器230内的信息包的标题信息进行存取时,指定高位地址和低位地址双方.对于高位地址,如果读出想要存取哪一个信息包的哪一个标题而指定读出地址生成部242,则读出地址生成部242自动生成高位地址而移动指针.对于低位地址,将CPU110输出的低位地址直接作为接收缓冲器的低位地址,以使CPU110自由读出.在CPU110对信息包的数据部分进行存取时,只要在读出地址生成部242中指定想要存取哪一个信息包的数据就可以.读出地址生成部242自动生成高位地址和低位地址并移动指针,连续不断地读出数据.
在实施方式中,虽然以电话装置为例进行了说明,但是本实施方式的技术也可以利用在计算机、移动电话等、收发流式数据的通信装置的所有方面。
可以将具有协议引擎50的功能的电路安装在一个半导体基板上。并且,也可以装载安全性处理部172、编解码处理部140、CPU110等电路。由此,可以谋求通信装置的小型化、轻量化、高速化。
根据本实施方式,可以提供有效进行伴随数据通信的信息包处理的技术。另外,根据本实施方式,可以提供:减轻信息包处理中的CPU的处理负担,以高速实现实时性通信的技术。
(第八实施方式)
图17表示第八实施方式的通信装置一例的互联网电话装置100的全体构成。互联网电话装置100是经由互联网20和其他互联网电话装置100进行通话用的装置。互联网电话装置100主要包括:作为用来执行软件处理的通用电路的CPU110;作为程序区域或工作区域来利用的存储器120;经由互联网20收发信息包的网络接口部130;输入声音信号的麦克风150;输出声音信号的扬声器160;进行声音信号的压缩编码处理和译码处理的编解码处理部140;进行IP通信用的各种处理的IP处理部178;进行TCP或UDP通信用的各种处理的TCP/UDP处理部400和电连接这些构成的总线102。
在本实施方式的互联网电话装置100中,为了由TCP/IP发送声音信号等数据而生成TCP信息包时,在输入了发送的数据时,对每规定长预先计算检验和的累计值并保持。然后,在确定了TCP信息包的尺寸时,利用其累计值,计算出其信息包的检验和。由此,和以往的、确定发送尺寸之后读出数据并计算检验和的方式相比,可以大幅度减少检验和的计算所需的时间。对于这一点,在图18以后的说明部分中详细叙述。
首先,说明互联网电话装置100接收信息包时的动作。将网络接口部130所接收的信息包传送到IP处理部178。IP处理部178判断其信息包是否为发送到分配给自装置的IP地址的信息包,只将发送给自装置的信息包传送到TCP/UDP处理部400。TCP/UDP处理部400从标题信息等判断信息包是TCP信息包还是UDP信息包,分别对信息包执行必要的处理。在所接收的信息包是声音信号的情况下,其数据被传送到编解码处理部140。编解码处理部140对压缩编码过的通话声音信号进行译码,并向扬声器160输出。
接着,对互联网电话装置100发送包含声音信号的数据时的动作概要进行说明。从麦克风150输入的声音信号被传送到编解码处理部140,进行编码。被编码过的声音信号,如果有必要,则由图中未示出的安全性处理部加密之后,传送到TCP/UDP处理部400而被信息包化。生成的TCP信息包或UDP信息包经由网络接口部130发送到互联网20。
IP处理部178、TCP/UDP处理部400和编解码处理部140的功能,在硬件方面可以用CPU110或存储器120等的构成来实现,在软件方面可以利用协议处理功能或编码处理功能的某程序来实现,在本图中描述的是通过这些的协作来实现的功能块。因此,可以利用硬件、软件的组合以各种各样的形式来实现这些功能块。也可以由专用的电路来实现这些构成。在本图中,IP处理部178、TCP/UDP处理部400和编解码处理部140分别连接在总线102上,但在由专用的电路来实现这些的情况下,也可以由专用总线连接在各自的电路上。
图18表示图17的TCP/UDP处理部400的内部构成中的、用来实现本实施方式的特征性信息包生成功能的构成.TCP/UDP处理部400包括:受理由CPU110所准备的发送数据的输入的数据输入部410;计算发送数据的检验和累计值的检验和计算部420;保持发送数据的数据存储部430;对每一个发送数据的规定长区间保持检验和累计值的检验和存储部432;存储残存在数据存储部430内的未发送数据尺寸的数据尺寸存储部434;控制TCP信息包的发送尺寸的发送尺寸控制部440;生成TCP信息包和UDP信息包的、作为第二运算部一例的标题生成部450;和输出TCP信息包和UDP信息包的信息包输出部460.
首先,说明生成TCP信息包的顺序。将从CPU110等经由数据输入部410输入的发送数据存储在数据存储部430内,同时,传送到检验和计算部420。检验和运算部420计算从所输入数据的前头开始的检验和累计值,对每一个规定长输出所计算出的累计值并保持在检验和存储部432内。检验和是通过依次加法运算每16比特(一字)合在一起的数据来进行计算的,但在此,所谓加法运算是指1的补数加法运算,在加法运算结果未收纳在16比特内而是位数溢出的情况下,在加法运算结果上加1。
图19表示数据存储部430及检验和存储部432的内部数据的例子。在图19中,数据存储部430内存储有288字的发送数据。在检验和存储部432内,对每64字存储有检验和累计值。例如,从发送数据的前头开始,第64字为止的检验和累计值是16进制数的3210,从前头开始到第128字为止的检验和累计值是16进制数的5332。
返回图18,继续说明TCP信息包的生成顺序。发送尺寸控制部440考虑接收方的缓冲器的状况或信息包消失等的网络状况,决定下一次应该发送的TCP信息包的尺寸。此时,TCP信息包的尺寸限制为记录了检验和累计值的区间的单位长的整数倍。即,在本实施方式中,TCP信息包的尺寸限制为64字的整数倍。对于这个理由,后面要详细叙述。
如果标题生成部450从发送尺寸控制部440取得下一次应该发送的TCP信息包的尺寸,则以其尺寸为基础,决定应该发送的数据的区间,从检验和存储部432读出其区间之前区间的最后检验和累计值和其区间的最后的检验和累计值。然后,计算出其差值,获得该区间的检验和值。在1的补数运算中,以绝对值的位反转表现负数,作为a-b=a+^b(其中,^b表示b的位反转)来进行减法运算。标题生成部450将该检验和值存储在标题信息内,和其他标题信息一起输出。信息包输出部460输出从标题生成部450取得的标题信息之后,从数据存储部430读出发送尺寸量的数据并输出。
在图19的例子中,例如,若设最初发送的TCP信息包的尺寸为64字,则其信息包的检验和值为3210h。接着,假设能发送144字数据长的信息包。此时,发送尺寸控制部440将记录了检验和累计值的区间的单位长的整数倍且不超过能发送的信息包尺寸的尺寸作为下一次要发送的TCP信息包的尺寸。在此,成为不超过144的、最大的64的倍数即128字。接着应发送的数据430b和430c的检验和值是从作为其区间的最后的检验和累计值7654h中减去作为其区间之前的区间430a的最后检验和累计值3210h的值,即变为4444h。
如果发送数据,则从保持在数据尺寸存储部434内的未发送数据尺寸的值中减去已发送的数据尺寸。在发送尺寸控制部440已决定的TCP信息包的数据尺寸比未发送数据尺寸还大的情况下,保持在数据尺寸存储部434内的数据尺寸被输出到标题生成部450。此时,标题生成部450从数据全体的检验和累计值中减去之前刚发送的数据区间的最后检验和累计值,获得发送信息包的检验和值。
这样,由于预先对每一个规定长计算检验和累计值并保持,利用其累计值计算出信息包的检验和,故可以大幅度缩短检验和的计算所需时间,可以削减从确定信息包尺寸到发送信息包为止的延迟时间.这在收发通话声音等要求实时性的数据时特别有效.
记录检验和累计值的单位区间的尺寸,考虑发送方和接收方装置的性能或网络的性能来设计就可以。因为网络上的通信,不可避免地伴随某种程度的不可靠性,并且,以小于必要尺寸的信息包来进行通信是效率不好的,所以即使将要发送的信息包尺寸限制为64字的整数倍,也没有不方便。在对每64字存储检验和累计值的情况下,检验和存储部432的容量和对全体数据保持检验和累计值的情况相比,是六十四分之一即可。另外,由于为了计算出信息包的检验和而从存储器读出的数据是对应于信息包数据前后的检验和累计值的2字就可以,故没有必要由物理性分割为数据存储部430和检验和存储部432的两种存储器来实现,可以综合为一个。即,相对存储器的制约小。
虽然上述方法也可以由软件来实现,但是,在为了实现更高速化,而由专用的硬件来实现TCP和UDP用的处理的情况下,如果应用本方法,则可以改善存储器存取的开销,可以更有效地有助于处理的高速化。
接着,说明生成UDP信息包的顺序。将从CPU110经由数据输入部410而被输入的数据存储在数据存储部430内,同时,传送到检验和计算部420。在UDP的情况下,由于预先指定所发送的信息包的尺寸,所以没有必要对每一个规定区间保持检验和累计值,而是计算出信息包全体的检验和之后保持在检验和存储部432内。标题生成部450从检验和存储部432读出下一次应发送的UDP信息包的检验和累计值之后存储在标题信息中,并和其他的标题信息一起输出。信息包输出部460输出从标题生成部450取得的标题信息以后,从数据存储部430读出数据并输出。
这样,根据本实施方式,没有必要分别设置用来进行TCP、UDP的信息包生成处理的构成,利用相同的构成就可以生成两种信息包并发送。
即使在利用TCP发送数据的情况下,在最初应发送的信息包的尺寸比数据尺寸还大时,因为能一次性发送所有的数据,所以没有必要利用减法运算计算出检验和值,数据全体的检验和值变为信息包的检验和值。
图20表示本实施方式的检验和计算方法的顺序的流程图。若从CPU110等经由数据输入部410输入发送数据(S400),则检验和计算部420计算出从所输入数据的前头开始的检验和累计值,对每规定长输出所计算出的累计值,并保持在检验和存储部432内(S402)。如果标题生成部450从发送尺寸控制部440取得下一次应发送的TCP信息包的尺寸(S404),则决定应和其尺寸一起发送的数据区间,从检验和存储部432读出其区间之前的数据为止的检验和累计值和其区间的最后的数据为止的检验和累计值(S406)。然后,算出它们的差,获得该区间的检验和值(S408)。信息包输出部460发送包含从标题生成部450取得的检验和的标题信息(S410),并且,从数据存储部430读出发送尺寸量的数据并发送(S412)。在残存有发送数据的情况下(S414的否),返回到S404,重复生成并发送信息包的顺序。如果发送所有的数据(S414的是),则结束处理。
在实施方式中,以互联网电话装置为例进行了说明,但本实施方式的技术可以利用在计算机、移动电话、数码相机、摄像装置等收发数据的通信装置的所有方面。另外,对于一系列的数据列,将从前头开始的检验和累计值埋设在多处的技术,不仅在通信中,还能利用在记录数据的装置的所有方面。
将用来实现TCP/UDP处理部400的电路和存储器安装在一个半导体基板上也是可以的。并且,也可以装载IP处理部178、编解码处理部140、CPU110、安全性处理部等电路。由此,可以谋求通信装置的小型化、轻量化、高速化。
根据本实施方式,可以提供缩短数据的检验和计算所需的时间的技术。另外,还可以提供削减高速的检验和计算所需的硬件规模的技术。
如上所述,以实施方式为基础说明了本发明。这些实施方式只不过是例子,本领域的技术人员可以理解:这些各构成要素或各处理步骤的组合能有各种各样的变形,并且,这些变形例也在本发明的范围内。
在上述的说明中,虽然主要以电话装置为例进行了说明,但是,在实施方式中所说明的技术可以利用在计算机或移动电话等收发实时性数据的通信装置的所有方面。