s
top_logoL   top_logoR
  ホーム | 製品情報 | ソリューション | ニュース | サポート | お問い合わせ | サイトマップ
製品情報
検索
カタログ請求
catalog
特集記事
ポリシー
運営元
IBSlogo
本サイトはアイ・ビー・エス・ジャパン株式会社によって、運営されております。
 

ソケットモードとリアルCOMモード

Socket Mode—TCP Server, TCP Client, and UDP
シリアルサーバがTCP サーバモードに設定されるとデバイスサーバは、サーバのような振る舞いをします。つまり、シリアルデバイスサーバは、TCP/IPネットワーク上にユニークなIPポートアドレスを確立し、それから、ホスト(ホストは、クライアントの役割を演じます)により受動的にコンタクトされることを待ちます。一旦接続が確立されるとホストコンピュータは、シリアルデバイスとのデータの送受信を行うことができます。
 
TCP サーバモードは、同時に最大4つの接続をサポートし複数のホストは、同じシリアルデバイスと同時に通信することができます。
 
メリット
  • OSインディペンデント
  • ホストは、TCP/IPネットワークを経由してシリアルデバイスに対してポーリングできます
  • 最大4つの同時接続をサポート
 
シリアルサーバがTCPクライアントモードに設定されると、デバイスサーバは、クライアントのような振る舞いをします。つまり、つまり、シリアルデバイスサーバは、TCP/IPネットワーク上にユニークなIPポートアドレスを確立し、それから、ホスト(ホストは、サーバの役割を演じます)に対して能動的に、1台もしくはそれ以上のホストにコンタクトをします。一旦接続が確立されるとホストコンピュータは、シリアルデバイスからのデータの送受信ができます。
 
TCPクライアントモードは、同時に最大4つの接続をサポートし複数のホストは、同じシリアルデバイスと同時に通信することができます。
 
メリット
  • OSインディペンデント
  • TCP/IPネットワークを経由してイベント発生毎の通信になります
  • 最大4つの同時接続をサポート
 
TCPコミュニケーションと比較してUDPは,より速く、より効率的です。UDPモードで1台または複数のホストコンピュータへシリアルデバイスからユニキャストまたはマルチキャストデータを、また、シリアルデバイスは、1台または複数のホストコンピュータからデータを受け取ることもできますのでメッセージ・ディスプレイのアプリケーションには最適です。
 
メリット
  • OSインディペンデント
  • TCP/IPを介してマルチキャスト
 
Real COM Mode (Driver Mode)
シリアルデバイスサーバのメーカーは、Windows 95/98/ME/NT/2000/XP/2003システムで動作するCOMドライバを提供しています。また、Linuxシステムにおいては、TTYドライバを提供しています。ドライバは、ホストとシリアルデバイス間の透過的な接続を、TCPポートをマッピングすることにより、確立します。マッピングはTCPポートにより、デバイスサーバのシリアルポートを、ホストコンピュータ上のローカルCOM/TTYポートに対応させます。
 
メリット
  • アプリケーション・ソースコードの修正なしにCOM/TTYアプリケーションをイーサネットにアップグレード
 
ソケットモード
オペレーションモードの中のソケットモードは、最初からドライバをインストールしなくてもTCP/IPネットワーク上のシリアル・デバイスサーバに直接アクセスする方法を提供します。シリアル・デバイスサーバをTCP/IPネットワーク層上で直接制御するためには、TCP/IPネットワークの基本となる概念の知識、例えばTCP, UDP, IP, Netmask, および Routingのようなものが必要です。この知識のないことが重大欠点ではありませんがインターネットに関連する製品および技術は極めてポピュラーであり、殆どのネットワーク技術者は、今やTCP/IPの概念には慣れ親しんでいます。
 
ソケット(Socket)は、TCP/IPネットワーク上のネットワーク・デバイスにアクセスするのに使用されている標準のAPI(アプリケーション・プログラミング・インターフェース)です。2種類のAPI規格が通常使われます。もともとの規格は、Unix/Linux環境用に開発され、今では一般にもソケットと呼ばれるようになりました。もう一つのソケットAPI規格は、Windows環境で使用されるもので、WinSockと呼ばれています。これら2つの規格には、基本的な相違点がありますが、2つのシステムから呼び出されるAPI機能の殆どが同じ構造をしており、結果的にソケットベースのネットワーク制御プログラムは、UnixとWindows環境間を簡単に移行できます。実際、このようなプログラムは、殆どのシステムのプラットフォーム間でポータブル(移植可能)ですので−Windows, Linux, Sun OS, およびVxWorks, Windows CE, pSOSのようなRTOS (Real-Time Operating Systems)さえも含めてソケットは、システムプログラマの殆どに幅広く採用されています。
 
TCP 対UDP
ソケットモードを詳しく述べる前に、2つの転送プロトコルについて簡単に説明します。TCP (Transmission Control Protocol) とUDP (User Datagram Protocol)の2つ共にTCP/IPネットワーク上でデータを送るためIP層の上に位置します。TCPを特徴付ける、この強力な方法は、コネクション・オリエンテッドで信頼性のあるデータ伝送を提供できることにある、言われています。コネクション・オリエンテッドの役割は、ホストがデータを転送し始める前に、先ずシリアル・デバイスのサーバと接続を確立しなければなりません。これは電話呼び出しを毎日の業務にするのと似ています。このような場合、先ず会話を始める前に他方の局の誰かに接続しなければなりません。
特徴の2番目は、TCPが信頼のあるデータ転送のメカニズムを提供するということです。このことは、各パケットが配信される前に十分にチェックされ、受信デバイスが確証の取れたパケットを受け取った後に、送り手にアクノレッジ(正常受信完了)を発行する必要があることを意味します。
 
このアクノレッジの発行と受信のプロセスは、TCPが伝送エラーを検出可能し、必要に応じて指定のパケットを再送信できるようにします。更にTCPは、自動的にパケットの接続順の番号に基づいてパケットを再組み立てします。このような方法をとることにより、これらの特徴がTCPを自然と信頼のおけるデータ伝送のプロトコルにします。
実際、世界中の応用例において、TCPは、データストリームの伝送用に優れており、基幹通信メディアの品質が特に信頼のおけない場合においては、大変良いソリューションとなっています。しかしながら、TCPは、本質的に高速応答するプロトコルではありません。例えば、別なネットワークノードと接続を確立しようとすると非常に長い時間待たされることがあります。TCPは一度切断された接続を再確立しようとしますが、TCPは、接続が失敗したことを宣言するのに“分”オーダーの時間がかかります。
 
2番目の転送オプションは、UDPです。これは限られたデータ量をトータル的にみて高速で伝送するのに理想的です。UDPが高速データ伝送を提供するものとして特徴付けられていることは、この理由によります。UDPはUDPのデータグラム(パケットに入っている情報)を送る前に接続を確立する必要はなく、受信者がアクノレッジを発行する必要もありません。更に、UDPのデータグラムは、典型的には通常のTCPパケットサイズよりも小さく応答時間およびデータ伝送効率は、はるかに改良されています。これは、誰かに郵便封筒を送る状況に似ています。封筒に宛先を書いた後にすべきことは、最も近くの郵便ポストに入れるだけです。期待することは、封筒がその宛先に滞りなくそのまま届くことですが、受信者は、アクノレッジの発行を要求されません。UDPの場合、信頼性は、二の次で、速度優先プロトコルであり、お使いのアプリケーションにそれを組み込むことによって信頼性を強化する可能性もあります。
 
他に注目に値するUDPプロトコルの特徴は、各ポイント間伝送に付け加えてポイントからマルチポイントへの伝送を処理するブロードキャストまたはマルチキャストの技法も使っていることです。実際、世界の応用例において、UDPは、カードリーダ、制御機器(PLC、CNC等)およびその他の類似機器に接続する場合に使用されるデータパケット伝送として優れています。ネットワーク環境がうまくいっている時に、UDPを使って全体の伝送効率を上げることが可能です。
最近のシリアル・デバイスサーバは、TCPまたはUDPのどちらかをベースにする通信能力を持っています。上記は、どちらのプロトコルがお持ちのアプリケーションに向いているか選択するのに必要な知識を紹介したものです。
 
