JP2023057210A - 情報処理装置,情報処理方法および情報処理プログラム - Google Patents

情報処理装置,情報処理方法および情報処理プログラム Download PDF

Info

Publication number
JP2023057210A
JP2023057210A JP2021166582A JP2021166582A JP2023057210A JP 2023057210 A JP2023057210 A JP 2023057210A JP 2021166582 A JP2021166582 A JP 2021166582A JP 2021166582 A JP2021166582 A JP 2021166582A JP 2023057210 A JP2023057210 A JP 2023057210A
Authority
JP
Japan
Prior art keywords
ack
probe
control unit
message
client terminal
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
Application number
JP2021166582A
Other languages
English (en)
Inventor
学 中嶋
Manabu Nakajima
尚子 北村
Naoko Kitamura
雅子 宮澤
Masako MIYAZAWA
直弥 島津
Naoya Shimazu
昌明 立花
Masaaki Tachibana
利則 難波
Toshinori Nanba
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2021166582A priority Critical patent/JP2023057210A/ja
Publication of JP2023057210A publication Critical patent/JP2023057210A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】電文のデータ構造を意識することなく装置間の接続を実現できるようにする。【解決手段】クライアント装置20から電文を構成するパケットを受信すると、TCP(Transmission Control Protocol)カーネル層を経由してProbe-ACKをクライアント装置20に送信する制御部103と、クライアント装置20からの、Probe-ACKに対する応答に基づいて、電文の終わりを検出する検出部103とを備える。【選択図】図3

Description

