CN104683647B - 进行通信速度改变处理的通信装置及通信控制方法 - Google Patents
进行通信速度改变处理的通信装置及通信控制方法 Download PDFInfo
- Publication number
- CN104683647B CN104683647B CN201410707787.5A CN201410707787A CN104683647B CN 104683647 B CN104683647 B CN 104683647B CN 201410707787 A CN201410707787 A CN 201410707787A CN 104683647 B CN104683647 B CN 104683647B
- Authority
- CN
- China
- Prior art keywords
- size
- memory cell
- data
- external device
- free space
- 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.)
- Expired - Fee Related
Links
- 238000004891 communication Methods 0.000 title claims abstract description 72
- 238000000034 method Methods 0.000 title claims abstract description 21
- 238000003860 storage Methods 0.000 claims abstract description 32
- 230000005540 biological transmission Effects 0.000 claims abstract description 30
- 230000008569 process Effects 0.000 claims description 5
- 241001269238 Data Species 0.000 claims 1
- 230000008034 disappearance Effects 0.000 abstract description 14
- 230000003247 decreasing effect Effects 0.000 abstract description 3
- 238000007639 printing Methods 0.000 description 61
- 230000006870 function Effects 0.000 description 10
- 230000008859 change Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 101000741965 Homo sapiens Inactive tyrosine-protein kinase PRAG1 Proteins 0.000 description 4
- 102100038659 Inactive tyrosine-protein kinase PRAG1 Human genes 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000012790 confirmation Methods 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 230000003252 repetitive effect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 108010022579 ATP dependent 26S protease Proteins 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000003306 harvesting Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/121—Facilitating exception or error detection and recovery, e.g. fault, media or consumables depleted
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1218—Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources
- G06F3/122—Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources with regard to computing resources, e.g. memory, CPU
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1229—Printer resources management or printer maintenance, e.g. device status, power levels
- G06F3/1234—Errors handling and recovery, e.g. reprinting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1236—Connection management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1278—Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
- G06F3/1285—Remote printer device, e.g. being remote from client or server
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
- G06K15/02—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
- G06K15/02—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
- G06K15/18—Conditioning data for presenting it to the physical printing elements
- G06K15/1801—Input data handling means
- G06K15/1817—Buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
- G06K15/02—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
- G06K15/18—Conditioning data for presenting it to the physical printing elements
- G06K15/1801—Input data handling means
- G06K15/1821—Sending feedback on the reception process to the data source, e.g. indication of full buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/1607—Details of the supervisory signal
- H04L1/1685—Details of the supervisory signal the supervisory signal being transmitted in response to a specific request, e.g. to a polling signal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/00127—Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Mathematical Physics (AREA)
- Accessory Devices And Overall Control Thereof (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
- Facsimiles In General (AREA)
Abstract
本发明提供一种进行通信速度改变处理的通信装置及通信控制方法。所述通信装置实现能够防止接收性能的降低而不会导致通信数据的消失的通信流控制。第一存储单元存储从外部装置发送的数据。第二存储单元存储从所述第一存储单元传送的数据。确定单元在执行与所述外部装置的通信的情况下,基于所述第一存储单元的空闲空间的大小以及所述第二存储单元的空闲空间的大小,来确定要向所述外部装置通知的、作为所述通信装置能够接收的数据的大小的通知大小。通知单元将由所述确定单元确定的所述通知大小通知给所述外部装置。
Description
技术领域
本发明涉及一种通信装置、通信控制方法以及存储介质,尤其涉及一种控制用于改变通信速度的处理的方法。
背景技术
已知有一种利用窗口大小来进行通信流控制的通信方法(例如,参见日本特开第2004-064665号公报(未审查))。在该通信方法中,由于发送侧(例如,主计算机(客户端计算机))能够发送与由接收侧(例如,打印装置)示出的窗口大小相对应的数据,而不需要来自接收侧的确认包,因此,能够抑制所需的确认的次数。因此,能够通过增加窗口大小来提高通信效率。
然而,例如,在一些使用TCP(传输控制协议)的连接型通信方法中,当与接收侧的连接被建立时,发送侧紧接在该建立之后开始打印数据的发送,并且一旦打印数据的发送结束,处理即正常结束。在这种情况下,如果接收侧处于不能够接收打印数据的状态,则在接收侧,接收的打印数据被丢弃。结果,虽然发送打印数据的处理成功,但是因为未从接收侧排出打印有打印数据的片材,所以对于用户而言好像打印数据消失了。
作为示例,图6A示出了在可能发生打印数据的消失的情况下的通信流的示例。在此,假设作为接收侧的打印装置的窗口大小是8千字节(Kbyte),并且作为发送侧的主计算机向打印装置发送大小为5千字节的打印数据。当如上所述窗口大小大于打印数据大小时,主计算机将整个打印数据发送到打印装置,而不等待来自打印装置的确认。因此,当打印装置处于打印禁用状态时,发生打印数据的消失。应当指出,在图6A中,“SYN”、“ACK”及“FIN”分别表示同步(连接请求)、接收确认和发送结束。
为了应对这一问题,提出了如下的数据消失防止功能,即,通过均一地减小接收侧应答的初始窗口大小,使得发送侧不能一次发送全部打印数据,从而防止打印数据的消失的发生(例如,参见日本特许第4324048号公报)。图6B示出了在接收侧的初始窗口大小被设置得小的情况下的通信流的示例。在此,假设当作为接收侧的打印装置的初始窗口大小被设置为1千字节时,发送侧的主计算机向打印装置发送总大小为5千字节的打印数据。
在这种情况下,当打印装置处于打印禁用状态时,主计算机不能向打印装置发送最初的1千字节之后的后续打印数据,因而进入等待来自打印装置的应答的状态。当主计算机从打印装置接收到否定确认(negative acknowledgement)时,发生打印数据发送错误,并且用户能够确认发生了发送错误。应当指出,在图6B中,“SYN”及“ACK”表示与图6A中相同的含义,并且“RST”表示重置,但在此处具有与“否定确认”相同的含义。
另外,提出了如下的协议栈,其配备有自动接收窗口调整功能,以便提高通信性能(例如,参见日本特开平第5-232058号公报(未审查))。图7A示出了进行接收窗口的自动调整的通信流的示例。自动接收窗口调整功能是如下的功能,即,接收侧的打印装置根据发送侧的打印装置的数据发送速度,来动态地改变窗口大小。因此,在主计算机无延迟地发送数据时,接收侧逐渐增加窗口大小,由此,能够实现高速通信。
然而,当在采用自动接收窗口调整功能的打印装置中、实现前述的数据消失防止功能时,可能存在打印装置中的打印数据接收性能降低的情况。图7B示出了在接收性能降低的情况下的通信流的示例。
例如,在网络通信量很大的环境中、或者在发送侧和接收侧在物理上彼此远离的网络环境中,当从接收侧观察时,发送侧的数据发送速度看起来是慢的。因此,接收侧判定没有必要进一步增加窗口大小,并且继续数据接收,而不从初始窗口大小起增加大小。也即,因为初始窗口大小是1千字节,并且不改变窗口大小,所以当发送侧希望发送总共100千字节的打印数据时,有必要进行总共100次的发送/接收,并且打印数据的发送/接收需要大量的时间。作为比较,例如,如果自动接收窗口调整功能工作,并且第二次和第三次的窗口大小分别被改变为50千字节及500千字节,则通过总共3次发送/接收而完成打印数据的发送。
如上所述,传统通信流具有如下的问题,即,当试图解决数据消失问题时,接收性能的降低可能变得显著,而另一方面,当增加初始窗口大小以提高接收性能时,数据消失问题变得显著。
发明内容
本发明提供一种实现能够防止接收性能的降低而不会导致通信数据的消失的通信流控制的通信装置、通信控制方法以及存储介质。
相应地,本发明的第一方面提供一种能够与外部装置通信的通信装置,该通信装置包括:第一存储单元,其被构造为存储从所述外部装置发送的数据;第二存储单元,其被构造为存储从所述第一存储单元传送的数据;确定单元,其被构造为在执行与所述外部装置的通信的情况下,基于所述第一存储单元的空闲空间的大小以及所述第二存储单元的空闲空间的大小,来确定要向所述外部装置通知的、作为所述通信装置能够接收的数据的大小的通知大小;以及通知单元,其被构造为将由所述确定单元确定的所述通知大小通知给所述外部装置。
相应地,本发明的第二方面提供一种能够与外部装置通信的通信装置的通信控制方法,该通信装置包括被构造为存储从所述外部装置发送的数据的第一存储单元,以及被构造为存储从所述第一存储单元传送的数据的第二存储单元,该通信控制方法包括:确定步骤,在执行与所述外部装置的通信的情况下,基于所述第一存储单元的空闲空间的大小以及所述第二存储单元的空闲空间的大小,来确定要向所述外部装置通知的、作为所述通信装置能够接收的数据的大小的通知大小;以及通知步骤,将所述确定步骤中确定的所述通知大小通知给所述外部装置。
相应地,本发明的第三方面提供一种计算机可读非临时性存储介质,其存储有用于使计算机实施能够与外部装置通信的通信装置的通信控制方法的程序,该通信装置包括被构造为存储从所述外部装置发送的数据的第一存储单元,以及被构造为存储从所述第一存储单元传送的数据的第二存储单元,该通信控制方法包括:确定步骤,在执行与所述外部装置的通信的情况下,基于所述第一存储单元的空闲空间的大小以及所述第二存储单元的空闲空间的大小,来确定要向所述外部装置通知的、作为所述通信装置能够接收的数据的大小的通知大小;以及通知步骤,将所述确定步骤中确定的所述通知大小通知给所述外部装置。
在本发明中,接收数据的通信装置包括第一存储单元及第二存储单元,所述第一存储单元被构造为存储从外部装置发送的数据,并且所述第二存储单元被构造为存储从所述第一存储单元传送的数据。基于第一存储单元及第二存储单元的空闲空间的大小,来确定通信装置能够接收的数据大小,并且将该可接收数据大小通知给外部装置。由此,能够实现防止接收性能的降低而不会导致数据的消失的通信流控制。
通过以下参照附图对示例性实施例的描述,本发明的其他特征将变得清楚。
附图说明
图1是示出根据本发明的实施例的打印装置的硬件配置的概要的框图。
图2是示出图1中的打印装置的软件配置的概要的图。
图3是在图1中的打印装置中接收数据时的窗口大小控制处理的流程图。
图4是在图3中的步骤S306中执行的打印数据接收处理的流程图。
图5是在图1中的打印装置中发生了打印禁用错误的情况下的打印数据接收处理的流程图。
图6A是示出在传统技术中可能发生打印数据的消失的情况下的通信流的示例的图,并且图6B是示出在传统技术中将接收侧的初始窗口大小设置得小的情况下的通信流的示例的图。
图7A是示出在传统技术中进行自动接收窗口调整的通信流的示例的图,并且图7B是示出在传统技术中进行自动接收窗口调整的通信流中接收性能降低的通信流的示例的图。
具体实施方式
下面,将参照附图来详细描述本发明的实施例。在此,接收打印数据并在片材上进行打印的打印装置(打印机)作为根据本发明的通信装置。然而,根据本发明的通信装置并不限于打印装置,并且通信数据并不限于打印数据。本发明可适用于经由网络或电话线路来接收各种数据的通信装置。
图1是示出根据本发明的实施例的打印装置100的硬件配置的概要的框图。打印装置100配设有控制部101、打印机部107、扫描器部109及操作屏部111。控制部101配设有连接到系统总线114的CPU 102、RAM103、ROM 104、HDD 105、打印机I/F 106、扫描器I/F 108、操作屏I/F 110、无线LAN_I/F 112及有线LAN_I/F 113。
控制部101控制打印装置100的总体操作。CPU 102读出存储在ROM104中的控制程序以及存储在HDD 105中的各种程序等,并且进行诸如通信控制等的各种控制。RAM 103用作诸如CPU 102的主存储器及工作区等的临时区域。HDD 105存储数据、各种程序和各种信息表等。
打印机I/F 106连接打印机部(打印机引擎)107和控制部101。打印机部107基于经由打印机I/F 106输入的打印数据,对从未示出的纸盒给送的诸如纸张(片材)等的介质执行打印处理。扫描器I/F 108连接扫描器部109和控制部101。扫描器部109从放置在其上的原稿进行读取,并且生成图像数据。由扫描器部109生成的图像数据被打印机部107打印,并且被存储在HDD 105中,或者经由无线LAN_I/F 112或有线LAN_I/F 113被发送到外部装置。操作屏I/F 110连接操作屏部111和控制部101,并且向控制部101,发送来自操作屏部111配设的各种按钮(键)或者触摸屏(未示出)的输入指令。
无线LAN_I/F 112是使得能够执行与经由无线LAN连接的外部装置的无线通信的接口。LAN线缆(Ethernet(R)(以太网)线缆)连接到有线LAN_I/F 113。有线LAN_I/F 113是使得能够经由LAN线缆与外部装置通信的接口。打印装置100通过经由无线LAN_I/F 112的无线通信和/或经由有线LAN_I/F 113的有线通信,来从外部装置接收打印数据,并且基于接收到的打印数据,通过打印机部107执行打印处理。打印装置100还能够把由扫描器部109生成的图像数据,经由无线LAN_I/F 112和/或有线LAN_I/F 113发送到外部装置。
应当指出,在本实施例中,打印装置100被假设为通过由一个CPU102使用一个存储器(RAM 103),来依照后述的流程图执行各处理。然而,打印装置100并不限于这样的配置。例如,如下的配置也是可能的,即,多个CPU及存储器彼此协同,以依照后述的流程图执行各处理。
图2是示出打印装置100的软件配置的概要的图。通过由打印装置100的CPU 102执行预定的控制程序,来实现图2中所示的各功能部。打印装置100配设有作为软件的网络通信驱动器部201、网络协议栈部202及网络应用部206。
网络通信驱动器部201控制无线LAN_I/F 112及有线LAN_I/F 113,以控制与连接到网络的外部装置之间的信号的传送。
网络协议栈部202包括数据发送/接收控制部203、数据接收存储器204及窗口大小控制部205。数据发送/接收控制部203控制经由网络通信驱动器部201接收的数据向网络应用部206的传送,以及来自网络应用部206的发送数据向网络通信驱动器部201的传送。数据接收存储器204是缓冲存储器,其临时存储由网络协议栈部202接收的全部数据(第一存储单元)。数据接收存储器204存储接收数据,直至从网络应用部206接收到读取请求为止。数据接收存储器204依照从网络应用部206接收到的读取请求,将存储的接收数据传送到网络应用部206,并且在向网络应用部206的数据传送完成时,删除存储的接收数据。窗口大小控制部205判断数据接收存储器204的可用性,以及从外部装置的数据发送速度,以确定网络协议栈部202要应答的窗口大小。窗口大小控制部205在数据接收存储器204的空间减少时,减小窗口大小,而在存储器的空间大、并且从外部装置的数据发送速度高时,增加窗口大小。
网络应用部206配置有利用网络通信的各种应用,并且包括打印应用部207及邮件应用部208。打印应用部207还包括打印数据发送/接收控制部209、打印数据可接收性判断部210及打印数据接收存储器211。
打印数据发送/接收控制部209从网络协议栈部202接收打印数据,并且将该打印数据作为图像数据传送到打印机部107。打印数据接收存储器211是缓冲存储器,其临时存储接收的打印数据(第二存储单元)。当向打印机部107的图像数据的传送结束时,打印数据被从打印数据接收存储器211中删除。打印数据可接收性判断部210判断打印数据接收存储器211的存储器的可用性,以及打印机部107中的错误发生状态,并且判断打印是否可能。
图3是在打印装置100中接收数据时的窗口大小控制处理的流程图。通过由CPU102将存储在ROM 104或HDD 105中的预定程序在RAM103的工作区上展开,并执行该程序,来实现图3中所示的各处理。
在步骤S301中,CPU 102判断是否由网络通信驱动器部201从外部装置接收到连接建立请求数据,并且进行等待,直至接收到连接建立请求数据为止(S301:否)。当接收到连接建立请求数据时(S301:是),CPU 102通过网络通信驱动器部201,将接收数据传送到数据发送/接收控制部203。然后,在步骤S302中,CPU 102通过窗口大小控制部205,来判断此时在数据接收存储器204中是否存在自由缓冲存储空间。
如果在数据接收存储器204中不存在自由缓冲存储空间(S302:否),则CPU 102使处理前进到步骤S308。在步骤S308中,CPU 102通过窗口大小控制部205,对应答数据的窗口大小设置“0”。之后,在步骤S309中,CPU 102通过数据发送/接收控制部203,将应答数据经由网络通信驱动器部201发送到外部装置。之后,CPU 102使处理返回到步骤S302,以通过窗口大小控制部205进行监视,直到在数据接收存储器204中出现自由缓冲存储空间为止。
如果在数据接收存储器204中存在自由缓冲存储空间(S302:是),则CPU 102使处理前进到步骤S303。在步骤S303中,CPU 102通过窗口大小控制部205,来判断在打印数据接收存储器211中是否存在自由缓冲存储空间。应当指出,对于步骤S303中的判断使用如下的方法,即,窗口大小控制部205直接参照打印数据接收存储器211,来确认可用性。作为另一选择,对于步骤S303中的判断可以使用如下的方法,即,窗口大小控制部205询问打印数据可接收性判断部210,并且打印数据可接收性判断部210参照打印数据接收存储器211来确认可用性。
如果在打印数据接收存储器211中不存在自由缓冲存储空间(S303:否),则CPU102使处理前进到步骤S307。在步骤S307中,CPU 102通过窗口大小控制部205,对应答数据的初始窗口大小设置小值(以下称为“第一数据大小”),例如1千字节。该第一数据大小需要是小于由外部装置发送到打印装置100的打印数据的大小的值。第一数据大小可以是能够通过操作操作屏部111来改变的,以便用户能够将设置改变为任意的值。设置的初始窗口大小被存储在HDD 105或RAM 103中。
如果在打印数据接收存储器211中存在自由缓冲存储空间(S303:是),则CPU 102使处理前进到步骤S304。在步骤S304中,CPU 102通过窗口大小控制部205,对应答数据的初始窗口大小设置与第一数据大小相比足够大的值(以下称为“第二数据大小”),例如10千字节。该第二数据大小可以是打印装置100的网络协议栈部202的初始设置值,或者可以是能够通过用户对操作屏部111的操作而被改变为任意的设置。设置的初始窗口大小被存储在HDD 105或RAM 103中。
在步骤S304或S307之后,CPU 102使处理前进到步骤S305。在步骤S305中,CPU 102通过数据发送/接收控制部203,把包括在步骤S304或S307中设置的初始窗口大小的应答数据,经由网络通信驱动器部201发送到外部装置。在接下来的步骤S306中,CPU 102经由网络通信驱动器部201进行打印数据接收处理。在步骤S306结束之后,CPU 102使处理返回到步骤S301。
应当指出,在上述的步骤S303中,通过接收的打印数据的作业数或总大小,来判断在打印数据接收存储器211中是否存在自由缓冲存储空间。例如,在打印装置100能够进行最多100个作业的打印处理的情况下,当接收到第101个作业时,打印装置100判断在打印数据接收存储器211中不存在自由缓冲存储空间。此外,在打印数据接收存储器211被确保为用于大小最多为1千兆字节(Gbyte)的接收打印数据的缓冲存储器的情况下,当接收到大小超过1千兆字节的打印数据时,打印装置100判定在打印数据接收存储器211中不存在自由缓冲存储空间。
图4是在步骤S306中执行的打印数据接收处理的流程图。当打印装置100的CPU102经由网络通信驱动器部201、向外部装置通知初始窗口大小时,从接收到该通知的外部装置,仅发送与通知的初始窗口大小相对应的打印数据(以下称为“最初的打印数据”)。当结束最初的打印数据的发送时,外部装置停止发送,而不发送后续的打印数据。
在步骤S401中,CPU 102首先判断是否经由网络通信驱动器部201接收到最初的打印数据,并且进行等待,直至接收到最初的打印数据为止(S401:否)。应当指出,由网络通信驱动器部201接收到的最初的打印数据,被依次传送到数据发送/接收控制部203及打印数据发送/接收控制部209,并且,打印数据发送/接收控制部209是否接收到最初的打印数据是用于判断是否接收到最初的数据的准则。
当判定接收到最初的打印数据时(S401:是),CPU 102使处理前进到步骤S402。在步骤S402中,CPU 102通过打印数据可接收性判断部210,判断此时在打印数据接收存储器211中是否存在自由缓冲存储空间。如果判定在打印数据接收存储器211中不存在自由缓冲存储空间(S402:否),则CPU 102使处理前进到步骤S406。
在步骤S406中,由于不能够接收打印数据,因此,CPU 102通过打印数据发送/接收控制部209,把对打印请求的否定确认,经由网络通信驱动器部201发送到外部装置。例如,当初始窗口大小是1千字节时,外部装置仅在打印数据的大小大于1千字节时,才能够接收到该否定确认,因此不会出现作业消失问题。由此,外部装置能够判定打印数据的发送已在中途异常结束,并且如有必要可以将这一情况通知用户。应当指出,在对窗口大小设置小值的情况下的通信流,与作为传统技术描述的图6B类似。在执行步骤S406之后,本处理结束。
如果在步骤S402中,判定在打印数据接收存储器211中存在自由缓冲存储空间(S402:是),则CPU 102使处理前进到步骤S403。在步骤S403中,CPU 102通过打印数据发送/接收控制部209,来判断是否存在后续的打印数据。在此,基于数据发送/接收控制部203是否从外部装置接收到TCP FIN数据(FIN包),来判断是否存在后续的打印数据。如果判定不存在后续的数据(S403:否),则CPU 102通过打印数据发送/接收控制部209使打印数据接收处理结束,由此本处理结束。当判定存在后续的数据时(S403:是),CPU 102使处理前进到步骤S404。
在步骤S404中,CPU 102通过数据发送/接收控制部203,来确定在下一应答数据中要包括的窗口大小。例如,如果在数据接收存储器204中存在足够的自由缓冲存储空间,并且从外部装置的数据发送速度高,则数据发送/接收控制部203确定较大的窗口大小。通过依据情形将窗口大小设置为大,能够实现更高的通信速度。应当指出,在对窗口大小设置大值的情况下的通信流与图7A类似。
另一方面,可以想到在数据接收存储器204中没有足够的自由缓冲存储空间,并且数据发送/接收控制部203不能再接收打印数据。在这种情况下,在步骤S404中将窗口大小设置为“零(0)”,以使得外部装置不发送打印数据。如果从外部装置的数据发送速度低,则CPU 102通过数据发送/接收控制部203,判定没有必要增加窗口大小,并且确定与此时的窗口大小相同的值。
在接下来的步骤S405中,CPU 102通过数据发送/接收控制部203,把包括在步骤S404中确定的窗口大小的应答数据,经由网络通信驱动器部201发送到外部装置。之后,CPU102使处理返回到步骤S401,并且重复从步骤S401到S406的数据接收处理,直到结束。应当指出,在从步骤S405返回到步骤S401时在步骤S401中判定的“打印数据”是后续的数据。
根据上述实施例,打印装置100确认数据接收存储器204及打印数据接收存储器211的状态,以改变要应答的窗口大小。因此,既能够解决打印数据的消失的问题,又能够解决打印数据接收速度慢的问题,并且能够实现始终最佳并且高的通信速度。
在上述实施例中,CPU 102通过窗口大小控制部205,来参照数据接收存储器204及打印数据接收存储器211,并确定要应答的窗口大小,由此防止打印数据的消失。然而,依据打印装置100的配置,可能存在不能接收打印数据的其他情况。例如,作为因为除存储器不足以外的因素而不能接收打印数据的情况,给出了因为打印机部107的硬件的故障而发生了错误的情况,或者因为内部系统的失效而发生了某种错误的情况。
在这样的情况下,与上述实施例类似,同样有必要减小要应答的窗口大小的值,以防止打印数据的消失。将参照图5中的流程图,来描述用于应对这一问题的打印数据接收处理。图5是在打印装置100中发生了打印禁用错误的情况下的打印数据接收处理的流程图。通过由CPU 102将存储在ROM 104或HDD 105中的预定程序在RAM 103的工作区上展开,并执行该程序,来实现图5中所示的各处理。
由于步骤S501至S503、S509及S510中的处理分别与图3中的步骤S301至S303、S308及S309中的处理相同,所以在此将省略其重复的描述。如果在步骤S503中,判定在打印数据接收存储器211中不存在自由缓冲存储空间(S503:否),则CPU 102使处理前进到步骤S508。另一方面,如果判定在打印数据接收存储器211中存在自由缓冲存储空间(S503:是),则CPU102使处理前进到步骤S504。
在步骤S504中,CPU 102通过打印数据发送/接收控制部209,向打印数据可接收性判断部210询问是否能够接收打印数据。基于该询问的结果,CPU 102通过打印数据可接收性判断部210,来判断在打印装置100中是否发生了打印禁用错误。
如果发生了错误(S504:是),则打印数据可接收性判断部210向打印数据发送/接收控制部209,应答由于发生了打印禁用错误,所以打印数据的接收是不可能的。结果,CPU102使处理前进到步骤S508。另一方面,如果未发生错误(S504:否),则打印数据可接收性判断部210向打印数据发送/接收控制部209,应答由于未发生打印禁用错误,所以打印数据的接收是可能的。结果,CPU 102使处理前进到步骤S505。
由于步骤S508及步骤S505中的处理分别与图3中的步骤S307及S304相同,所以在此将省略其重复的描述。在步骤S505或S508之后,CPU 102使处理前进到步骤S506。由于步骤S506及S507中的处理分别与图3中的步骤S305及S306中的处理相同,所以在此将省略其重复的描述。
根据图5中的流程图的处理,打印装置100能够确认数据接收存储器204及打印数据接收存储器211的状态,以及打印装置100的打印启用/禁用状态,以改变要应答的窗口大小。因此,即使当打印装置100处于打印禁用状态时,也能够解决打印数据的消失的问题。
其他实施方式
本发明的实施例还可以通过如下的方法来实现,即,通过网络或者各种存储介质将执行上述实施例的功能的软件(程序)提供给系统或装置,该系统或装置的计算机或是中央处理单元(CPU)、微处理单元(MPU)读出并执行程序的方法。
虽然参照示例性实施例对本发明进行了描述,但是应当理解,本发明并不限于所公开的示例性实施例。所附权利要求的范围应当被赋予最宽的解释,以便涵盖所有这类变型以及等同的结构和功能。
本申请要求2013年11月29日提交的日本专利申请第2013-247633号的优先权,在此,通过引用将该申请的全部内容并入本申请。
Claims (4)
1.一种能够与外部装置通信的通信装置,该通信装置包括:
第一存储单元,其被构造为存储从所述外部装置发送的数据;
第二存储单元,其被构造为存储从所述第一存储单元传送的数据;
确定单元,其被构造为在执行与所述外部装置的通信的情况下,基于所述第一存储单元的空闲空间的大小以及所述第二存储单元的空闲空间的大小,来确定要向所述外部装置通知的、作为所述通信装置能够接收的数据的大小的通知大小;以及
通知单元,其被构造为将由所述确定单元确定的所述通知大小通知给所述外部装置,
其中,在所述第一存储单元中不存在空闲空间的情况下,所述确定单元确定所述通知大小为0;
在所述第一存储单元中存在空闲空间、而在所述第二存储单元中不存在空闲空间的情况下,所述确定单元确定所述通知大小为大于0的第一大小;并且
在所述第一存储单元和所述第二存储单元两者中均存在空闲空间的情况下,所述确定单元确定所述通知大小为大于所述第一大小的第二大小。
2.根据权利要求1所述的通信装置,其中,所述确定单元确定要通知给所述外部装置的初始窗口大小。
3.一种能够与外部装置通信的通信装置,该通信装置包括:
第一存储单元,其被构造为存储从所述外部装置发送的数据;
第二存储单元,其被构造为存储从所述第一存储单元传送的数据;
确定单元,其被构造为在执行与所述外部装置的通信的情况下,基于所述第一存储单元的空闲空间的大小以及所述第二存储单元的空闲空间的大小,来确定要向所述外部装置通知的、作为所述通信装置能够接收的数据的大小的通知大小;以及
通知单元,其被构造为将由所述确定单元确定的所述通知大小通知给所述外部装置,
其中,所述第二存储单元存储在所述第一存储单元中存储的数据当中的特定数据,
其中,所述特定数据是打印数据,并且所述通信装置还包括打印单元,该打印单元被构造为基于所述打印数据来执行打印处理,并且
其中,在所述第一存储单元中不存在空闲空间的情况下,所述确定单元确定所述通知大小为0;
在所述第一存储单元中存在空闲空间、而在所述第二存储单元中不存在空闲空间的情况下,或者在所述第一存储单元和所述第二存储单元两者中均存在空闲空间、并且在所述通信装置中发生了使得不能执行所述打印处理的错误的情况下,所述确定单元确定所述通知大小为大于0的第一大小;并且
在所述第一存储单元和所述第二存储单元两者中均存在空闲空间、并且在所述通信装置中未发生使得不能执行所述打印处理的错误的情况下,所述确定单元确定所述通知大小为大于所述第一大小的第二大小。
4.一种能够与外部装置通信的通信装置的通信控制方法,该通信装置包括被构造为存储从所述外部装置发送的数据的第一存储单元,以及被构造为存储从所述第一存储单元传送的数据的第二存储单元,该通信控制方法包括:
确定步骤,在执行与所述外部装置的通信的情况下,基于所述第一存储单元的空闲空间的大小以及所述第二存储单元的空闲空间的大小,来确定要向所述外部装置通知的、作为所述通信装置能够接收的数据的大小的通知大小;以及
通知步骤,将所述确定步骤中确定的所述通知大小通知给所述外部装置,
其中,在所述第一存储单元中不存在空闲空间的情况下,在所述确定步骤中确定所述通知大小为0;
在所述第一存储单元中存在空闲空间、而在所述第二存储单元中不存在空闲空间的情况下,在所述确定步骤中确定所述通知大小为大于0的第一大小;并且
在所述第一存储单元和所述第二存储单元两者中均存在空闲空间的情况下,在所述确定步骤中确定所述通知大小为大于所述第一大小的第二大小。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013247633A JP6289057B2 (ja) | 2013-11-29 | 2013-11-29 | 通信装置とその制御方法、印刷装置とその制御方法、及びプログラム |
JP2013-247633 | 2013-11-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104683647A CN104683647A (zh) | 2015-06-03 |
CN104683647B true CN104683647B (zh) | 2018-02-09 |
Family
ID=53265367
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410707787.5A Expired - Fee Related CN104683647B (zh) | 2013-11-29 | 2014-11-28 | 进行通信速度改变处理的通信装置及通信控制方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9239692B2 (zh) |
JP (1) | JP6289057B2 (zh) |
CN (1) | CN104683647B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6405957B2 (ja) | 2014-12-04 | 2018-10-17 | セイコーエプソン株式会社 | 印刷装置、印刷システム、及び、印刷装置の制御方法 |
JP6435821B2 (ja) * | 2014-12-04 | 2018-12-12 | セイコーエプソン株式会社 | 印刷装置、印刷システム、及び、印刷装置の制御方法 |
JP6758858B2 (ja) * | 2016-02-29 | 2020-09-23 | キヤノン株式会社 | 通信装置、通信方法及びプログラム |
CN113840272B (zh) * | 2021-10-12 | 2024-05-14 | 北京奕斯伟计算技术股份有限公司 | 数据传输方法、数据传输装置以及电子装置 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05232058A (ja) | 1992-02-20 | 1993-09-07 | Mazda Motor Corp | 排ガスセンサの選別方法 |
JP2000069091A (ja) * | 1998-08-24 | 2000-03-03 | Matsushita Electric Ind Co Ltd | バッファ管理方法、通信装置および記録媒体 |
US20030056146A1 (en) * | 2001-09-14 | 2003-03-20 | Freeman Tracy K. | Method for suggesting corrective action in response to resource constraint |
JP2004064665A (ja) | 2002-07-31 | 2004-02-26 | Canon Inc | データ転送装置及び送信装置及び受信装置及びそれらの制御方法 |
JP2005109765A (ja) * | 2003-09-30 | 2005-04-21 | Denon Ltd | データ受信装置 |
JP4324048B2 (ja) * | 2004-07-21 | 2009-09-02 | キヤノン株式会社 | データ処理装置、通信処理方法及びコンピュータプログラム |
CN100550906C (zh) * | 2005-11-24 | 2009-10-14 | 大唐移动通信设备有限公司 | 无线链路层的流量控制方法 |
JP2007259374A (ja) * | 2006-03-27 | 2007-10-04 | Matsushita Electric Ind Co Ltd | ネットワーク送受信装置 |
JP4995064B2 (ja) * | 2007-12-21 | 2012-08-08 | キヤノン株式会社 | 画像出力装置及び画像出力方法 |
JP5652134B2 (ja) * | 2010-11-02 | 2015-01-14 | ブラザー工業株式会社 | 印刷装置 |
JP2012242897A (ja) * | 2011-05-16 | 2012-12-10 | Canon Inc | ホストコンピュータ、印刷制御システム、印刷制御システムの制御方法、プログラム |
JP5824932B2 (ja) * | 2011-07-22 | 2015-12-02 | ブラザー工業株式会社 | 印刷装置 |
-
2013
- 2013-11-29 JP JP2013247633A patent/JP6289057B2/ja not_active Expired - Fee Related
-
2014
- 2014-11-25 US US14/552,760 patent/US9239692B2/en not_active Expired - Fee Related
- 2014-11-28 CN CN201410707787.5A patent/CN104683647B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2015106796A (ja) | 2015-06-08 |
US20150153968A1 (en) | 2015-06-04 |
JP6289057B2 (ja) | 2018-03-07 |
US9239692B2 (en) | 2016-01-19 |
CN104683647A (zh) | 2015-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104683647B (zh) | 进行通信速度改变处理的通信装置及通信控制方法 | |
EP2728459A2 (en) | Non-Transitory Computer-Readable Medium, Communication Relay Apparatus, and Image Processing Apparatus | |
CN106484652B (zh) | 一种基于ntb硬件的多队列通信方法及系统 | |
CN109067506A (zh) | 一种基于多滑动窗口并发的轻量级异步消息实现方法 | |
JP2004312681A (ja) | 移動通信システムのデータ伝送方法 | |
JP2008060695A (ja) | 情報通信システムおよび送信側装置および受信側装置および送信制御プログラムおよび受信制御プログラム | |
US20140297791A1 (en) | Communication apparatus, method of controlling the same, and storage medium | |
CN104378526A (zh) | 图像形成装置和控制进入其节电模式的方法 | |
JP5495743B2 (ja) | ネットワーク機器及びその制御方法、並びにプログラム | |
CN112395237A (zh) | 一种至少两个控制器之间通信的方法及其系统 | |
JPH069361B2 (ja) | メツセージ伝送方法 | |
KR100859499B1 (ko) | 데이터 송수신 방법 및 그에 따른 통신 시스템 | |
JP6182779B1 (ja) | 転送装置、転送方法およびプログラム | |
JP2016045697A (ja) | 印刷制御装置、印刷システム、印刷制御装置の制御方法、及びプログラム | |
JP6069995B2 (ja) | 情報処理システム及び情報送信方法 | |
JP4096428B2 (ja) | データ通信装置及びデータ通信方法 | |
JP5652891B2 (ja) | リモートデスクトップシステム | |
JP3194938B2 (ja) | 印刷システム | |
JP2012061639A (ja) | 画像形成装置および印刷制御方法 | |
JPH06291748A (ja) | 半二重通信の衝突回数削減と片寄り防止方式 | |
JP2000101656A (ja) | 赤外線データ送信装置及び受信装置 | |
JP3994569B2 (ja) | 画像処理装置 | |
JP2000253098A (ja) | 信号処理装置及び信号処理システム | |
JP6207710B1 (ja) | 転送制御装置、転送制御方法およびプログラム | |
JP6536050B2 (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180209 Termination date: 20211128 |
|
CF01 | Termination of patent right due to non-payment of annual fee |