CN1997028A - 信息处理装置和方法以及程序 - Google Patents
信息处理装置和方法以及程序 Download PDFInfo
- Publication number
- CN1997028A CN1997028A CNA200710001826XA CN200710001826A CN1997028A CN 1997028 A CN1997028 A CN 1997028A CN A200710001826X A CNA200710001826X A CN A200710001826XA CN 200710001826 A CN200710001826 A CN 200710001826A CN 1997028 A CN1997028 A CN 1997028A
- Authority
- CN
- China
- Prior art keywords
- mentioned
- protocol stack
- processing unit
- processing
- api
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/12—Protocol engines
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/325—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the network layer [OSI layer 3], e.g. X.25
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/326—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the transport layer [OSI layer 4]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Communication Control (AREA)
Abstract
本发明提供一种信息处理装置和方法以及程序,可以向特定的网络协议栈提供多种多样的API。API处理部(121)响应来自应用程序的请求,执行由多层构成的通信处理当中、网络协议栈的上层的第一处理,协议栈处理部(142)根据第一处理的处理结果,执行网络协议栈的第二处理,从而可以向特定的网络协议栈提供多种多样的API。本发明适用于个人计算机。
Description
技术领域
本发明涉及信息处理装置和方法以及程序,特别是涉及利用TOE(TCP Offload Engine,TCP卸载引擎)进行通信的信息处理装置和方法以及程序。
背景技术
目前,作为在互联网等网络中使用的协议,有TCP/IP(传输控制协议/互联网协议,Transmission Control Protocol/InternetProtocol)。TCP/IP原本是在UNIX(注册商标)中利用软件(软件程序)安装的,即使在现在,其处理的大部分也由软件执行。但是,随着大容量数据的网络传输要求的提高,要求实现TCP/IP处理的高速化的呼声变大。
针对该要求,出现例如被称为TOE(TCP Offload Engine,TCP卸载引擎)的、利用其它芯片(专用硬件)来代替执行耗费主机侧的CPU(中央处理单元)资源的TCP/IP处理的技术。由此,可以将主机侧的CPU资源仅分配到应用程序的处理,从而降低了主机侧的CPU的负荷,并且可以实现TCP/IP处理的高速化。
另外,在安装TCP/IP等网络协议栈(Network Protocol Stack)(以下也称为协议栈)的情况下,一般将协议栈和API(应用程序接口,Application Program Interface)安装在OS(操作系统)的内核(kernel)内部(形成一个程序),因此它们不可分地连结在一起。
即使是一个通信,也常常由作用不同的多个协议构成,因此这里将这些程序概括起来称为协议栈。例如,在TCP/IP的情况下,TCP(传输控制协议)和IP(互联网协议)是本来独立的程序,但一般采取将两者相组合的使用方法,因此表示成将它们组合起来的协议栈。另外,一般情况下,对应于分层定义的协议,安装该协议的软件也分层地构筑,因此,协议栈也指基于这些软件的安装。因此,以下将例如由TCP/IP或UDP/IP(用户数据报协议/互联网协议,User DatagramProtocol/Internet Protocol)等多个协议构成的协议、或者安装该协议的软件称为协议栈来进行说明。
另外,API是指可以在开发面向某个平台的软件时使用的命令或函数的集合。具体地说,例如套接字API(Socket API)被定义在应用层和传输层之间,由此进行网络通信或进程间通信(IPC(InterProcess Communication))。这些套接字API例如在OS为UNIX(注册商标)的情况下,利用BSD套接字安装,而在OS为Windows(注册商标)的情况下,利用Winsock(Windows(注册商标)套接字)来安装。
即,在现有技术中,协议栈和API在不可分地连结的状态下进行TCP/IP处理。
并且,还有一种如下工作的发送装置:在将输入的AV(视听,Audio Visual)数据存储到AV缓冲电路中后,在分组处理部中,生成32k字节的庞大分组数据,根据CPU生成的报头数据对所生成的庞大分组数据进行分割,生成最大1518字节的以太网(注册商标)分组并发送(例如专利文献1)。
[专利文献1]特开2003-229905号公报
发明内容
发明所要解决的技术问题
但是,在安装协议栈的情况下,协议栈和API由OS的内核内部不可分地连结,因此存在对于特定的协议栈无法提供多种多样的API的问题。
例如,特开2003-229905号公报所公开的发送装置在分割分组数据后发送,但由于协议栈和API不可分地连结,因此可能无法使用多种多样的API。
另外,由于协议栈和API紧密连结,因此还存在的问题是,在协议栈和API中的一方发生故障的情况下,对另一方也会产生直接影响。
而且,无法仅选择必要的API来装载到存储器上,因此还存在存储器的使用效率差的问题。
本发明鉴于这种情况作出,可以对特定的协议栈提供多种多样的API。
解决技术问题的技术手段
本发明的一个方面是一种信息处理装置,为了经由网络与连接在上述网络上的其它设备进行通信而执行通信处理,其特征在于,具备:第一处理单元,响应来自应用程序的请求,执行由多层构成的上述通信处理当中、网络协议栈的上层的第一处理;和第二处理单元,根据上述第一处理的处理结果,执行上述网络协议栈的第二处理,其中,上述第一处理单元通过由上述应用程序调用的API来执行上述第一处理。
网络是指至少连接了两个装置、可以从某个装置向其它装置传递信息的结构。经由网络进行通信的装置既可以是彼此独立的装置,也可以是构成一个装置的内部块(block)。
另外,通信既可以是无线通信和有线通信,也可以是无线通信和有线通信混合存在的通信,即在某个区间中进行无线通信、在其它区间中进行有线通信的通信。而且,也可以是以有线通信的形式进行从某个装置向其它装置的通信、而以无线通信的形式进行从其它装置向某个装置的通信的通信。
还可以具备:监视单元,监视上述第二处理单元的状态,并蓄积与其状态有关的信息。
上述第一处理单元可以通过选择执行上述第一处理所需的上述API并装载所选择的上述API,来执行上述第一处理。
上述API可以是套接字API。
上述网络协议栈可以是TCP/IP。
还可以具备:第三处理单元,在上述第二处理单元发生故障的情况下,执行上述第二处理,其中,上述第一处理单元在上述第二处理单元发生故障的情况下,从上述应用程序取得故障发生前的状态,并根据所取得的上述状态的结果,执行上述第一处理,上述第三处理单元根据上述第一处理的处理结果,执行上述第二处理。
还可以具备:第三处理单元,在上述第一处理单元或上述第二处理单元发生故障的情况下,执行上述第一处理;和第四处理单元,在上述第一处理单元或上述第二处理单元发生故障的情况下,执行上述第二处理,其中,上述第三处理单元在上述第一处理单元或上述第二处理单元发生故障的情况下,从上述应用程序取得故障发生前的状态,并根据所取得的上述状态的结果,执行上述第一处理,上述第四处理单元根据上述第一处理的处理结果,执行上述第二处理。
本发明的一个方面是一种信息处理装置的信息处理方法,该信息处理装置具备为了经由网络与连接在上述网络上的其它设备进行通信而执行通信处理第一处理单元和第二处理单元,其特征在于,上述信息处理方法包括:第一处理步骤,响应来自应用程序的请求,执行由多层构成的上述通信处理当中、网络协议栈的上层的第一处理;和第二处理步骤,根据上述第一处理的处理结果,执行上述网络协议栈的第二处理,其中,上述第一处理步骤通过由上述应用程序调用的API来执行上述第一处理。
本发明的一个方面是一种程序,为了经由网络与连接在上述网络上的其它设备进行通信而使第一处理单元和第二处理单元执行通信处理,其特征在于,上述程序包括:第一处理步骤,响应来自应用程序的请求,执行由多层构成的上述通信处理当中、网络协议栈的上层的第一处理;和第二处理步骤,根据上述第一处理的处理结果,执行上述网络协议栈的第二处理,其中,上述第一处理步骤通过由上述应用程序调用的API来执行上述第一处理。
在本发明的一个方面,响应来自应用程序的请求,执行由多层构成的上述通信处理当中、网络协议栈的上层的第一处理,根据上述第一处理的处理结果,执行上述网络协议栈的第二处理,通过由上述应用程序调用的API来执行上述第一处理。
发明效果
如上所述,根据本发明的一个方面,可以向特定的协议栈提供多种多样的API。
附图说明
图1是表示个人计算机的硬件结构的例子的框图。
图2是表示通信部的硬件结构的例子的框图。
图3是表示应用了本发明的个人计算机的一个实施方式的结构的框图。
图4是说明用户模块与协议栈模块之间的接口的图。
图5是说明由个人计算机进行的数据发送处理的流程图。
图6是说明在个人计算机中,在一个中间件的实例(instance)上连接了两个协议栈模块的情况的图。
图7是说明在个人计算机中中间件的实例与协议栈模块一对一地连接的情况的图。
符号说明
1:个人计算机、11:CPU、12:ROM、13:RAM、18:记录部、19:通信部、20:驱动器、21:可装卸媒体、51:CPU、52:ROM、53:RAM、55:记录部、101:用户模块、102:协议栈模块、111:应用程序、112:GUI命令工具、113:中间件、121:API处理部、122:网络管理部、131:API调度程序、132:套接字代理、133:协议栈API、134:设备驱动器、141:协议栈接口、142:协议栈处理部
具体实施方式
以下说明本发明的实施方式,如下例示本发明的构成要件与说明书或附图中记载的实施方式的对应关系。该记载是用于确认支持本发明的实施方式记载在说明书或附图中。因此,即使有虽然记载在说明书或附图中、但作为对应于本发明的构成要件的实施方式在此没有记载的实施方式,也不意味着该实施方式不对应于该构成要件。相反,即使实施方式对应于构成要件在此记载,也不意味着该实施方式不对应于该构成要件以外的构成要件。
本发明一个方面的信息处理装置(例如图1的个人计算机1)具备:第一处理单元(例如图3的API处理部121),响应来自应用程序的请求,执行由多层构成的通信处理当中、网络协议栈的上层的第一处理;和第二处理单元(例如图3的协议栈处理部142),根据第一处理的处理结果,执行网络协议栈的第二处理,其中,第一处理单元通过由应用程序调用的API来执行第一处理。
还可以具备:监视单元(例如图3的网络管理部122),监视第二处理单元的状态,并蓄积与其状态有关的信息。
第一处理单元可以通过选择执行第一处理所需的API并装载所选择的API,来执行第一处理。
API可以是套接字API。
网络协议栈可以是TCP/IP。
还可以具备:第三处理单元(例如图6的协议栈模块102-2的协议栈处理部142),在第二处理单元(例如图6的协议栈模块102-1的协议栈处理部142)发生故障的情况下,执行第二处理,其中,第一处理单元在第二处理单元发生故障的情况下,从应用程序取得发生故障前的状态,根据所取得的状态的结果,执行第一处理,第三处理单元根据第一处理的处理结果,执行第二处理。
还可以具备:第三处理单元(例如图7的用户模块101的中间件113-2的API处理部121),在第一处理单元(例如图7的用户模块101的中间件113-1的API处理部121)或第二处理单元(例如图7的协议栈模块102-1的协议栈处理部142)发生故障的情况下,执行第一处理;和第四处理单元(例如图7的协议栈模块102-2的协议栈处理部142),在第一处理单元或第二处理单元发生故障的情况下,执行第二处理,其中,第三处理单元在第一处理单元或第二处理单元发生故障的情况下,从应用程序取得发生故障前的状态,根据所取得的状态的结果,执行第一处理,第四处理单元根据第一处理的处理结果,执行第二处理。
本发明的一个方面的信息处理方法或程序包括:第一处理步骤(例如图5的步骤S12的处理),响应来自应用程序的请求,执行由多层构成的通信处理当中、网络协议栈的上层的第一处理;和第二处理步骤(例如图5的步骤S13的处理),根据第一处理的处理结果,执行网络协议栈的第二处理,其中,第一处理步骤通过由应用程序调用的API来执行第一处理。
本发明一个方面的程序可以记录在记录媒体(例如图1的可装卸媒体21)中。
以下参照附图来说明本发明的实施方式。
图1是表示个人计算机1的硬件结构的例子的框图。
在图1的例子的个人计算机1中,CPU(中央处理单元)11按照存储在ROM(只读存储器)12中的程序或者从记录部18装载到RAM(随机存取存储器)13中的程序来执行各种处理。RAM13中还适当存储CPU11执行各种处理时所必要的数据等。
CPU11、ROM12以及RAM13经由总线14相互连接。该总线14还连接有输入输出接口15。
输入输出接口15上连接有由键盘、鼠标等构成的输入部16,由扬声器和LCD(液晶显示器)等显示器等构成的输出部17,由硬盘等构成的记录部18以及通信部19。
通信部19例如由NIC(网络接口卡)等构成,控制经由网络的、与其它块的通信处理。通信部19的详情后述。
输入输出接口15上还根据需要连接有驱动器20,并适当安装有磁盘、光盘、光磁盘或半导体存储器等可装卸媒体21,从它们读出的计算机程序根据需要安装到记录部18中。
个人计算机1的硬件结构不限于图1的例子,只要至少具有后述图3的用户模块101的功能结构即可。
图2是表示通信部19的硬件结构的例子的框图。
通信部19与输入输出接口15(图1)连接,将CPU11(图1)提供的数据经由网络发送给与网络连接的其它设备,或者接收与网络连接的其它设备发送来的数据,并将接收到的数据提供给CPU11。另外,通信部19例如进行TCP/IP等协议栈的处理(与协议栈有关的规定处理)。
通信部19构成为包括CPU51、ROM52、RAM53、记录部55、接口56以及收发处理部57。CPU51、ROM52、RAM53、记录部55、接口56以及收发处理部57分别经由总线54相互连接。
在图2的例子的通信部19中,CPU51按照存储在ROM52中的程序或者从记录部55装载到RAM53中的程序来执行各种处理。RAM53中还适当地存储CPU51执行各种处理时所需的数据等。
收发处理部57在CPU51的控制下,例如进行用于经由网络向与网络连接的其它设备发送数据、或者接收与网络连接的其它设备发送来的数据的规定处理。
通信部19的硬件结构不限于图2的例子,只要至少具有后述图3的协议栈模块102的功能结构即可。
图3是表示应用了本发明的个人计算机1的一个实施方式的结构的框图。
个人计算机1是经由网络与连接在网络上的其它设备进行通信的设备,是本发明的信息处理装置的一个例子。
个人计算机1构成为包括用户模块101以及协议栈模块102。即,例如个人计算机1中的用户模块101表示个人计算机1的功能结构例,协议栈模块102表示通信部19的功能结构例。
在本实施方式中,个人计算机1具有上述图1的硬件结构,因此用户模块101例如构成为由CPU11(图1)执行的程序(软件)。但是,通过使个人计算机1的硬件结构与图1不同,用户模块101既可以构成为硬件单体,也可以构成为软件与硬件的组合。
另外,通信部19具有上述图2的硬件结构,协议栈模块102例如构成为由CPU51(图2)执行的程序(软件)。但是,通过使通信部19的硬件结构与图2不同,协议栈模块102既可以构成为硬件单体,也可以构成为软件与硬件的组合。
用户模块101例如记录在记录部18(图1)等中,根据需要装载到RAM13(图1)中,由CPU11(图1)执行。
CPU11在执行用户模块101的情况下,不是将用户模块101全部装载到RAM13中,而是可以仅选择需要的功能装载到RAM13中,从而执行所选择的功能。
用户模块101构成为包括应用程序111、GUI命令工具112以及中间件113。
应用程序111例如是Web浏览器、邮件程序(用于收发并管理电子邮件的应用程序)等在个人计算机1中由用户操作的应用程序。应用程序111响应用户的操作,向中间件113提供用于指定执行与该操作相对应的处理的API的命令(以下称为API调用(API call))。
GUI命令工具112是例如在网络的运行监视或开发时的调试等中使用的应用程序。GUI命令工具112响应用户的操作,向中间件113提供与该操作相对应的API调用。
中间件113是向应用程序111和GUI命令工具112中的每一个提供例如与通信有关的功能等特定功能的软件。例如,中间件113提供与后述的协议栈模块102有关的功能。
中间件113构成为包括API处理部121和网络管理部122。
API处理部121执行由应用程序111或GUI命令工具112提供的、对应于API调用的规定处理。API处理部121将规定处理的处理结果提供给协议栈模块102。
即,API处理部121例如将在OS的内核等中不可分地连结的API和协议栈分离,因此不进行协议栈的处理(协议栈的处理由后述的协议栈处理部142进行)。
换言之,在利用分割成层次结构的模型来考虑通信功能(通信处理)的情况下,API处理部121可以说是进行例如TCP/IP等协议栈的上层的处理。
在此详情后述,但作为API处理部121的规定处理的结果,如图中的用户模块101和协议栈模块102之间的两条线(后述的命令总线和数据总线)所示,例如将命令(以下也称为协议栈命令)或数据(例如AV(视听)数据等)等提供给协议栈模块102。
API处理部121构成为包括API调度程序(dispatcher)131、套接字代理132、协议栈API133以及设备驱动器134。
在图3的例子中,将协议栈API133作为扩展用API的一个例子进行说明,但也可以追加其它的扩展用API。另外,API处理部121也可以不包括设备驱动器134,而由API调度程序131、套接字代理132以及协议栈API133构成。这种情况下,设备驱动器134包含在中间件113中。
API调度程序131根据由应用程序111或GUI命令工具112提供的API调用,向套接字代理132或协议栈API133中的任意一方提供API调用,从而执行规定的处理。
套接字代理132是标准的API,例如利用UINX(注册商标)类的BSD套接字或Windows(注册商标)类的Winsock等套接字API,提供用于收发数据的规定功能。套接字代理132进行对应于API调度程序131提供的API调用的规定处理,并将通过进行规定处理得到的数据提供给设备驱动器134。另外,套接字代理132响应API调度程,序131提供的API调用,生成用于指示协议栈模块102的协议栈命令,并将所生成的协议栈命令提供给设备驱动器134。
协议栈API133是协议栈模块102专用的扩展API,例如提供SNMP(Simple Network Management Protocol,简单网络管理协议)接口等与协议栈模块102有关的规定功能。协议栈API133进行对应于API调度程序131提供的API调用的规定处理,并将通过进行规定的处理得到的数据提供给设备驱动器134。另外,协议栈API133响应API调度程序131提供的API调用,生成用于指示协议栈模块102的协议栈命令,并将所生成的协议栈命令提供给设备驱动器134。
即,在套接字代理132以及协议栈API133各自中,不进行例如TCP/IP等的协议栈处理。
从而,由API处理部121进行的处理不依赖于协议栈,因此可以无需考虑协议栈而自由地追加扩展用API(例如协议栈API133以外的API)。换言之,也可以说API处理部121可以向协议栈提供多种多样的API。
设备驱动器134将由套接字代理132或协议栈API133中的任意一方提供的、AV数据等数据提供给协议栈模块102。另外,设备驱动器134将由套接字代理132或协议栈API133中的任意一方提供的协议栈命令提供给协议栈模块102。
设备驱动器134(用户模块101)与协议栈接口141(协议栈模块102)之间的接口的详情将参照图4后述。
网络管理部122经由API处理部121监视协议栈模块102的状态,并蓄积与该状态有关的信息。例如,网络管理部122通过监视协议栈模块102的状态,来蓄积与日志或错误有关的信息,即例如网络负荷、协议栈模块102的负荷或者是否新追加了协议栈模块102等的信息。
网络管理部122在GUI命令工具122(或应用程序111)提供的命令是与协议栈模块102的监视或管理有关的命令的情况下,将自己蓄积的、与协议栈模块102的状态有关的信息提供给GUI命令工具112(或应用程序111)。另外,此时,网络管理部122也可以对自己所蓄积的信息进行分析,或者在对这些信息进行加工后提供给GUI命令工具112(或应用程序111)。
此时,GUI命令工具112(或应用程序111)经由API处理部121将网络管理部122提供的信息显示在输出部17的画面等上。结果,用户可以知道协议栈模块102或网络的状态。
协议栈模块102例如记录在ROM52(图2)或记录部55(图2)等中,根据需要装载到RAM53(图2)中,由CPU51(图2)执行。
协议栈模块102构成为包括协议栈接口141和协议栈处理部142。
协议栈处理部142根据经由协议栈接口141从设备驱动器134(用户模块101)提供的AV数据等数据或协议栈命令,进行协议栈的处理。协议栈处理部142将进行了规定处理的数据(分组)经由网络发送给与网络连接的其它设备。
另外,协议栈处理部142经由协议栈接口141和设备驱动器134适当取得由API处理部121提供的功能,并进行协议栈的处理。
换言之,在利用分割成层次结构的模型来考虑通信功能(通信处理)的情况下,协议栈处理部142可以说是执行由API处理部121执行的处理的下层、即例如TCP/IP等协议栈的处理。
这里,在协议栈的处理中,例如进行校验和(Check Sum)、IP分段(IP Fragment)或IP消除分段(IP Defragment)等处理或者建立通话的处理、丢失了分组时再发送分组的处理、或者路由选择处理等。
协议栈处理部142中的校验和、IP分段或IP消除分段的处理分别例如利用硬件安装,建立通话的处理、丢失了分组时再发送分组的处理或者路由选择处理分别例如利用由CPU51(图2)执行的程序(软件)安装。即,如上所述,协议栈模块102例如构成为由CPU51(图2)执行的程序(软件),但通过使通信部19的硬件结构不同于图2,协议栈模块102既可以构成为硬件单体,也可以构成为软件和硬件的组合。
即,在本实施方式中,为了使这些协议栈处理不对CPU11(图1)造成负担,不由CPU11执行,而由CPU51(图2)执行。
如上所述,在个人计算机1中,API与协议栈分离,因此用户模块101不进行协议栈的处理,而由协议栈模块102执行协议栈的处理。
以下参照图4说明用户模块101与协议栈模块102之间的接口。
如图4的例子所示,协议栈模块102具有命令用和数据用的两个接口。协议栈模块102利用这两个接口,经由命令总线和数据总线与用户模块101连接。即,用户模块101和协议栈模块102分别利用图中左侧的命令用的命令总线和图中右侧的数据用的数据总线连接。
这里虽然是命令总线,但遵守例如32位的SRAM/SSRAM(StaticRandom Access Memory/Synchronous SRAM,静态随机存取存储器/同步SRAM)标准,用于用户模块101和协议栈模块102之间的命令(协议栈命令)的交换或传输不需要高速传输的数据的情况。
另外,数据总线例如由32/64位选择式DMA(Direct MemoryAccess,直接存储器存取)构成,在用户模块101与协议栈模块102之间高速传输例如AV数据等大容量的数据。
在用户模块101与协议栈模块102之间也可以不使用数据总线,而仅使用命令总线来传输命令或数据。
如上所述,在个人计算机1中,用户模块101不进行协议栈处理,而是由协议栈模块102执行协议栈处理,以下,作为该处理的一个例子,参照图5的流程图说明由图3的个人计算机1进行的数据发送处理。该处理例如在用户经由用户接口发出了用于发送数据的规定指令时开始。
在步骤S11中,应用程序111响应用户的操作发出命令,并将所发出的命令提供给API处理部121。
例如,在步骤S11中,在应用程序111响应用户的操作在UNIX(注册商标)类的OS上运行的情况下,发出BSD套接字命令(在Windows(注册商标)类的OS上运行的情况下,发出Winsock命令),并将所发出的BSD套接字命令(Winsock命令)提供给API处理部121。
在步骤S12中,API处理部121响应由应用程序111提供的API调用,进行规定的处理,并将通过进行规定的处理得到的数据或命令(协议栈命令)提供给协议栈模块102(协议栈处理部142)。
例如,在步骤S12中,API处理部121在UNIX(注册商标)类的OS上运行的情况下,进行与应用程序111提供的BSD套接字命令相对应的规定处理,并将通过规定的处理得到的AV数据等数据经由数据总线提供给协议栈模块102(协议栈处理部142)。另外,API处理部121生成与应用程序111提供的BSD套接字命令相对应的协议栈命令,并将所生成的协议栈命令经由命令总线提供给协议栈模块102(协议栈处理部142)。
此时,由于API与协议栈分离,因此API处理部121不进行例如TCP/IP等的协议栈处理。
在步骤S13中,协议栈处理部142根据经由数据总线从API处理部121提供的数据或协议栈命令,进行协议栈处理。协议栈处理部142将实施了规定处理的数据(分组)经由网络发送给与网络连接的其它设备,从而结束数据发送处理。
例如,在步骤S13中,协议栈处理部142根据经由命令总线从API处理部121提供的协议栈命令,对经由数据总线从API处理部121提供的AV数据进行例如校验和(Check Sum)、IP分段(IP Fragment)或IP消除分段(IP Defragment)等处理或者建立通话的处理、丢失了分组时的分组再发送处理、或者路由选择处理等,并将实施了这些处理的数据(分组)经由网络发送给与网络连接的其它设备。
即,由于API与协议栈分离,因此协议栈处理部142仅进行协议栈处理。
如上所述,在个人计算机1中,用户模块101(API处理部121)不进行协议栈处理,而是由协议栈模块102(协议栈处理部142)进行协议栈处理。
这样,在本发明中,通过使在OS的内核等中不可分地连结的API和协议栈分离,取代API处理部121,由协议栈处理部142执行协议栈处理。结果,由于API与协议栈分离,因此可以向TCP/IP或UDP/IP等协议栈提供多种多样的API。
在个人计算机1中,通过设置多个协议栈模块102或中间件113,在主系统发生故障的情况下,可以通过切换成待机系统来避免故障(容错,fault-tolerant)。
这里,中间件113例如可以在设备(个人计算机1)上生成一个或两个实例(instance)。从而,在个人计算机1中,包括在一个中间件113的实例上连接两个协议栈模块102的情况以及中间件113的实例与协议栈模块102一对一地连接的情况。
首先,参照图6,说明在个人计算机1中在一个中间件113的实例上连接两个协议栈模块102的情况。
在图6的个人计算机1中,用户模块101构成为包括应用程序111-1~应用程序111-3以及中间件113。
即,在图6所示的例子中,应用程序111-1~应用程序111-3起动,经由中间件113,利用主系统的协议栈模块102-1并经由网络与连接在网络上的其它设备(远程)进行通信。另外,此时协议栈模块102-2不进行处理,成为待机系统。
这里,个人计算机1在主系统的协议栈模块102-1发生故障的情况下,切断现有的通话,因此中间件113将待机系统的协议栈模块102-2初始化,与远程进行再连接。由于缓存在发生故障的主系统的协议栈模块102-1中的分组被废弃,因此中间件113向应用程序111-1~应用程序111-3中的每一个通知分别已经发送到哪个分组。应用程序111-1~应用程序111-3分别根据来自中间件113的通知,重新再发送被废弃的分组。
以下参照图7说明在个人计算机1中,中间件113的实例与协议栈模块102一对一地连接的情况。
在图7的个人计算机1中,用户模块101构成为包括应用程序111-1~应用程序111-3、中间件113-1以及中间件113-2。
即,在图7所示的例子中,应用程序111-1以及应用程序111-2起动,经由主系统的中间件113-1,利用主系统的协议栈模块102-1并经由网络与远程进行通信。另外,中间件113-2和协议栈模块102-2成为待机系统,应用程序111-3也不起动。
这里,个人计算机1在主系统的协议栈模块102-1发生故障的情况下,切断现有的通话,发送途中的分组被废弃。因而,正在发送分组的应用程序111-2分别使用待机系统的中间件113-2以及协议栈模块102-2,重新与远程确立通话,再发送分组。
在主系统的中间件113-1发生故障的情况下,与主系统的协议栈模块102-1发生故障的情况相同,现有的通话被切断,发送途中的分组被废弃,正在发送分组的应用程序111-2分别使用待机系统的中间件113-2以及协议栈模块102-2,重新与远程确立通话,再发送分组。
如上所述,在个人计算机1中,通过设置两个协议栈模块102-1和协议栈模块102-2,在主系统的协议栈模块102-1发生故障的情况下,可以切换成待机系统的协议栈模块102-2,来继续协议栈的处理。
这样,通过分离在OS的内核等中不可分地连结的API和协议栈,可以分离协议栈处理,因此例如在进行协议栈处理的、主系统的协议栈模块102-1发生故障的情况下,也可以通过切换成待机系统的协议栈模块102-2,来将其影响抑制在最小限度。另外,在发生故障时,例如可以个别地检查中间件113和协议栈模块102,明确原因在哪里等,从而更迅速地查明故障的原因。
在个人计算机1的资源有余裕的情况下,在想要提高中间件113的水平上的耐故障性时,与由一个中间件113构成的图6相比,更希望采用由两个中间件113构成的图7的结构。
如上所述,根据本发明,通过使不可分地连结的API与协议栈分离,可以分离协议栈处理,因此可以向特定的协议栈提供多种多样的API。结果,例如可以向开发应用程序的用户(开发者)提供多种多样的与网络编程有关的API。
另外,根据本发明,由专用地执行协议栈处理的CPU51执行由主机侧的CPU11执行的TCP/IP等协议栈处理,因此可以将主机侧的CPU资源仅分配到应用程序的处理,从而可以降低主机侧的CPU11的负荷,并使TCP/IP的处理高速化。
而且,根据本发明,例如响应用户对应用程序111(GUI命令工具112)的操作,仅选择套接字代理132或协议栈API133等各功能中必要的功能来装载,从而可以有效地利用存储器。结果,即使是资源不足的设备,也可以有效地利用存储器,因此可以进行例如大容量的AV数据的收发。
另外,根据本发明,将不可分地连结的API与协议栈分离,因此用户(开发者)可以自由地定义API与协议栈之间的接口。
另外,图1的通信部19在上述例子中作为个人计算机1的一个构成要素,但如图2的结构例所示,也可以作为一个装置来把握。即,例如也可以将图1的通信部19构成为可以从个人计算机1自由地装卸的装置。这种情况下,通信部19不仅可以安装在个人计算机1上,还可以安装在摄像机、AV服务器或转换器(switcher)等多种设备上,从而执行用于进行网络通信的上述各种处理。
另外,在上述的例子中,作为协议栈,将TCP/IP作为一个例子进行了说明,但在本发明中不限于此,例如也可以是UDP/IP等。
另外,在本发明中,例如也可以通过串行连接或USB(通用串行总线)连接等使个人计算机1与通信用设备连接,并利用所连接的通信用设备,经由网络与连接在网络上的其它设备通信。即,在这种情况下,个人计算机1进行与用户模块101有关的处理,通信用设备根据经由串行电缆或USB电缆等从个人计算机1提供的命令或数据,进行与协议栈模块102有关的规定处理,并将数据(分组)发送给其它设备。
上述一系列的处理也可以由硬件执行,但也可以由软件执行。在由软件执行一系列处理的情况下,将构成该软件的程序从记录媒体安装到组装在专用硬件中的计算机、或者可以通过安装各种程序来执行各种功能的例如通用个人计算机等中。
该记录媒体不仅由图1的可装卸媒体21构成,还由在预先组装到计算机中的状态下向用户提供的、记录了程序的图1的ROM12或记录部18等构成,其中图1的可装卸媒体21由为了与计算机相分离地向用户提供程序而发布的、记录了程序的磁盘(包括软盘)、光盘(包括CD-ROM(高密度盘-只读存储器)、DVD(数字通用盘))、光磁盘(包括MD(微型盘,Mini-Disk(注册商标))或者半导体存储器等构成。
另外,执行上述一系列处理的程序可以根据需要经由路由器、调制解调器等的接口,并经由本地局域网、互联网、数字卫星广播等有线或无线通信媒体安装到计算机中。
在本说明书中,描述存储在记录媒体中的程序的步骤不仅包括沿着所记载的顺序并按照时间序列来执行的处理,也包括不按时间序列来处理、而是并行地或者个别地执行的处理。
另外,本发明的实施方式不限于上述的实施方式,在不脱离本发明的要义的范围内,可以进行各种变更。
Claims (9)
1.一种信息处理装置,为了经由网络与连接在上述网络上的其它设备进行通信而执行通信处理,其特征在于,具备:
第一处理单元,响应来自应用程序的请求,执行由多层构成的上述通信处理当中、网络协议栈的上层的第一处理;和
第二处理单元,根据上述第一处理的处理结果,执行上述网络协议栈的第二处理,
其中,上述第一处理单元通过由上述应用程序调用的API、即应用程序接口来执行上述第一处理。
2.如权利要求1所述的信息处理装置,其特征在于,还具备:
监视单元,监视上述第二处理单元的状态,并蓄积与其状态有关的信息。
3.如权利要求1所述的信息处理装置,其特征在于,
上述第一处理单元通过选择执行上述第一处理所需的上述API并装载所选择的上述API,来执行上述第一处理。
4.如权利要求1所述的信息处理装置,其特征在于,
上述API是套接字API。
5.如权利要求1所述的信息处理装置,其特征在于,
上述网络协议栈是TCP/IP、即传输控制协议/互联网协议。
6.如权利要求1所述的信息处理装置,其特征在于,还具备:
第三处理单元,在上述第二处理单元发生故障的情况下,执行上述第二处理,
其中,上述第一处理单元在上述第二处理单元发生故障的情况下,从上述应用程序取得故障发生前的状态,并根据所取得的上述状态的结果,执行上述第一处理,
上述第三处理单元根据上述第一处理的处理结果,执行上述第二处理。
7.如权利要求1所述的信息处理装置,其特征在于,还具备:
第三处理单元,在上述第一处理单元或上述第二处理单元发生故障的情况下,执行上述第一处理;和
第四处理单元,在上述第一处理单元或上述第二处理单元发生故障的情况下,执行上述第二处理,
其中,上述第三处理单元在上述第一处理单元或上述第二处理单元发生故障的情况下,从上述应用程序取得故障发生前的状态,并根据所取得的上述状态的结果,执行上述第一处理,
上述第四处理单元根据上述第一处理的处理结果,执行上述第二处理。
8.一种信息处理装置的信息处理方法,该信息处理装置具备为了经由网络与连接在上述网络上的其它设备进行通信而执行通信处理第一处理单元和第二处理单元,其特征在于,上述信息处理方法包括:
第一处理步骤,响应来自应用程序的请求,执行由多层构成的上述通信处理当中、网络协议栈的上层的第一处理;和
第二处理步骤,根据上述第一处理的处理结果,执行上述网络协议栈的第二处理,
其中,上述第一处理步骤通过由上述应用程序调用的API来执行上述第一处理。
9.一种程序,为了经由网络与连接在上述网络上的其它设备进行通信而使第一处理单元和第二处理单元执行通信处理,其特征在于,上述程序包括:
第一处理步骤,响应来自应用程序的请求,执行由多层构成的上述通信处理当中、网络协议栈的上层的第一处理;和
第二处理步骤,根据上述第一处理的处理结果,执行上述网络协议栈的第二处理,
其中,上述第一处理步骤通过由上述应用程序调用的API来执行上述第一处理。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006000648 | 2006-01-05 | ||
JP2006000648A JP4506676B2 (ja) | 2006-01-05 | 2006-01-05 | 情報処理装置および方法、並びにプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1997028A true CN1997028A (zh) | 2007-07-11 |
Family
ID=38225991
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA200710001826XA Pending CN1997028A (zh) | 2006-01-05 | 2007-01-05 | 信息处理装置和方法以及程序 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20070156915A1 (zh) |
JP (1) | JP4506676B2 (zh) |
CN (1) | CN1997028A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101895441A (zh) * | 2010-07-21 | 2010-11-24 | 中兴通讯股份有限公司 | 一种物联网终端java应用的业务调试装置和方法 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7304586B2 (en) | 2004-10-20 | 2007-12-04 | Electro Industries / Gauge Tech | On-line web accessed energy meter |
US7747733B2 (en) | 2004-10-25 | 2010-06-29 | Electro Industries/Gauge Tech | Power meter having multiple ethernet ports |
US20070208894A1 (en) * | 2006-03-02 | 2007-09-06 | Curry David S | Modification of a layered protocol communication apparatus |
US10845399B2 (en) * | 2007-04-03 | 2020-11-24 | Electro Industries/Gaugetech | System and method for performing data transfers in an intelligent electronic device |
US8402151B2 (en) * | 2007-12-07 | 2013-03-19 | Roche Diagnostics Operations, Inc. | Dynamic communication stack |
JP5030878B2 (ja) * | 2008-07-08 | 2012-09-19 | 三菱電機株式会社 | 衛星管制システム及び衛星管制装置 |
US8832342B2 (en) * | 2011-10-28 | 2014-09-09 | Lg Cns Co., Ltd. | Traffic communication module and method of forming the same |
JP5673606B2 (ja) | 2012-05-30 | 2015-02-18 | 横河電機株式会社 | 通信装置 |
KR101577034B1 (ko) * | 2014-06-26 | 2015-12-14 | (주)모두텍 | 소프트웨어적인 네트워크 부가기능 추가가 용이한 멀티코어 기반의 toe 시스템 및 그 제어 방법 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05327826A (ja) * | 1992-05-15 | 1993-12-10 | Nec Corp | 通信プロトコル障害情報蓄積システム |
JPH06309251A (ja) * | 1993-04-26 | 1994-11-04 | Hitachi Ltd | 高速の通信アダプタを実装した計算機 |
JPH09305510A (ja) * | 1996-05-13 | 1997-11-28 | Hitachi Ltd | 自動経路切替システム |
JPH10190649A (ja) * | 1996-10-16 | 1998-07-21 | Hewlett Packard Co <Hp> | 双方向データストリーム伝送装置 |
JPH10320327A (ja) * | 1997-03-19 | 1998-12-04 | Fujitsu Ltd | 二重化された通信アダプタの切替方法、切替方式、および切替用プログラムを格納した記録媒体 |
US6412068B1 (en) * | 1999-07-07 | 2002-06-25 | Dell Products, L.P. | Card management bus and method |
US7287192B1 (en) * | 1999-09-23 | 2007-10-23 | Computer Associates Think, Inc. | Identifying a failed device in a network |
US6690789B1 (en) * | 2000-08-31 | 2004-02-10 | Cisco Technology, Inc. | Fault tolerant telephony control |
US7287090B1 (en) * | 2000-12-21 | 2007-10-23 | Noatak Software, Llc | Method and system for identifying a computing device in response to a request packet |
US20030023775A1 (en) * | 2001-07-13 | 2003-01-30 | International Business Machines Corporation | Efficient notification of multiple message completions in message passing multi-node data processing systems |
US6892321B2 (en) * | 2001-07-17 | 2005-05-10 | International Business Machines Corporation | Transition to switch node adapter diagnostics using adapter device driver |
FR2829337B1 (fr) * | 2001-09-03 | 2003-10-31 | Schneider Automation | Equipement d'automatisme connecte a un reseau tcp/ip |
US7318095B2 (en) * | 2001-11-21 | 2008-01-08 | Clearcube Technology, Inc. | Data fail-over for a multi-computer system |
US7024591B2 (en) * | 2002-07-12 | 2006-04-04 | Crossroads Systems, Inc. | Mechanism for enabling enhanced fibre channel error recovery across redundant paths using SCSI level commands |
US7158998B2 (en) * | 2002-07-31 | 2007-01-02 | Cingular Wireless Ii, Llc | Efficient synchronous and asynchronous database replication |
US6938179B2 (en) * | 2002-11-01 | 2005-08-30 | Nokia Corporation | Socket extensions for redundancy |
US7152180B2 (en) * | 2002-12-06 | 2006-12-19 | Ntt Docomo, Inc. | Configurable reliable messaging system |
JP4029804B2 (ja) * | 2003-09-02 | 2008-01-09 | ブラザー工業株式会社 | ネットワーク装置、および送信出力レベル変更方法 |
US7590717B1 (en) * | 2003-10-09 | 2009-09-15 | Nortel Networks Limited | Single IP address for redundant shelf processors |
US7877627B1 (en) * | 2008-12-18 | 2011-01-25 | Supercon, L.L.C. | Multiple redundant computer system combining fault diagnostics and majority voting with dissimilar redundancy technology |
-
2006
- 2006-01-05 JP JP2006000648A patent/JP4506676B2/ja not_active Expired - Fee Related
- 2006-12-27 US US11/616,466 patent/US20070156915A1/en not_active Abandoned
-
2007
- 2007-01-05 CN CNA200710001826XA patent/CN1997028A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101895441A (zh) * | 2010-07-21 | 2010-11-24 | 中兴通讯股份有限公司 | 一种物联网终端java应用的业务调试装置和方法 |
WO2012010002A1 (zh) * | 2010-07-21 | 2012-01-26 | 中兴通讯股份有限公司 | 一种物联网终端java应用的业务调试装置和方法 |
Also Published As
Publication number | Publication date |
---|---|
JP4506676B2 (ja) | 2010-07-21 |
US20070156915A1 (en) | 2007-07-05 |
JP2007183738A (ja) | 2007-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1997028A (zh) | 信息处理装置和方法以及程序 | |
EP2119174B1 (en) | Network interface card transmission control protocol acceleration offload failure detection and recovery mechanism | |
US9178966B2 (en) | Using transmission control protocol/internet protocol (TCP/IP) to setup high speed out of band data communication connections | |
CN1739098A (zh) | 智能网络适配器的状态恢复及故障修复 | |
US20070168545A1 (en) | Methods and devices for processing incomplete data packets | |
US8793384B2 (en) | Recovery of disconnected channels over a reliable protocol | |
US20080295098A1 (en) | System Load Based Dynamic Segmentation for Network Interface Cards | |
KR100602651B1 (ko) | Tcp 커넥션 관리 장치 및 방법 | |
US7493398B2 (en) | Shared socket connections for efficient data transmission | |
US20110194133A1 (en) | Image forming apparatus, control method for the same, and storage medium for program | |
US8521882B2 (en) | Client/subscriber rotation using select write calls for server resiliency | |
US9100447B2 (en) | Content delivery system | |
US20060133275A1 (en) | Architecture and run-time environment for network filter drivers | |
WO2019090997A1 (zh) | 一种数据获取方法、装置、计算机设备及存储介质 | |
CN111885093B (zh) | 事件请求的传输方法和装置、存储介质及电子设备 | |
WO2006094426A1 (en) | Server side tftp flow control | |
US9143580B2 (en) | Brokering and provisioning in high-speed networks | |
US20200322277A1 (en) | Adaptive mechanism to adjust udt packet size based on actual network condition | |
CN111404842A (zh) | 数据传输方法、装置及计算机存储介质 | |
CN112969244B (zh) | 一种会话恢复方法及其装置 | |
JP4415391B2 (ja) | データをネットワークに送信する方法及び装置並びにデータをネットワークから受信する方法及び装置 | |
CN1223147C (zh) | 通信设备信息的跟踪维护方法及其系统 | |
US20070168823A1 (en) | Method and apparatus for preventing network outages | |
JP2011164755A (ja) | データ変換装置、データ変換方法及びプログラム | |
WO2024129061A1 (en) | Seamless nfs server pod addition |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20070711 |