CN101119388A - 通信设备和通信控制方法 - Google Patents
通信设备和通信控制方法 Download PDFInfo
- Publication number
- CN101119388A CN101119388A CNA2007101431739A CN200710143173A CN101119388A CN 101119388 A CN101119388 A CN 101119388A CN A2007101431739 A CNA2007101431739 A CN A2007101431739A CN 200710143173 A CN200710143173 A CN 200710143173A CN 101119388 A CN101119388 A CN 101119388A
- Authority
- CN
- China
- Prior art keywords
- communication
- tcp
- protocol
- processing
- icp
- 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/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- 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/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
-
- 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/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Communication Control (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明涉及一种通信设备和通信控制方法。该通信设备包括网络通信单元和应用系统单元。所述应用系统单元利用由所述网络通信单元执行的第一TCP/IP协议处理和由所述应用系统单元执行的第二TCP/IP协议处理之一来执行应用通信。所述网络通信单元基于应用通信的通信状况将用于处理应用通信的处理切换为所述第一TCP/IP协议处理和所述第二TCP/IP协议处理之一。
Description
技术领域
本发明涉及一种通信装置以及一种使用TCP/IP协议通信提供应用通信的通信控制方法。
背景技术
在本说明书中,“应用装置”是指一种连接到网络并且能以TCP/IP协议为底层协议进行应用通信的装置。
通常,TCP/IP协议处理经常由称作TCP/IP协议组的软件实现。图2显示TCP/IP通信中软件处理的分层模型。在图2中,TCP/IP协议组由附图标记201所示范围内的软件处理(softwareprocessing)表示。图2中的202是应用层,并且是使用TCP/IP通信的应用通信协议处理。存在许多种协议,其中包括诸如超文本传输协议(HTTP)之类的标准协议、按应用(application-by-application)唯一定义和实现的协议等等。
203是套接字(socket)层,通过应用层处理使用底层TCP/IP协议来管理软件接口处理。“套接字(Socket)”指TCP/IP通信中的终端点(end-point),可以通过进行TCP/IP通信的网络装置IP地址和该装置中每个TCP/IP通信例程中所分配的端口号来识别出“套接字”。套接字接口是应用软件处理TCP/IP通信的接口,许多操作系统(OS)都支持套接字接口。
204是传送层协议处理,205是网络层协议处理。在TCP/IP中,TCP和UDP(用户数据报协议)作为传输层协议而存在,而IPv4(IP第4版)和IPv6(IP第6版)作为网络层协议而存在。206是链路层,并且是取决于网络物理介质的通信协议处理。207是最底层,它是用于控制网络的物理介质存取控制(MAC)装置的驱动器。
传统上,由包含在应用装置内部的中央处理器(CPU)执行的软件来实现TCP/IP协议处理,从而在应用装置中实现TCP/IP通信。即使到现在,在诸如个人计算机之类富有处理资源的装置中,仍然是通过包含在操作系统(OS)中的TCP/IP协议处理来实现TCP/IP通信。
然而,近年来,应用装置所发送接收的数据量已经增大,而且对TCP/IP通信的软件处理施加给CPU的处理负荷已经变得非常大。例如,诸如网络照相机和网络视频分配服务器之类的视频服务器装置、网络媒体播放机和网络兼容硬盘记录机之类的数字音频/视频(AV)装置已经得到广泛使用。此外,在诸如通过网络输入和输出视频的装置中,涉及用于实时发送和接收高分辨率图像数据的通信处理的处理负荷正在增长。
为了应对TCP/IP通信的CPU处理负荷的增长,正在实现一种卸载TCP/IP协议处理的方法,其目的在于减少应用装置的CPU负荷并提高TCP/IP通信吞吐量。在TCP/IP通信中,“卸载(offloading)”是指主要利用单独的处理装置而不是应用装置的CPU来处理图2中数字208所指的软件。例如,存在由不同于应用装置CPU的微处理器执行卸载处理的情况,也存在通过专用硬件电路对软件中TCP/IP处理计算量大的部分进行高速处理的情况。
美国专利6,941,386号公开了一种涉及智能网络接口卡(INIC)的方法,该卡安装于包含在主装置中的通信处理装置中,或者安装于包含在主装置的外部扩展接口中的通信处理装置中。采用这种方法,实现了通过硬件电路处理的TCP/IP协议处理,并且卸载了由主装置CPU执行的TCP/IP协议组的软件处理。
在这个传统实例中,这种方案保持由CPU执行的通用协议组并通过CPU执行由软件实现的TCP/IP协议处理。换言之,提供了两种处理:由通用协议组执行的慢速处理路径,以及由硬件处理执行的快速处理路径。这是因为硬件处理不支持TCP/IP协议处理或者以硬件实现的成本不合理。
另外,近年来,存在通过专用硬件完全卸载由应用装置CPU执行的TCP/IP协议处理的情况,因此用于TCP/IP通信的CPU资源使用减少到最小。
然而,对于严格限制硬件资源成本的集成装置而言,利用硬件卸载TCP/IP协议处理的方案将可处理的通信连接数量限制为较小的数量。因此,存在一个问题:应用装置不能同时打开很多个通信连接并进行通信。
此外,完全采用专用硬件卸载图2所示数字208所指的范围中的全部协议处理(通常由软件处理)会导致硬件电路的规模变得太大。因此,在成本方面,这种方案不适合于严格限制所设置的硬件资源的集成装置。
发明内容
本发明提供一种用于提高通信设备中的TCP/IP通信性能的技术。
另外,本发明提供一种用于实现高吞吐量的技术,以及一种用于在保持合理成本的同时通过硬件实现TCP/IP通信处理的技术。
根据本发明的一个方面,提供一种通信设备,其执行利用TCP/IP协议的应用通信,所述通信设备包括网络通信单元和应用系统单元,其中,所述应用系统单元利用由所述网络通信单元执行的第一TCP/IP协议处理和由所述应用系统单元执行的第二TCP/IP协议处理之一来执行应用通信,以及所述网络通信单元基于应用通信的通信状况将用于处理应用通信的处理切换为所述第一TCP/IP协议处理和所述第二TCP/IP协议处理之一。
根据本发明的另一个方面,提供一种通信设备的通信控制方法,所述通信设备执行利用TCP/IP协议的应用通信,所述通信设备包括网络通信单元和应用系统单元,所述方法包括以下步骤:利用由所述网络通信单元执行的第一TCP/IP协议处理和由所述应用系统单元执行的第二TCP/IP协议处理之一来执行应用通信,以及基于所述应用通信的通信状况将用于处理应用通信的处理切换为所述第一TCP/IP协议处理和所述第二TCP/IP协议处理之一。
参考附图,本发明的更多特征将从下列示例性实施例中得以显现。
附图说明
图1是显示本发明实施例实例的框图。
图2是显示TCP/IP通信中软件处理的分层模型的图。
图3是显示应用通信中TCP/IP通信部分的处理流程的图。
图4是说明用于判断是否在网络通信单元或应用系统单元中执行TCP/IP协议处理的过程的流程图。
图5是说明图4中步骤S402的处理的流程图。
图6是作为应用装置例子的网络照相机的框图。
图7是显示网络照相机的应用通信处理的分层模型的图。
图8是显示本发明实施例中通信数据在TCP/IP通信处理模块之间的流动的图。
图9是显示用于对每个TCP/IP协议执行协议处理的处理单元和这些处理单元的主要处理细节的图。
图10是显示TCP通信流程实例的图。
图11是显示当TCP套接字处于CLOSED状态时的SYN发送处理的图。
图12是显示当TCP套接字处于SYN_SENT状态时的(SYN,ACK)接收处理的图。
图13是显示创建TCP连接建立请求待机(standby)套接字的处理的图。
图14是显示在LISTEN状态时SYN接收处理的图。
图15是显示当TCP套接字处于SYN_RECV状态时的ACK接收处理的图。
图16是显示当TCP套接字处于ESTABLISHED状态时的数据发送处理的图。
图17是显示当TCP套接字处于ESTABLISHED状态时的数据接收处理的图。
图18是显示当TCP套接字处于ESTABLISHED状态时的FIN发送处理的图。
图19是显示当TCP套接字处于FIN_WAIT1状态时的(FIN,ACK)接收处理的图。
图20是显示当TCP套接字处于ESTABLISHED状态时的FIN接收处理的图。
图21是说明套接字切换处理的图。
具体实施方式
第一实施例
图1是显示作为根据本发明的通信设备的应用装置的实施例的实例的框图。在图1中,101表示本实施例的应用装置。这个应用装置是通信设备,包括网络通信单元102和应用系统单元103,并且使用TCP/IP协议进行应用通信。102是网络通信单元,103是应用系统单元。连接到网络118并发送/接收帧的通信控制单元105和作为网络通信单元102内的主存储装置的本地RAM106都连接到网络通信单元102的本地总线104。另外,执行TCP/IP协议处理的协议处理单元107、用于执行数据的总线传送的DMA控制器(DMAC)108以及执行网络通信单元102内的控制程序的内部控制处理器(本地CPU)109都连接到本地总线104。
CPU 112和存储了系统程序的ROM 113都连接到应用系统单元103的系统总线111。另外,作为执行系统程序期间所使用的主存储装置的RAM 114连接到系统总线111;系统程序从ROM 113装入RAM 114,并由CPU 112执行。此外,连接到同一系统总线111的115和116表示用于实现应用装置的独特应用功能的硬件处理装置。通过“应用功能单元A”(116)和“应用功能单元B”(115)这样的名称指出这些硬件处理装置。同样在图1中,117是电源控制单元,它控制对网络通信单元102和应用系统单元103的供电。
在应用装置101中,通信控制单元105物理连接到网络108。网络108是硬布线的网络(以以太网(Ethernet)为例);然而网络108可以是无线网络、光纤网络等等。此外,网络108可以连接到另一个网络或因特网,以便应用装置101的用户可以通过TCP/IP通信从远程位置执行应用通信。
网络通信单元102内的通信控制单元105具有向网络118发送/从网络118接收传输帧的功能。例如,就以太网来说,通信控制单元105包括以太网MAC处理(发送介质控制处理)功能、发送/接收帧数据功能等。
协议处理单元107是专门用于通信协议处理的处理装置,并且具有执行通用TCP/IP协议处理的功能。具体而言,协议处理单元107具有执行IPv4、IPv6、ICMP、UDP和TCP包创建处理、发送流控制和拥塞控制、通信错误控制等功能。通过专门实现为硬件电路(即,LSI),协议处理单元107能实现各种处理的高速处理。计算和校验用于各个协议包的校验和(checksum)以及分割和整理IP包都可以作为这种处理的实例。分割TCP的传送数据以及从接收的包进行整理(重建)可以作为这种处理的其他实例。此外,用于计算TCP/IP协议软件处理所需时间的处理,诸如重新发送TCP包、在TCP通信中的ACK(确认)处理等可以作为这种处理的其他实例。
通过协议处理单元107卸载执行应用的CPU 112的TCP/IP协议处理,可以实现应用通信中的高吞吐量和低延迟。
内部控制处理器109执行网络通信单元102的控制程序。控制程序控制各个装置的操作以及网络通信单元102内的装置间的数据流。控制程序还接收来自应用系统单元103的控制命令并进行内部控制。本地RAM 106用作由通信控制单元105、协议处理单元107、内部控制处理器109等执行的处理中的数据的临时存储区。
此外,在网络通信单元102内设有总线桥接电路110,它允许本地总线104和应用系统单元103的系统总线111之间的数据传输。换言之,网络通信单元102和应用系统单元103的各总线电路相互连接,通过总线传输进行通信数据输入/输出。执行数据的总线传送的装置是DMA控制器108。在网络通信单元102内的装置间传输数据时也使用DMA控制器108。
由应用系统单元103实现应用装置101的应用功能。CPU112控制应用功能单元A(116)和应用功能单元B(115)的操作,执行作为应用功能的一部分的应用通信等。应用通信是利用TCP/IP协议的通信。RAM 114用作CPU 112执行程序期间的临时存储区,还用作供网络通信单元102和应用功能单元115和116使用的输入/输出数据缓冲器。CPU 112执行的系统程序能够执行TCP/IP协议处理。换言之,由应用系统单元103中的软件执行通用TCP/IP通信功能。另外,经由网络通信单元102内的通信控制单元105发送/接收包。
参考图3说明在上述应用装置101的工作实施例中如何在应用通信中执行TCP/IP协议处理和数据发送/接收处理。图3说明应用通信的TCP/IP通信部分的处理流程。在图3中,301-309各表示一个处理模块。
301是执行应用通信的应用。例如,就通过应用发送文件的文件传输协议(FTP)服务器而言,应用就是该服务器程序。FTP是使用TCP/IP协议的应用协议。应用301在应用系统单元103(CPU 112)内执行。应用301使用常规套接字接口302或者高速套接字接口303执行应用通信。
在使用常规套接字接口302的情况下,通过由网络通信单元102执行的卸载处理和由应用系统单元103的CPU 112执行的软件处理之一来执行TCP/IP协议处理。在本实施例中,由这些处理中的哪个处理执行TCP/IP协议处理每应用通信例程动态地切换。应用301不需要识别执行了哪个TCP/IP协议处理(换言之,上述的卸载处理或软件处理)。
然而,在应用301利用高速套接字接口303执行应用通信的情况下,优选使用利用网络通信单元102执行卸载处理的TCP/IP通信。因此,高速套接字接口303可以用于高速连续处理特定应用通信的TCP/IP协议处理的情况,以及优选以高吞吐量和低延迟进行通信的情况。
上述每个套接字接口302和303是由应用系统单元103执行的软件处理。
在图3中,304是套接字层处理,305是TCP/IP协议处理和链路层协议处理(链路层处理)。304和305两个都是由应用系统单元103的CPU 112执行的软件处理。在经由常规套接字接口302执行304的处理的情况下,由软件执行TCP/IP协议处理。304使用常规套接字接口302执行应用301的套接字处理。在每个套接字中测量发送/接收的数据量。在测量处理中,对于应用通信的全部例程,都在每个设定的时间量测量发送/接收缓冲器(RAM114内)输入/输出的数据量。
下一步,305是TCP/IP处理,其中执行TCP或UDP协议处理和IP协议处理,TCP和UDP是传输层协议而IP是网络层协议。另外,在使用TCP作为传输层协议的通信中对TCP连接状态进行监视。TCP连接状态参见如RFC-793所示的TCP通信的进行状态。305中的TCP/IP处理对在每个设定的时间量每个应用通信例程发送或接收包的次数进行计数。此外,305是链路层协议处理(链路层处理),其中在有线局域网(比如,IEEE 802.3)协议、无线局域网(比如,IEEE 802.11a/b/g)协议等中发送/接收帧。
在图3中,306-309表示由网络通信单元102执行的处理,其中306-308是由协议处理单元107执行的处理。经由常规套接字接口302执行处理306对应于切换了应用通信的TCP/IP协议处理以便由网络通信单元102执行该处理的情况。
306是套接字层处理,并且具有与上述304相同的功能;然而,尽管304中的套接字层处理是由CPU 112执行的软件处理,但是306是由协议处理单元107执行的硬件电路处理,并且306能够进行高速处理。类似地,307是链路层协议处理,具有与上述305相同的功能,是由协议处理单元107进行的处理。
308是用于分析(识别)已接收的包并切换发送/接收包的数据路径的处理。当发送包时,在305,在RAM 114中创建传输帧,并且在307,在本地RAM 106中创建传输帧。因此,308根据从305还是307进行发送来改变读出帧的位置,并且将数据传输到通信控制单元105。
另一方面,当接收到包时,分析从通信控制单元105接收的帧的数据结构。读出已接收的帧的链路层、网络层和传输层的协议头结构,并且获得各层的协议类型、起点(origin)IP地址和起点/目的地的端口号。然后,根据获得的信息,判断是由305还是由307收到帧数据。根据这个判断,将包传输到RAM 114和本地RAM 106之一,其中RAM 114具有用于305的、用于处理接收到的帧数据的缓冲器,本地RAM 106具有用于307的、用于处理接收到的帧数据的缓冲器。
309是通信控制单元105的通信控制处理,并且对发送到网络118/从网络118接收的数据进行控制。
在图3中,310是套接字切换控制,它是管理遍及整个应用装置系统的TCP/IP通信的处理资源的处理。310管理可由网络通信单元102处理的通信例程数量的分配。对于每一个应用通信例程,310还判断从常规套接字接口302执行套接字层处理304和306中的哪一个,并且对其进行动态切换。应当注意,在本实施例中,描述成由网络通信单元102内的内部控制处理器109执行310。然而,可以由协议处理单元107的硬件处理来执行310。
310从304、305、306和307中获取判断套接字层处理切换所需的信息。如上所述,对于通信的每个例程,在每个设定的时间量,304和306的套接字层处理测量发送/接收缓冲器输入/输出的数据量。另外,对于每个TCP/IP通信例程,在305和307的TCP/IP处理中,在每个设定的时间量对发送/接收的包的数量进行计数。此外,在使用TCP通信的情况下监视TCP连接的状态。这些结果的信息被发送到套接字切换控制310。套接字切换控制310接收这种信息,根据在应用通信中将执行套接字层处理304和306中的哪一个来判断切换,并且执行该切换。
下一步,将参考图4和5解释套接字切换控制310的上述切换判断的过程。图4是说明判断是在网络通信单元102还是在应用系统单元103中执行应用通信的TCP/IP协议处理的过程的流程图。图5是以单独的图表显示图4的S402的细节的图。
在S401开始切换判断。在S402,网络通信单元102判断在全部应用通信例程中待执行的TCP/IP协议处理的优先级(preferential rank)。
S403到S409是对应用通信的全部例程重复的步骤,其中判断是由网络通信单元102还是由应用系统单元103执行每个应用通信例程的TCP/IP协议处理。
注意,根据S402中确定的优先级按顺序重复这些步骤。在重复的第一个步骤S404中,判断网络通信单元102处理的通信例程的数量是否小于或等于限制数量(预定数量);如果是,则处理进入S405,而如果不是,则处理进入S408。
在S405,判断在重复步骤中当前处理的应用通信例程是否是使用TCP的通信。在是TCP通信的情况下,在S406中判断TCP连接的状态。
当TCP连接状态是“ESTABLISHED”时,在S407中,应用通信被判断为由网络通信单元102进行TCP/IP协议处理。比如,网络通信单元102进行的TCP/IP协议处理是由网络通信单元102内部的专用硬件电路(通信控制单元105、协议处理单元107等等)进行的处理。此外,比如,网络通信单元102进行的TCP/IP协议处理是网络通信单元102内部的内部控制处理器109执行的软件处理以及由硬件电路执行的计算处理的结合,该硬件电路是通信控制单元105、协议处理单元107等等。
另外,在S406中,在通信不是TCP的情况下(也就是说,主要是UDP通信的情况下),处理进入到S408。
在S408中,应用通信的例程被判断为由应用系统单元103的TCP/IP协议处理进行处理。应用系统单元103的TCP/IP协议处理是由应用系统单元103内的处理器(CPU 112)执行的软件处理。
通过重复步骤S403到S409,对全部应用通信的例程判断是由网络通信单元102还是由应用系统单元103执行TCP/IP协议处理。
如目前所述,当TCP/IP通信的并行例程数量在TCP/IP协议处理可被卸载的限制次数之内时,使用优先卸载TCP/IP协议处理的装置。超过限制数量的TCP/IP通信例程通过软件处理进行处理。
注意,在本实施例中,根据应用通信的状态来切换是通过由网络通信单元102执行的TCP/IP协议处理还是由应用系统单元103执行的TCP/IP协议处理来执行应用通信处理。例如,在引起建立TCP连接的协商处理的TCP状态下、在TCP连接的结束阶段的TCP状态下,由应用系统单元103执行TCP/IP协议处理。
下一步,将参考图5对S402中的步骤进行解释。
如前所述,在S402中,在应用通信的全部例程中,网络通信单元102判断待执行的TCP/IP协议处理的优先级。
在S501开始图5的处理。在S502,判断用于分配优先级的基础是通信数据量还是通信包的数量。可以预先静态地在应用装置的系统中设置采用哪个基础,或者可以在操作期间改变所采用的基础。
在S502中以通信数据量作为标准的情况下,处理进入到S503,然而在以通信包的数量作为标准的情况下,处理进入到S504。
在S503,根据在各个套接字层处理304和306中测量套接字缓冲器的数据量的输入/输出结果分配优先级,以便具有较大数据量的通信具有较高的优先级。另一方面,在S504,根据在各个TCP/IP处理305和307中对发送/接收的包数量计数的结果,向具有大量包的通信分配较高的优先级。
下一步,在S505中,对S503或S504中创建的优先级进行排序,以便使用高速套接字接口303的应用通信具有较高的优先级。然后用于判断优先级的过程在S506结束。
通过这种处理来执行S402中的步骤。
根据如上述判断的切换结果,在由网络通信单元102执行应用通信的TCP/IP协议处理的情况下,套接字切换控制310处理通过306的套接字层处理模块进行判断的应用通信。然而,在由应用系统单元103执行应用通信的TCP/IP协议处理的情况下,套接字切换控制310处理通过套接字层处理模块304进行判断的应用通信。周期性地在每个设定的时间量执行套接字切换控制310。然而,应当注意,在本实施例中,还根据比如在应用通信的增加/减少大于设定数量的时刻应用通信的状态来执行套接字切换控制310。
这样,应用通信的TCP/IP协议处理自动地在由网络通信单元102执行的卸载处理和由应用系统单元103内的CPU 112执行的软件处理之间进行切换。
到目前为止已经给出本发明第一实施例的说明。在本实施例中,当通信并发例程的数量大于可卸载的通信例程的数量时,通过软件处理执行TCP/IP协议处理。因此,可以打开很多通信连接并同时进行通信。此外,切换应用装置101,以便由网络通信单元102优先卸载和处理需要高性能TCP/IP通信的应用通信;因此,总体上可以改善装置的通信性能。
第二实施例
网络照相机是连接到本地局域网的应用装置,本地局域网经由网络分配已获取的图像。在下文中,作为本发明的示例性实施例,将描述用作应用装置的网络照相机的情况。
本实施例的网络照相机具有实时分配已获取的静态图像数据或已获取的运动图像数据的功能,具有为处于不同于网络照相机位置的用户执行诸如开始和停止拍摄、调整平摇/俯仰/缩放之类远程拍摄操作的功能。网络照相机还包括用于存储已获取的静止图像、运动图像等的二次存储装置,并且具有传输先前获取的静止图像数据、运动图像数据等的功能。网络照相机还包括Web服务器,网络照相机能够显示由网络照相机获取的图像并且由管理员从PC、移动式电话等的浏览器进行拍摄设置。诸如这些功能的各种功能全都可以通过借由网络的通信远程地使用。
图6是显示体现为网络照相机的本发明的实例的框图。本实施例的网络照相机的系统配置是以第一实施例所述的应用装置为基础的。因此,图6是基于图1的框图。在图6和图1中相同的组成元件具有相同的附图标记。
在图6中,601是本实施例的网络照相机。603是照相机系统单元,对应于应用系统单元103。照相机系统单元603使用网络通信单元102执行多个应用通信例程。
615是二次存储装置,比如是硬盘装置或诸如CF卡、SD卡之类的大容量非易失性存储装置。二次存储装置615连接到系统总线111,并且主要用于保存由网络照相机601获取的静止图像和运动图像数据的文件。616是网络照相机601的摄像单元,包括镜头、CCD(光电转换元件)、CCD控制单元等等。在摄像单元616中,通过镜头投影的图像由CCD转换为模拟电信号。此外,摄像单元616包括图像处理单元,图像处理单元消除已经转换为模拟电信号的所拍摄图像的噪声并且执行将信号转换为数字数据的模-数转换。
617是编码器,对未压缩的数字图像数据编码(编码和压缩)。摄像单元616和编码器617连接到系统总线111,并且由摄像单元616产生静止图像数据、运动图像数据流等等,摄像单元616按所设定的时间周期输出未压缩的数字图像数据并且由编码器617对该图像数据进行编码。本实施例的编码器617是硬件装置,能够实现图像数据的高速编码,并且遵从诸如JPEG、MPEG-4之类的多种编码格式。电源控制单元117控制向照相机系统单元603内的装置111到114和615到617供电和复位这些装置,以及在不丢失存储于照相机系统单元603整体中的数据的情况下,启动用于关闭电源的终止处理。
CPU 112控制照相机系统单元603内的各个装置、控制照相机应用的执行等等。RAM 114是主存储装置,用于供CPU 112执行程序,并且RAM 114用作网络通信单元102、照相机系统单元603的摄像单元616和编码器617所使用的数据的输入/输出的区域。由照相机系统单元603实现网络照相机601的照相机功能。
另外,由CPU 112执行的系统程序执行属于应用的功能的一部分的应用通信。例如,在采用流方式分配已获取的图像的情况下,摄像单元616获取的未压缩的图像帧数据由编码器617进行编码,由此产生的压缩图像数据被输出到RAM 114。CPU112执行的系统程序从RAM 114中的压缩图像数据中按照能够通过流协议进行发送的格式创建数据流,并且使用TCP/IP通信发送数据流。在发送数据流时,对多于一个的接收方单独进行TCP/IP通信处理。
图7是显示本实施例应用通信处理的分层模型的图。在图7中,高层的处理取决于或利用了低层的处理。
最高层是由网络照相机601的系统程序执行的应用通信的应用协议通信处理701。应用协议通信处理701依赖于经由常规套接字接口702或高速套接字接口703的较低层的通信处理。702和703是由CPU 112执行的系统程序的应用程序接口(API),并且更具体的,它们是兼容通用通信套接字接口的程序接口。由常规套接字接口702使用的较低层处理不同于由高速套接字接口703使用的较低层处理。
在图7中,704到706是由CPU 112执行的作为系统程序的一部分而实现的软件处理。704是通信套接字层处理。705是进行TCP/IP处理并执行诸如TCP、UDP和IP之类的TCP/IP协议处理的软件。706是以太网协议处理,是创建和发送/接收网络的传输帧的软件处理,其中,网络的物理介质遵从IEEE 802.3标准。
在图7中,707到709是与704到706相同的处理。换言之,707是通信套接字层处理,708是TCP/IP协议处理,而709是以太网协议处理。通信处理707到709是协议处理单元107的功能,并且由硬件电路进行高速处理。710是以太网通信控制处理,由上述通信控制单元105执行。
在图7中,由TCP/IP通信处理704到706和TCP/IP通信处理707到709之一执行较低层TCP/IP通信处理,使用常规套接字接口702的应用通信取决于该较低层TCP/IP通信处理。在采用高速套接字接口703的情况下,较低层TCP/IP通信处理是由协议处理单元107执行的处理707到709。
在本实施例的网络照相机601中,存在两种用于应用通信的TCP/IP通信协议处理:由CPU 112所执行的软件进行的处理;以及由协议处理单元107的硬件进行的处理。两种方式之间的差异主要是处理速度不同。由协议处理单元107执行的TCP/IP协议处理实现了高吞吐量、低延迟的TCP/IP通信。本实施例中,使用常规套接字接口702的应用处理在这两种TCP/IP通信处理类型之间自动切换。切换方案和切换本身与第一实施例所述相类似。
网络照相机601在采用实时流方式分配所获取的图像的情况下,要求高带宽和低延迟的TCP/IP通信。本实施例中,对这种通信进行切换以便由网络通信单元102优先进行卸载和处理,因此有可能改善网络照相机的图像分配性能。
第三实施例
接下来将描述本发明的第三实施例。本实施例的应用装置101的配置与图1所示配置相同。本实施例中,将说明如何在应用通信中执行TCP/IP协议处理和数据发送/接收处理。图8说明应用通信中TCP/IP通信处理的数据流。
在图8中,1301表示应用装置101的整个TCP/IP通信处理,并且包括处理模块1302到1309。注意,在图8的1302到1309中,由虚线包围的作为由应用系统单元103执行的处理的处理模块是软件处理模块,并且由CPU 112执行。然而,包围在虚线中的作为由网络通信单元102执行的处理的处理模块是硬件处理或是软件和硬件两种处理。换言之,这些处理模块是由协议处理单元107、DMA控制器108和内部控制处理器109执行的处理。
在图8中,1302是执行应用通信的应用。例如,在应用发送文件的文件传输协议(FTP)服务器中,该应用是服务器程序。FTP是一种使用TCP/IP协议的应用层协议。应用1302在应用系统单元103内执行。应用1302使用套接字接口1303执行应用通信。
套接字接口1303是一种接口,用于执行应用通信以进行数据发送/接收的软件,并且套接字接口1303是由应用系统单元103执行的软件处理模块。它也称为套接字API。在利用套接字接口1303进行通信时,由网络通信单元执行的卸载处理和应用系统单元103的CPU 112执行的软件处理之一来执行TCP/IP协议处理。
在图9中的图表401是显示根据本实施例对每个TCP/IP协议执行协议处理的处理单元及其主要处理细节的图表。如该图表所示,根据协议,由网络通信单元102和应用系统单元103两者执行应用装置101的TCP/IP通信处理。本实施例中,根据应用通信状态动态地切换由这些单元中的哪个执行处理。应用1302不需要监视执行了哪个TCP/IP协议处理。
在图8中,1304是套接字层处理模块,而1305是执行TCP/IP协议处理的模块。1304和1305都是由应用系统单元103的CPU112执行的软件处理模块。
当应用通信执行1304和1305的处理时,该通信使用TCP,并且使用以下内容:切换TCP协议处理以便由1305中的软件执行TCP协议处理;该通信使用UDP;以及该通信使用TCP之外的协议。
在TCP通信中,当执行建立TCP连接时的通信时和关闭TCP连接时的通信时执行TCP协议处理1305,如图9中虚线包围的区域402所示。换言之,在本实施例中,在TCP连接的建立阶段和结束阶段的通信处理由应用系统单元103的CPU 112执行。
1304执行应用通信的套接字层处理,并且交换待经由套接字接口1303发送/接收的应用的数据。另外,当由1305执行TCP通信处理时,在1304和1305之间交换通信数据。在由1304执行套接字层处理的TCP通信中,测出每个TCP套接字发送/接收的数据量。在这个测量处理中,对全部应用通信例程,在每个设定的时间量测量套接字发送/接收缓冲器(RAM 114内)输入/输出的数据量,并且向1310中的套接字切换处理模块通知测量结果。
另一方面,在应用通信是使用UDP的通信的情况下,由1304执行套接字层处理。此外,在TCP/IP协议处理模块1305中执行UDP包发送处理。UDP包接收处理由处理模块1307执行,这将在下文中提及。因此,1304与1307交换UDP包数据。
1305的TCP/IP处理模块主要执行TCP通信中的TCP协议处理以及UDP通信中的发送处理,或者执行TCP和UDP以外的上层IP层协议处理。另外,TCP/IP处理模块1305也执行诸如ICMP、ARP之类的协议处理,这些协议不直接用于应用通信,但却是执行TCP/IP通信所必需的。
此外,1305在TCP通信的建立/关闭连接阶段期间监视TCP连接状态的变化。TCP连接状态参见如RFC-793所示的TCP通信进程状态。通常,在建立连接阶段的TCP连接状态称作SYN_SENT和SYN_RCVD。在关闭连接阶段,存在状态FIN_WAIT1、FIN_WAIT2、CLOSING、TIME_WAIT、CLOSE_WAIT和LAST_ACK。在TCP套接字中没有连接的状态称作CLO_SED。换言之,当应用通信(TCP通信)处于上述的TCP连接状态时,由TCP/IP处理模块1305执行TCP协议处理。
此外,在1305中,在每个设定的时间量为全部处于ESTABLISHED状态的TCP连接测量发送/接收的TCP包数量,并向套接字切换处理模块1310通知测量结果。
在图8中,1306到1309表示网络通信单元102的处理模块;由协议处理单元107执行1306到1308。
1306是TCP套接字层处理模块。尽管上述套接字层处理模块1304是由CPU 112执行的软件处理,TCP套接字层处理模块1306是由协议处理单元107执行的处理并且能进行高速处理。在应用通信是使用TCP的通信并且TCP连接处于建立阶段的情况下执行这种TCP套接字层处理。此时,TCP连接处于称为ESTABLISHED的状态。1306执行经由套接字接口1303在应用通信中发送/接收的数据的交换。由1306测量在执行套接字层处理的TCP套接字中发送/接收的数据量。在这个测量处理中,对全部应用通信例程,在每个设定的时间量测量套接字发送/接收缓冲器(本地RAM 106内)输入/输出的数据量,并且向套接字切换处理模块1310通知测量结果。
1307主要执行处于ESTABLISHED状态的TCP协议处理或者接收UDP包时的UDP协议处理。此外,1307与1304或1306交换通信数据,1304和1306是较高层的套接字处理模块。然而,利用1304进行数据交换仅仅发生在接收UDP包的情况下,而利用1306进行数据交换仅仅发生在TCP通信的情况下。在应用通信中进行发送时,1307从1306接受被发送的数据。反之,在接收时,1307向1306传输被接收的数据。
另外,在由1307处理处于ESTABLISHED状态的TCP通信时,在每个设定的时间段测量发送/接收的TCP包数量,并且向套接字切换处理模块1310通知测量结果。
1308是在网络通信单元102内执行的处理模块。当TCP包由TCP处理模块1307发送时,1308创建IP包并在其上附加IP头。当接收到IP包时,分析所接收的包的头结构,并且已接收的包的数据被传输给处理模块1305和1307之一。
已接收包的分析处理识别出从通信控制单元105接收的帧的数据结构,并且读出网络层和传输层的协议报头区域。在帧数据包括IP包的情况下,获得了上层协议类型和起点和目的地的IP地址;此外在UDP包、TCP包等被归入上层协议的情况下,获得起点和目的地中指定的端口号。然后,通过预先决定的判断处理,根据获得的信息,判断是由1305还是1307接收帧数据。随着这个判断,数据转入到RAM 114和本地RAM 106之一,其中RAM 114具有用于1305的、用于处理已接收的帧数据的缓冲器,而本地RAM 106具有用于1307的、用于处理已接收的帧数据的缓冲器。
注意,由TCP/IP协议处理模块1305发送/接收不包括IP包格式的数据的帧数据(诸如ARP帧)。通过分析已接收的包,在接收到这种帧数据的情况下,帧数据传输到应用系统单元。
在图8中,在1309中的处理是网络通信的链路层处理。这个处理发送/接收有线局域网(例如IEEE 802.3)或无线局域网(例如IEEE 802.11a/b/g)协议的帧。此外,这个处理对通信控制单元105进行控制,并且向网络118发送/从网络118接收帧数据。
在图8中,1310是套接字切换处理模块,并且是管理整个应用装置系统的TCP/IP通信处理资源的处理。1310管理通信例程数量的分配,这些通信由网络通信单元处理。应当注意,在本实施例中,1310被描述为由网络通信单元102内的内部控制处理器109执行。然而,可以由协议处理单元107通过硬件处理来执行1310。
1310对使用套接字接口1303的每一个应用通信例程进行判断,判断是应该执行应用系统单元的套接字层处理还是网络通信单元的套接字层处理,然后根据判断结果执行切换处理。通过1304、1305、1306和1307对判断切换套接字层处理所必需的信息进行通信。在通过1305和1307执行的处理中,在应用通信使用TCP作为较低层协议的情况下,监视TCP连接状态并且向套接字切换处理模块1310通知其中的改变。根据这个通知,对于每个应用通信例程的TCP协议处理,套接字切换处理模块1310在通过1304和1305由应用系统单元103执行处理和通过1306和1307由网络通信单元102执行处理之间进行切换。此外,套接字切换处理模块1310管理由网络通信单元102执行的通信处理的TCP连接数量。这种管理限制了由网络通信单元102中的1306和1307执行TCP协议处理的TCP套接字的总数,以便TCP套接字的总数不超过预定的上限数量。
下一步,将描述在TCP通信中由网络通信单元102和应用系统单元103切换TCP协议处理。
图10是显示TCP通信流程简化实例的图。图10显示客户端501和服务器502建立TCP连接、发送和接收数据以及结束该连接的通信。客户端501代表请求方,它请求打开TCP连接。
从客户端501发出TCP连接建立请求503,然后一旦接收到这个请求,服务器502就返回一个响应于该建立请求的确认504。连接建立请求503是一种包,其中TCP包头的控制位字段的SYN位是1,因此简称为SYN包。类似地,响应于建立请求的确认是一种包,其中TCP包头的控制位字段中的SYN和ACK位是1。一旦接收到(SYN,ACK)包504,客户端501发送确认(ACK)505。发送和接收这三个TCP包的阶段512是通常的TCP连接建立期间发生的通信,并被称为三次握手(three-way handshake)。
在客户端501和服务器502之间正建立TCP连接的情况下,既发送又接收应用数据。在图10中,箭头506到508指出在阶段513中发送和接收的数据,阶段513中正在建立连接。
客户端501发送请求关闭连接的包509。509是一种包,其中在TCP包头的控制位字段中的FIN位是1。一旦接收到连接关闭请求509,服务器502发送TCP包(FIN,ACK)510,该包表示响应于来自客户端501的关闭请求的确认,并且还表示由服务器502侧本身发出的关闭请求。一旦接收到TCP包510,客户端501发送确认(ACK)511。通过阶段514的通信过程来执行在连接关闭阶段中的通信。
在本实施例中,建立连接的阶段512(如图10中TCP通信流程实例所示)和关闭连接的阶段514中的TCP协议处理都由应用系统单元103执行。在连接建立期间,由网络通信单元102或应用系统单元103在阶段513中执行这些处理。换言之,在使用TCP的应用通信中,执行TCP协议处理的处理单元根据TCP连接状态进行切换。
使用图10所示TCP通信流程为例来说明如何由网络通信单元102和应用系统单元103执行TCP通信处理,以及TCP协议处理如何对每个TCP连接进行切换。将参考图11到20对这些内容进行说明。
首先,将参考图11来说明由应用装置101产生打开TCP连接的请求的情况。图11显示用于请求建立TCP连接的一方(即客户端501)的流程图。图11左侧的“处理单元”栏表示由网络通信单元102和应用系统单元103中的哪个单元来执行流程图中每个步骤的处理。换言之,在图11中,全部处理步骤仅在应用系统单元103内即完成。此外,通过如RFC-793所示状态的处理发生于TCP通信中;因此,图11右侧“TCP状态”栏示出根据流程图的TCP连接状态的进程。
请求建立TCP连接的处理流程从S601开始。在S602,产生(创建)用于执行TCP通信的新的TCP套接字。此时,在RAM 114内确保TCP套接字所使用的发送缓冲器和接收缓冲器。
下一步,在S603中,产生(创建)用于开始TCP通信的TCP控制块(TCB)。TCB是用于控制TCP通信的上下文信息(TCP控制信息),并且是几十个参数的集合数据。对每个TCP连接产生TCB,并且将TCB绑定到TCP套接字并对其进行管理。当执行每个TCP通信处理时,参考、更新和使用TCB中的每个参数值。在S603中,应用系统单元103在RAM 114中创建TCB。下一步,在S604,在TCP套接字表中注册套接字对(Socket pair)信息。套接字对信息是TCP连接中两个终点的一组IP地址和TCP端口号。在这种情况下,套接字对信息是用于在应用装置101中打开TCP连接的一组IP地址和端口号,以及通信对方的IP地址和端口号。TCP套接字表是数据库,其中注册了正由应用装置101处理的全部TCP通信(包括建立和关闭阶段的TCP连接)例程的套接字对。
TCP套接字表由网络通信单元102内的协议处理单元107管理。每个套接字对正在使用的多个TCP套接字、以及指出网络通信单元102和应用系统单元103中的哪个单元当前正在进行处理的信息也都随着套接字对信息一起保存在TCP套接字表中。
通过应用系统单元103内的CPU 112执行的软件(驱动程序)来执行向TCP套接字表注册套接字对信息/从TCP套接字表删除套接字对信息。在阶段S604中,新创建的TCP套接字仍然没有连接,因此TCP状态处于CLOSED状态。下一步,在S605,发送SYN包,并且请求通信对方打开TCP连接。换言之,发送图10所示通信流程中的503。下一步,处理进入到S606并且处理流程结束;然而由于在S605中发送SYN,故TCP状态从CLOSED变为SYN_SENT。
下一步,参考图12的流程图,将说明当在发送连接建立请求(SYN)之后出现SYN_SENT状态的情况下,接收到从通信对方响应于SYN的确认(SYN,ACK)时出现的处理流程。
处理从S701开始。在S702,网络通信单元102分析已接收的TCP包的头结构,获得套接字对信息,并且搜索TCP套接字表。在S703,网络通信单元102判断是否存在应接收包的TCP套接字。由图8中的处理模块1307和1308执行S702中的处理。换言之,通过1308读出TCP包的头信息来获得套接字对信息,然后向1307通知套接字对信息。然后处理模块1307搜索TCP套接字表,判断是否存在应接收包的套接字,并且向1308返回搜索结果。在S703,当不存在能够接收待接收的TCP包的TCP套接字时,处理进入S704,并且当存在能够接收待接收的TCP包的TCP套接字时,处理进入S706。
在S704,不能接受所接收的包,因此将表示强制复位的(RST,ACK)包发送到作为TCP包起点的TCP套接字。这个包中RST位和ACK位已经在TCP包的头控制位中进行了设置。由图8中的处理模块1307创建返回的TCP包。在S704中发送(RST,ACK)包的情况下,处理进入S705并结束。
当处理已经从S703进入到S706时,存在能够接收待接收的TCP包的TCP套接字。因为TCP套接字处于SYN_SENT状态,由应用系统单元103进行接收,因此在S706中,已接收的TCP包被传输到应用系统单元103。另外,向TCP/IP处理模块1305通知在搜索TCP套接字表期间所找到的套接字号。在S706,由图8中的处理模块1308处理包,并且将包传送到应用系统单元103内的RAM 114的包接收缓冲器中。
下一步,进入S707,执行用于接收TCP包的处理,然后进入到S708,发送确认包(ACK)。发送这个确认包是发送由图10中505和ACK所表示的TCP包。在S707和S708执行的处理由图8中的TCP/IP处理模块1305执行。换言之,这些步骤在应用系统单元103内部执行。
当在S708发送了确认包时,处理进入S709,并且执行套接字切换处理。在S709,从图8中的TCP/IP处理模块1305向套接字切换处理模块1310提供一个通知,并且切换用于该TCP的套接字层处理和TCP协议处理,以便此后由网络通信单元102执行。TCP套接字号、链接到TCP套接字的发送缓冲器和接收缓冲器的存储地址和TCB信息包含在发送给套接字切换处理模块1310的通知中。作为用于执行TCB通知的方法,可以传输表示TCB数据在RAM 114中的存储地址,或者可以传输TCB数据的细节。注意在下文中,发送到套接字切换处理模块1310的通知包括这些信息。
应当注意,由套接字切换处理模块1310执行的处理不必为了在网络通信单元102内进行处理而切换用于TCP包的协议处理。在网络通信单元102可处理的TCP连接数量超过上限的情况下,不执行切换处理。在这种情况下,在应用系统单元103内执行TCP通信处理。
当S709中用于TCP套接字的处理模块的切换处理结束时,处理进入S710,用于接收(SYN,ACK)包的处理流程正常结束。此时,TCP连接的TCP状态从SYN_SENT变为ESTABLISHED,如图12中右侧栏所示。
到目前为止,已经参考图11和12说明了在如图10所示建立TCP连接的阶段512中,在应用装置101以图10中客户端501一方的方式请求待打开的连接的情况下的处理细节。
下一步,将说明在图10所示建立TCP连接的阶段512中,应用装置101以图10中服务器502的方式接受打开TCP连接的请求的情况。通常,在TCP通信中,需要通过使用处于LISTEN状态的TCP套接字来等待,以便从通信对方接受连接建立请求。利用本实施例的应用装置101,接受连接建立请求(SYN)的全部TCP套接字的信息都保存在称为LISTEN表的数据库中。LISTEN表由网络通信单元102内部的协议处理单元107管理。执行TCP通信的应用创建处于LISTEN状态的TCP套接字,以便等待TCP连接建立请求。将参考图13中的流程图来说明这种处理。
在图13中,从S801开始处理。在S802,根据用于待产生的TCP套接字的指令和用于进入连接待机状态的指令来产生新的TCP套接字,由应用执行这些指令。在S802创建的TCP套接字处于CLOSED状态。为了使创建的TCP套接字为LISTEN状态,向套接字切换处理模块1310传送用于在LISTEN表中注册的指令。包括接受连接建立请求的套接字号和用于等待的本地IP地址和TCP端口号的集合被添加到用于注册的指令中。直到此时的处理是由应用系统单元103内的TCP套接字层处理模块1304执行的。
下一步,处理从S802进入到S803;由套接字切换处理模块1310切换新产生TCP套接字的处理单元,因此在网络通信单元102内执行TCP协议处理。下一步,在S804,图8中的TCP处理模块1307在上述LISTEN表中注册套接字对信息和TCP套接字号,套接字对信息是一组用于等待TCP连接建立请求的本地IP地址和端口号。然后处理进入S805并结束。通过这种处理,新的TCP套接字从CLOSED状态变为LISTEN状态。
当接收到打开TCP连接的请求时,使用一组目的地IP地址和端口号作为关键字搜索LISTEN表,并且判断是否存在与目的地条件匹配的项。换言之,判断是否存在指定为连接建立请求目的地的已注册TCP套接字,在存在这种TCP套接字的情况下,有可能建立TCP连接。
下一步,将参考图14说明当从TCP通信中的通信对方接收到请求建立连接的TCP包(SYN包)时发生的处理流程。处理流程从S901开始。首先,在S902,在网络通信单元102内分析已接收的TCP包的头结构,获得套接字对信息,并搜索LISTEN表(TCP LISTEN套接字表)。由图8中的处理模块1307和1308执行S902中的处理。由1308读出TCP包的头信息来获得套接字对信息,然后向1307通知套接字对信息。然后,处理模块1307搜索LISTEN表,判断是否存在待接收的套接字,并且向1308返回搜索结果。
在S903,在不存在处于LISTEN状态的能够接收已接收的TCP包(SYN包)的TCP套接字的情况下,或者换言之,不存在可以接受连接建立请求的TCP套接字的情况下,处理进入到S904中的处理。在存在这种TCP套接字的情况下,处理进入到S906中的处理。换言之,在S903,判断是否存在接受连接请求的TCP套接字。在S904,不能接受已接收的包,因此将表示强制复位的(RST,ACK)包发送到作为TCP包起点的TCP套接字;然后处理进入到S905并结束。
当处理已经从S903进入到S906时,存在能够接收所接收的TCP包的TCP套接字。在S906,已接收的TCP包被传送到应用系统单元103。在S906,由图8中的处理模块1308处理包,并且将包传送到应用系统单元103内的RAM 114的包接收缓冲器中。另外,将在搜索LISTEN表期间找到的套接字号通知TCP/IP处理模块1305。
下一步,处理进入到S907。由应用系统单元103执行从S907开始的处理流程。在S907,创建用于建立TCP连接的新TCP套接字,然后在下一步S908中,创建新的TCB,TCB用在使用TCP套接字的通信当中。此时,在RAM 114内确保TCP套接字所使用的发送缓冲器和接收缓冲器。下一步,在S909,在TCP套接字表中注册新创建的TCP套接字的套接字对信息。在S909向TCP套接字表中注册的处理类似于图11中S604的处理,它在应用装置101请求待打开的TCP连接的情况下进行,因此将省略其详细说明。在S909后,处理进入到S910,其中由TCP处理模块1307发送TCP包(SYN,ACK),该包是响应于连接建立请求的确认。图10中的504表示所发送的TCP包。
如目前所述,由于S910中的处理,新产生的TCP连接从CLOSED状态变为SYN_RCVD状态。
下一步,将参考图15说明在TCP连接中的通信对方接收到确认(ACK)的情况下的处理流程,其中该TCP连接在发送(SYN,ACK)TCP包后已变为SYN_RCVD状态。在图15的处理流程中,已接收的TCP包对应于图10中通信流程的505所示的确认(ACK)包。
图15中的处理流程从S1001开始。在S1002,网络通信单元102分析已接收的TCP包的头结构,获得套接字对信息,并且搜索TCP套接字表。在S1003,网络通信单元102判断是否存在应接收包的TCP套接字。S1002中的处理与上述图12的S702中的处理相同。在S1003,当不存在能够接收TCP包的TCP套接字时,处理进入S1004,并且当存在能够接收TCP包的TCP套接字时,处理进入S1006。在S1004,不接受包,并将表示强制复位的(RST,ACK)包发送到作为TCP包起点的TCP套接字;然后处理进入到S1005并结束。
当处理已经从S1003进入到S1006时,存在能够接收待接收的TCP包的TCP套接字。在S1006,已接收的TCP包被传送到应用系统单元103。还通知套接字号。S1006执行与上述图12的S706中相同的处理。下一步,处理进入到S1007,并且对已接收的TCP包进行接收处理。
然后,处理进入到S1008,并且执行套接字切换处理。在S1008,从图8中的TCP/IP处理模块1305向套接字切换处理模块1310提供通知,并且切换用于该TCP的套接字层处理和TCP协议处理,以便此后由网络通信单元102执行切换。该步骤S1008执行与上述S709相同的处理。
应当注意,由套接字切换处理模块1310执行的处理不必为了在网络通信单元102内进行处理而切换用于TCP包的协议处理。在由网络通信单元102可处理的TCP连接数量已经达到上限的情况下,不执行切换处理。在这种情况下,在应用系统单元103内执行TCP通信处理。
当完成了S1008中用于TCP套接字的处理模块的切换处理时,处理进入S1009,并且用于已接收的TCP包(ACK)的处理流程正常结束。此时,TCP连接的TCP状态从SYN_RCVD变为ESTABLISHED,如图15中右侧栏所示。
到目前为止,已经参考图13、14和15说明了在如图10所示建立TCP连接的阶段512中,在请求应用装置101以图10中服务器502一方的方式打开连接的情况下的处理细节。
下一步,将说明当TCP连接处于ESTABLISHED状态时发送/接收数据的处理细节。这相当于图10所示通信流程实例中的阶段513的通信,其中目前已建立起TCP连接。目前建立起TCP连接的状态被称作ESTABLISHED状态。在本实施例中,如同先前参考图11到15的说明,当每个TCP连接处于ESTABLISHED状态时,在网络通信单元102内执行TCP协议处理。
图16是当目前已建立起连接时发送数据的处理流程,并且表示处于ESTABLISHED状态的TCP通信中的数据发送处理。在图16中,处理首先从S1101开始。在S1102,判断是否将由网络通信单元102执行TCP套接字处理。在S1102执行的处理由图8中的套接字接口1303执行。在套接字切换处理模块1310已经切换TCP通信的TCP套接字层处理以便在网络通信单元102内进行处理的情况下,处理进入到S1103。否则,处理将由应用系统单元103执行并因此处理进入到S1105。S1103和S1105两个都是TCP数据发送处理。在图16的S1103和S1105中执行TCP通信中发送数据时的发送流控制、拥塞控制、分割发送数据处理、重新发送TCP包处理等。然后,处理进入到S1104或者S1106,然后结束。
另一方面,图17是当现在已经建立起连接时在接收数据时的处理流程。处理从S1201开始。在S1202,网络通信单元102分析已接收的TCP包的头结构,获得套接字对信息,并且搜索TCP套接字表。在S1203,网络通信单元102判断是否存在应接收包的TCP套接字。S1202中的处理与上述图12的S702中执行的处理相同。在S1203,在不存在能够接收所接收的TCP包的TCP套接字的情况下,处理进入到S1204中的处理,在存在能够接收所接收的TCP包的TCP套接字的情况下,处理进入到S1206中的处理。在S1204,不能接受所接收的包,因此将表示强制复位的(RST,ACK)包发送到作为TCP包起点的TCP套接字;然后处理进入到S1205并结束。
当处理已经从S1203进入到S1206时,存在能够接收所接收的TCP包的TCP套接字。在S1206,判断接收/处理已接收的TCP包的处理单元是否是网络通信单元102。在由图8中的套接字切换处理模块1310已经切换了TCP通信的TCP套接字层处理以便在网络通信单元102内进行处理的情况下,处理进入到S1207。否则,将由应用系统单元103执行处理并因此处理进入到S1212。S1207到S1211是由网络通信单元102执行的处理。另一方面,S1212到S1216是由应用系统单元103执行的处理。
在S1207,对已接收的TCP包执行TCP协议处理(换言之,执行TCP包接收处理)。在S1207的处理之后,在S1208中响应于已接收的TCP包数据,要求发送即时ACK的情况下,在S1209发送接收确认(ACK)包,然后处理进入到S1210。在不要求发送即时ACK的情况下,处理从S1208进入到S1210。换言之,在S1208,判断是否必需发送即时ACK。在S1210,执行TCP套接字层的接收处理(也就是说,TCP套接字接收处理)。由图8中的TCP套接字层处理模块1306执行这个处理;在这个处理中,响应于通过应用的套接字接口1303获得的数据接收请求,将已接收的数据传送到应用的接收缓冲存储器中。处理从S1210进入到S1211,然后处理流程结束。
在处理从S1206进入到S1212的情况下,在S1212,对已接收的TCP包执行TCP协议处理(换言之,执行TCP包接收处理)。在S1212的处理之后,在S1213中响应于已接收的TCP包数据,要求发送即时ACK的情况下,在S1214发送接收确认(ACK)包,然后处理进入到S1215。换言之,在S1213,判断是否必需发送即时ACK。当不必发送即时ACK的时候,处理从S1213进入S1215。在S1215,执行TCP套接字层的接收处理(也就是说,TCP套接字接收处理)。由图8中的TCP套接字层处理模块1304执行这个处理;在这个处理中,响应于通过应用的套接字接口1303获得的数据接收请求,将已接收的数据传送到应用的接收缓冲存储器中。处理从S1215进入到S1216,然后处理流程结束。
注意,在S1207和S1212中执行从已接收的包中重新排序(重建)已接收的数据、响应于已接收的数据判断发送ACK、根据已接收的来自通信对方的ACK的发送窗口控制等。
到目前为止,已经参考图16和17说明了在图10中阶段512期间由应用装置101发送/接收数据的处理细节,其中当前已建立了TCP连接。
下一步,将参考图18和19说明在由应用装置101产生关闭TCP连接请求的情况下执行的处理细节。该说明假定在图10的通信流程实例的连接关闭阶段514中,在客户端501一方执行通信操作。首先,当TCP连接处于ESTABLISHED状态时,发送关闭TCP连接的请求。然后,接收到来自通信对方的响应于已发送的关闭请求的确认,并且接收到来自通信对方的关闭请求,最后,发送对来自通信对方的关闭请求的确认。
图18的处理流程开始于使用处于ESTABLISHED状态的TCP套接字的应用通过套接字接口1303指示关闭TCP套接字。处理首先从S1301开始。在S1302,判断是否将由网络通信单元102执行TCP套接字处理。S1302中的处理由图8的套接字接口1303执行。在已经由套接字切换处理模块1310切换了TCP通信的TCP套接字层处理以便在网络通信单元102内进行处理的情况下,处理进入到S1303。否则,将由应用系统单元103执行该处理,因此处理进入到S1306。S1303到S1305是在网络通信单元102内执行的处理,而S1306到S1307是在应用系统单元103内执行的处理。
在S1303,发送请求关闭TCP连接的TCP包。这是由FIN发送指出的,FIN发送如图10的通信流程实例中的509所示。由图8中的TCP处理模块1307发送关闭TCP连接的请求。已发送的TCP包在TCP包头的控制位字段中具有为1的FIN位。
下一步,处理进入到S1304,其中执行切换TCP套接字的处理,以便此后在应用系统单元103内处理TCP连接中的TCP协议处理。从图8的处理模块1307向套接字切换处理模块1310提供通知,并且TCP套接字处理从网络通信单元102进入到应用系统单元103。因此,由图8的处理模块1304和1305执行TCP套接字中的TCP协议处理和套接字层处理。然后处理进入到S1305并结束。TCP连接的TCP状态从ESTABLISHED变为FIN_WAIT1。
在处理从S1302进入到S1306的情况下,首先在S1306,发送请求关闭TCP连接的TCP包。这是由FIN发送指出的,FIN发送如图10的通信流程实例中的509所示。由图8中的TCP/IP协议处理模块1305执行关闭TCP连接的请求的发送。然后处理进入到S1307并结束。TCP连接的TCP状态从ESTABLISHED变为FIN_WAIT1。
从通信对方接收到由图10的通信流程实例中通信510所示的TCP包(FIN,ACK),TCP包(FIN,ACK)既表示响应于先前已发送的连接关闭请求(FIN)的确认,又表示来自于通信对方的关闭请求。此时的处理流程如图19所示。如图18所示,首先从应用装置101一方发送连接关闭请求(FIN),因此在图19中,TCP连接的TCP状态是FIN_WAIT1状态。
在图19中的处理从S1401开始。在S1402网络通信单元102分析已接收的TCP包的头结构,获得套接字对信息,并且搜索TCP套接字表。在S1403,网络通信单元102判断是否存在应接收包的TCP套接字。在S1402执行的处理与图12中上述S702所执行的处理相同。在S1403,当不存在能够接收TCP包的TCP套接字时,处理进入到S1404,并且当存在能够接收TCP包的TCP套接字时,处理进入到S1406。在S1404,不能接受所接收的TCP包,因此向作为TCP包起点的TCP套接字发送表示强制复位的(RST,ACK)包;然后处理进入到S1405并结束。
当处理已经从S1403进入到S1406时,存在能够接收所接收的TCP包的TCP套接字。在S1406,将已接收的TCP包传送到应用系统单元103内RAM 114的包接收缓冲器中。另外,通知TCP/IP协议处理模块1305在搜索TCP套接字表期间所找到的套接字号。
下一步,处理进入到S1407。在应用系统单元103内执行步骤S1407到S1409。在S1407,执行用于接收TCP包的处理,并且因为TCP包是来自通信对方的(FIN,ACK)包,所以处理进入到S1408,并发送确认(ACK)。发送这个确认包是发送图10中511和ACK所指的TCP包。通过到目前为止执行的处理步骤,TCP连接的状态从FIN_WAIT1变为TIME_WAIT。
S1409是在TIME_WAIT状态中等待经过2MSL(最大分段寿命)时间。在经过该时间之后,状态从TIME_WAIT状态变为CLOSED状态,并且关闭TCP连接。然后处理进入到S1410并结束。
已经参考图18和19说明了在如图10所示的TCP连接关闭阶段514中,在应用装置101按图10中客户端501一方的方式执行通信操作的情况下的处理细节。当TCP连接处于ESTABLISHED状态时,由网络通信单元102执行509所示的FIN发送处理。然后,切换执行TCP协议处理的处理单元,并且由应用系统单元103执行在接收510所示的(FIN,ACK)时的处理以及在发送511所示的ACK时的处理。
下一步,将参考图20说明在由应用装置101的通信对方产生关闭TCP连接请求的情况下执行的处理细节。该说明假定在图10通信流程实例的连接关闭阶段514中,在服务器502一方执行通信操作。首先,利用处于ESTABLISHED状态的TCP连接,接收到从通信对方发送的TCP连接关闭请求;然后,产生响应于关闭请求的确认,并且从应用装置101一方发送表示关闭请求的TCP包。
图20的处理流程开始于当TCP连接处于ESTABLISHED状态时从通信对方接收到TCP连接关闭请求(FIN),其中ESTABLISHED状态表示当前已建立了TCP连接。处理流程从S1501开始。在S1502,网络通信单元102分析已接收的TCP包的头结构,获得套接字对信息,并且搜索TCP套接字表。在S1503,网络通信单元102判断是否存在应接收包的TCP套接字。在S1502执行的处理与图12中上述S702所执行的处理相同。在S1503,当不存在能够接收所接收的TCP包的TCP套接字时,处理进入到S1504,并且当存在能够接收所接收的TCP包的TCP套接字时,处理进入到S1506。在S1504,不能接受已接收的包,因此向作为TCP包起点的TCP套接字发送表示强制复位的(RST,ACK)包。在S1504发送了(RST,ACK)包的情况下,处理进入到S1505并结束。
当处理已经从S1503进入到S1506时,存在能够接收已接收的TCP包的TCP套接字。在S1506,判断接收/处理已接收TCP包的处理单元是否是网络通信单元102。在已经由图8中的套接字切换处理模块1310切换了TCP通信的TCP套接字层处理以便在网络通信单元102内进行处理的情况下,处理进入到S1507。否则,由应用系统单元103执行该处理,因此处理进入到S1511。由网络通信单元102执行S1507到S1510的处理。另一方面,由应用系统单元103执行S1511到S1513的处理。
在S1507,执行用于接收TCP包的处理,然后处理进入到S1508。TCP包是来自通信对方的连接关闭请求(FIN),因此发送TCP包(FIN,ACK),在该TCP包中已经合并了响应于FIN的确认和来自应用装置101一方的连接关闭请求。然后处理进入到S1509,其中执行切换TCP套接字的处理,以便此后在应用系统单元103内执行TCP套接字处理。从图8的处理模块1307向套接字切换处理模块1310提供通知,并且TCP套接字处理从网络通信单元102进入到应用系统单元103。因此,由图8的处理模块1304和1305执行TCP套接字中的TCP协议处理和套接字层处理。此后,处理进入到S1510并结束。
在处理从S1506进入到S1511的情况下,在S1511执行用于接收TCP包的处理,然后处理进入到S1512。在S1512,TCP包是来自通信对方的连接关闭请求(FIN),因此发送TCP包(FIN,ACK),在该TCP包中已经合并了响应于FIN的确认和来自应用装置101一方的连接关闭请求。然后,处理流程进入到S1513并结束。
已经参考图20说明了在如图10所示的TCP连接关闭阶段514中,在应用装置101按图10中服务器502一方的方式执行通信操作情况下的处理细节。当TCP连接处于ESTABLISHED状态时,由网络通信单元102执行由509所示的FIN发送处理到510所示的(FIN,ACK)发送处理。关闭TCP连接,然后TCP连接变为CLOSED状态。同时,切换套接字处理以便在应用系统单元103内执行套接字处理。
下一步,将对关于本实施例中的判断方法进行说明,该方法由图8的套接字切换处理模块1310执行,用于切换执行TCP通信处理的处理单元。
从由应用系统单元103执行处理切换到由网络通信单元102执行处理的TCP通信的第一个条件是TCP连接处于ESTABLISHED状态。其理由在于当发送/接收应用通信数据,或换言之,当当前已建立TCP连接时,应用装置需要高速数据发送/接收处理。
第二个条件是可由网络通信单元102处理的TCP连接数量在上限范围之内。如前所述,因为TCP连接状态变为ESTABLISHED,所以诸如图12的S709和图15的S1008之类的处理步骤执行用于切换执行TCP协议处理的处理单元的处理。如果此时可以由网络通信单元102处理的TCP连接数量没有达到上限,那么切换TCP通信处理以便在网络通信单元102内执行TCP通信处理。然而,如果此时可以由网络通信单元102处理的TCP连接数量已经达到上限,那么不为了由网络通信单元102执行TCP通信处理而切换TCP通信处理,并且此后由应用系统单元103执行TCP通信处理。
在本实施例中,如上所述,图8的处理模块1305和1307对处于ESTABLISHED状态的执行TCP协议处理的TCP连接在每个设定的时间量测量发送/接收的包数量。此外,图8的TCP套接字层处理模块1304和1306在每个设定的时间量测量由应用发送/接收的数据量。当从1304、1305、1306和1307获得测量结果的通知时,图8的套接字切换处理模块1310创建/更新优先级信息。此时,对于处于ESTABLISHED状态的全部TCP通信例程,创建/更新优先级信息以便对发送/接收的包的数量大的TCP通信或发送/接收的数据量大的TCP通信进行由网络通信单元102执行的TCP协议处理。
当由网络通信单元102处理的TCP通信例程数量已经达到上限数量时,并且由网络通信单元102进行TCP协议处理的TCP通信的状态变为ESTABLISHED状态时,切换TCP通信。换言之,此时,切换TCP通信以便由应用系统单元103进行处理。因此,由应用系统单元103,正在处理的处于ESTABLISHED状态的TCP通信被切换成由网络通信单元102处理。在进行这种交换的时候,根据前述优先级信息选择TCP套接字,然后执行这种交换。
注意,当由网络通信单元102处理的TCP通信例程数量已经达到上限数量时,对于网络通信单元102和应用系统单元103分别执行TCP协议处理的TCP通信,可以周期性地判断其交换。此时,这种交换处理是以上述优先级信息为基础的。
另外,可以识别应用通信的具体例程,并且当应用通信处于ESTABLISHED状态时,可以由网络通信单元102优先执行用于应用通信的TCP协议处理。通过在应用装置101中预先保留专门的TCP端口号并与专门应用一起使用该端口号即可实现这种情况。此外,即使可以由网络通信单元102处理的TCP连接数量已经达到上限,当优先级高的TCP通信例程的连接变为ESTABLISHED状态并发生TCP协议处理切换时,也可将该连接与低优先级连接进行交换。
下一步,将参考图21说明图8的套接字切换处理模块1310所执行的、执行TCS通信处理的处理单元的切换的处理细节。
在图21中,1601表示应用系统单元103的TCP/IP处理模块,它和图8的处理模块1305相同。1602表示网络通信单元102的TCP处理模块,与图8的处理模块1307相同。1603表示套接字切换处理模块,与图8的处理模块1310相同。在TCP套接字处理中,TCP协议处理切换是指1601和1602中的哪一个来执行该处理的变化。
另外,1604和1605分别表示被切换TCP通信处理的TCP套接字发送缓冲器和接收缓冲器(TCP发送/接收缓冲器),并且1606表示与TCP套接字有关的TCB。如上述图11中处理步骤S602和S603、图14中处理步骤S907和S908等所述,在应用系统单元103内的RAM 114中确保1604、1605和1606的数据。在本实施例中,即使在处理模块1601和1602之间切换了TCP协议处理,这些数据缓冲也仍然保持在RAM 114中。换言之,由于这种切换,不执行复制数据等操作;相反,在切换之后,对RAM 114中相同的数据进行读取/写入。换言之,由RAM 114中的两个处理模块1601和1602共享这些数据,并且处理TCP套接字的模块访问这些数据。
在TCP套接字通信协议处理的切换中,从1601和1602之一向套接字切换处理模块1603提供切换通知。通知的详细内容包括TCP套接字号、发送缓冲器1604和接收缓冲器1605的存储地址,以及TCB 1606的存储地址。套接字切换处理模块1603将该信息传送给作为切换目的地的处理模块。
此外,1607是接收包缓冲器,由1601处理的包被传输到1607中,而1608是接收包缓冲器,由1602处理的包被传输到1608中。1607设置在网络通信单元102内的本地RAM 106中,而1608设置在应用系统单元103内的RAM 114中。如前所述,响应于已接收的包搜索TCP套接字表;从而获知TCP包的TCP套接字号和由哪个TCP协议处理模块处理TCP包。然后,包数据被传送到已接收包缓冲器1607和已接收包缓冲器1608之一。
然后,在TCP套接字切换处理中,套接字切换处理模块1603还在TCP套接字表的TCP套接字项中重写由哪个处理模块执行处理的信息。
到目前为止,已经关于使用TCP通信的应用通信中的TCP协议处理和TCP套接字层处理,说明了根据TCP连接状态的变化在网络通信单元102和应用系统单元103之间的切换处理单元。
为了提高应用通信的速度,可以在TCP通信中当前已建立连接的状态(ESTABLISHED)下高速执行通信处理。因此,有可能通过在网络通信单元102内部执行这个阶段的TCP协议处理来提高应用通信的速度。同时,可以卸载对应用系统单元的CPU112的TCP通信处理负荷。
注意,本发明的实施例可通过比如计算机执行程序的方式来实现。此外,本发明的实施例还可通过用于将程序提供给计算机的装置来实现,这种装置比如是诸如已经记录了程序的CD-ROM之类的计算机可读记录介质或者诸如传输程序的因特网之类的传输介质。此外,本发明的实施例可以以上述程序来实现。上述程序、记录介质、传输介质和程序产品都包括在本发明的范围之内。
尽管参考示例性的实施例对本发明进行了描述,但是应当理解,本发明不限于公开的示例性实施例。所附权利要求的范围符合最宽的解释,以便覆盖所有这些修改及等同结构和等同功能。
Claims (12)
1.一种通信设备,其执行利用TCP/IP协议的应用通信,所述通信设备包括网络通信单元和应用系统单元,
其中,所述应用系统单元利用由所述网络通信单元执行的第一TCP/IP协议处理和由所述应用系统单元执行的第二TCP/IP协议处理之一来执行应用通信,以及
所述网络通信单元基于应用通信的通信状况将用于处理应用通信的处理切换为所述第一TCP/IP协议处理和所述第二TCP/IP协议处理之一。
2.根据权利要求1所述的通信设备,其特征在于,
所述应用系统单元执行多个使用TCP/IP协议的应用通信例程;
所述应用系统单元使用由所述网络通信单元执行的所述第一TCP/IP协议处理和由所述应用系统单元执行的所述第二TCP/IP协议处理之一执行每个应用通信例程;以及
所述网络通信单元基于每个应用通信例程的通信状况将用于处理每个应用通信例程的处理切换为所述第一TCP/IP协议处理和所述第二TCP/IP协议处理之一。
3.根据权利要求1所述的通信设备,其特征在于,
所述第一TCP/IP协议处理是如下处理:由包含在所述网络通信单元中的硬件电路所执行的处理或由包含在所述网络通信单元中的处理器所执行的软件处理与由硬件电路所执行的计算处理组合。
4.根据权利要求1所述的通信设备,其特征在于,
所述第二TCP/IP协议处理是由所述应用系统单元内的处理器执行的软件处理。
5.根据权利要求1所述的通信设备,其特征在于,
所述第一TCP/IP协议处理和所述第二TCP/IP协议处理共享TCP发送/接收缓冲器。
6.根据权利要求1所述的通信设备,其特征在于,
所述第一TCP/IP协议处理和所述第二TCP/IP协议处理共享TCP控制信息。
7.根据权利要求1所述的通信设备,其特征在于,
在特定应用通信的情况下,优先由所述第一TCP/IP协议处理执行应用通信。
8.一种通信设备的通信控制方法,所述通信设备执行利用TCP/IP协议的应用通信,所述通信设备包括网络通信单元和应用系统单元,所述方法包括以下步骤:
利用由所述网络通信单元执行的第一TCP/IP协议处理和由所述应用系统单元执行的第二TCP/IP协议处理之一来执行应用通信,以及
基于所述应用通信的通信状况将用于处理应用通信的处理切换为所述第一TCP/IP协议处理和所述第二TCP/IP协议处理之
9.根据权利要求8所述的通信设备的通信控制方法,其特征在于,
执行多个使用TCP/IP协议的应用通信例程;
使用由所述网络通信单元执行的所述第一TCP/IP协议处理和由所述应用系统单元执行的所述第二TCP/IP协议处理之一执行每个应用通信例程;以及
基于每个应用通信例程的通信状况,将用于处理每个应用通信例程的处理切换为所述第一TCP/IP协议处理和所述第二TCP/IP协议处理之一。
10.根据权利要求8所述的通信设备的通信控制方法,其特征在于,还包括如下步骤:在所述第一TCP/IP协议处理和所述第二TCP/IP协议处理之间共享TCP发送/接收缓冲器。
11.根据权利要求8所述的通信设备的通信控制方法,其特征在于,还包括如下步骤:在所述第一TCP/IP协议处理和所述第二TCP/IP协议处理之间共享TCP控制信息。
12.根据权利要求8所述的通信设备的通信控制方法,其特征在于,还包括如下步骤:在特定应用通信的情况下,优先由所述第一TCP/IP协议处理执行应用通信。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006213425 | 2006-08-04 | ||
JP2006213425 | 2006-08-04 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101119388A true CN101119388A (zh) | 2008-02-06 |
Family
ID=38566291
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2007101431739A Pending CN101119388A (zh) | 2006-08-04 | 2007-08-03 | 通信设备和通信控制方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7724771B2 (zh) |
EP (1) | EP1885098B1 (zh) |
CN (1) | CN101119388A (zh) |
DE (1) | DE602007013652D1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101635631B (zh) * | 2008-01-18 | 2012-01-04 | 瑞昱半导体股份有限公司 | 节能网络装置及其相关方法 |
CN101572709B (zh) * | 2009-06-01 | 2012-07-04 | 杭州华三通信技术有限公司 | 套接字连接的切换方法、系统、服务器和客户端设备 |
CN103379316A (zh) * | 2012-04-24 | 2013-10-30 | 株式会社日立制作所 | 照相机系统、监视照相机控制终端、协议变更方法 |
CN103442452A (zh) * | 2013-08-30 | 2013-12-11 | 东莞宇龙通信科技有限公司 | 终端、服务器和连接管理方法 |
US9042244B2 (en) | 2008-12-25 | 2015-05-26 | Panasonic Intellectual Property Corporation Of America | TCP transmission control device and method of control of TCP transmission |
CN105991348A (zh) * | 2015-05-20 | 2016-10-05 | 杭州迪普科技有限公司 | Tcp连接关闭方法及装置 |
CN106385409A (zh) * | 2016-09-08 | 2017-02-08 | 杭州迪普科技有限公司 | 一种tcp报文的处理方法及装置 |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2863127A1 (fr) * | 2003-12-02 | 2005-06-03 | Canon Kk | Procedes et dispositifs pour la delivrance asynchrone de donnees numeriques |
US20100287623A1 (en) * | 2005-11-23 | 2010-11-11 | Thomas Banik | Method for distributing a computer data structure to nodes of a network |
JP5049763B2 (ja) * | 2007-12-19 | 2012-10-17 | キヤノン株式会社 | ネットワークタイマ管理方法及び装置 |
WO2009096868A1 (en) * | 2008-01-29 | 2009-08-06 | Milux Holding Sa | Apparatus for treating obesity and reflux disease |
UA111622C2 (uk) | 2011-09-06 | 2016-05-25 | Брітіш Амерікан Тобакко (Інвестментс) Лімітед | Пристрій для нагрівання та спосіб нагрівання курильного матеріалу |
GB201217067D0 (en) | 2012-09-25 | 2012-11-07 | British American Tobacco Co | Heating smokable material |
WO2014130709A1 (en) * | 2013-02-21 | 2014-08-28 | Altiostar Networks, Inc. | Systems and methods for determining idle state transition time based on application detection in a base station |
US20150127850A1 (en) * | 2013-11-06 | 2015-05-07 | Aselsan Elektronik Sanayi Ve Ticaret Anonim Sirketi | Communication layer structure for computing device communication |
CN104811432A (zh) * | 2014-01-29 | 2015-07-29 | 华为技术有限公司 | 基于并行协议栈实例的数据包处理方法和装置 |
CN104811431B (zh) * | 2014-01-29 | 2018-01-16 | 华为技术有限公司 | 基于并行协议栈实例的数据包处理方法和装置 |
JP6463898B2 (ja) | 2014-03-13 | 2019-02-06 | 株式会社東芝 | 通信装置、情報処理装置、通信方法及び通信プログラム |
JP6175389B2 (ja) | 2014-03-13 | 2017-08-02 | 株式会社東芝 | 通信装置、情報処理装置、通信方法および通信プログラム |
US9525713B1 (en) * | 2015-07-08 | 2016-12-20 | Introspec Ltd. | Measuring server availability and managing traffic in adaptive bitrate media delivery |
US9774512B1 (en) | 2015-07-08 | 2017-09-26 | Introspec Ltd | Measuring server availability and managing traffic in adaptive bitrate media delivery |
US20170055584A1 (en) | 2015-08-31 | 2017-03-02 | British American Tobacco (Investments) Limited | Article for use with apparatus for heating smokable material |
US11924930B2 (en) * | 2015-08-31 | 2024-03-05 | Nicoventures Trading Limited | Article for use with apparatus for heating smokable material |
US20170055575A1 (en) | 2015-08-31 | 2017-03-02 | British American Tobacco (Investments) Limited | Material for use with apparatus for heating smokable material |
JP2017069777A (ja) * | 2015-09-30 | 2017-04-06 | 株式会社日立製作所 | 通信処理装置、通信方法および通信システム |
US20170119047A1 (en) | 2015-10-30 | 2017-05-04 | British American Tobacco (Investments) Limited | Article for Use with Apparatus for Heating Smokable Material |
US20170119046A1 (en) | 2015-10-30 | 2017-05-04 | British American Tobacco (Investments) Limited | Apparatus for Heating Smokable Material |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6697868B2 (en) * | 2000-02-28 | 2004-02-24 | Alacritech, Inc. | Protocol processing stack for use with intelligent network interface device |
AU3728499A (en) * | 1998-04-27 | 1999-11-16 | Digital Electronics Corporation | Control system, display, host computer for control, and data transmitting method |
US7274706B1 (en) * | 2001-04-24 | 2007-09-25 | Syrus Ziai | Methods and systems for processing network data |
JP3491626B2 (ja) * | 2001-05-29 | 2004-01-26 | ソニー株式会社 | 送信装置、受信装置、及び送受信装置 |
US7165112B2 (en) * | 2001-06-22 | 2007-01-16 | Motorola, Inc. | Method and apparatus for transmitting data in a communication system |
US6625169B1 (en) * | 2002-06-14 | 2003-09-23 | Telesys Technologies, Inc. | Integrated communication systems for exchanging data and information between networks |
US7089282B2 (en) * | 2002-07-31 | 2006-08-08 | International Business Machines Corporation | Distributed protocol processing in a data processing system |
US7346701B2 (en) | 2002-08-30 | 2008-03-18 | Broadcom Corporation | System and method for TCP offload |
CN100363922C (zh) * | 2002-08-30 | 2008-01-23 | 美国博通公司 | 用于独立于带宽延迟产品的tcp/ip卸载的系统和方法 |
US7231452B2 (en) * | 2002-11-29 | 2007-06-12 | National University Of Singapore | Method and apparatus for communicating on a communication network |
CN100574259C (zh) * | 2003-05-08 | 2009-12-23 | 日本电信电话株式会社 | 通信控制方法和通信控制设备 |
US7991918B2 (en) | 2003-06-05 | 2011-08-02 | Nvidia Corporation | Transmitting commands and information between a TCP/IP stack and an offload unit |
JP4287448B2 (ja) * | 2006-06-16 | 2009-07-01 | 株式会社東芝 | 通信装置、通信端末装置、通信システム、方法およびプログラム |
-
2007
- 2007-07-12 DE DE602007013652T patent/DE602007013652D1/de active Active
- 2007-07-12 EP EP07013729A patent/EP1885098B1/en not_active Ceased
- 2007-07-18 US US11/779,733 patent/US7724771B2/en not_active Expired - Fee Related
- 2007-08-03 CN CNA2007101431739A patent/CN101119388A/zh active Pending
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101635631B (zh) * | 2008-01-18 | 2012-01-04 | 瑞昱半导体股份有限公司 | 节能网络装置及其相关方法 |
US9042244B2 (en) | 2008-12-25 | 2015-05-26 | Panasonic Intellectual Property Corporation Of America | TCP transmission control device and method of control of TCP transmission |
CN101572709B (zh) * | 2009-06-01 | 2012-07-04 | 杭州华三通信技术有限公司 | 套接字连接的切换方法、系统、服务器和客户端设备 |
CN103379316A (zh) * | 2012-04-24 | 2013-10-30 | 株式会社日立制作所 | 照相机系统、监视照相机控制终端、协议变更方法 |
US9270951B2 (en) | 2012-04-24 | 2016-02-23 | Hitachi Industry & Control Solutions, Ltd. | Camera system, monitoring camera control terminal, and protocol changing method |
CN103379316B (zh) * | 2012-04-24 | 2016-06-29 | 日立产业控制解决方案有限公司 | 照相机系统、监视照相机控制终端、协议变更方法 |
CN103442452A (zh) * | 2013-08-30 | 2013-12-11 | 东莞宇龙通信科技有限公司 | 终端、服务器和连接管理方法 |
CN105991348A (zh) * | 2015-05-20 | 2016-10-05 | 杭州迪普科技有限公司 | Tcp连接关闭方法及装置 |
CN105991348B (zh) * | 2015-05-20 | 2019-03-15 | 杭州迪普科技股份有限公司 | Tcp连接关闭方法及装置 |
CN106385409A (zh) * | 2016-09-08 | 2017-02-08 | 杭州迪普科技有限公司 | 一种tcp报文的处理方法及装置 |
CN106385409B (zh) * | 2016-09-08 | 2019-07-09 | 杭州迪普科技股份有限公司 | 一种tcp报文的处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
EP1885098A1 (en) | 2008-02-06 |
DE602007013652D1 (de) | 2011-05-19 |
US7724771B2 (en) | 2010-05-25 |
US20080031267A1 (en) | 2008-02-07 |
EP1885098B1 (en) | 2011-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101119388A (zh) | 通信设备和通信控制方法 | |
US9148493B2 (en) | Apparatus, method and computer program product for efficiently pooling connections between clients and servers | |
AU2011338481B2 (en) | Multichannel connections in file system sessions | |
CN106411767B (zh) | 通过远程直接存储器访问的传输操作的方法、系统和介质 | |
US8917594B2 (en) | Link layer reservation of switch queue capacity | |
EP3269110B1 (en) | Method of communicating data packets within data communication systems | |
US6895008B2 (en) | Label switching router | |
CN110493329A (zh) | 一种基于用户态协议栈的并发推送服务方法和系统 | |
CN109787981A (zh) | 协议转换系统、方法、装置、设备和存储介质 | |
EP1193905A2 (en) | Communication system and method for determining user fee on the basis of quality of service | |
EP1673910B1 (en) | In-band negotiation in single transcompression scenarios related applications | |
CN104243412A (zh) | 网络数据处理终端及在其中处理网络数据的方法 | |
CN102480463A (zh) | 网络交互方法及系统 | |
Al-Madani et al. | Performance enhancement of limited-bandwidth industrial control systems | |
CN108900644A (zh) | 一种基于物计算的协作物联网系统 | |
CN106331568B (zh) | 一种即时通讯方法、系统及移动终端 | |
CN115942433B (zh) | 基于5g网络云服务的加速方法和设备 | |
Sepere et al. | Video transmission on industrial processes over MAP networks using MMS | |
CN118540392A (zh) | 一种数据传输方法及相关装置 | |
CN117221417A (zh) | 一种tcp/ip协议卸载引擎装置 | |
CN118524046A (zh) | 工业异构网络边缘网关路径切换方法、装置及存储介质 | |
Nasri | A Real Time Network Communication Interface: Implementation and Performance Evaluation | |
JP2001345861A (ja) | ネットワーク中継装置 | |
JP2001069504A (ja) | データ変換方法および装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20080206 |