remote clientとNinf Server間は、パケット単位の通信を行う。 このレベルのプロトコルは、Ninf libraryの関数名からのインターフェイス の取得、 Ninf Executable の起動を行うものである。
このレベルのプロトコルは、MAX_PKT_LEN以下のパケットを単位とし
て通信する。パケットのheaderには、以下の情報が格納されている。
Ninf Serverには、登録されているNinf Executable と関数名の対応表があり、関 数名を指定して、このテーブルのindexを取得して、このindexを用いて、 Ninf Executable を起動する。
パケットのコマンドは以下の通りである。
NINF_PKT_REQ_STUB_INFONINF_PKT_RPY_STUB_INFOパケットで、このindexを返す。
NINF_PKT_RPY_STUB_INFONINF_PKT_REQ_STUB_INFOに対する応答パケット。arg1にindexが格納さ
れており、データ部にはxdr形式の インターフェイス を返す。
NINF_PKT_REQ_CALLNINF_PKT_RPY_CALLを返す。
NINF_PKT_RPY_CALLNINF_PKT_REQ_CALLが成功したことを通知する。
NINF_PKT_KILL
NINF_PKT_TO_STUBNINF_PKT_TO_CLIENTNINF_PKT_ERROR
クライアントプログラムとNinf Executable の通信は
このレベルのプロトコルに埋め込んで行なう。
クライアントプログラムからNinf Executable への通信は
NINF_PKT_TO_STUBパケットに埋め込まれる。
Ninf Server はこのパケットのヘッダを取り外し、中身を
Ninf Executable へのストリームに流す。
Ninf Executable からクライアントプログラムへの通信は、
NINF_PKT_TO_CLIENTに埋め込まれる。
Ninf Server が Ninf Executable からのストリームを切りわけ、
ヘッダをつけてNINF_PKT_TO_CLIENTのパケットとして
クライアントプログラムへ送信する。
図4に、remote client Ninf_callの概要を示す。