"データパケットを受信して格納するためのメモリを有する受信装置に、前記データパケットを順次送信する送信部と、前記受信装置から、所定のプロトコルに従って前記メモリの空き容量を単位容量の数を示すウインドウサイズで示すときの当該単位容量を示すデータを受信し、前記送信部が前記データパケットを送信するごとに、当該データパケットに応答して前記受信装置から送信される、前記ウインドウサイズを含む確認応答を受信する受信部と、前記ウインドウサイズがゼロのとき、前記送信部に前記単位容量未満のデータサイズの検査用データパケットを送信させ、当該検査用データパケットに応答して前記受信装置が送信する前記ウインドウサイズがゼロであっても、当該ウインドウサイズを含む前記確認応答が前記検査用データパケットが前記メモリに格納されたことを示すときには、前記送信部に、前記検査用データパケットのデータサイズ以上であって前記単位容量未満の第1のデータサイズの前記データパケットを送信させる制御部と、を有する送信装置。請求項1において、前記制御部は、前記送信部が送信する前記データパケットのデータサイズを記憶し、前記ウインドウサイズが1以上からゼロになったときに、当該ウインドウサイズがゼロになる直前に送信された前記データパケットのデータサイズを前記単位容量から減算した最小予測空き容量に基づいて前記第1のデータサイズを推測する、送信装置。請求項2において、前記制御部は、前記第1のデータサイズのデータパケットに応答して前記受信装置が送信する前記確認応答が、当該データパケットが前記メモリに格納されたことを示すときは前記送信部に前記第1のデータサイズのデータパケットを送信させ、前記メモリに格納されたことを示さないときは前記送信部に前記検査用データパケットを送信させる、送信装置。請求項1乃至3のいずれかにおいて、前記空き容量は、前記受信装置にて前記メモリに格納された前記データパケットが処理されると増加する、送信装置。請求項1乃至4のいずれかに記載の送信装置と受信装置とを有する通信システム。データパケットを受信して格納するためのメモリを有する受信装置から、所定のプロトコルに従って前記メモリの空き容量を単位容量の数を示すウインドウサイズで示すときの当該単位容量を示すデータを受信し、前記受信装置に前記データパケットを順次送信し、前記受信装置から、前記送信部が前記データパケットを送信するごとに、当該データパケットに応答して前記受信装置から送信される、前記ウインドウサイズを含む確認応答を受信し、前記ウインドウサイズがゼロのとき、前記送信部に前記単位容量未満のデータサイズの検査用データパケットを送信させ、当該検査用データパケットに応答して前記受信装置が送信する前記ウインドウサイズがゼロであっても、当該ウインドウサイズを含む前記確認応答が前記検査用データパケットが前記メモリに格納されたことを示すときには、前記検査用データパケットのデータサイズ以上であって前記単位容量未満の第1のデータサイズの前記データパケットを送信する、データ送信方法。請求項6において、前記送信される前記データパケットのデータサイズを記憶し、前記ウインドウサイズが1以上からゼロになったときに、当該ウインドウサイズがゼロになる直前に送信された前記データパケットのデータサイズを前記単位容量から減算した最小予測空き容量に基づいて前記第1のデータサイズを推測する、データ送信方法。請求項6において、前記第1のデータサイズのデータパケットに応答して前記受信装置が送信する前記確認応答が、当該データパケットが前記メモリに格納されたことを示すときは前記第1のデータサイズのデータパケットを送信し、前記メモリに格納されたことを示さないときは前記検査用データパケットを送信する、データ送信方法。TCP規格によれば、ゼロウインドウ状態のとき、ゼロウインドウプローブは1秒以上の送信周期で送信される。よって、ゼロウインドウプローブの送受信が繰り返されるとき、応答待ちによる時間的なロスが発生する。また、ウインドウプローブを繰り返し送信することは、通信トラフィックの無用な増加につながる。こうしたことは、スループットを低下させる要因となる。そこで、本発明の目的は、ゼロウインドウ状態でゼロウインドウプローブの送信を繰り返すことによるスループット低下を回避する送信装置、通信システム、及び送信方法を提供することにある。上記の目的を達成するための一実施形態における送信装置は、たとえば、送信部と、受信部と、制御部とを有する。送信部は、データパケットを受信して格納するためのメモリを有する受信装置に、前記データパケットを順次送信する。また、受信部は、前記受信装置から、TCPに従って前記メモリの空き容量を単位容量の数を示すウインドウサイズで示すときの当該単位容量を示すデータを受信し、前記送信部が前記データパケットを送信するごとに、当該データパケットに応答して前記受信装置から送信される、前記ウインドウサイズを含む確認応答を受信する。そして、制御部は、前記ウインドウサイズがゼロのとき、前記送信部に前記単位容量未満のデータサイズの検査用データパケットを送信させ、当該検査用データパケットに応答して前記受信装置が送信する前記ウインドウサイズがゼロであっても、当該ウインドウサイズを含む前記確認応答が前記検査用データパケットが前記メモリに格納されたことを示すときには、前記送信部に、前記検査用データパケットのデータサイズ以上であって前記単位容量未満の第1のデータサイズの前記データパケットを送信させる。以下に説明する実施形態によれば、ゼロウインドウ状態でゼロウインドウプローブの送信を繰り返すことによるスループット低下を回避することができる。以下、図面にしたがって本発明の実施の形態について説明する。但し、本発明の技術的範囲はこれらの実施の形態に限定されず、特許請求の範囲に記載された事項とその均等物まで及ぶものである。図1は、本実施形態における通信システムの構成を示す図である。この通信システムは、たとえばインターネットなどの通信回線網100を介して通信可能に接続される、送信側装置102と受信側装置103とを有する。送信側装置102と受信側装置103は、TCP/IPのTCP規格に従って、データパケットの送受信を行う。送信側装置102、及び受信側装置103は、たとえば、パーソナルコンピュータや、各種電子機器に設けられるプロセッサである。一例として、送信側装置102はセンサ類に設けられる制御用のマイクロコンピュータであり、受信側装置103はサーバとしてのパーソナルコンピュータである。かかる例では、送信側装置102は、センサによる検知データをインターネット経由で受信側装置103に送信する。図1では、送信側装置102の構成が図示され、受信側装置103の構成は図示が省略される。ただし、受信側装置103は、送信側装置102と同様の構成を有し、送信側装置102についての次の説明は、受信側装置103にも適用される。送信側装置102では、通信部104、CPUCentralProcessingUnit106、ROMReadOnlyMemory107、RAMRandomAccessMemory108が、バス110を介して接続される。通信部104は、たとえば、OSIOpenSystemIntercommunication参照モデルの物理層に対応する通信回路111と、データリンク層に対応するMACMediaAccessControl部112とを有する。MAC部112は、たとえば48ビットのMACアドレスに基づいて、通信回路111によるデータの送受信を制御する。通信部104は、たとえば、NICNetworkInterfaceCardなどである。CPU106は、IP部114、TCP部116、APIアプリケーションインターフェース部118、及びアプリケーション部120を有する。IP部114、TCP部116、API部118、及びアプリケーション部120は、CPU106がROM107に格納されるOSオペレーションシステム、通信ドライバプログラム、及びアプリケーションプログラムを実行することで構成される。IP部114は、OSI参照モデルのネットワーク層に対応し、32ビットの論理的なIPアドレスに基づいて、通信部104によるデータの送受信を制御する。TCP部116は、トランスポート層に対応し、TCP規格に基づいて、通信部104によるデータの送受信を制御する。そして、アプリケーション部120は、アプリケーション層に対応し、API部118を介してTCP部116と、データの受け渡しを行う。RAM108には、受信側装置103に送信するためのデータパケットが一時的に格納される。RAM108は、たとえば、DRAMDynamicRandomAccessMemoryである。また、受信側装置103では、RAM108の一部は、送信側装置102から受信したデータパケットを格納するバッファメモリ109として使用される。受信側装置103では、TCP部116が送信側装置102から送信されたデータパケットをバッファメモリ109に一時的に格納する。そして、アプリケーション部120は、API部118を介してバッファメモリ109に格納されたデータパケットを読み出して処理する。ここで、送信側装置102及び受信側装置103のTCP部116について、それぞれ図2、3を参照して説明する。図2は、送信側装置102のTCP部116の詳細な構成例を説明するための図である。送信側装置102のTCP部116では、TCP受信部204が、受信側装置103からの確認応答を受信する202。確認応答は、送信側装置102のデータパケットの送信に応答して受信側装置103から送信される。確認応答には、期待データ番号やウインドウサイズが含まれる。期待データ番号以下、ACK番号というは、受信側装置103が次に送信側装置102から受信すべきデータのシーケンス番号に対応する。また、ウインドウサイズは、バッファメモリ109の空き容量を1バイト以上の単位容量で示す。TCP受信部204は、ウインドウサイズ判断部208に、確認応答を渡す206。すると、ウインドウサイズ判断部208は、確認応答からウインドウサイズを取得して確認応答とともにACK番号取得部212に渡す210。そして、ACK番号取得部212は、確認応答からACK番号を取得し、送信制御部216に、ACK番号とウインドウサイズとを渡す214。送信制御部216は、タイマ部220に、タイマ起動を指示する218。すると、タイマ部220はタイマカウントを開始し、送信制御部216に、所定の送信周期たとえば数十ミリ秒ごとにタイムアウトを通知する222。ここで、送信周期は、TCP規格に基づいて任意に設定される。送信制御部216は、ウインドウサイズが0でなければ、すなわち、ゼロウインドウ状態でなければ、データ送信部229にデータパケット送信を指示し226、ウインドウサイズが0のときには、すなわち、ゼロウインドウ状態のときには、ウインドウプローブ送信部228ゼロウインドウプローブ送信を指示する224。ゼロウインドウプローブは、1バイトの検査用データパケットである。ただし、ゼロウインドウプローブは、検査のために用いられるが、本来送信すべきデータパケットである。データパケット送信が指示されたデータ送信部229、またはゼロウインドウプローブ送信が指示されたウインドウプローブ送信部228は、送信データ取得部234に、送信データの取得を指示する230。送信データ取得部234は、たとえばRAM108から送信用のデータパケットゼロウインドウプローブを含むを読み出し、データ送信部220にデータ取得を通知する232。そして、データ送信部220は、TCP送信部240にデータ送信を指示する238。または、ウインドウプローブ送信部228は、TCP送信部240にゼロウインドウプローブ送信を指示する236。TCP送信部240は、受信側装置103へ送信するためのデータパケットまたはゼロウインドウプローブを出力する242。このとき、データパケットまたはゼロウインドウプローブには、シーケンス番号が付される。そして、データパケットまたはゼロウインドウプローブは、IP部114を介して通信部104に送られ、さらに受信側装置103へ向けて通信回線網100に送出される。上記のようなTCP部116を備える送信側装置102において、TCP送信部240が、受信側装置103にデータパケットを送信する送信部の例である。また、TCP受信部204が、受信側装置103からウインドウサイズを含む受信応答を受信する受信部の例である。図3は、受信側装置103のTCP部116の詳細な構成例を説明するための図である。受信側装置103のTCP部116では、TCP受信部304が、送信側装置102からのデータパケットや確認応答を受信する302。そして、TCP受信部304は、ウインドウサイズ判断部308に、受信通知を渡す306。ウインドウサイズ判断部308は、データパケットを格納した後のバッファメモリ109の空き容量を示すウインドウサイズを求める。ウインドウサイズ判断部308は、たとえば、予め使用可能なバッファメモリ109の領域をCPU106のレジスタ等に記憶し、受信したデータパケットのデータサイズに基づき、空き容量を算出する。あるいは、ウインドウサイズ判断部308は、データパケットを格納するごとに、バッファメモリ109の空き容量をそのメモリコントローラから取得してもよい。そして、ウインドウサイズ判断部308は、求めた空き容量と、後述するスケール値とに基づき、ウインドウサイズを算出する。算出されたウインドウサイズは、応答判断部312に渡される310。応答判断部312は、次に送信側装置102から受信すべきデータのシーケンス番号に対応する、ACK番号を求める。たとえば、応答判断部312は、受信したデータのシーケンス番号をRAM108に格納しておき、これに基づいてACK番号を求める。求められたACK番号は、ウインドウサイズとともに、送信制御部316に渡される314。送信制御部316は、データ送信部320に、データ送信を指示する318。そして、データ送信部320は、送信データ生成部324に、送信用データパケットの生成を指示する322。送信用のデータパケットは、送信側装置102に返信される、ACK番号とウインドウサイズとを含む確認応答である。送信データ生成部324は、送信用のデータパケットを生成し、データ送信部320に通知する326。そして、データ送信部320は、TCP送信部330にデータ送信を指示する328。そして、TCP送信部330は、送信側装置102へ送信するためのデータパケットを出力する332。そして、出力されたデータパケットは、IP部114を介して送受信回路104に送られ、さらに送信側装置102へ向けて通信回線網100に送出される。図4は、送信側装置102と受信側装置103の概略的な通信シーケンスを示す。送信側装置102は、コネクション確立時に、受信側装置103に、データパケットsSYNと、スケール値sScaleとを送信するS402。データパケットsSYNは、コネクション確立を要求するSYNフラグを有する。また、スケール値sScaleは、送信側装置102が受信側装置として動作する場合に、送信側装置102のウインドウサイズの単位容量を示す。これに応答して受信側装置103は、送信側装置102に、データパケットrSYNと、確認応答ACKとを送信するS404。データパケットrSYNは、コネクション確立に応答するSYNフラグを有する。また、確認応答ACKは、ACK番号nACKと、スケール値rScaleとを有する。スケール値rScaleは、バッファメモリ109のウインドウサイズの単位を示す。そして、送信側装置102が、受信側装置103に、確認応答ACKを送信するS406。ここにおいて、コネクションが確立し、データパケットの送受信に必要な情報のやり取りが完了する。次いで、送信側装置102は、受信側装置103に、たとえば複数バイトのデータパケットDPcktを、シーケンス番号SEQとともに送信するS408。シーケンス番号SEQは、たとえばデータパケットDPcktの先頭のデータのシーケンス番号に対応する。すると、受信側装置103は、データパケットDPcktを受信してバッファメモリ109に格納し、ACK番号nACKとウインドウサイズWSとを含む確認応答ACKを返信するS410。ACK番号nACKは、次に受信すべきデータのシーケンス番号に対応する。このようにして、1回分のデータパケットの送受信が完了する。上記のようなデータパケットの送受信が、送信側装置102からの送信用データの送信が完了するか、または、送信用データの送信が完了する前にウインドウサイズWSが0になるまで繰り返される。ウインドウサイズWSが0になると、送信側装置102は、受信側装置103に、ゼロウインドウプローブZWを送信するS412。ゼロウインドウプローブZWは、たとえば1バイトのデータパケットである。また、ゼロウインドウプローブZWには、シーケンス番号SEQが付加される。すると、受信側装置103は、これを受信し、ACK番号nACKとウインドウサイズWSとを含む確認応答ACKを返信するS414。このとき、ウインドウサイズWS=0だと、送信側装置102からのゼロウインドウプローブZWの送信が繰り返される。このようなゼロウインドウプローブの送受信は、バッファメモリ109のデータが処理されて空き容量が増加し、ウインドウサイズWSが1以上に回復するまで繰り返される。ウインドウサイズWSが回復すると、たとえば複数バイトのデータパケットDPcktの送信が再開される。たとえば、送信側装置102は、シーケンス番号SEQが付加されたデータパケットDPcktを送信しS416、これに応答して受信側装置103は、ACK番号nACKとウインドウサイズWSとを含む確認応答ACKを送信するS418。次いで、データパケットの送受信にともなうウインドウサイズの変遷について、詳細に説明する。図5は、TCP規格に基づく一般的な通信シーケンスを例として、ウインドウサイズの変遷を示す。図5では、送信側装置102から受信側装置103に、それぞれ1バイトのデータD1~D7が送信されるステップS502~S522が縦軸方向に示される。ここでは、受信側装置103のバッファメモリ109は、6バイトの容量を有する各マス目が1バイトを示す。図5に示すシーケンス図は、図4においてステップS402~S406が完了してコネクションが確立した後のステップに対応する。ここでは、送信側装置102から受信側装置103に、単位容量1バイトのデータのデータパケットずつ送信される。また、受信側装置103から送信側装置102に、バッファメモリ109の空き容量が、1バイトごとのウインドウサイズにより通知される。すなわち、コネクション確立時に、受信側装置103から送信側装置102へ、単位容量1バイトを示すスケール値rScaleが通知されたものとする。初期状態S502に示されるように、受信側装置103は、6バイトのウインドウサイズWS=6を有する。ステップS504で、送信側装置102は、受信側装置103に、シーケンス番号SEQが付加されたデータD1を送信する。すると、受信側装置103は、データD1をバッファメモリ109に格納する。ここで、次に受信すべきデータはD2である。また、バッファメモリ109の空き容量は5バイトになる。よって、ウインドウサイズWS=5になる。よって、受信側装置103は、データD2に対応するACK番号nACKと、ウインドウサイズWS=5とを含む確認応答ACKを、返信する。次いで、ステップS506~S512に示すように、送信側装置102は、ステップごとに、1バイトのデータD2~D5をシーケンス番号SEQともに受信側装置103に送信する。一方、受信側装置103は、データD2~D5をそれぞれ受信する毎に、バッファメモリ109に格納する。すると、バッファメモリ109の空き容量が4バイト、3バイト、2バイト、そして1バイトというように減少する。そのたびに、受信側装置103は、ACK番号nACKと空き容量に対応するウインドウサイズWSとを含む確認応答ACKを返信する。よって、ステップごとのウインドウサイズWSは、4、3、2、そして1というように減少する。ステップS514で、送信側装置102は、受信側装置103に、データD6をシーケンス番号SEQとともに送信する。すると、受信側装置103は、データD6をバッファメモリ109に格納する。すると、空き容量は0バイトになる。よって、受信側装置103は、データD7に対応するACK番号nACKとウインドウサイズWS=0とを含む確認応答ACKを返信する。ステップS516で、ウインドウサイズWS=0なので、送信側装置102は受信側装置103に、データD7をゼロウインドウプローブZWとして送信する。このとき、受信側装置103では、バッファメモリ109の空き容量が0バイトなので、データパケットD7を格納することができない。よって、受信側装置103は、送信側装置102に、データD7を示すACK番号nACKとウインドウサイズWS=0とを含む確認応答ACKを送信する。これに応答して送信側装置102は、ステップS518で、受信側装置103に、再びデータD7をゼロウインドウプローブZWとして送信する。このとき、受信側装置103では、バッファメモリ109が一杯なのでデータD7を格納することができない。よって、受信側装置103は、再びデータD7を示すACK番号nACKとウインドウサイズ=0とを含む確認応答ACKを返信する。同様の動作が、たとえば、ステップS520まで繰り返される。ここで、ステップS520の後、バッファメモリ109のデータが処理されて、空き容量が再び6バイトになる。すると、続くステップS522で、送信側装置102が受信側装置103に、データD7をゼロウインドウプローブZWとして送信したとき、受信側装置103では、バッファメモリ109にデータD7が格納される。これにより、空き容量が5バイトになる。よって、受信側装置103は、送信側装置102に、次のデータパケットを示すACK番号nACKと、ウインドウサイズWS=5とを含む確認応答ACKを送信する。このように、ステップS514でウインドウサイズWS=0になると、ステップS516~S520で、送信側装置102はゼロウインドウプローブZWを受信側装置103に送信する。そして、ステップS520の後、ウインドウサイズWSが1以上に回復すると、データパケットD7が受信されて格納され、データパケットD1~D7の送受信が完了する。ところで、TCP規格では、確認応答ACKに含まれるウインドウサイズWSは、16ビット長のデータである。よって、表現できる空き容量は、0~65,535バイトの65,536=2^16個の値である。しかし、かかる規格の策定時から、半導体メモリの低価格化などを受け、バッファメモリが大容量化している。よって、より大きい空き容量を通知可能なウインドウスケールオプションRFC1122がIETFにより追加された。ウインドウスケールオプションでは、ウインドウサイズWSの1単位に対応する空き容量、すなわち単位容量UCが、スケール値rScaleにより次のように示される。UC=2^rScaleよって、バッファメモリ109の空き容量BFは次の式により示される。BF=WS×2^rScaleウインドウスケールオプションによれば、0~14のスケール値が用意されている。スケール値rScaleごとのウインドウサイズWSの1単位が示す単位容量バイト数は、図6に示すようになる。なお、ウインドウスケールオプションによって通知可能な空き容量の最大値は、65535×2^14=1073725440バイトである。ここで、2をスケール値でべき乗する計算は、ビットシフトで行うことができる。図7は、ウインドウスケールオプションを用いた場合の通信シーケンスを例として、ウインドウサイズの変遷を示す。図7では、送信側装置102から受信側装置103に、それぞれ1バイトのデータD1~D13が送信されるステップS702~S722が示される。ここでは、受信側装置103のバッファメモリ109は、12バイトの容量を有する各マス目が1バイトを示す。図7に示すシーケンス図は、図4においてステップS402~S406が完了してコネクションが確立した後のステップに対応する。ここでは、送信側装置102から受信側装置103に、3バイトのデータパケットずつ送信される。また、受信側装置103から送信側装置102に、4バイトの空き容量につき1単位のウインドウサイズが通知される。すなわち、コネクション確立時に、受信側装置103から送信側装置102へ、4バイトの単位容量を示すスケール値rScaleが通知されたものとする。まず、初期状態S702において、バッファメモリ109は12バイトの空き容量を有する。よって、4バイト単位のウインドウサイズWS=3である。ステップS704で、送信側装置102は、受信側装置103に、シーケンス番号SEQとともに3バイトのデータD1~D3を送信する。すると、受信側装置103は、データD1~D3をバッファメモリ109に格納する。すると、空き容量は9バイトになる。すると、4バイト単位のウインドウサイズWSは2になる。ここで、ウインドウサイズWSは、バッファめもり109の空き容量をスケール値rScaleで除算したときの商の整数部分に対応する。よって、受信側装置103は、ACK番号nACKとウインドウサイズWS=2とを含む確認応答ACKを返信する。次いで、ステップS706で、送信側装置102は、受信側装置103に、シーケンス番号SEQとともに3バイトのデータD4~D6を送信する。すると、受信側装置103は、データD4~D6をバッファメモリ109に格納する。すると、空き容量は6バイトになる。すると、4バイト単位のウインドウサイズWSは1になる。よって、受信側装置103は、ACK番号nACKとウインドウサイズWS=1とを含む確認応答ACKを返信する。次いで、ステップS708で、送信側装置102は、受信側装置103に、シーケンス番号SEQとともに3バイトのデータD7~D9を送信する。すると、受信側装置103は、データD7~D9をバッファメモリ109に格納する。すると、空き容量は3バイトになる。すると、4バイト単位のウインドウサイズWS=0になる。よって、受信側装置103は、ACK番号nACKとウインドウサイズWS=0とを含む確認応答ACKを返信する。次に、ステップS710で、送信側装置102は、ウインドウサイズWS=0なので、受信側装置103に、データD10をゼロウインドウプローブZWとして、シーケンス番号SEQとともに送信する。すなわち、3バイトずつデータパケットを送信することを中止し、その代わりに、1バイトのデータD10をゼロウインドウプローブZWとして送信する。このとき、受信側装置103では、バッファメモリ109の空き容量は3バイトであるので、データD10をバッファメモリ109に格納する。その結果、空き容量は2バイトになる。このとき、4バイト単位のウインドウサイズWSは0である。よって、受信側装置103は、ACK番号nACKとウインドウサイズWS=0とを含む確認応答ACKを返信する。次に、ステップS712で、ウインドウサイズWS=0なので、送信側装置102は、受信側装置103に、データD11をゼロウインドウプローブZWとしてシーケンス番号SEQとともに送信する。このとき、受信側装置103では、バッファメモリ109の空き容量は2バイトであるので、データD11をバッファメモリ109に格納する。その結果、空き容量は1バイトになる。すると、4バイト単位のウインドウサイズWSは0である。よって、受信側装置103は、ACK番号nACKとウインドウサイズWS=0とを含む確認応答ACKを返信する。次に、ステップS714で、ウインドウサイズWS=0なので、送信側装置102は、受信側装置103に、データD12をゼロウインドウプローブZWとしてシーケンス番号SEQとともに送信する。このとき、受信側装置103では、バッファメモリ109の空き容量は1バイトであるので、データD12をバッファメモリ109に格納する。その結果、空き容量は0バイトになる。すると、4バイト単位のウインドウサイズWSは0である。よって、受信側装置103は、ACK番号nACKとウインドウサイズWS=0とを含む確認応答ACKを返信する。次に、ステップS716で、ウインドウサイズWS=0なので、送信側装置102は、受信側装置103に、データD13をゼロウインドウプローブとしてシーケンス番号SEQとともに送信する。このとき、受信側装置103では、バッファメモリ109の空き容量は0バイトであるので、データD13がバッファメモリ109に格納されずに破棄される。よって、受信側装置103は、ACK番号nACKとウインドウサイズWS=0とを含む確認応答ACKを返信する。同様の動作が、たとえば、ステップS720まで繰り返される。ここで、ステップS720の後、バッファメモリ109のデータが処理されて、空き容量が再び12バイトになる。よって、ウインドウサイズWSが3に回復する。すると、続くステップS722で、送信側装置102が受信側装置103に、データD13をゼロウインドウプローブZWとして送信したとき、受信側装置103では、バッファメモリ109にデータD13が格納される。こうして、データD1~D13の送受信が完了する。図7において、ステップS708~S712で、実際にはバッファメモリ109の空き容量があるにもかかわらず、ウインドウサイズWS=0が通知される。以下、かかる状況を、便宜上、みなしゼロウインドウという。このことにより、ステップS710~S714では、ゼロウインドウインドウプローブZWとして1バイトのデータパケットD10~D12が順次送信される。本実施形態では、ウインドウサイズWS=0が通知された場合であっても実際に空き容量がある場合、すなわちみなしゼロウインドウの場合に、ゼロウインドウプローブより大きいサイズのデータパケットを送信することで、スループットを向上させる。図8は、本実施形態の通信シーケンスにおける、ウインドウサイズの遷移を示す。図8では、図7と同じ条件で、送信側装置102から受信側装置103にデータD1~D13が送信されるステップS702~S710、S712 ́、S716~S722が示される。図8において、ステップS702~S710は図7と同じであるので、説明を省略する。ここで、ステップS710において受信側装置103から送信側装置102に送信される確認応答ACKには、送信したデータD10の次のデータパケットD11を示すACK番号が含まれている。このことは、ゼロウインドウプローブZWとして送信したデータパケットD10が、破棄されずにバッファメモリ109に格納されたことを示す。すなわち、このことは、ウインドウサイズが0であるにもかかわらず、実際の空き容量がまだある蓋然性を示す。つまり、みなしゼロウインドウであることが示される。そこで、ステップS712 ́で、送信側装置102は、ウインドウサイズWS=0であるにもかかわらず、受信側装置103に、1バイトのゼロウインドウプローブではなく、たとえば3バイトのデータパケットD11-D13を送信する。このとき、受信側装置103では、バッファメモリ109の空き容量は2バイトであるので、データパケットD11、D12がバッファメモリ109に格納され、データパケットD13が破棄される。この結果、空き容量が0バイトになる。すると、4バイト単位のウインドウサイズWSは0である。よって、受信側装置103は、ACK番号nACKとウインドウサイズWS=0とを含む確認応答ACKを返信する。このとき、ACK番号nACKは、次に受信すべきデータパケットD13を示す。送信側装置102は、ACK番号nACKから、送信したデータパケットD11~D13のうち、データパケットD13が格納されなかったと判断する。このことは、同時に、バッファメモリ109の実際の空き容量がなくなったことを示す。よって、ステップS716で、図7と同じウインドウサイズWS=0の場合の動作が実行される。たとえば、送信側装置102は、受信側装置103に、データパケットD13をゼロウインドウプローブZWとして送信する。こうして、図7と同じステップS716~ステップS722が実行される。すなわち、ゼロウインドウプローブとしてデータパケットD13が繰り返し送信される。そして、ステップS722で、パケットデータD1~D13の送受信が完了する。図8では、図7のステップS712、S714に対応する処理が、ステップS712 ́により行われる。すなわち、TCP部116の送信制御部216は、ゼロウインドウプローブZWに応答して返信されるウインドウサイズWSが0であっても、これとともに返信される確認応答ACKがゼロウインドウプローブZWがバッファメモリ109に格納されたことを示すとき、すなわち、進んだACK番号が受信されると、1バイトより大きいデータサイズのデータパケットを送信するようにTCP送信部240を制御する。そうすることで、みなしゼロウインドウのときにゼロウインドウプローブを繰り返し送信することを回避でき、ステップ数を減少させることができる。よって、このような送信側装置102の動作によって、通信システムのスループットが向上する。図9は、本実施形態における送信側装置102の動作手順を説明するフローチャート図である。図9のフローチャート図は、ウインドウサイズが0になりゼロウインドウプローブを送信したとき、たとえば図8のステップS710で送信側装置102が確認応答ACKを受信したときに、送信側装置102のTCP部116の各部により実行される。まず、TCP受信部204が、受信側装置103からのデータパケット受信処理を行うS902。次いで、ウインドウサイズ判断部308が、受信側装置103のウインドウサイズWSを取得するS904。次いで、送信制御部216が、ウインドウサイズWSが0でない場合であってS906のNO、送信すべきデータがある場合S910のYESを判定すると、データ送信部230がデータパケットの送信処理を行うS918。また、送信データがない場合S910のNO、たとえば、図8におけるステップS722の後などは、あらたな送信/受信処理を待ち受ける待ち状態に移行するS920。ウインドウサイズWSが0の場合でありS906のYES、かつ、ACK番号判断部212が判断したACK番号が進んでいる場合であってS908のYES、送信すべきデータがある場合S912のYESを送信制御部216が判定すると、送信制御部216が送信データサイズを算出するS916。たとえば、図8のステップS712 ́において、1バイトのゼロウインドウプローブの代わりに、当初の送信データサイズどおりの、3バイトのデータパケットの送信が決定される。このとき決定される送信データサイズは、スケール値に対応する単位容量のバイト数以下である。さらに、すでに1バイト分のゼロウインドウプローブが格納されているので、スケール値に対応するバイト数-1バイトを送信データサイズとしてもよい。そうすることで、不要なトラフィックの増加を回避できる。そして、データ送信部230がデータパケットの送信処理を行うS918。また、送信データがない場合S912のNO、送信/受信処理待ち状態に移行するS920。また、ACK番号が進んでいない場合S908のNO、ウインドウプローブ送信部228が、ゼロウインドウプローブの送信処理を行うS914。この処理は、図8のステップS716~S722に対応する。データパケットの送信処理S918またはゼロウインドウプローブの送信処理S914の後、TCP受信部204は、受信待ちに移行するS924、S926のNO。そして、データパケットを受信するとS926のYES、手順S902に移行し、上記の手順が繰り返される。次に、本実施形態の変形例について説明する。変形例では、送信制御部216は、0のウインドウサイズが受信される直前に送信されたデータパケットのデータサイズと、スケール値とに基づき、送信データサイズを推測する。たとえば、スケール値に対応する単位容量から直前に送信されたデータパケットのデータサイズを減算した最小の予測容量から、送信データサイズが推測される。さらに、ウインドウサイズWSが0になったとき、直前のウインドウサイズをWS ́=1、直前に送信したデータサイズをDSとすると、送信すべき送信データサイズTDが、スケール値rScaleから次の式F1により求められる。F1:TD=WS ́×2^rScale-DS-1すなわち、送信データサイズTDは、ウインドウサイズ実際の空き容量の最小値WS ́×2^rScaleから、直前に送信したデータサイズDSとウインドウプローブのデータサイズ1とを減算した値である。そうすることで、空き容量に格納されうる最大サイズのデータパケットを送信することができる。よって、ステップ数を省略するとともに、無駄な通信トラフィックを削減でき、スループットを向上することができる。図10は、変形例における送信側装置102の動作手順を説明するフローチャート図である。図10のフローチャート図は、図9のフローチャート図に対し、それぞれ点線で囲まれる、手順S905、S917、S915が追加されたものである。また、手順S918が手順S918a、S918bとして分割して示されるが、手順S918a、S918bの処理内容は手順S918と同じである。図10の手順では、手順S905で、ウインドウサイズ判断部308は、受信側装置103のウインドウサイズの保存処理を行う。また、手順S917で、データ送信部330は、送信したデータパケットのデータサイズを保存する処理を行う。そして、ウインドウサイズが0であるにもかかわらず実際の空き容量がある場合、すなわち、みなしゼロウインドウのとき、手順S915で、送信制御部316は、送信データサイズを計算する。たとえば、上述した式F1により、送信データサイズが推測される。そして、算出された送信データサイズのデータパケットの送信処理が行われるS918b。このようにして、実際の空き容量に最適な送信データサイズを求めてデータパケットを送信することができる。よって、ステップ数を省略でき、無駄なトラフィックの増加を回避できる。よって、スループットを向上させることができる。図11は、図10の手順S918bの後に実行される手順を示すフローチャート図である。図10の手順と同じ手順には、図10と同じ符号を付し、重複する説明は適宜省略する。図11では、点線で囲んだ手順S909が追加されている。まず、図10で示した手順S902~S906が実行される。そして、送信制御部216が、ウインドウサイズWSが0でない場合S906のNOを判定すると、データ送信部230がデータパケットの送信処理を行うS918a。一方、ウインドウサイズWSが0の場合においてS906のYES、ACK番号判断部212が判断したACK番号が進んでいてS908のYES、直前に送信したデータパケット、すなわち、図10の手順S915で送信データサイズを求めS918bで送信したデータパケットがすべてバッファメモリ109に格納された場合S909のYES、手順S912に進む。手順S909では、受信側装置103から返信されたACK番号nACKが、送信済みデータパケットのうちいずれかを示す場合には、そのデータパケットが格納されず破棄されたと判断でき、送信したデータパケットの次のデータパケットを示す場合には、すべてのデータパケットが格納されたと判断することができる。送信すべきデータがある場合S912のYESを送信制御部216が判定すると、送信制御部216が送信データサイズを推測するS915。そして、データ送信部230がデータパケットの送信処理を行うS918b。また、送信データがない場合S912のNO、受信処理待ち状態に移行するS920。また、ACK番号が進んでいない場合S908のNO、あるいは、ACK番号が進んでいてもS908のYES直前の送信データがすべて格納された場合S909のNOには、ウインドウプローブ送信部228がゼロウインドウプローブの送信処理を行うS914。手順S914、S924、S926は、図10と同じである。図11で示す手順によれば、バッファメモリ109の実際の空き容量がゼロになってデータが格納できなくなるまで、推測した送信データサイズのデータの送信が繰り返される。よって、送信側装置102は、推測したデータサイズのデータパケットを送信した後、さらにみなしゼロウインドウ状態が続く場合であっても、最小のステップ数で、残りの送信すべきデータを送信することができる。よって、スループットが向上する。図12は、図10、11で示した手順における実施例を説明するシーケンス図である。送信側装置102と受信側装置103は、ステップS1202とS1204で、互いにスケール値sScale=10と、スケール値rScale=10を通知する。この例では、ウインドウサイズ1単位当たりの単位容量は、1024バイト=2^rSlaleである。送信側装置102は、シーケンス番号SEQ=1と、1000バイトのデータパケットDPcktを送信するS1206。すると、受信側装置103は、これをバッファメモリ109に格納し、ステップS1208でACK番号nACK=1001ウインドウサイズWS=1を含む確認応答を返信するS1208。次いで、送信側装置102は、ウインドウサイズWS=1を記録するS1210。そして、送信側装置102は、500バイトの送信データサイズを記録しS1212、500バイトのデータパケットDPcktと、シーケンス番号SQ=1001を送信するS1214。すると、受信側装置103は、500バイトのデータパケットDPcktを受信してバッファメモリ109に格納し、ACK番号nACK=1501と、ウインドウサイズWS=0を含む確認応答を返信するS1216。次いで、送信側装置102は、ウインドウサイズWS=0なので、1バイトのゼロウインドウプローブZWをシーケンス番号SEQ=1501とともに送信するS1218。すると、受信側装置103は、ゼロウインドウプローブZWを格納し、ACK番号nACK=1502と、ウインドウサイズWS=0を含む確認応答を返信するS1220。次いで、送信側装置102は、ACK番号nACKが1501から1502に進んだことにより、みなしゼロウインドウ状態であるので、ゼロウインドウプローブの代わりに送信するデータの送信データサイズを推測するS1222。この場合、直前のウインドウサイズWS=1、直前の送信データサイズ=500、スケール値rScale=10なので、送信データサイズDSが次の式から算出される。DS=1×2^10-500-1=523バイトそして、送信側装置102は、シーケンス番号SEQ=2025と、523バイトのデータパケットDPcktを受信側装置103に送信するS1224。すると、受信側装置103は、ACK番号nACK=2025=1501523と、ウインドウサイズWS=0を含む確認応答を返信するS1226。次いで、送信側装置102は、ACK番号nACKが1502から2025に523進んだことにより、送信したデータがすべて格納されたと判断しS1228、再度523バイトのデータサイズのデータパケットをシーケンス番号SEQ=2025とともに送信するS1232。すると、受信側装置103は、ACK番号nACK=2100=202575と、ウインドウサイズWS=0を含む確認応答を送信するS1234。次いで、送信側装置102は、ACK番号nACKが2025から2100に75しか進んでいないことにより、送信した500バイトのデータがすべて格納されなかったと判断しS1235、ウインドウサイズWS=0なので、1バイトのゼロウインドウプローブZWを送信するS1236。上述したように、本実施形態によれば、ウインドウサイズが0になった場合、ゼロウインドウプローブの送信を繰り返すことで生じる時間的ロスや無用なトラフィックの増大を回避でき、スループットを向上させることができる。"