JP5229455B2 - モニター用ソケットライブラリを搭載するゲートウェイ装置、モニター用ソケットライブラリを搭載するゲートウェイ装置の通信方法、モニター用ソケットライブラリを搭載するゲートウェイ装置の通信プログラム - Google Patents

モニター用ソケットライブラリを搭載するゲートウェイ装置、モニター用ソケットライブラリを搭載するゲートウェイ装置の通信方法、モニター用ソケットライブラリを搭載するゲートウェイ装置の通信プログラム Download PDF

Info

Publication number
JP5229455B2
JP5229455B2 JP2008058826A JP2008058826A JP5229455B2 JP 5229455 B2 JP5229455 B2 JP 5229455B2 JP 2008058826 A JP2008058826 A JP 2008058826A JP 2008058826 A JP2008058826 A JP 2008058826A JP 5229455 B2 JP5229455 B2 JP 5229455B2
Authority
JP
Japan
Prior art keywords
socket
management unit
monitor
connection
owner
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
Application number
JP2008058826A
Other languages
English (en)
Other versions
JP2009217410A (ja
Inventor
昌治 森本
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2008058826A priority Critical patent/JP5229455B2/ja
Priority to US12/400,531 priority patent/US8291486B2/en
Publication of JP2009217410A publication Critical patent/JP2009217410A/ja
Application granted granted Critical
Publication of JP5229455B2 publication Critical patent/JP5229455B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、あるアプリケーションの通信内容をモニターするモニター用ソケットライブラリを搭載するゲートウェイ装置、モニター用ソケットライブラリを搭載するゲートウェイ装置の通信方法、モニター用ソケットライブラリを搭載するゲートウェイ装置の通信プログラム並びにモニター用ソケットライブラリに関し、特に、あるプロセスがソケットで通信した通信内容を他のプロセスでモニター可能にするモニター用ソケットライブラリを搭載するゲートウェイ装置、モニター用ソケットライブラリを搭載するゲートウェイ装置の通信方法、モニター用ソケットライブラリを搭載するゲートウェイ装置の通信プログラム並びにモニター用ソケットライブラリに関する。
高機能なセキュリティ・ゲートウェイを実現するために、複数の異常検知アプリケーションを統合して1つのゲートウェイ装置にする方法がある。代表的な製品は UTM(Unified Threat Management:ユーティーエム)であり、アンチウィルスやアンチスパム、URLフィルタなどの複数の機能を1つの装置に統合することで高機能なセキュリティ・ゲートウェイを実現している。
高機能なセキュリティ・ゲートウェイ装置を実現する際、装置の提供者は、アプリケーション開発者が簡単に開発を行えるようなAPI(Application Program Interface:エイ・ピー・アイ)を提供することが重要である。また、そのAPIは装置固有ではなく、より一般的なAPIとするほうが望ましい。何故ならば、装置提供者とアプリケーション開発者が別々な場合が多いため、APIが一般的であれば互いの製品開発が独立に実施できるからである。装置が提供するAPIが一般的でない場合、装置提供者がオープンソースソフトウェアや他社製アプリケーションを利用する際にプログラムを改造する必要がある。しかし、プログラムの改造はコスト面の問題やライセンスの問題があるため、できるだけ改造箇所が少なくそのまま統合できるほうが望ましい。
また、アプリケーション開発者にとっても、ある機能を装置固有のAPIに合わせて作るよりも、一般的なAPIに合わせて作るほうが移植性もよく開発コストも抑えやすい。ネットワークから入力されるデータを扱う汎用的なAPIとしてソケットAPIがある。
ここで、ソケットとは、TCP/IP に基づくプロセス間通信のインターフェースで、OSI参照モデルのセッション層に相当し、アプリケーション層とトランスポート層の間に定義されるAPIである。ソケットAPIでは様々なAPIが提供されているが、詳細は非特許文献1等に記載されるとおりである。なお、APIも、OSによってインターフェースが異なるため、Unix(登録商標)、Linux(登録商標)、Windows(登録商標)などOSによってその構成は若干異なる。
ソケットの代表的なAPIとして、Unix(登録商標)では、socket()、 bind()、connect()、listen()、 accept()、 read()、 write()、 close()、などが提供されている。ソケットAPIを用いたクライアントサーバ間通信を例に挙げると、サーバプロセスは、ソケットを生成し(socket()呼び出し)、IPアドレスとポート番号を割り当て(bind()呼び出し)、クライアントプロセスからの接続の待ち受けを開始する(listen()呼び出し)。一方、クライアントプロセスもソケットを生成し(socket()呼び出し)、サーバプロセスへの接続を要求する(connect()呼び出し)。サーバプロセスはクライアントプロセスからの接続要求を受け取り(accept()呼び出し)、接続を確立する。クライアントプロセスは接続が確立されたら、サーバプロセスに対してデータを送信する(write()呼び出し)。データが送信されたサーバプロセスはデータを受け取り(read()呼び出し)、データをもとに処理を実行し、データをクライアントプロセスに返す(write()呼び出し)。クライアントプロセスは、サーバプロセスからのデータを受け取って(read()呼び出し)処理を行う。しばらく要求と応答を繰り返した後、接続を終了するため、クライアントプロセスは接続完了を送信し(close()呼び出し)、サーバプロセスはその要求を(read()呼び出し)して接続を完了させる(close()呼び出し)。
アプリケーションを統合する際にソケットAPIを用いた場合のメリットは、装置開発者もアプリケーション開発者も良く知られた共通のAPIとして利用でき便利であることである。また、ソケットAPIを用いてアプリケーション開発を行うメリットのもう1つは、ソケットから受信したデータをストリームとしてそのまま扱える点である。例えば、1Mバイトのメールデータの全体を受け取ってから処理を開始するのではなく、1Mバイトのデータの一部(例えば8Kバイトずつ)を受け取って処理することが可能である。これによりアプリケーションは1つのデータの受け取りが完了するまでの長いI/O待ち時間を避けることができ、効率的な実行が可能となるからである。
このソケットを用いることで、複数のOSを格納した情報処理装置ではOS間通信を余分なオーバヘッドを発生させることなくスムーズに実行することを可能にする(特許文献1)。
OS間ではなく、プロセス間で通信を行う場合は、ソケット通信を用いてIDを通知し、共有メモリを活用しながらプロセス通信を行うことも例えば特許文献2では、提案されている。
さらに、同一の情報処理装置に格納されているとはいえ、そもそもパーティッションで区切られて、それぞれにOSが存在し、それぞれのOS上のプロセスどうしでI/O動作プログラムを共有することについては、特許文献3で提案されている。
Unix(登録商標)ネットワークプログラミング 第2版Vol.1 ネットワークAPI:ソケットとXTI W・リチャード・スティーヴンス著、篠田陽一訳(ピアソンエデュケーション) 特開2006−127461号公報 特開平11−65858号公報 特表2004−535615号公報
以上述べたとおり、ソケットAPIは汎用で一般的に知られているAPIのため、これを利用できればアプリケーション開発者にとっても装置開発者にとってもコスト面でメリットがある。しかし、セキュリティ・ゲートウェイのように、1つアプリケーションの通信内容を複数のアプリケーションが共有する際には、ソケットAPIを利用した場合、次のような課題がある。
第1の課題は、1つのプロトコルアドレスを複数のプロセスが同時にbind()できない点である。例えば、あるプロセスAがbind()によってソケットにプロトコルアドレスを割り当てlisten()していた場合、他のプロセスBが同じプロトコルアドレスを使ってbind()することはできないという課題である。仮にbind()を呼出した場合はエラーが出力される。よって通常のソケットAPIを利用するように記述されたプロセスBのプログラムは変更を強要されてしまうこととなる。
第2の課題は、第1の課題のため、プロセスAの通信内容をプロセスBと共有するには、プロセスBがプロセスAからプロセス間通信によってデータを受け取るしかないことである。そのため、プロセスAのプログラムはプロセスBにデータを送信するように変更が必要であり、プロセスBのプログラムはプロセスAからデータを受信するように変更が必要となってしまい、本来のプログラムから変更されることとなる。
第3の課題は、上記のようにプロセス間のデータ送受信を行った際にデータコピーのコストが掛かってしまうことである。特に、1つのデータをn個のプロセスで共有したい場合、n回のコピーが発生してしまう。この問題に関しては効率的なプロセス間通信を行うことで回避することができ、引用文献2では、共有メモリを利用したプロセス間通信方式を開示している。しかし、この方式は効率的なプロセス間通信方式を開示しているものの、第1の課題、第2の課題を解決していない。
引用文献1,3においても、プロセス間通信方式を開示しているものの、第1の課題、第2の課題を解決していない。従って、これらの課題を解決するソケットAPIを提供するソケットライブラリや、これらのソケットライブラリを用いることでこれらの課題を解決しながらモニター用ソケットライブラリを搭載するゲートウェイ装置、モニター用ソケットライブラリを搭載するゲートウェイ装置の通信方法、モニター用ソケットライブラリを搭載するゲートウェイ装置の通信プログラムに適用することについては提案がなされていない。
したがって、本発明の目的は、上記の第1の問題と第2の問題を解決し、あるプロセスAの通信データを他のプロセスが、ソケットAPIを通して容易にデータ共有が可能なモニター用ソケットライブラリ並びにモニター用ソケットライブラリを搭載するゲートウェイ装置、モニター用ソケットライブラリを搭載するゲートウェイ装置の通信方法、モニター用ソケットライブラリを搭載するゲートウェイ装置の通信プログラムを提供することにある。
上記の課題を解決すべく本発明に係るモニター用ソケットライブラリを搭載するゲートウェイ装置は、あるアプリケーションの通信内容を他の複数のアプリケーションが共有可能なモニター用ソケットライブラリを搭載するゲートウェイ装置において、前記モニター用ソケットライブラリに設けられる共有メモリ空間と、前記共有メモリ空間に設けられてオーナプロセスの接続待ちソケットを格納するための接続待ちソケット管理部と、前記共有メモリ空間に設けられてオーナプロセスとモニタープロセスを送受信するためのプロセス管理部と、前記共有メモリ空間に設けられて接続済みソケットを格納するための接続済みソケット管理部と、通信セッションを格納するためのセッション管理部と、実際に送受信された通信データを格納するためのメッセージ管理部と、を備えたことを特徴とする。
また、本発明に係るモニター用ソケットライブラリを搭載するゲートウェイ装置は、あるアプリケーションの通信内容を他の複数のアプリケーションが共有可能なモニター用ソケットライブラリを搭載するゲートウェイ装置において、前記モニター用ソケットライブラリは共有メモリ空間と各プロセスのメモリ空間を備え、前記共有メモリ空間にはオーナプロセスの接続待ちソケットを格納するための接続待ちソケット管理部と、接続済みソケットを格納するための接続済みソケット管理部と、実際に送受信された通信データを格納するためのメッセージ管理部とを備え、前記各プロセスのメモリ空間には、オーナプロセスとモニタープロセスを管理するためのプロセス管理部と、通信セッションを管理するためのセッション管理部と、を備えたことを特徴とする。
さらに、本発明に係るモニター用ソケットライブラリを搭載するゲートウェイ装置の通信方法は、あるアプリケーションの通信内容を他の複数のアプリケーションが共有可能なモニター用ソケットライブラリを搭載するゲートウェイ装置を用いて、前記モニター用ソケットライブラリに共有メモリ空間に設けられて、接続待ちソケット管理部は、前記共有メモリ空間に設けられてオーナプロセスの接続待ちソケットを格納する工程と、プロセス管理部は、前記共有メモリ空間に設けられてオーナプロセスとモニタープロセスを送受信する工程と、接続済みソケット管理部は、前記共有メモリ空間に設けられて接続済みソケットを格納する工程と、セッション管理部は、通信セッションを格納する工程と、メッセージ管理部は、実際に送受信された通信データを格納する工程と、を備えたことを特徴とする。
加えて、本発明に係るモニター用ソケットライブラリを搭載するゲートウェイ装置の通信方法は、あるアプリケーションの通信内容を他の複数のアプリケーションが共有可能なモニター用ソケットライブラリを搭載するゲートウェイ装置を用いて、前記モニター用ソケットライブラリは共有メモリ空間と各プロセスのメモリ空間を備え、前記共有メモリ空間において、接続待ちソケット管理部は、オーナプロセスの接続待ちソケットを格納する工程と、接続済みソケット管理部は、接続済みソケットを格納する工程と、メッセージ管理部は、実際に送受信された通信データを格納する工程とを備え、前記各プロセスのメモリ空間において、プロセス管理部は、オーナプロセスとモニタープロセスを管理する工程と、セッション管理部は、通信セッションを管理する工程と、を備えたことを特徴とする。
一方、モニター用ソケットライブラリを搭載するゲートウェイ装置の通信プログラムは、あるアプリケーションの通信内容を他の複数のアプリケーションが共有可能なモニター用ソケットライブラリを搭載するゲートウェイ装置を用いて、前記モニター用ソケットライブラリに共有メモリ空間に設けられて、接続待ちソケット管理部は、前記共有メモリ空間に設けられてオーナプロセスの接続待ちソケットを格納する工程と、プロセス管理部は、前記共有メモリ空間に設けられてオーナプロセスとモニタープロセスを送受信する工程と、接続済みソケット管理部は、前記共有メモリ空間に設けられて接続済みソケットを格納する工程と、セッション管理部は、通信セッションを格納する工程と、メッセージ管理部は、実際に送受信された通信データを格納する工程と、を備えたことを特徴とする。
続いて、モニター用ソケットライブラリを搭載するゲートウェイ装置の通信プログラムは、あるアプリケーションの通信内容を他の複数のアプリケーションが共有可能なモニター用ソケットライブラリを搭載するゲートウェイ装置を用いて、前記モニター用ソケットライブラリは共有メモリ空間と各プロセスのメモリ空間を備え、前記共有メモリ空間において、接続待ちソケット管理部は、オーナプロセスの接続待ちソケットを格納する工程と、接続済みソケット管理部は、接続済みソケットを格納する工程と、メッセージ管理部は、実際に送受信された通信データを格納する工程とを備え、前記各プロセスのメモリ空間において、プロセス管理部は、オーナプロセスとモニタープロセスを管理する工程と、セッション管理部は、通信セッションを管理する工程と、
を備えたことを特徴とする。
また、モニター用ソケットライブラリを搭載するゲートウェイ装置の通信プログラムのためのモニター用ソケットライブラリは、あるアプリケーションの通信内容を他の複数のアプリケーションが共有可能なモニター用ソケットライブラリを搭載するゲートウェイ装置を用いて、前記モニター用ソケットライブラリに共有メモリ空間に設けられて、接続待ちソケット管理部は、前記共有メモリ空間に設けられてオーナプロセスの接続待ちソケットを格納する工程と、プロセス管理部は、前記共有メモリ空間に設けられてオーナプロセスとモニタープロセスを送受信する工程と、接続済みソケット管理部は、前記共有メモリ空間に設けられて接続済みソケットを格納する工程と、セッション管理部は、通信セッションを格納する工程と、メッセージ管理部は、実際に送受信された通信データを格納する工程と、を備えたことを特徴とする。
さらに、モニター用ソケットライブラリを搭載するゲートウェイ装置の通信プログラムのためのモニター用ソケットライブラリは、あるアプリケーションの通信内容を他の複数のアプリケーションが共有可能なモニター用ソケットライブラリを搭載するゲートウェイ装置を用いて、前記モニター用ソケットライブラリは共有メモリ空間と各プロセスのメモリ空間を備え、前記共有メモリ空間において、接続待ちソケット管理部は、オーナプロセスの接続待ちソケットを格納する工程と、接続済みソケット管理部は、接続済みソケットを格納する工程と、メッセージ管理部は、実際に送受信された通信データを格納する工程とを備え、前記各プロセスのメモリ空間において、プロセス管理部は、オーナプロセスとモニタープロセスを管理する工程と、セッション管理部は、通信セッションを管理する工程と、を備えたことを特徴とする。
本発明のモニター用ソケットライブラリは、ソケットAPIをラップしたラッパーソケットAPIとして実現され、ライブラリ内部でオーナプロセスが扱ったソケットの情報と通信データを共有メモリに記憶・管理し、モニタープロセスがラッパーソケットAPIを呼出した際にそのデータを読み取らせることで、モニタープロセスがオーナプロセスの通信内容を共有することができる。
ライブラリは、bind()とlisten()が実行された接続待ちソケットを管理する接続待ちソケット管理部と、accept()で取り出された接続済みソケットを管理する接続済みソケット管理部と、オーナプロセスが接続済みソケット毎に共有メモリへの書き込み位置を記録する管理するセッション管理部と、あるいは、モニタープロセスが接続済みソケット毎から読み出した位置を記録するセッション管理部と、オーナプロセスが実際に通信したデータを管理するメッセージ管理部を共有メモリ上に備える。
オーナプロセスはラッパーソケットAPIを通してクライアントプロセスと通信を行うが、その際に、ライブラリはbind()し、listen()を開始した接続待ちソケットに関する情報を接続待ちソケット管理部に記録し、クライアントから新たな接続を受け付けた場合は接続済みソケットに関する情報を接続済みソケット管理部に記録し、そのソケットを通じて送受信した通信データをメッセージ管理部に記録し、セッション管理部に書込み位置を記録・更新する。
モニタープロセスが接続待ちソケットに登録されたソケットと同じソケットに対してbind()を呼出し、さらに接続待ち受けを開始するためにlisten()を呼出した場合、ライブラリはモニタープロセスとして管理する。さらに、モニタープロセスがaccept()を呼出した際、ライブラリは接続済みソケット管理部に記録されたソケット情報を読み出し新たな接続要求を取得する。さらに、接続済みソケットに対して read() 要求を行った場合、ライブラリは、セッション管理部を参照して読み込み開始位置を取得し、メッセージ管理部に記録された通信データを読み出し、セッション管理部の読み込み位置を更新する、というように動作する。
このようにラッパーソケットAPIを通し、内部で共有メモリ上にオーナプロセスの扱ったソケットと通信データを管理し、モニタープロセスがラッパーソケットAPIでアクセスした際にそのデータを返す、という構成を採用することで、オーナプロセスが利用したソケットとそれを通じて送受信したデータをモニタープロセスがモニターできるようになり、さらに、このデータ共有処理をライブラリ内の処理としてアプリケーションから隠蔽しているため、アプリケーションは通常のソケットAPIを用いてモニタープロセスを記述することができる。これにより本発明の目的を達成することができる。
本発明に係る第1の効果は、複数のプロセスが同じプロトコルアドレスを持つソケットのbind()が可能になる点である。これによりモニタープロセス用のプログラムのソケットプログラム部分に加える変更箇所が削減される。その理由は、ラッパーソケットAPI内部でモニターソケットに対してオーナプロセスが扱ったソケットの情報を渡すことにより、同じプロトコルアドレスを持つソケットが扱えるように見せているからである。
第2の効果は、モニタープロセスが意識した送受信プログラムを記述することなく、オーナプロセスの通信データを共有することが可能になる点である。これにより開発コストの削減が達成できる。その理由は、上記ソケットライブラリの内部で共有メモリを解したデータ共有機構を実現し、アプリケーションからは見えないところでオーナプロセスの通信データをモニタープロセスに渡すようにしているからである。
以下本発明の実施の形態について複数の実施例を用いて以下に説明する。なお、本発明は、上記の実施の形態に限定されず、本発明の技術思想の範囲内において、実施の形態が適宜変更され得るものである。
(実施例1)
図1を参照すると、本発明の実施例1は、クライアント100と、サーバ102と、それらの通信を中継するゲートウェイ装置101とから構成されている。
これら各部はそれぞれ概略次のように動作する。
クライアント100は、ゲートウェイ装置を通してサーバに接続要求やデータ送受信の要求を行う。ゲートウェイ装置101は、クライアント100とサーバ102からの要求と応答のデータを中継する。また、逆にサーバ102は、クライアント100からの接続要求やデータ要求などを受け取り、処理した後、クライアントに結果を返す。
ゲートウェイ装置101は、サーバ102からの要求と応答をクライアント100に中継する。ゲートウェイ装置101では、中継の際に、検知アプリケーションが通信内容に対して検知処理を適用する。
次に、ゲートウェイ装置101の内部のブロックダイヤグラムを表したのが図2である。オーナプロセス200はクライアント、サーバの要求と応答を中継するプロキシプロセスである。モニタープロセスA201、モニタープロセスB202が検知アプリケーションのプロセスである。各プロセスは、モニター用ソケットライブラリ227を通して通信データにアクセスする。モニター用ソケットライブラリ227は、ラッパーソケットAPI210と、共有メモリ226を含む。この共有メモリ226は、接続待ちソケット管理部211、プロセス管理部212、接続済みソケット管理部213、セッション管理部214、メッセージ管理部215から構成されている。
これら各部はそれぞれ概略次のように動作する。オーナプロセス200はクライアントからの接続を受け付けるために、ラッパーソケットAPIを利用してソケットを生成し、bind()、listen()を呼び出す。ライブラリはlisten()が呼出された際にそのソケットに関する情報を接続待ちソケット管理部211に登録する。さらに、プロセス管理部212にオーナプロセスとして登録し、システムコール230のlisten()を呼び出すと実際にクライアントからの接続待ちの処理が開始される。
ここで、クライアントからの接続が来た場合、オーナプロセスはaccept()を呼び出すことでクライアントとの接続を開始する。その際、プロセス管理部212を見てモニタープロセス数を確認し、モニタープロセス数が0の場合は接続情報とメッセージを記録せずにシステムコール230のaccept()を実行し結果を返す。もし、モニタープロセス数が1個以上存在する場合、つまり、新たな接続要求をaccept()する前にモニタープロセスが同じプロトコルアドレスのソケットに対してlisten()を呼び出した場合は、オーナプロセスがシステムコール230のaccept()を実行してクライアントとの接続を確立する。同時に接続を確立したソケットの情報を接続済みソケット管理部213に登録し、そのソケットに関してセッション管理部214とメッセージ管理部215を初期化し、メッセージ管理部215が結果を返す。
続いて、クライアントとのデータ送受信が始まると、セッション管理部214を参照してメッセージ管理部215の書き込み開始位置を取得し、メッセージ管理部215に通信内容を記録していく。
一方、モニタープロセス201はbind()呼出し時に、オーナプロセスが存在するソケットかどうかを確認し、もしそのソケットと同じならばlisten()を呼び出したと同時に、プロセス管理部212に自プロセスを追加する。さらにaccept()を呼び出した場合は、接続済みソケット管理部213から接続が確立されたソケットを取り出しセッション管理部214を初期化する。また、read()を呼び出した場合は、セッション管理部214から読み込み開始位置を取得し、メッセージ管理部215から通信内容を取得する。
次に、図3、図4のフローチャート及び図5の各テーブルを参照して本実施の形態の全体の動作について詳細に説明する。
図5は、本発明に係る管理テーブルであり、(a)は接続待ちソケット管理部211の管理テーブルであり、(b)はプロセス管理部212の管理テーブルであり、(c)は接続済ソケット管理部213の管理テーブルであり、(d)はセッション管理部214の管理テーブルであり、(e)は、メッセージ管理215の管理テーブルである。
接続待ちソケット管理部211はエントリ毎にIPアドレスとポート番号とモニタープロセス数とプロセス管理部のIndexとから構成される。プロセス管理部212管理テーブルは、Indexとソケットディスクリプタと、プロセスIDとオーナプロセスかモニタープロセスかを表すタイプとプロセス管理部の次のIndexと接続済みソケット管理部のIndexがエントリ毎に記載される。ここで、プロセス管理部の次のIndexはオーナプロセスからモニタープロセスのインデックスを辿るためのものである。また、接続済みソケット管理部のIdexは、図2(c)接続済ソケット管理部213の管理テーブルにおけるIndexに関連する。接続済みソケット管理部213の管理テーブルは、Indexとソケットアドレス構造体とソケット構造体のサイズとモニタープロセス数と接続済みソケット管理部の次のIndexと最初の MSG id の各項目がエントリ毎に記載される。ここで、最初の MSG id は、この接続済みソケットを通じて送受信された最初のデータの記録開始位置を示しており、メッセージ管理部215のMSGid を示す。また、この値はセッション管理部214の管理テーブルにおける現在の MSG idの初期値として設定される。セッション管理部214の管理テーブルは、ソケットディスクリプタと次に読み出すメッセージ管理部のMSGidを示す現在の MSG idとoffsetと、ソケットのオプションを示すsocket optionが記載される。メッセージ管理215の管理テーブルは、送信メッセージか受信メッセージかを示すメッセージタイプとデータサイズとデータと次のMSG idがエントリ毎に記載される。
図3はオーナプロセス200とモニタープロセス201がlisten()を開始し、クライアント100からの接続要求を受けてaccept()する際のフローチャートを表した図である。
まず、オーナプロセス200がシステムコール230のsocket()を呼び出し(ステップS100)、新たなソケットディスクリプタを受け取る(ステップS101)。
次に、オーナプロセス200がbind()を呼出し、プロトコルアドレスを指定する(ステップS102)。bind()を呼出されたラッパーライブラリの関数(以下ライブラリと称する)は、システムコール230のbind()を呼出し(ステップS103)、その結果をラッパーソケットAPI210の呼出しの返り値としてライブラリへ返す(ステップS104)。さらに、ライブラリはそれを返り値としてオーナプロセス200に返す(ステップS105)。
次に、オーナプロセス200がlisten()を呼出し(ステップS106)、接続受付を開始する。listen()を呼出されたライブラリはまず、接続待ちソケット管理部にIPアドレスとポート番号を格納し、さらにモニタープロセス数を0にセットし、プロセス管理部へのIndex値を格納する(ステップS107)。続いて、プロセス管理部212にオーナプロセスの情報(プロセスID、タイプ=Owner、プロセス管理部の次のIndex=−1、接続済みソケット管理部の次のIndexは新規エントリを予約して格納)を登録する(ステップS108)。続いて、ライブラリがシステムコール230のlisten() を呼出し(ステップS109)、システムコール230がその返り値をライブラリに返し(ステップS110)、ライブラリがその返り値をオーナプロセス200に返す(ステップS111)。
次に、オーナプロセス200がライブラリのaccept()をライブラリへ呼出すと(ステップS112)、ライブラリはシステムコール230のaccept() を呼出す(ステップS113)。
今、ここではクライアントからの接続要求がきていないことを想定する。するとオーナプロセス200はブロックした状態となる。さらに、ここで、モニタープロセス201が上記でオーナプロセス200によって既にlisten()が開始されているソケットと同じプロトコルアドレスのソケットでlisten()を開始することを想定する。
まず、モニタープロセス201はsocket()システムコールを呼出し(ステップS200)、システムコール230からディスクリプタを受け取る(ステップS201)。
次に、モニタープロセス201はライブラリのbind()を呼出すが(ステップS202)、ライブラリはモニタープロセスからの呼び出しの場合、システムコール230のbind()を呼出すことなく(ステップS203)、そのまま返り値をモニタープロセス201に返す(ステップS204)。
次に、モニタープロセス201がライブラリのlisten()を呼出すと(ステップS205)、ライブラリは接続待ちソケット管理部211のモニタープロセス数を+1増加し(ステップS206)、続いて、プロセス管理部212にモニタープロセス201の情報を追加する(例えばIndexの100のような情報)。また、その際にプロセス管理部212のオーナプロセスのエントリの接続済みソケット管理部のIndexを参照し、モニタープロセス201の接続済みソケット管理部のIndexに同じ値を設定し(ステップS207)、完了したらライブラリはモニタープロセス201に通知する(ステップS208)。
次に、モニタープロセス201がaccept()を呼出すと、ライブラリはプロセス管理部212の接続済みソケット管理部のIndexを参照し、次に読み出すべき接続済みソケット管理部213のIndexを取得する(ステップS209)。そのIndexが指す接続済みソケット管理部213のエントリがまだ空の場合は新たな接続はまだ確立されていないことを意味しており、モニタープロセス201はブロックする。
ここで、クライアント100から新たな接続の開始要求が来たとする(ステップS300)。すると、システムコール230のaccept()でブロックしていたオーナプロセス200は処理を再開し、接続が確立されたソケットディスクリプタを受け取り(ステップS301)、プロセス管理部212の接続済みソケット管理部のIndex値を取得してそのIndexが指す接続済みソケット管理部213のエントリに情報(例えばIndex=1001のエントリのような情報)をセットする。また、その際に、接続待ちソケット管理部211のモニタープロセス数を取得し、接続済みソケット管理部213のモニタープロセス数をその値にセットする(ステップS302)。なお、本実施形態では、このモニタープロセス数はモニタープロセスがそのソケットディスクリプタに対してclose()を呼出す度に−1減数され、0になった段階で解放されるように、リファレンスカウンタとして利用する。しかし、別の実施形態では、accept()が呼出される度に−1減数されるようにしてもよい。
次に、ライブラリはメッセージ管理部215の新規エントリのMSG id取得処理を開始し(ステップS303)、MSG idを受け取る(ステップS304)。続いてライブラリはセッション管理部214の新規エントリを確保し、ソケットディスクリプタと現在のMSG idとoffset=0とソケットオプションを設定し(ステップS305)、ライブラリへ仮想ディスクリプタを返す(ステップS306)。最後に、接続済みソケット管理部の次のエントリを確保して接続済みソケット管理部213の次のIndexを更新し(ステップS307)、プロセス管理部212のオーナプロセス情報のエントリの接続済みソケット管理部の次のIndexを更新し(ステップS308)、オーナプロセスに仮想ディスクリプタを返す(S309)。
一方、モニタープロセス201が処理を再開した場合の工程はほぼオーナプロセスの工程と同様である。プロセス管理部212の接続済みソケット管理部のIndexに登録された値を取得する。接続済みソケット管理部213の該Index値が指すエントリには新たにaccept()すべき接続の情報が格納されている。ライブラリはそのエントリの接続済みソケット管理部213のモニタープロセス数を−1減数し、モニタープロセス201用のセッション管理部214の新規エントリを取得して初期化(例えばソケットディスクリプタ=10のエントリ)し、接続済みソケット管理部213の該エントリの最初のMSG idを取得して現在のMSG idに設定する。なお、もしモニタープロセス数を −1減数した結果が0になれば、そのエントリを解放する。なお、解放する場合は関連するメッセージ管理部215のエントリも全て解放する。最後に、ライブラリは、仮想的なディスクリプタを返り値としてモニタープロセス201に返す(ステップS309)。
図4はオーナプロセス200とモニタープロセス201が接続済みソケットからread()、write()を行う際のフローチャートを表した図である。まず、オーナプロセス200がある仮想ディスクリプタに対してread()を実行したとする。具体的には、オーナプロセス200がラッパーソケットAPI210のread()を呼出す(ステップS500)。ライブラリはセッション管理部を参照して登録された仮想ディスクリプタから実際のディスクリプタに変換し取得する(ステップS501)。さらに、ライブラリはシステムコール230のread()関数の呼び出しを実行する(ステップS502)。
次にライブラリは、セッション管理部214からMSG idとoffsetを取得し、メッセージ管理部215のMSG idのエントリのoffsetの位置からメッセージを書き込み。もし、メッセージタイプが変更された場合、つまり、送信と受信が切り替わった場合は新規にメッセージ管理部のエントリを取得して書き込み(ステップS505)、書き込みが完了したらそのMSG idとoffsetを取得する(ステップS506)。ライブラリはどこまでデータを記録したかを、取得したMSG idを元にセッション管理部の現在のMSG idとoffset値として更新し(ステップS507)、最後にオーナプロセスに読み込みバイト数として返す(ステップS509)。
さらに、ここでモニタープロセス201がread()を実行した場合(ステップS600)、ライブラリはモニタープロセスと判断してセッション管理部の現在のMSG idとoffsetを取得する (ステップS602)。
更に、ライブラリはメッセージ管理部215のMSG idが示すエントリに格納されたデータから順次データを取得し(ステップS602)、読み取ったバイト数を取得する(ステップS603)。続いてライブラリは次の読み取り位置をセッション管理部214の現在のMSG idとoffsetとして更新し(ステップS605)、モニタープロセス201に読み取りバイト数を返す(ステップS605)。
次に、クライアントからread()関数を実行した状態で(ステップS700)、オーナプロセス200がライブラリのwrite()関数を呼出したとする(ステップS701)。ライブラリは、セッション管理部214を参照して実際のディスクリプタに変換する(ステップS702)。次に、ライブラリは、システムコール230のwrite()関数を実行し(ステップS703)、実際の書き込みバイト数を受信する(ステップS704)。続いてライブラリは、メッセージ管理部215に実際に書き込んだデータとそのデータの情報(例えばMSGid=1001のような情報)を記録し(ステップS705)、その書き込み位置(MSG idとoffset)を取得し(ステップS706)、さらにその書き込み位置の情報元にセッション管理部214の現在のMSG idとoffsetを更新する(ステップS707)。最後に、ライブラリがオーナプロセス200に書き込みバイト数を返り値として返す(ステップS708)。
また、モニタープロセス201がライブラリへwrite()関数を呼び出した場合は、ライブラリはモニタープロセスなので書き込みを拒否と判定する(ステップS802)し、エラー結果をモニタープロセス201に返す(ステップS803)。
次に、本実施の形態の効果について説明する。
本実施の形態では、ライブラリ内で実際のソケットディスクリプタと仮想的なソケットディスクリプタの対応を管理し、オーナプロセスの通信内容を記録、管理するように構成されているため、モニタープロセスが同じプロトコルアドレスのソケットを使ってオーナプロセスの通信内容をモニターすることが可能となっている。
これにより、モニタープロセスは通常のソケットAPIを介してモニタープログラムを記述することが可能になる。また、本構成により実装がシンプルになるというメリットがある。
(実施例2)
次に、本発明の第2の実施例について図面を参照して詳細に説明する。
図6を参照すると、本発明の第2の実施例は、図2と比較して、オーナプロセス200に対応するプロセス管理部412と、オーナプロセス200に対応するセッション管理部414と、モニタープロセス201に対応するプロセス管理部512と、モニタープロセス201に対応するセッション管理部514とが共有メモリ426外、つまり、各プロセスのメモリ空間に配置されている。プロセス管理部412とプロセス管理部512とは接続済ソケット管理部413と接続され、セッション管理部414とセッション管理部514とがメッセージ管理部415と接続される。一方、接続待ちソケット管理部411とプロセス管理部412とプロセス管理部512とセッション管理部414とセッション管理部514とはいずれもラッパーソケットAPI410と接続される。
共有メモリ426は、接続待ちソケット管理部411と接続済ソケット管理部413とメッセージ管理部415が実装される。
その他の構成要素やフローチャートは第一の実施形態と同様である。第一の実施の形態と同様の構成要素、フローチャートについては、図2と同一の符号を付し、詳細な説明を省略する。
次に、本発明の実施例2の効果について説明する。
本発明を実施するための最良の形態では、プロセス管理部、セッション管理部214が共有メモリ上ではなく、各プロセス専用のローカルなデータとして構成されているため、各ブロックにアクセスする際に無駄なオーバヘッドがなく、高速に処理できる。
なお、第一の実施形態には、実装がシンプルになるというメリットがある。
本発明によれば、セキュリティ・ゲートウェイ上でソケットを通してアプリケーション間でデータ共有を行うといった用途に適用できる。また、Webプロキシやその他プロキシといった装置の中で、プロキシされたデータを監視する用途にも適用可能である。
本発明の第一の実施例に係るモニター用ソケットライブラリを搭載するゲートウェイ装置を含むシステムの全体構成図である。 本発明の第一の実施例に係るモニター用ソケットライブラリを搭載するゲートウェイ装置のブロックダイヤグラムである。 本発明の第一の実施例に係るモニター用ソケットライブラリを搭載するゲートウェイ装置の通信方法のフローチャートである。 本発明の第一の実施例に係るモニター用ソケットライブラリを搭載するゲートウェイ装置の通信方法のフローチャートである。 本発明の第一の実施例に係るモニター用ソケットライブラリを搭載するゲートウェイ装置の通信方法における(a)接続待ちソケット管理部211の状態テーブルと、(b)プロセス管理部212の状態テーブルと、(c)接続済ソケット管理部213の状態テーブルと、(d)セッション管理部214の状態テーブルと、(e)メッセージ管理部215の状態テーブルである。 本発明の第一の実施例に係るモニター用ソケットライブラリを搭載するゲートウェイ装置のブロックダイヤグラムである。
符号の説明
100 クライアント
102 サーバ
101 ゲートウェイ装置
200 オーナプロセス
201 モニタープロセスA
202 モニタープロセスB
210 ラッパーソケットAPI
211 接続待ちソケット管理部
212 プロセス管理部
213 接続済みソケット管理部
214 セッション管理部
215 メッセージ管理部
226 共有メモリ
227 モニター用ソケットライブラリ
230 システムコール
410 ラッパーソケットAPI
411 接続待ちソケット管理部
412 プロセス管理部
413 接続済ソケット管理部
414 セッション管理部
415 メッセージ管理部
426 共有メモリ
512 プロセス管理部
514 セッション管理部

Claims (18)

  1. あるアプリケーションであるオーナプロセスの通信内容を他のアプリケーションであるモニタープロセスが共有可能なモニター用ソケットライブラリを搭載するゲートウェイ装置において、前記モニター用ソケットライブラリに設けられる共有メモリ空間と、
    前記共有メモリ空間に設けられて、オーナプロセスが接続を受け付けるために生成した接続待ちソケットを格納するための接続待ちソケット管理部と、
    前記共有メモリ空間に設けられて、前記オーナプロセスが接続の受け付けを開始する際に、前記オーナプロセスを登録するためのプロセス管理部と、
    前記共有メモリ空間に設けられて、前記オーナプロセスが接続を確立した際に、前記接続済みソケットの情報を格納するための接続済みソケット管理部と、
    前記オーナプロセスによるデータの送受信が開始された際に、実際に送受信された通信データを格納するためのメッセージ管理部と、
    前記メッセージ管理部における前記通信データの記録開始位置に関する情報を格納するためのセッション管理部と、
    を備え、
    前記モニター用ソケットライブラリは、前記モニタープロセスのソケットが前記オーナプロセスのソケットと同じであれば、前記モニタープロセスが接続の受け付けを開始する際に前記モニタープロセスのソケットを前記プロセス管理部に追加し、さらに、前記モニタープロセスが接続を確立する場合には前記接続済みソケット管理部から前記接続済みソケットの情報を取り出すとともに前記セッション管理部を初期化し、前記モニタープロセスが通信データの読み込みを行う場合には前記セッション管理部から前記通信データの読み込みの開始位置に関する情報を取得して前記メッセージ管理部から前記通信内容を取り出すこと
    を特徴とするゲートウェイ装置。
  2. 前記接続待ちソケット管理部は、プロトコルアドレスと、参照プロセス数と、
    を管理するテーブルを備えたことを特徴とする請求項1に記載のゲートウェイ装置。
  3. 前記プロセス管理部は、前記接続待ちソケットのディスクリプタと、
    その接続待ちソケットから接続を開始し、現在扱っている接続済みソケットとを管理するテーブルを備えたことを特徴とする請求項1又は請求項2に記載のゲートウェイ装置。
  4. 前記接続済みソケット管理部は、前記接続済みソケットに関するソケットの情報と、
    そのソケットの参照プロセス数と、
    前記通信データを記録したテーブルの開始位置とを管理するテーブルを備えたことを特徴とする請求項1乃至3のいずれかに記載のゲートウェイ装置。
  5. 前記セッション管理部は、前記接続済みソケットのディスクリプタと、
    オーナプロセスの場合はそのディスクリプタを通して通信したデータの書き込み位置と、
    モニタープロセスの場合は記録されたデータの読み込み位置とを管理するテーブルを備えたことを特徴とする請求項1乃至4のいずれかに記載のゲートウェイ装置。
  6. 前記メッセージ管理部は、前記オーナプロセスが前記接続済みソケットを通して通信した際の通信データの長さと、実際のデータと、を管理するテーブルを備えたことを特徴とする請求項1乃至5のいずれかに記載のゲートウェイ装置。
  7. あるアプリケーションであるオーナプロセスの通信内容を他のアプリケーションであるモニタープロセスが共有可能なモニター用ソケットライブラリを搭載するゲートウェイ装置を用いて、前記モニター用ソケットライブラリに共有メモリ空間に設けられて、
    接続待ちソケット管理部は、前記共有メモリ空間に設けられてオーナプロセスが接続を受け付けるために生成した接続待ちソケットを格納する工程と、
    プロセス管理部は、前記共有メモリ空間に設けられて、前記オーナプロセスが接続の受け付けを開始する際に、前記オーナプロセスを登録する工程と、
    接続済みソケット管理部は、前記共有メモリ空間に設けられて、前記オーナプロセスが接続を確立した際に、前記接続済みソケットの情報を格納する工程と、
    メッセージ管理部は、前記オーナプロセスによるデータの送受信が開始された際に、実際に送受信された通信データを格納する工程と、
    セッション管理部は、前記メッセージ管理部における前記通信データの記録開始位置に関する情報を格納する工程と、
    を備え
    前記モニター用ソケットライブラリは、前記モニタープロセスのソケットが前記オーナプロセスのソケットと同じであれば、前記モニタープロセスが接続の受け付けを開始する際に前記モニタープロセスのソケットを前記プロセス管理部に追加し、さらに、前記モニタープロセスが接続を確立する場合には前記接続済みソケット管理部から前記接続済みソケットの情報を取り出すとともに前記セッション管理部を初期化し、前記モニタープロセスが通信データの読み込みを行う場合には前記セッション管理部から前記通信データの読み込みの開始位置に関する情報を取得して前記メッセージ管理部から前記通信内容を取り出す
    ことを特徴とするモニター用ソケットライブラリを搭載するゲートウェイ装置の通信方法。
  8. 前記接続待ちソケット管理部は、プロトコルアドレスと、参照プロセス数とを管理するテーブルを備えて通信することを特徴とする請求項7に記載のゲートウェイ装置の通信方法
  9. 前記プロセス管理部は、前記接続待ちソケットのディスクリプタと、
    その接続待ちソケットから接続を開始し、現在扱っている接続済みソケットとを管理することを特徴とする請求項7に記載ゲートウェイ装置の通信方法。
  10. 前記接続済みソケット管理部は、前記接続済みソケットに関するソケットの情報と、
    そのソケットの参照プロセス数と、
    前記通信データを記録したテーブルの開始位置とを管理することを特徴とする請求項7に記載ゲートウェイ装置の通信方法。
  11. 前記セッション管理部は、前記接続済みソケットのディスクリプタと、
    オーナプロセスの場合はそのディスクリプタを通して通信したデータの書き込み位置と、
    モニタープロセスの場合は記録されたデータの読み込み位置とを管理することを特徴とする請求項7に記載ゲートウェイ装置の通信方法。
  12. 前記メッセージ管理部は、前記オーナプロセスが前記接続済みソケットを通して通信した際の通信データの長さと、
    実際のデータとを管理することを特徴とする請求項7に記載ゲートウェイ装置の通信方法。
  13. あるアプリケーションであるオーナプロセスの通信内容を他のアプリケーションであるモニタープロセスが共有可能なモニター用ソケットライブラリを利用するプログラムであって、
    前記モニター用ソケットライブラリの共有メモリ空間に設けられた接続待ちソケット管理部が、オーナプロセスが接続を受け付けるために生成した接続待ちソケットを格納する工程と、
    前記共有メモリ空間に設けられたプロセス管理部が、前記オーナプロセスが接続の受け付けを開始する際に、前記オーナプロセスを登録する工程と、
    前記共有メモリ空間に設けられた接続済みソケット管理部が、前記オーナプロセスが接続を確立した際に、前記接続済みソケットの情報を格納する工程と、
    メッセージ管理部が、前記オーナプロセスによるデータの送受信が開始された際に、実際に送受信された通信データを格納する工程と、
    セッション管理部が、前記メッセージ管理部における前記通信データの記録開始位置に関する情報を格納する工程と、
    前記モニター用ソケットライブラリが、前記モニタープロセスのソケットが前記オーナプロセスのソケットと同じであれば、前記モニタープロセスが接続の受け付けを開始する際に前記モニタープロセスのソケットを前記プロセス管理部に追加する工程と、前記モニタープロセスが接続を確立する場合には前記接続済みソケット管理部から前記接続済みソケットの情報を取り出すとともに前記セッション管理部を初期化する工程と、前記モニタープロセスが通信データの読み込みを行う場合には前記セッション管理部から前記通信データの読み込みの開始位置に関する情報を取得して前記メッセージ管理部から前記通信内容を取り出す工程とを、ゲートウェイ装置に実行させることを特徴とするプログラム。
  14. 前記接続待ちソケット管理部は、プロトコルアドレスと、参照プロセス数と、
    を管理するテーブルを備えて通信することを特徴とする請求項13に記載のプログラム
  15. 前記プロセス管理部は、前記接続待ちソケットのディスクリプタと、
    その接続待ちソケットから接続を開始し、現在扱っている接続済みソケットと、
    を管理することを特徴とする請求項13に記載プログラム。
  16. 前記接続済みソケット管理部は、前記接続済みソケットに関するソケットの情報と、
    そのソケットの参照プロセス数と、
    前記通信データを記録したテーブルの開始位置と、
    を管理することを特徴とする請求項13に記載プログラム。
  17. 前記セッション管理部は、前記接続済みソケットのディスクリプタと、
    オーナプロセスの場合はそのディスクリプタを通して通信したデータの書き込み位置と、
    モニタープロセスの場合は記録されたデータの読み込み位置と、
    を管理することを特徴とする請求項13に記載プログラム。
  18. 前記メッセージ管理部は、前記オーナプロセスが前記接続済みソケットを通して通信した際の通信データの長さと、実際のデータとを管理することを特徴とする請求項13に記載プログラム。
JP2008058826A 2008-03-07 2008-03-07 モニター用ソケットライブラリを搭載するゲートウェイ装置、モニター用ソケットライブラリを搭載するゲートウェイ装置の通信方法、モニター用ソケットライブラリを搭載するゲートウェイ装置の通信プログラム Expired - Fee Related JP5229455B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008058826A JP5229455B2 (ja) 2008-03-07 2008-03-07 モニター用ソケットライブラリを搭載するゲートウェイ装置、モニター用ソケットライブラリを搭載するゲートウェイ装置の通信方法、モニター用ソケットライブラリを搭載するゲートウェイ装置の通信プログラム
US12/400,531 US8291486B2 (en) 2008-03-07 2009-03-09 Gateway device having socket library for monitoring, communication method of gateway device having socket library for monitoring, and communication program of gateway device having socket library for monitoring

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008058826A JP5229455B2 (ja) 2008-03-07 2008-03-07 モニター用ソケットライブラリを搭載するゲートウェイ装置、モニター用ソケットライブラリを搭載するゲートウェイ装置の通信方法、モニター用ソケットライブラリを搭載するゲートウェイ装置の通信プログラム

Publications (2)

Publication Number Publication Date
JP2009217410A JP2009217410A (ja) 2009-09-24
JP5229455B2 true JP5229455B2 (ja) 2013-07-03

Family

ID=41054994

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008058826A Expired - Fee Related JP5229455B2 (ja) 2008-03-07 2008-03-07 モニター用ソケットライブラリを搭載するゲートウェイ装置、モニター用ソケットライブラリを搭載するゲートウェイ装置の通信方法、モニター用ソケットライブラリを搭載するゲートウェイ装置の通信プログラム

Country Status (2)

Country Link
US (1) US8291486B2 (ja)
JP (1) JP5229455B2 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012175174A (ja) * 2011-02-17 2012-09-10 Seiko Epson Corp ネットワーク通信装置、周辺装置、及びネットワーク通信方法
US9229750B1 (en) 2012-08-17 2016-01-05 Google Inc. Virtual machine networking
US9137270B2 (en) * 2012-12-03 2015-09-15 International Business Machines Corporation Binding multiple addresses to a socket in a network system
US9697108B2 (en) * 2013-08-12 2017-07-04 International Business Machines Corporation System, method, and apparatus for automatic recording and replaying of application executions
CN105471927B (zh) * 2014-05-30 2019-01-08 华为技术有限公司 一种对业务路由报文进行处理的方法和业务节点
US9785490B2 (en) 2014-12-23 2017-10-10 Document Storage Systems, Inc. Computer readable storage media for dynamic service deployment and methods and systems for utilizing same
US10129220B2 (en) 2015-06-13 2018-11-13 Avocado Systems Inc. Application and data protection tag
US10397277B2 (en) * 2015-06-14 2019-08-27 Avocado Systems Inc. Dynamic data socket descriptor mirroring mechanism and use for security analytics
US10193889B2 (en) 2015-06-14 2019-01-29 Avocado Systems Inc. Data socket descriptor attributes for application discovery in data centers
US10270810B2 (en) 2015-06-14 2019-04-23 Avocado Systems Inc. Data socket descriptor based policies for application and data behavior and security
US10148697B2 (en) 2015-06-16 2018-12-04 Avocado Systems Inc. Unified host based security exchange between heterogeneous end point security agents
US10193930B2 (en) 2015-06-29 2019-01-29 Avocado Systems Inc. Application security capability exchange via the application and data protection layer
US10356068B2 (en) 2015-07-14 2019-07-16 Avocado Systems Inc. Security key generator module for security sensitive applications
US10354070B2 (en) 2015-08-22 2019-07-16 Avocado Systems Inc. Thread level access control to socket descriptors and end-to-end thread level policies for thread protection
US10310872B2 (en) * 2017-02-21 2019-06-04 Red Hat, Inc. Transparent fast application launcher
KR20200094875A (ko) 2019-01-30 2020-08-10 삼성디스플레이 주식회사 접착 결함 검출 장치 및 이를 이용한 검출 방법
CN112181670B (zh) * 2019-07-02 2023-04-11 西安诺瓦星云科技股份有限公司 进程间通讯方法及装置和Linux设备
US11323309B1 (en) * 2021-01-14 2022-05-03 Juniper Networks, Inc. Asynchronous socket replication between nodes of a network
US11570116B1 (en) 2021-03-10 2023-01-31 Juniper Networks, Inc. Estimating standby socket window size during asynchronous socket replication
DE102023104424A1 (de) 2023-02-23 2024-08-29 Cariad Se Verfahren zum Ermitteln von Zustandsdaten eines Nachrichtenpuffers sowie Applikationssoftware, Programmbibliothek, Steuergerät für ein Kraftfahrzeug und Kraftfahrzeug

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3116443B2 (ja) * 1991-08-30 2000-12-11 ソニー株式会社 ソケット通信ログ蓄積装置
JPH10214196A (ja) * 1997-01-29 1998-08-11 Oki Electric Ind Co Ltd ソフトウェア連携処理装置
JP3076280B2 (ja) * 1997-08-26 2000-08-14 日本電気航空宇宙システム株式会社 共有メモリを使用したプロセス間通信方式
JP3648520B2 (ja) * 1998-09-11 2005-05-18 剛 石井 ネットワーク通信の監視・制御方法及びこれを利用した監視・制御装置並びにネットワーク通信の監視・制御プログラムを記録したコンピュータ読み取り可能な記録媒体
US20020129172A1 (en) 2001-03-08 2002-09-12 International Business Machines Corporation Inter-partition message passing method, system and program product for a shared I/O driver
JP2006127461A (ja) * 2004-09-29 2006-05-18 Sony Corp 情報処理装置、通信処理方法、並びにコンピュータ・プログラム
JP4170299B2 (ja) * 2005-01-31 2008-10-22 独立行政法人 宇宙航空研究開発機構 通信状態遷移モニタ方法及びこれを利用した通信状態遷移モニタ装置
US7735116B1 (en) * 2006-03-24 2010-06-08 Symantec Corporation System and method for unified threat management with a relational rules methodology

Also Published As

Publication number Publication date
US20090228970A1 (en) 2009-09-10
US8291486B2 (en) 2012-10-16
JP2009217410A (ja) 2009-09-24

Similar Documents

Publication Publication Date Title
JP5229455B2 (ja) モニター用ソケットライブラリを搭載するゲートウェイ装置、モニター用ソケットライブラリを搭載するゲートウェイ装置の通信方法、モニター用ソケットライブラリを搭載するゲートウェイ装置の通信プログラム
US6775700B2 (en) System and method for common information model object manager proxy interface and management
EP3095214B1 (en) An entity handle registry to support traffic policy enforcement
JP4661774B2 (ja) 中継サーバ
JP3730563B2 (ja) セッション管理装置およびセッション管理方法およびプログラムおよび記録媒体
CN106663033B (zh) 在事务中间件机器环境支持绕域和代理模型并更新服务信息以跨域消息传送的系统和方法
KR100794432B1 (ko) 데이터 통신 프로토콜
JP2004295898A (ja) カスタマイズ可能な通信チャネルおよびプログラミングモデルを通じたメッセージの送受信
JP2009532944A (ja) コンピューティングノード間通信の管理
KR101137132B1 (ko) 맞춤형 태그기반 프로토콜에서의 참조에 의한 전송
CN113326155B (zh) 一种信息处理方法、装置、系统和存储介质
US7934218B2 (en) Interprocess communication management using a socket layer
US7818390B2 (en) Method for transferring data between terminal apparatuses in a transparent computation system
CN108287894A (zh) 数据处理方法、装置、计算设备及存储介质
JP2019536332A (ja) オンプレミスとオフプレミスとの通信方法、システム、プログラム
JP4424910B2 (ja) 任意のコンポーネントに相互にデータを転送させるシステム
KR20080063282A (ko) 피어 이름 분석 프로토콜 심플 애플리케이션 프로그램인터페이스
US20030037171A1 (en) System and method for distributed device control
US12120203B2 (en) UDP message distribution method, UDP message distribution apparatus, electronic device and computer readable storage medium
US7792921B2 (en) Metadata endpoint for a generic service
EP2257000B1 (en) Copy routing tables
US11663058B1 (en) Preemptive filtering of events of an event bus with a deterministic filter
JP2010068346A (ja) 通信サーバ装置、アドレス解決方法およびアドレス解決プログラム
AU2020385682A1 (en) Communication with an application flow in an integration system
JP2006121699A (ja) 第1のデータネットワークから第2のデータネットワークへのデータパケットのカーネルレベルの通過のための方法及び装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110207

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120525

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120606

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120806

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20121024

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130124

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20130131

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130220

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130305

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160329

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees