send_raw

Section: WIN SYSTEM (1W)
Updated: 2013.9.18
Index Return to Main Contents
 

名称

send_raw, send_mon, sendt_raw, sendt_mon, send_rawd, send_mond, sendt_rawd, sendt_mond - IPによる win 形式データの送信  

形式


send_raw [-1aDrmt] [-b mtu] [-f req_file] [-h hours] [-i interface] [-k sec_keepal] [-p src_port] [-s sec] [-T ttl] [-W/w key] shmkey dest port [ chfile [ logfile ]]

send_mon ...
sendt_raw ...
sendt_mon ...

send_rawd [-1armt] [-b mtu] [-f req_file] [-h hours] [-i interface] [-k sec_keepal] [-p src_port] [-s sec] [-T ttl] [-W/w key] shmkey dest port [ chfile [ logfile ]]

send_mond ...
sendt_rawd ...
sendt_mond ...
 

解説

send_raw, send_mon, sendt_raw, sendt_monは、キー  shmkey で示される共有メモリ・セグメントに(巡回的に)書き込まれて いる WIN形式のデータを、ホスト  dest の UDP ポート番号  port へ送信します。チャネルファイル  chfile が与えられた場合は、その中にリストされたチャネルのデータだけが 送信されます。ただしチャネルファイル名の先頭に '-' を付けたときは、 そのファイルにリストされた以外の全チャネルのデータが送信されます。 chfile が与えられないか、または '-' である場合は、全チャネルが送信されます。

send_rawd, send_mond, sendt_rawd, sendt_mond は daemon モードで起動し ます。send_raw, send_mon, sendt_raw, sendt_mon でオプション -D を指定した時と同じ動作です。

ログファイル名  logfile を指定すると、ここに動作ログがとられます。 指定しないとログ情報は標準出力に送られます(ただし、daemon モードで動い ている時は syslogd(8) に送られます)。ログファイルは書き込みのたび毎に オープン/クローズされます。

send_raw, sendt_raw は RAW 形式のデータを、 send_mon, sendt_mon は MON 形式の データを扱うプログラムです。RAW 形式については winformat(1W) を、 MON 形式については raw_mon(1W) を参照してください。

send_raw, send_mon と sendt_raw, sendt_mon では、 共有メモリ上で扱うデータ形式が異なります。 send_raw, send_mon は、 すでに時間順に整列されていて「書き込み時刻」を含まない 形式 ( -> order(1W)) を扱うのに対し、 sendt_raw, sendt_mon は、時間順不同で 「書き込み時刻」を含む形式 ( -> recvt(1W)) を扱います。

なおオプション -r、 -m、 -t で上記と矛盾する動作モードを指定をした 場合は、オプション指定が優先されます。

send_raw, send_mon, sendt_raw, sendt_mon は、 引数なしで起動すると簡単な使用法を表示します。

send_raw, send_mon, sendt_raw, sendt_mon プロセスは ハングアップシグナルを受け取ると、 チャネルファイルを読み直します。  

チャネルファイルの形式

チャネルファイルは、1行に1つずつ、16進数でチャネル番号を 書き並べたテキストファイルです。各行の先頭の項目だけが読まれ、 空白またはタブで区切られた以降の項目は無視されます。また先頭 が '#' である行も無視されます。  

ネットワーク上の形式と再送プロトコル

recvt(1W)を参照してください。なお、send_raw, send_mon, sendt_raw, sendt_mon は 1つのパケットに対する再送要求に対してはただ一度だけ再送します。 これはブロードキャストアドレス等宛の送信の場合に、1つの消失パケットに 対して複数の再送要求が来ることがあるためです。  

オプション