本発明は、情報処理装置,情報処理方法および情報処理プログラムに関する。
メインフレームとクライアント端末とがネットワークを介して接続されたメインフレームシステムにおいて、メインフレームのレガシーな業務アプリケーションとクライアント端末の業務アプリケーションとの間で送信される電文は長さ情報を含んでいない。また、電文は、その切れ目までを一つのデータとして扱われる。
また、メインフレームの業務アプリケーションと、クライアント端末の業務アプリケーションとの間の会話(通信)は、必ず1問1答型で行なわれる。すなわち、一方から連続して送信がされることはない。
さらに、メインフレームとクライアント端末とを接続するネットワークにおいて、電文は、必要に応じて分割されて送信される。このような電文の分割は、電文の形式や長さとは無関係に行なわれる。
このようにして電文のやり取りを行なう業務アプリケーションにおいては、分割された電文の結合は、下位のメインフレーム用プロトコル制御部で行なわれ、業務アプリケーションには結合する処理は実装されていない。
特開平5―252282号公報 特開平9-81487号公報
近年、将来的な業務拡張を見込んで、メインフレーム用プロトコルを使用せずに、ソケット通信を使用したメインフレームとクライアント端末との接続の実現が求められている。そのためには、メインフレームのアプリケーションにおいて、ネットワークで分割された受信電文を結合(組み立て)する機能の実装が必要とされる。
しかし、受信する電文の形式や長さの情報はユーザや業務ごとに多種多様であり、電文の形式や長さ(電文の終わりの認識方法)のそれぞれに対応した、アプリケーションの改造が必要である。このためのアプリケーションの開発は容易ではない。
ここで、電文の終わりを認識する手法として、長さ情報を電文中に持たせる方法と、電文にエンドマークを設定する方法とが考えられる。
長さ情報を電文中に持たせる方法においては、長さ情報のオフセット位置および長さ領域のサイズに基づいて電文長を求め、これにより電文の終わりを認識する。
電文長を格納する位置と長さ、電文の形式(固定長or可変長)は、メインフレーム側とクライアント側との各業務アプリケーション間で取り決め、クライアント側で設定する必要がある。しかし、メインフレームの業務アプリケーションのブラックボックス化等によりメインフレーム側の解析は困難である。
一方、電文にエンドマークを設定する方法においては、電文の末尾にエンドマークを設定することで、電文の終わりを認識する。
電文の終わりを示す制御記号“E”は、メインフレーム側とクライアント側との各業務アプリケーション間で取り決め、クライアント側で識別する必要がある。しかし、メインフレームの業務アプリケーションのブラックボックス化等によりメインフレーム側の解析が困難である。
また、長さ情報を電文中に持たせる方法と、電文にエンドマークを設定する方法とのいずれにおいても、クライアントの業務アプリケーションは、電文の長さに応じて、電文を1回で送信したり複数回に分けて送信したりする。メインフレーム側のアプリケーションはこのような点についても考慮する必要があり煩雑である。
1つの側面では、本発明は、電文のデータ構造を意識することなく装置間の接続を実現できるようにすることを目的とする。
この情報処理装置は、クライアント装置から電文を構成するパケットを受信すると、TCP(Transmission Control Protocol)カーネル層を経由してProbe-ACKを前記クライアント装置に送信する制御部と、前記クライアント装置からの、前記Probe-ACKに対する応答に基づいて、前記電文の終わりを検出する検出部とを備える。
一実施形態によれば、電文のデータ構造を意識することなく装置間の接続を実現できる。
実施形態の一例としてのコンピュータシステムのハードウェア構成を示す図である。 実施形態の一例としてのコンピュータシステムの機能構成図である。 実施形態の一例としてのコンピュータシステムの処理の概要を示す図である。 実施形態の一例としてのコンピュータシステムにおけるパケット分割された電文の処理方法を説明するための図である。 実施形態の一例としてのコンピュータシステムにおけるパケット分割がされていない電文の処理方法を説明するための図である。 実施形態の一例としてのコンピュータシステムのACK制御部の処理を説明するためのフローチャートである。 実施形態の一例としてのコンピュータシステムのACK制御部の処理を説明するためのフローチャートである。 実施形態の一例としてのコンピュータシステムのACK制御部の処理を説明するためのフローチャートである。 実施形態の一例としてのコンピュータシステムのACK制御部の処理を説明するためのフローチャートである。
以下、図面を参照して本情報処理装置,情報処理方法および情報処理プログラムにかかる実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
(A)構成
図1は実施形態の一例としてのコンピュータシステム1のハードウェア構成を示す図、図2はその機能構成図である。
本コンピュータシステム1は、図1に示すように、メインフレーム10とクライアント端末(クライアント装置)20とを備えるメインフレームシステムである。これらのメインフレーム10とクライアント端末20とはネットワーク2を介して通信可能に接続されている。ネットワーク2は、LAN(Local Area Network)であってもよい。
メインフレーム10とクライアント端末20との間においては、TCP/IP透過モード通信が行なわれる。TCP/IP透過モード通信は、TCP/IPのソケット(socket)通信と機能的に同等な通信を行なう。メインフレーム10とクライアント端末20との間において行なわれるソケット通信と同等な通信をTCPコネクションといってもよい。
クライアント端末20は、コンピュータ(情報処理装置)である。ユーザは、このクライアント端末20を用いて入力操作等を行なう。図1および図2においては、便宜上、1つのクライアント端末20が図示されているが、これに限定されるものではなく、コンピュータシステム1には複数のクライアント端末20が備えられてもよい。また、クライアント端末20をノードといってもよい。
クライアント端末20は、図1に示すように、プロセッサ21,メモリ22,記憶装置23およびネットワークインタフェース(I/F)24を備える。
ネットワークインタフェース24は、ネットワーク2に接続される。ネットワークインタフェース24は、ネットワーク2を介して、メインフレーム10との間でデータの送受信を行なう。また、ネットワークインタフェース24は、図示しない他のコンピュータや通信機器との間でデータの送受信を行なってもよい。
記憶装置23は、ハードディスクドライブ(Hard Disk Drive:HDD)、SSD(Solid State Drive),ストレージクラスメモリ(Storage Class Memory:SCM)等の記憶装置であって、種々のデータを格納するものである。
メモリ22はROM(Read Only Memory)およびRAM(Random Access Memory)を含む記憶メモリである。メモリ22のROMには、クライアント用業務アプリケーションやこのアプリケーション用のデータ類が書き込まれている。メモリ22上のソフトウェアプログラムは、プロセッサ21に適宜読み込まれて実行される。また、メモリ22のRAMは、一次記憶メモリあるいはワーキングメモリとして利用される。
プロセッサ(処理部)21は、クライアント端末20全体を制御する。プロセッサ21は、マルチプロセッサであってもよい。プロセッサ21は、例えばCPU(Central Processing Unit),MPU(Micro Processing Unit),DSP(Digital Signal Processor),ASIC(Application Specific Integrated Circuit),PLD(Programmable Logic Device),FPGA(Field Programmable Gate Array)のいずれか一つであってもよい。また、プロセッサ11は、CPU,MPU,DSP,ASIC,PLD,FPGAのうちの2種類以上の要素の組み合わせであってもよい。
そして、クライアント端末20のプロセッサ21がOS(Operating System)を実行することで、例えばカーネル202(図2参照)としての機能が実現される。カーネル202はOSの中核となる既知の機能であるので、その説明は省略する。
また、クライアント端末20のプロセッサ21がクライアント用業務アプリケーションを実行することにより、業務アプリ機能部201(図2参照)としての機能が実現される。
業務アプリ機能部201は、当該クライアント端末20を用いて行なわれる業務に関する機能を実現する。業務アプリ機能部201は、業務に関する機能を実現するに際して、電文を生成しメインフレーム10に対して送信する。クライアント端末20からメインフレーム10に対する電文は、TCP/IPのソケット通信で送信される。
クライアント端末20から送出される電文は、カーネル202において複数のパケットに分割され、メインフレーム10に送信される。以下、電文を分割して作成された個々のパケットを分割電文という場合がある。複数の分割電文は同じデータサイズ(固定長)である必要はなく、可変長であってもよい。
なお、ネットワーク2においては、クライアント端末20から送出される電文は、電文のサイズやネットワーク2の状況等の諸条件に応じて、分割されずに送信されてもよい。
本コンピュータシステム1において、クライアント端末20の業務アプリ機能部201と、後述するメインフレーム10の業務アプリ機能部101との間で行なわれる通信(会話)は、常に半二重の1問1答型で行なわれ、一方からの連続送信は行なわれないものとする。一つのノードは送信専用または受信専用として使用される。
また、TCPにおいては、通信データの管理にシーケンシャル番号(SEQ番号)と呼ばれる通し番号が用いられている。SEQ番号は、送信されるパケットのデータサイズに応じて設定されてもよい。
クライアント端末20のカーネル202は、メインフレーム10に対して送信した電文(パケット)のSEQ番号を管理する。
カーネル202は、メインフレーム10から送信されるProbe-ACKに含まれるSEQ番号を、自身がメインフレーム10に最後に送信した電文のSEQ番号と比較する。
メインフレーム10から送信されたProbe-ACK(詳細は後述)に含まれるSEQ番号が、自身がメインフレーム10に最後に送信した電文のSEQ番号と相違する場合には、カーネル202は、ACKに自身が管理する正解のSEQ番号(受信SEQ番号)を付加して応答する。また、クライアント端末20からメインフレーム10に応答されるACKには、Probe-ACKに付加されていたSEQ番号(送信SEQ番号)も付加される。
これらの送信SEQ番号および受信SEQ番号の少なくとも一方をプローブ情報(Probe情報)といってもよい。
クライアント端末20からメインフレーム10に複数の分割電文を送信している途中においては、分割電文を送信する度に、分割電文に付加されるSEQ番号の値は更新される。
メインフレーム10は、例えば、基幹業務等に用いられる大型コンピュータ(メインフレームコンピュータ,情報処理装置)である。メインフレームを、汎用コンピュータや大型コンピュータ,ホストコンピュータといってもよい。
メインフレーム10は、1つ以上のクライアント端末20から送信される電文を受信し、演算処理等に用いる。
メインフレーム10は、図1に示すように、プロセッサ11,メモリ12,記憶装置13およびネットワークインタフェース(I/F)14を備える。
記憶装置13は、HDD、SSD,SCM等の記憶装置であって、種々のデータを格納するものである。
メモリ12はROMおよびRAMを含む記憶メモリである。メモリ12のROMには、メインフレーム用業務アプリケーションや各種の制御プログラム、およびこれらのプログラムが用いるデータ類が書き込まれている。メモリ12上のソフトウェアプログラムは、プロセッサ11に適宜読み込まれて実行される。また、メモリ12のRAMは、一次記憶メモリあるいはワーキングメモリとして利用される。
プロセッサ(処理部)11は、メインフレーム10全体を制御する。プロセッサ11は、マルチプロセッサであってもよい。プロセッサ11は、例えばCPU,MPU,DSP,ASIC,PLD,FPGAのいずれか一つであってもよい。また、プロセッサ11は、CPU,MPU,DSP,ASIC,PLD,FPGAのうちの2種類以上の要素の組み合わせであってもよい。
そして、メインフレーム10のプロセッサ11がメインフレーム用業務アプリケーションを実行することにより、業務アプリ機能部101(図2参照)としての機能が実現される。
業務アプリ機能部101は、業務に関する機能を実現する。例えば、業務アプリ機能部01は、クライアント端末20から送信される電文を処理する。
また、メインフレーム10のプロセッサ11が情報処理プログラムを実行することにより、図2に示すTCP制御部105および通信制御部102としての機能が実現される。
TCP制御部105は、TCP/IP上にメインフレーム用プロトコルを組み合わせた通信を実現する。TCP制御部105は、ネットワーク2を介して電文(分割電文)を受信し、通信制御部102に受け渡す。
また、TCP制御部105は、後述する通信制御部102からのACK送信依頼に従って、クライアント端末20に対してProbe-ACKを送信する。Probe-ACKには、通信制御部102からACK送信依頼とともに通知されるSEQ番号が付加される。
通信制御部102は、業務アプリ機能部101に対して、分散処理の基本機能として位置付けられるプログラム間通信機能を提供する。通信制御部102は、TCP/IPによるプログラム間通信機能を実現する。
通信制御部102は、クライアント端末20との間でTCP/IP透過モード通信を実現する。TCP/IP透過モード通信は、TCP/IPのソケット(socket)通信と機能的に同等な通信機能である。
通信制御部102は、図2に示すように、ACK制御部103および電文組立部104としての機能を備える。
ACK制御部103は、クライアント端末20から送信されたパケットに応じて、TCP制御部105を介して経由してProbe-ACKをクライアント端末20に送信する。Probe-ACKは、TCPのACKプローブ(probe)パケット技術において公知であり、ゼロ・ウィンドウ・プローブと呼ばれる場合もある。Probe-ACKは、例えば、TCP層でのパケット送達確認に用いられる。
本コンピュータシステム1においては、通信制御部102は、このProbe-ACKに対するクライアント端末20からの応答を判断することで、電文の終わり(末尾)を検出する。
ACK制御部103は、クライアント端末20から送信された電文および分割電文を、メモリ12の所定の記憶領域に格納させる。電文および分割電文を格納する記憶領域を電文組立域といってもよい。
ACK制御部103は、ACK送信依頼機能とACK到達確認機能とを備える。
ACK送信依頼機能は、TCP制御部105に対して、クライアント端末20へのProbe-ACKの送信を依頼する機能である。ACK到達確認機能をACKモニタ機能といってもよい。
ACK制御部103は、クライアント端末20から電文もしくは分割電文のパケットを受信すると、当該パケットの送信元のクライアント端末20に対するProbe-ACKの送信をTCP制御部105に依頼する。また、この際、ACK制御部103は、TCP制御部105に対して、クライアント端末20から最後に受信した(最新の)パケットに付加されたSEQ番号から1を減算した値をProbe-ACKにSEQ番号として付加して送信させる。
基本的に、ACK制御部103は、クライアント端末20からパケット(電文もしくは分割電文)を受信する度に、TCP制御部105に対するACK送信依頼を行なってよい。
ACK制御部103は、TCP制御部105に対するACK送信依頼を行なった後に、念のために、TCP制御部105に対するACK送信依頼を、再度、行なう。すなわち、ACK制御部103は、TCP制御部105に対するACK送信依頼を少なくとも2回行なう。
ただし、先に行なったACK送信依頼に対してクライアント端末20からACKが応答される前に、クライアント端末20から次のパケットを受信した場合には、ACK制御部103は、当該パケットに関するACK送信依頼の発行を抑止する。すなわち、ACK制御部103は、先に行なったACK送信依頼に対してクライアント端末20からACKが応答されたことを確認して、次のACK送信依頼を行なう。
そのため、ACK制御部103は、行なったACK送信依頼の情報と、ACK送信依頼に対して応答されるACKとをメモリ12等の所定の記憶領域に保存することで管理する機能も備える。
なお、送信したACK送信依頼に対してクライアント端末20からACKが応答されていない状態を、Probe-ACK送信中の状態といってもよい。
ACK制御部103は、クライアント端末20から電文を構成するパケット(分割電文)を受信すると、TCPカーネル層を経由してProbe-ACKを前記クライアント端末20に送信する制御部に相当する。
ACK到達確認機能は、Probe-ACKに対してクライアント端末20から応答されたACKの到達を確認する機能である。
ACK到達確認機能には、先に行なったACK送信依頼に対してクライアントから応答されたACKに付加されたSEQ番号を、その後に行なったACK送信依頼に対してクライアント端末20から応答されたACKに付加されたSEQ番号と比較する機能も含まれる。
ACK制御部103は、ACK送信依頼に対してクライアント端末20からACKが応答されると、当該ACKに付加されたSEQ番号を、その1つ前に行なったACK送信依頼に対してクライアント端末20から応答されたACKに付加されたSEQ番号と比較する。比較の結果、これらのSEQ番号が一致した場合には、クライアント端末20からの電文の受信が完了したと判断する。すなわち、ACK制御部103は、電文の終わりを認識する。
ACK制御部103は、クライアント端末20からの、Probe-ACKに対する応答に基づいて、電文の終わりを検出する検出部に相当する。
なお、上述の如く、クライアント端末20からメインフレーム10に複数の分割電文を送信している途中においては、分割電文を送信する度に、分割電文に付加されるSEQ番号の値は更新される。そのため、先に受信したACKに付加されたSEQ番号と、その後に受信したACKに付加されたSEQ番号とが不一致である場合には、電文の送信途中であると考えてよい。
ACK制御部103は、ACK送信依頼においてProbe-ACKに付加してクライアント端末20に送信させたSEQ番号(送信SEQ番号)をメモリ12の所定の記憶領域に格納させる。
また、ACK制御部103は、クライアント端末20から送信されたパケットに付加されたSEQ番号(受信SEQ番号)についても、メモリ12の所定の記憶領域に格納させる。
電文組立部104は、ACK制御部103が電文の終わりを認識した場合において、受信した電文が複数の分割電文に分割されている場合に、これらの分割電文を結合(連結)して1つの電文に組み立てる。
例えば、上述したACK制御部103は、受信した分割電文を、それぞれメモリ12等の所定の記憶領域(電文組立域)に順次格納させる。この際、電文組立部104は、先に電文組立域に格納した分割電文の末尾に、後続する分割電文を連結させてもよい。これにより、ACK制御部103が電文の終わりを認識した場合に、電文組立域には、連結された電文が格納されていることになる。
また、電文組立部104は、ACK制御部103が電文の終わりを検出すると、電文組立部104は、それまでに受信したパケット(分割電文)を結合(連結)することで電文を復元してもよい。
電文組立部104は、分割電文を結合させることで作成(復元)した電文(結合電文)を業務アプリに通知する。これにより下位レイヤ(通信制御プログラム) ・アプリケーションレイヤ(業務アプリケーション)において、電文の形式(固定長・可変長・終端文字など)を意識することなく、正しく電文を認識できる。
電文組立部104は、ACK制御部103が電文の終わりを検出すると、それまでに受信した複数のパケット(分割電文)を結合して電文を復元する復元部に相当する。
なお、複数の分割電文を結合して電文を作成する手法は既知であり、その説明は省略する。
(B)動作
図3は実施形態の一例としてのコンピュータシステム1の処理の概要を示す図である。
クライアント端末20とメインフレーム10とはTCPコネクションを介して接続される。クライアント端末20においては、業務アプリ機能部201はカーネル202を介してTCPコネクションに接続される。
また、メインフレーム10においては、通信制御部102はTCP制御部105を介してTCPコネクションに接続される。メインフレーム10において業務アプリ機能部101は、API(Application Programming Interface)により通信制御部102と通信を行なう。
クライアント端末20から送信される電文は、TCPコネクションを介してメインフレーム10に送信される。この際、電文は分割されて複数のパケット(分割電文)として送信される場合がある。
メインフレーム10のACK制御部103は、クライアント端末20からパケットを受信すると、TCP制御部105に対してACK送信依頼を行なう。TCP制御部105は、TCPコネクションを介して、クライアント端末20に対してProbe-ACKを送信する。クライアント端末20のカーネル202は、このProbe-ACKに対してACKを応答する。ACK制御部103は、このACKに付加されたSEQ番号に基づいて電文の終わりを認識する。
図4は実施形態の一例としてのコンピュータシステム1におけるパケット分割された電文の処理方法を説明するための図である。
この図4においては、クライアント端末20の業務アプリ機能部201がメインフレーム10の業務アプリ機能部101に12バイトの電文pktAを送信する例を示している。電文pktAは、3つの可変長の分割電文(パケット)A1~A3に分割されてメインフレーム10に送信される。これらの分割電文A1~A3は分割電文A1,分割電文A2,分割電文A3の順に送信される(符号P0参照)。分割電文A1,A2,A3を分割電文#1,#2,#3と表してもよい。
メインフレーム10において、SEQ番号=4が設定された分割電文A1を受信すると、通信制御部102(ACK制御部103)は、TCP制御部105に対して、クライアント端末20へのProbe-ACKの送信を依頼(ACK送信依頼)する(符号P1参照)。
また、この際、ACK制御部103は、TCP制御部105に対して、クライアント端末20から最後に受信した(最新の)パケットに付加されたSEQ番号から1を減算した値をProbe-ACKにSEQ番号=3(= 4 - 1)として付加して送信させる(符号P2参照)。
次に、メインフレーム10において、通信制御部102は、SEQ番号=8が設定された分割電文A2を受信する(符号P3参照)。ここで、先にSEQ番号=3を付して送信したACK送信依頼に対するACKがクライアント端末20から応答されていないので、ACK制御部103はACK送信依頼の送信を抑止する(符号P4参照)。
メインフレーム10において、通信制御部102は、SEQ番号=12が設定された分割電文A3を受信する(符号P5参照)。通信制御部102は、当該電文に付加されたSEQ番号をメモリ12等に退避させる。
その後、クライアント端末20に、TCP制御部105から送信されたProbe-ACKが到達し(符号P6参照)、カーネル202は、メインフレーム10に対してACKを応答する。このACKには、クライアント端末20から最後に送信された分割電文A3に付されたSEQ番号=12が付加されている。
メインフレーム10において、SEQ番号=12が付加されたACKを受信すると(符号P7参照)、ACK制御部103は、そのプローブ情報をメモリ12等に記憶させる。
通信制御部102(ACK制御部103)は、TCP制御部105に対して、クライアント端末20へのProbe-ACKの送信を、再度、依頼(ACK送信依頼)する(符号P8参照)。
また、この際、ACK制御部103は、TCP制御部105に対して、クライアント端末20から最後に受信した(最新の)パケットに付加されたSEQ番号から1を減算した値をProbe-ACKにSEQ番号=11(=12 - 1)として付加して送信させる(符号P9参照)。
クライアント端末20に、TCP制御部105から送信されたProbe-ACKが到達する(符号P10参照)。カーネル202は、このProbe-ACKに対して、メインフレーム10にACKを応答する。このACKには、クライアント端末20から最後に送信された分割電文A3に付されたSEQ番号=12が付加されている。
メインフレーム10において、2回目に行なったACK送信依頼に対するACKを受信すると(符号P11参照)、ACK制御部103は、そのプローブ情報をメモリ12等に記憶させる。
通信制御部102(ACK制御部103)は、当該ACKに付加されたSEQ番号(=12)を、先に受信した電文(分割電文:符号P5参照)に付加され、メモリ12等に退避されたSEQ番号と比較する(符号P12参照)。比較の結果、これらのSEQ番号が一致した場合には、クライアント端末20からの電文の受信が完了したと判断する。すなわち、ACK制御部103は、電文の終わりを認識する。
その後、通信制御部102(電文組立部104)は、それまでに受信した分割電文A1~A3を結合した電文(結合電文)pktAを業務アプリに通知する。
図5は実施形態の一例としてのコンピュータシステム1におけるパケット分割がされていない電文の処理方法を説明するための図である。
この図5においては、クライアント端末20の業務アプリ機能部201がメインフレーム10の業務アプリ機能部101に4バイトの電文pktBを送信する例を示している。電文pktBは分割されることなくメインフレーム10に送信される(符号P00参照)。
メインフレーム10において、SEQ番号=4が設定された電文pktBを受信すると、通信制御部102は、受信した電文に付加されたSEQ番号をメモリ12等に退避させる(符号P01)。
また、通信制御部102(ACK制御部103)は、TCP制御部105に対して、クライアント端末20へのProbe-ACKの送信を依頼(ACK送信依頼)する(符号P02参照)。
また、この際、ACK制御部103は、TCP制御部105に対して、クライアント端末20から最後に受信した(最新の)パケットに付加されたSEQ番号から1を減算した値3(= 4 - 1)をProbe-ACKにSEQ番号として付加して送信させる(符号P03参照)。
クライアント端末20に、TCP制御部105から送信されたProbe-ACKが到達し(符号P04参照)、カーネル202は、メインフレーム10に対してACKを応答する。このACKには、クライアント端末20から最後に送信された分割電文A3に付されたSEQ番号=4が付加されている。
メインフレーム10において、通信制御部102(ACK制御部103)は、SEQ番号=4が付加されたACKを受信する(符号P05参照)。ACK制御部103は、そのプローブ情報をメモリ12等に記憶させる。
また、通信制御部102(ACK制御部103)は、TCP制御部105に対して、クライアント端末20へのProbe-ACKの送信を再度依頼(ACK送信依頼)する(符号P06参照)。すなわち、ACK制御部103は、TCP制御部105に対して、クライアント端末20に対して、2回目のProbe-ACKの送信依頼(ACK送信依頼)を行なう。
この際、ACK制御部103は、TCP制御部105に対して、クライアント端末20から最後に受信した(最新の)パケットに付加されたSEQ番号から1を減算した値3(=4 - 1)をProbe-ACKにSEQ番号として付加して送信させる。
クライアント端末20に、TCP制御部105から送信されたProbe-ACKが到達する(符号P07参照)。カーネル202は、このProbe-ACKに対して、メインフレーム10にACKを応答する。このACKには、クライアント端末20から最後に送信された分割電文A3に付されたSEQ番号=4が付加されている。
メインフレーム10において、2回目に行なったACK送信依頼に対するACKを受信する(符号P08参照)。ACK制御部103は、そのプローブ情報をメモリ12等に記憶させる。
通信制御部102(ACK制御部103)は、当該ACKに付加されたSEQ番号(=4)を、その1つ前に行なったACK送信依頼に対してクライアント端末20から応答されたACK(符号P04参照)に付加されたSEQ番号と比較する(符号P09参照)。比較の結果、これらのSEQ番号が一致した場合には、クライアント端末20からの電文の受信が完了したと判断する。すなわち、ACK制御部103は、電文の終わりを認識する。その後、通信制御部102は、受信した電文pktBを業務アプリに通知する(符号P010参照)。
次に、実施形態の一例としてのコンピュータシステム1のACK制御部103の処理を図6~図9に示すフローチャート(ステップS1~S22)に従って説明する。なお、図6はステップS1~S3の処理を、図7はステップS4~S8の処理を、図8はステップS9~S14の処理を、図9はステップS15~S22の処理を、それぞれ示す。
また、図7~図9中において、実線矢印は電文の流れを示し、一点鎖線はACKの流れを示す。
さらに、以下に示す例においては、クライアント端末20が送信した電文が、複数の分割電文に分割してメインフレーム10に送信される例について示す。
ステップS1において、ACK制御部103は、状態を表す変数(以下、単に状態という)に初期設定としてIDLEを設定する。状態は、例えば、メモリ12等の所定の記憶領域に記憶される。
その後、ステップS2において、ACK制御部103は受信監視を行なう。クライアント端末20から何等かのパケット(電文,分割電文,ACK)を受信する受信イベントが発生することで、以下の処理が開始される。以下、分割電文を単に電文という場合がある。
受信イベントが発生すると、ステップS3において、ACK制御部103は、状態を確認する。状態がIDLEである場合には(ステップS3の“IDLE”ルート参照)、図7のステップS4に移行する。
ステップS4において、ACK制御部103は、受信イベントを確認する。受信したパケットが電文である場合に(ステップS4の“電文”ルート参照)、ステップS5に移行する。
ステップS5において、ACK制御部103は、受信した電文(受信電文)を電文組立域に格納させる。
ステップS6において、ACK制御部103は、受信電文についてのプローブ情報(受信SEQ番号)をメモリ12等に記憶(退避)させる。
ステップS7において、ACK制御部103は、クライアント端末20に対するProbe-ACKの送信をTCP制御部105に依頼する。この際、ACK制御部103は、TCP制御部105に対して、クライアント端末20から最後に受信した(最新の)パケットに付加されたSEQ番号から1を減算した値をProbe-ACKにSEQ番号として付加して送信させる。
ステップS8において、ACK制御部103は、状態にProbe-ACK応答待ちを設定する。その後、処理は、図6のステップS2に戻り、受信監視を行なう。
なお、ステップS4における確認の結果、受信したパケットがACKである場合にも(ステップS4の“ACK”ルート参照)、処理は、図6のステップS2に戻り、受信監視を行なう。
また、ステップS3における確認の結果、状態がProbe-ACK応答待ちである場合には(ステップS3の“Probe-ACK応答待ち”ルート参照)、図8のステップS9に移行する。
ステップS9において、ACK制御部103は、受信イベントを確認する。受信したパケットが電文である場合に(ステップS9の“電文”ルート参照)、ステップS10に移行する。
ステップS10において、ACK制御部103は、受信した電文(受信電文)を電文組立域に格納させる。この際、電文組立部104は、先に電文組立域に格納した受信電文に後続させて、新たに受信した受信電文を連結する。
ステップS11において、ACK制御部103は、受信電文についてのプローブ情報(受信SEQ番号)をメモリ12等に記憶(退避)させる。
なお、Probe-ACK応答待ちの状態においては、ACK制御部103は、ACK送信依頼の送信を抑止する。
その後、処理は、図6のステップS2に戻り、受信監視を行なう。
また、ステップS9における確認の結果、受信したパケットがACKである場合には(ステップS9の“ACK”ルート参照)、ステップS12に移行する。
ステップS12において、ACK制御部103は、受信したACKに付加されていたプローブ情報(SEQ番号)が、メモリ12等に退避させているプローブ情報と等しいかを確認する。
ACKに付加されていたプローブ情報(SEQ番号)が、メモリ12等に退避させているプローブ情報と不一致である場合には(ステップS12のNoルート参照)、当該ACKは送信したACK送信依頼に対応するものでないと考えられる。そこで、処理は、図6のステップS2に戻り、受信監視を行なう。
また、ステップS12における確認の結果、ACKに付加されていたプローブ情報(SEQ番号)が、メモリ12等に退避させているプローブ情報と等しい場合には(ステップS12のYesルート参照)、ステップS13に移行する。
ステップS13において、ACK制御部103は、クライアント端末20に対するProbe-ACKの送信をTCP制御部105に依頼する。すなわち、ACK制御部103は、TCP制御部105に対して、2回目のProbe-ACKの送信依頼(ACK送信依頼)を行なう。
この際、ACK制御部103は、TCP制御部105に対して、クライアント端末20から最後に受信した(最新の)パケットに付加されたSEQ番号から1を減算した値をProbe-ACKにSEQ番号として付加して送信させる。
ステップS14において、ACK制御部103は、状態にProbe-ACK再送応答待ちを設定する。その後、処理は、図6のステップS2に戻り、受信監視を行なう。
また、ステップS3における確認の結果、状態がProbe-ACK再送応答待ちである場合には(ステップS3の“Probe-ACK再送応答待ち”ルート参照)、図9のステップS15に移行する。
ステップS15において、ACK制御部103は、受信イベントを確認する。受信したパケットが電文である場合に(ステップS15の“電文”ルート参照)、ステップS16に移行する。
ステップS16において、ACK制御部103は、受信した電文(受信電文)を電文組立域に格納させる。この際、電文組立部104は、先に電文組立域に格納した受信電文に後続させて、新たに受信した受信電文を連結する。
ステップS17において、ACK制御部103は、受信電文についてのプローブ情報(受信SEQ番号)をメモリ12等に記憶(退避)させる。
ステップS18において、ACK制御部103は、クライアント端末20に対するProbe-ACKの送信をTCP制御部105に依頼する。この際、ACK制御部103は、TCP制御部105に対して、クライアント端末20から最後に受信した(最新の)パケットに付加されたSEQ番号から1を減算した値をProbe-ACKにSEQ番号として付加して送信させる。
ステップS19において、ACK制御部103は、状態にProbe-ACK応答待ちを設定する。その後、処理は、図6のステップS2に戻り、受信監視を行なう。
また、ステップS15における確認の結果、受信したパケットがACKである場合には(ステップS15の“ACK”ルート参照)、ステップS20に移行する。
ステップS20において、ACK制御部103は、受信したACKに付加されていたプローブ情報(SEQ番号)が、メモリ12等に退避させているプローブ情報と等しいかを確認する。
ACKに付加されていたプローブ情報(SEQ番号)が、メモリ12等に退避させているプローブ情報と不一致である場合には(ステップS20のNoルート参照)、当該ACKは送信したACK送信依頼に対応するものでないと考えられる。そこで、処理は、図6のステップS2に戻り、受信監視を行なう。
また、ステップS20における確認の結果、ACKに付加されていたプローブ情報(SEQ番号)が、メモリ12等に退避させているプローブ情報と等しい場合には(ステップS20のYesルート参照)、ステップS21に移行する。
受信したACKに付加されていたプローブ情報(SEQ番号)が、メモリ12等に退避させている、一つ前に受信した電文のプローブ情報(SEQ番号)と等しい場合に、ACK制御部103は、クライアント端末20からの電文の受信が完了したと判断する。
ステップS21において、ACK制御部103、電文組立域の電文(結合電文)を業務アプリ機能部101に通知する。
ステップS22において、ACK制御部103は、状態にIDLEを設定する。その後、処理は、図6のステップS2に戻り、受信監視を行なう。
(C)効果
このように、本発明の一実施形態としてのコンピュータシステム1によれば、通信制御部102において、ACK制御部103が、クライアント端末20から電文もしくは分割電文のパケットを受信すると、当該パケットの送信元のクライアント端末20に対するProbe-ACKの送信をTCP制御部105に依頼する。この際、ACK制御部103は、TCP制御部105に対して、クライアント端末20から最後に受信した(最新の)パケットに付加されたSEQ番号から1を減算した値をProbe-ACKにSEQ番号として付加して送信させる。
クライアント端末20においては、メインフレーム10から送信されたProbe-ACKに含まれるSEQ番号が、自身がメインフレーム10に最後に送信した電文のSEQ番号と相違する場合には、カーネル202は、ACKに自身が管理する正解のSEQ番号(受信SEQ番号)を付加して応答する。
メインフレーム10においてACK制御部103は、1回目に受信したACKに付加されたSEQ番号と2回目に受信したACKに付加されたSEQ番号とが一致する場合に、電文の終わりを判断する。
これにより、メインフレーム10の業務アプリケーションの改造や制御プログラムの開発を行なうことなく、ネットワークレイヤの制御方式を汎用的な方法で制御することができる。従って、簡単に既存業務の継続・維持および拡張が可能となる。
また、本コンピュータシステム1においては、クライアント端末20から送信される電文が分割される場合でも、分割が行なわれない場合でも、同様に電文の終わりを検出することができ利便性が高い。
ACK制御部103は、先に行なったACK送信依頼に対してクライアント端末20からACKが応答される前に、クライアント端末20から次のパケットを受信した場合には、当該パケットに関するACK送信依頼の発行を抑止する。これにより、メインフレーム10からProbe-ACKが連続して送信されることを抑止し、ネットワーク2の通信帯域の負荷を軽減することができる。
(D)その他
そして、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成および各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
上述した実施形態においては、クライアント端末20から送信される電文に対する処理をメインフレーム10において処理する例を説明したがこれに限定されるものではない。例えば、メインフレーム10から送信される電文に対して、クライアント端末20において同様の処理を行なうことで電文の終わりを判断してもよい。
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
(E)付記
以上の実施形態に関し、さらに以下の付記を開示する。
(付記1)
クライアント装置から電文を構成するパケットを受信すると、TCP(Transmission Control Protocol)カーネル層を経由してProbe-ACKを前記クライアント装置に送信する制御部と、
前記クライアント装置からの、前記Probe-ACKに対する応答に基づいて、前記電文の終わりを検出する検出部と
を備えることを特徴とする情報処理装置。
(付記2)
前記制御部は、前記クライアント装置に対して複数のProbe-ACKを送信し、
前記検出部は、前記複数のProbe-ACKに対する複数の応答のそれぞれに付加されるシーケンス番号が一致する場合に、前記電文の終わりを検出する
ことを特徴とする付記1に記載の情報処理装置。
(付記3)
前記制御部は、前記複数のProbe-ACKのうちの先に送信したProbe-ACKに対する応答が前記クライアント装置から受信していない場合には、前記先に送信したProbe-ACKに後続するProbe-ACKの送信を抑止する
ことを特徴とする付記2に記載の情報処理装置。
(付記4)
前記電文を分割することで複数の前記パケットが生成され、
前記検出部が前記電文の終わりを検出すると、それまでに受信した前記複数のパケットを結合して前記電文を復元する復元部
を備えることを特徴とする付記1~3のいずれか1項に記載の情報処理装置。
(付記5)
クライアント装置と通信可能に接続された情報処理装置が、
前記クライアント装置から電文を構成するパケットを受信すると、TCP(Transmission Control Protocol)カーネル層を経由してProbe-ACKを前記クライアント装置に送信する処理と、
前記クライアント装置からの、前記Probe-ACKに対する応答に基づいて、前記電文の終わりを検出する処理と
を実行することを特徴とする情報処理方法。
(付記6)
前記情報処理装置が、
前記クライアント装置に対して複数のProbe-ACKを送信する処理と、
前記複数のProbe-ACKに対する複数の応答のそれぞれに付加されるシーケンス番号が一致する場合に、前記電文の終わりを検出する処理と
を実行することを特徴とする付記5に記載の情報処理方法。
(付記7)
前記情報処理装置が、
前記複数のProbe-ACKのうちの先に送信したProbe-ACKに対する応答が前記クライアント装置から受信していない場合には、前記先に送信したProbe-ACKに後続するProbe-ACKの送信を抑止する処理
を実行することを特徴とする付記6に記載の情報処理方法。
(付記8)
前記電文を分割することで複数の前記パケットが生成され、
前記情報処理装置が、
前記電文の終わりを検出すると、それまでに受信した前記複数のパケットを結合して前記電文を復元する処理
を実行することを特徴とする付記5~7のいずれか1項に記載の情報処理方法。
(付記9)
クライアント装置から電文を構成するパケットを受信すると、TCP(Transmission Control Protocol)カーネル層を経由してProbe-ACKを前記クライアント装置に送信し、
前記クライアント装置からの、前記Probe-ACKに対する応答に基づいて、前記電文の終わりを検出する
処理をコンピュータに実行させることを特徴とする情報処理プログラム。
(付記10)
前記クライアント装置に対して複数のProbe-ACKを送信し、
前記複数のProbe-ACKに対する複数の応答のそれぞれに付加されるシーケンス番号が一致する場合に、前記電文の終わりを検出する
処理を前記コンピュータに実行させることを特徴とする付記9に記載の情報処理プログラム。
(付記11)
前記複数のProbe-ACKのうちの先に送信したProbe-ACKに対する応答が前記クライアント装置から受信していない場合には、前記先に送信したProbe-ACKに後続するProbe-ACKの送信を抑止する
処理を前記コンピュータに実行させることを特徴とする付記10に記載の情報処理プログラム。
(付記12)
前記電文を分割することで複数の前記パケットが生成され、
前記電文の終わりを検出すると、それまでに受信した前記複数のパケットを結合して前記電文を復元する
処理を前記コンピュータに実行させることを特徴とする付記9~11のいずれか1項に記載の情報処理プログラム。
1 コンピュータシステム
10 メインフレーム
11,21 プロセッサ
12,22 メモリ
13,23 記憶装置
14,24 ネットワークインタフェース
20 クライアント端末
101,201 業務アプリ機能部
102 通信制御部
103 ACK制御部
104 電文組立部
105 TCP通信部
202 カーネル