TCPサーバモード
TCPサーバーモードにおいて、シリアル・デバイスサーバは、シリアル・デバイスにとって、ネットワークエージェントとして動作します。例えば、シリアル・コンソールポートを持ったシリアルデバイス(例えばファイルサーバ)があるとします。このシリアル・コンソールポートは、TCPサーバーモードの基でシリアル・デバイスサーバに接続していますが、シリアル・デバイスサーバ経路でネットワークにアクセス可能なポイントになります。TCPサーバーモードにおけるシリアル・デバイスサーバは、コンソール・ホストからのTCP接続を可能にしてコンソール・ホストとシリアル・デバイス間の2方向伝送を提供します。
上図に示した例で考察します。デバイスサーバがファイルサーバのコンソール・ポートに接続されています。この場合、ファイルサーバは、大規模サーバールームにあるうちの1つであっても、あるいはシステム管理者が容易にアクセスできないリモートの場所に設置されていても構いません。シリアル・デバイスサーバのイーサネット・ポートをLANに接続することによって、システム管理者は、同じLAN上にあるホストから、または若しLANがインターネットに接続されていれば、そのホストからPCのコンソールマネージメント機能にアクセスできます。
 
TCPクライアントモード
TCPクライアントモードのオペレーションは、別なネットワークデバイス(例えばPC)上に置かれているサーバプログラムと通信を頻繁に確立する必要があるシリアル・デバイス用に設計されています。この場合、TCPクライアントとして稼動しているシリアル・デバイスサーバは、サーバーソフトウェアと頻繁にTCP接続を確立します。シリアル・デバイスからのデータがサーバソフトウェアに転送された後、シリアル・デバイスサーバは、自動的にTCP接続を切断します。接続されている間、サーバソフトウェアは、シリアル・デバイスサーバ経由でシリアル・デバイスへデータを送ることができます。TCPクライアントは、コネクト・オン・デマンド(必要時接続)タイプに適し、許可される最大同時TCP接続を超える位の非常に多くのシリアル・デバイスを処理するホストに有効な機能と言えるでしょう。加えて、シリアル・デバイスは、殆どのサーバソフトウェアと互換性を保証するデータパッキング機能が搭載されています。
一例として、上図に示すカードリーダを考えてみます。カードリーダは、その機能性から一般的に24時間の運用がされることが多くあります。一度カードリーダにカードを読ませると、そのストアされたデータは、適切なシリアル信号に変換されシリアル・デバイスサーバのシリアルポート経由でデバイス・サーバへ送られます。デバイス・サーバは、既にリモートPCまたはデバイス上の特定サーバーのアプリケーションにデータを送る準備が完了しており、シリアルデータをTCPパケットのフォームにしてリモートアプリケーション(上図の場合にはノートPC上にあります)との接続要求を行ってイーサネットを経由してリモートのホストへそのパケットを送ります。
 
UDPサーバ/クライアント
UDPサーバ/クライアント・モードのオペレーションは、UDPプロトコル層上で高速データ伝送を必要とするアプリケーション用として設計されています。UDPサーバ/クライアント機能を持つシリアル・デバイスサーバを使うと、シリアル・デバイスは、殆ど同時に複数の宛先へデータを送ることができます。UDPの本来の高速性とデータパッキング機能のお陰で、シリアル・デバイスサーバは、古くから使用されているシリアルデバイスを強力にネットワークに接続可能なデバイスに変身させます。スキャナ、カードリーダ、指紋認識装置、光学スキャナのような入力デバイスには、最適な接続といえます。
 