-1
1パケットに複数秒分のデータを詰め込むことをしません。データ量が 少ない場合に、MTUに近い大きさまでデータが貯るのを待って遅延が 大きくなってしまうことを避けることができます。
-a
共有メモリ上のデータ形式を,「パケット種別付き」(recvs(1W) 参照) とみなし,そのままの形式で送信します。この場合,チャネルファイルに よるチャネルの選択は行われず,共有メモリ上では「書き込み時刻付き」 形式であると仮定されます。他のオプションはすべて無視されます。
なお、現在このモードでは再送処理を行いません。
-b mtu
送信するIPパケットの最大サイズ(MTU)を mtu バイトにします。 デフォールトは1500バイトです。送信IPパケットは伝送効率を上げるため mtu バイト以内(UDPデータグラムでは mtu-28 バイト)で なるべく大きなサイズになるように生成されます。
-D
daemon モードで起動します。
-f req_file
送信先ホスト(つまり受信ホスト)からの送信要求パケットを 受け付け、要求されたチャネル番号のリストをファイル req_file に1行に1チャネルずつ、4桁の16進数で書き出します。 送信要求パケットの形式については recvt(1W) を参照してください。 このオプションが指定された場合、send_raw, send_mon, sendt_raw, sendt_mon プロセスは起動後待機状態に入り、送信要求パケットを 受信するまではデータを送信しません。送信要求パケットを受信したら、 chfile の制約の範囲内で、要求されたチャネルを送信します。 送信要求パケットを10秒間受信しないと再度待機状態に入ります。 送信要求パケットは再送要求パケットと同じく、データ送信用 UDPポートに届かなくてはなりません。受信ホストは送信要求パケットを 送信するために、このデータ送信用ポートの番号を知っている必要が ありますが、これは -p オプションにより起動時に指定することが可能です。 send_raw, send_mon, sendt_raw, sendt_mon は、送り元が送信先IPアドレス/ ポートと一致しない送信要求パケットも受け付けます。これは送信先 がブロードキャストやマルチキャストアドレスである場合もあるためです。
-h hours
送信の際にデータのタイムスタンプを hours 時間だけ進めます。
-i interface
データパケットを送信する ネットワークインターフェースを、そのインターフェースのIPアドレス interface で指定します。
-k sec_keepal
送信データがなくても sec_keepal 秒間隔でダミーのパケットを送信します。これは特に送信要求モード (オプション -f)でファイアウォール越しに(外向きに) データを送信している場合に、たまたま送信データがない間に 内向き経路が閉じてしまわないようにするためのものです。 多くのファイアウォールでは、外向きにUDPパケットを通した後、 しばらくの間(たとえば30秒間)はその逆向きのUDPパケットの通過を 許します。ダミーパケットの内容(ペイロード部分)は、

    (1)1バイトのパケット番号(0〜255)
    (2)1バイトの「元の」パケット番号(0〜255)
    (3)1バイトの識別コード(16進数で) "FF"

の3バイトです。
-m
send_mon (オプション -t と共に指定したときはsendt_mon)の動作をします。
-p src_port
送信元UDPポート番号を src_port にします。通常指定する必要はありません。
-r
send_raw (オプション -t と共に指定したときはsendt_raw)の動作をします。
-s sec
送信の際にデータのタイムスタンプを sec 秒だけ進めます。
-t
オプション -r または -m と共に指定すると, それぞれ sendt_raw または sendt_mon の動作をします。
-T ttl
送信先がマルチキャストアドレスであるとき、送信パケットのTTLの 値をデフォルトの 1 ではなくて ttl にします。
-W key
( shmkey とは別の) キー key の共有メモリにデータが書き込まれていることを 検出した場合にのみ、データを送信します。共有メモリにデータが 書き込まれていない状態が約2秒継続したことを 検出したら、送信を停止して待機状態になります。これは carp等で冗長化されている場合に、マスター側だけが送信 する動作を実現するためのものです。
-w key
( shmkey とは別の) キー key の共有メモリにデータが書き込まれていない状態が約2秒継続したことを 検出した場合にのみ、データを送信します。共有メモリにデータが書き込まれている ことを検出したら、直ちに送信を停止して待機状態になります。これは send_rawを実行する別のマシンの障害を検出してバックアップするための ものです。
 

ソース

`send_raw.c'
 

関連事項

winformat(1W), recvt(1W), relay(1W), order(1W), raw_raw(1W), raw_mon(1W), recvs(1W)


 

Index

名称
形式
解説
チャネルファイルの形式
ネットワーク上の形式と再送プロトコル
オプション
ソース
関連事項