Claims (6)

  1. クライアント装置から電文を構成するパケットを受信すると、TCP(Transmission Control Protocol)カーネル層を経由してProbe-ACKを前記クライアント装置に送信する制御部と、
    前記クライアント装置からの、前記Probe-ACKに対する応答に基づいて、前記電文の終わりを検出する検出部と
    を備えることを特徴とする情報処理装置。
  2. 前記制御部は、前記クライアント装置に対して複数のProbe-ACKを送信し、
    前記検出部は、前記複数のProbe-ACKに対する複数の応答のそれぞれに付加されるシーケンス番号が一致する場合に、前記電文の終わりを検出する
    ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記制御部は、前記複数のProbe-ACKのうちの先に送信したProbe-ACKに対する応答を前記クライアント装置から受信していない場合には、前記先に送信したProbe-ACKに後続するProbe-ACKの送信を抑止する
    ことを特徴とする請求項2に記載の情報処理装置。
  4. 前記電文を分割することで複数の前記パケットが生成され、
    前記検出部が前記電文の終わりを検出すると、それまでに受信した前記複数のパケットを結合して前記電文を復元する復元部
    を備えることを特徴とする請求項1~3のいずれか1項に記載の情報処理装置。
  5. クライアント装置と通信可能に接続された情報処理装置が、
    前記クライアント装置から電文を構成するパケットを受信すると、TCP(Transmission Control Protocol)カーネル層を経由してProbe-ACKを前記クライアント装置に送信する処理と、
    前記クライアント装置からの、前記Probe-ACKに対する応答に基づいて、前記電文の終わりを検出する処理と
    を実行することを特徴とする情報処理方法。
  6. クライアント装置から電文を構成するパケットを受信すると、TCP(Transmission Control Protocol)カーネル層を経由してProbe-ACKを前記クライアント装置に送信し、
    前記クライアント装置からの、前記Probe-ACKに対する応答に基づいて、前記電文の終わりを検出する
    処理をコンピュータに実行させることを特徴とする情報処理プログラム。
