2.4.5 UDP通信機能で使用するリソース

UDP通信機能で使用するリソースについて説明します。

<この項の構成>
(1) ポート
(2) UDP用送受信バッファ
(3) UDPソケット送受信バッファ

(1) ポート

UDP通信機能で使用するポートは,目的に応じて送信用ポート,または受信用ポートと呼ばれます。

ポートごとに異なるソケット属性を指定する場合(例えば,UDPを使用したRPC通信と高速メッセージ送信制御でポート番号を切り替えたい場合など)は,UDPグループを複数定義して,異なる属性を指定します。

ポート種別による定義の違いを次の表に示します。

表2-10 ポート種別による定義の違い

項番ポート種別内容
1送信用ポートメッセージの送信に使用し,送信UDPグループとして管理します。UDPグループ情報関連定義のmyudpsnddef定義コマンドで定義します。
2受信用ポートメッセージの受信,ならびに肯定応答および否定応答の送受信に使用し,受信UDPグループとして管理します。UDPグループ情報関連定義のmyudprcvdef定義コマンドまたはclgrpdef定義コマンドで定義します。

(2) UDP用送受信バッファ

■UDP用送信バッファ
UDP通信機能が使用するUDP用送信バッファのサイズと面数は,メモリ関連定義のudp_send_message_buf_sizeオペランドおよびudp_send_message_buf_cntオペランドで指定します。
■UDP用受信バッファ
UDP通信機能が使用するUDP用受信バッファのサイズと面数は,メモリ関連定義のudp_recv_message_buf_sizeオペランドおよびudp_recv_message_buf_cntオペランドで指定します。

(3) UDPソケット送受信バッファ

■UDPソケット送信バッファ
送信UDPデータグラムを一時的に格納するOSのバッファです。送信パケットサイズ(RPC関連定義のrpc_udp_packet_sizeオペランド指定値 + 28)以上を指定します。また,次の計算式を満たすサイズに指定することをお勧めします。

UDPソケット送信バッファ ≧ RPC関連定義のrpc_udp_lmsg_deliverychk_sizeオペランド,またはrpc_udp_msg_deliverychk_sizeオペランドの指定値

■UDPソケット受信バッファ
受信UDPデータグラムを一時的に格納するOSのバッファです。受信パケットサイズ(RPC関連定義のrpc_udp_packet_sizeオペランド指定値 + 28)以上を指定します。また,次の計算式を満たすサイズに指定することをお勧めします。

UDPソケット受信バッファ ≧ 送信するユーザデータのサイズ1 × 1.1 × 送信元スレッド数2

注※1
CL同期メッセージの送受信だけで使用するソケットの場合に,ユーザデータのサイズがRPC関連定義のrpc_udp_lmsg_deliverychk_sizeオペランドの指定値以上になるときは,オペランド指定値はユーザデータのサイズになります。
上記以外のメッセージの場合に,ユーザデータのサイズがRPC関連定義のrpc_udp_msg_deliverychk_sizeオペランドの指定値以上になるときは,オペランド指定値はユーザデータのサイズになります。
注※2
UDPソケットに対して,同時送信を行う送信元のスレッド数です。
輻輳によるパケットロスを減らすには,UDPソケット受信バッファを大きく設定する必要があります。各送信元スレッドからのメッセージ一つ分を格納するソケット受信バッファを設定することをお勧めします。
なお,W-send機能を使用している場合にhbondingドライバで重複受信パケットを破棄しないときは,UDPソケット受信バッファを上記の計算式で算出されるサイズの2倍に設定することをお勧めします。