UDPサーバ/クライアント
シリアル・デバイスサーバは、Windows 95/98/ME、/NT/2000/XP/2003で動作するネイティブ・リアルCOMドライバを提供しており、その多くはLinux およびUnixのOS用にfixed ttyとreal ttyドライバも提供しています。シリアル・デバイスサーバのシリアルポート用として、ホストコンピュータに仮想ローカルCOMポートを作ることによってドライバは、ホストとシリアルデバイス間に透過的コネクションを確立します。これが重要な点であり、ユーザは、アプリケーション用に新しくシリアル通信のソフトウェアを書き直す必要がありません。実際のところ、シリアルデバイスサーバ用のドライバは、しばしばポート・リダイレクト・ソフトウェアを参照します。その主な機能は、コンピュータがシリアルポートのために意図されたデータであると考えることを妨害し、そしてコンピュータのイーサネットカードを通してリダイレクトすることです。実際のリアルCOMドライバは、リモートのシリアルポートとPC間のデータを転送するばかりでなくRTS, CTS, DTR, DSR, DCDピンのようなシリアルポートのライン信号も操作できます。実際、リアルCOMドライバは、世界中広く行き渡っているシリアルデバイスの殆どを制御できる最高の能力を提供します。
 
リアルCOMモード:シングル・ホスト・アプリケーション
シングルホスト・アプリケーションは、PCのCOMポートに直接接続されるカードリーダのようなシリアルデバイスをホストとデバイスを自然な形で延長してセットアップします。即ち、1台のホストがシリアル・デバイスに接続され、デバイスのデータ収集および制御は、この1台のホストに限定されます。1台のホストコンピュータだけがデバイス・サーバのシリアルポートに接続されたシリアル・デバイスをアクセスすることができます。
 
ここに示した図はシングル・ホストモード用に構成された典型的なデバイス・サーバの動作例です。この場合カードリーダは、IPアドレス192.168.127.254に設定されたシングルポートのデバイス・サーバに接続され、デバイス・サーバのイーサネットポートは、LANに接続されています。このLANは一般的には、Hubまたはスイッチに接続するストレート結線のイーサネットケーブルを使います。IPアドレスを 192.168.127.10にセットしたホストコンピュータは、同じLANに接続されています。
構成図は、データがカードリーダからイーサネット上でホスト・コンピュータを経由してユーザーアプリケーションまで届く場合の一般的な通信路を示しています。留意しておくことは、シリアル・デバイスサーバが自動的にイーサーネット上を転送できるシリアルデータを準備するということです。
デバイス・サーバのファームウェアには、TCP/IPのプロトコル・スタックがフル装備されていて、イーサネット・フレームでフォーマットしたTCPパケットの中へシリアルデータを最適になるようにパックし、ホストのイーサネット・カードに送ります。ホストコンピュータは、自身のTCP/IPプロトコルスタックを通して、ホスト・アプリケーションにシリアルデータを安全に送ります。
 
リアルCOMモード:マルチホスト・アプリケーション
マルチホスト・アプリケーションは、1台もしくはそれ以上のコンピュータが複数のシリアルデバイスにアクセスできる環境を設定するための、いろいろな手段を提供します。またインターネットへのアクセスを可能にするオプションも含みます。正確に表現すると、マルチホスト・アプリケーションは、次のように特徴付けられます。
  • 1台以上のホストがデバイス・サーバのシリアルポートに接続されたシリアル・デバイスにアクセスできます。
  • ホストとデバイス・サーバは、別なLANに設置できます。(即ち、デバイス・サーバをコンフィギュアすることにより送信データは、1台あるいは2台のルータを通すことができます)。デバイス・サーバの個々のポートをどのように設定するかによって、2つの異なった状態を作り上げることができます。
一例として、上図に示した状況を考えます。この場合、アプリケーションは、カードリーダのデータが、全てインターネットに接続されている1台以上のホストへ送られることを必要としています。このような要求を実施する方法は、カードリーダに接続されるデバイス・サーバをUDPサーバ/クライアントモードに設定すればよいことです。データがホストのそれぞれに送られるようにシステムをセットアップします。
 
 
Copyright © 2002-2004 IBS Japan Co., Ltd. All Rights Reserved. Powered by XOOPS 2.0.7.3
s