JP2021166582A 2021-10-11 2021-10-11 情報処理装置,情報処理方法および情報処理プログラム Pending JP2023057210A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021166582A JP2023057210A (ja) 2021-10-11 2021-10-11 情報処理装置,情報処理方法および情報処理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021166582A JP2023057210A (ja) 2021-10-11 2021-10-11 情報処理装置,情報処理方法および情報処理プログラム

Publications (1)

Publication Number Publication Date
JP2023057210A true JP2023057210A (ja) 2023-04-21

Family

ID=86006291

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021166582A Pending JP2023057210A (ja) 2021-10-11 2021-10-11 情報処理装置,情報処理方法および情報処理プログラム

Country Status (1)

Country Link
JP (1) JP2023057210A (ja)

Similar Documents

Publication Publication Date Title
JP5872731B2 (ja) クラスタの複数のノードのそれぞれに対してリンクの障害の検出を伝えるためのコンピュータ実装方法、非一時的なコンピュータ可読媒体およびコンピュータシステム
JP4160642B2 (ja) ネットワークデータ転送方法
US7146427B2 (en) Polling-based mechanism for improved RPC timeout handling
US10142425B2 (en) Session reliability for a redirected USB device
JP5568048B2 (ja) 並列計算機システム、およびプログラム
CA2367800C (en) Communication architecture for distributed computing environment
CN109951546B (zh) 基于智能合约的事务请求处理方法、装置、设备和介质
US8959171B2 (en) Method and apparatus for acknowledging a request for data transfer
JP2007513583A (ja) Rdma完了および再送信システムおよび方法
JP4410608B2 (ja) Webサービス提供方法
US8156209B1 (en) Aggregation devices processing keep-alive messages of point-to-point sessions
US10154079B2 (en) Pre-boot file transfer system
CN111404842A (zh) 数据传输方法、装置及计算机存储介质
CN111726401A (zh) 一种文件传输方法和装置
CN110609866B (zh) 用于协商事务的方法、设备和计算机程序产品
KR100597405B1 (ko) 소켓 어플리케이션 프로그램을 이용한 데이터 중계 시스템및 데이터 중계 방법
US20220217093A1 (en) Sequence Number Synchronization Method and Apparatus
JP2023057210A (ja) 情報処理装置,情報処理方法および情報処理プログラム
JP2002215476A (ja) ネットワークに接続されたホストコンピュータの死活監視方法、死活監視システム、及びプログラム
CN115220640A (zh) 用于处理数据的方法、电子设备和计算机程序产品
CN110764932A (zh) 数据处理方法、系统、介质和计算设备
CN112866133A (zh) 用于获取共用最大分段大小mss的方法及装置
CN111049754B (zh) 数据通信方法、装置、设备和计算机可读存储介质
CN116915860B (zh) 基于udp的指令传输方法、装置、设备以及介质
CN114745281B (zh) 一种数据处理的方法和装置