「夫を成功」へ導く妻の秘訣 座談会

趣味でネットワークゲームを作成しているのですが、質問があります。

リアルタイム性が強く比較的失われても構わない情報をUDP通信にてLinuxサーバーから複数のクライントに送信しています。

今回、このようなケースの場合マルチキャストを利用するとネットワーク負担が減るのではないか?と考えました。

そこで調べてみたのですが、サンプルがどれも同一ネットワーク内のものばかりです。
動画配信などで利用されているという記事を見たのでできると考えているのですが、実際問題どうなのでしょうか?
またルーターを超える場合はルーターが対応していなければならないと知りました。


知りたい内容は以下です。
・一般家庭にあるルーターはマルチキャストに対応しているのかどうか?
・そもそものマルチキャストの考え方はあっているのか?
・もし対応していないルーターがあった場合このようなシステムを利用しているプログラムはどうしているのか?


用語を知ったばかりで的を外れた質問をしていたらすいません。
自分でも調べてみますが、参考URLや用語などをいただけると大変助かります。
よろしくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

マルチキャスト通信が可能なのは、事実上、次のいずれかの場合です。



1. 同一LAN内の通信

 同一LAN(ブロードキャストドメイン)内のマルチキャスト通信は、きちんと動作することが多いので、UPnPやDLNAといったアプリケーションをはじめとして、それなりに使われています。マルチキャスト通信の例が同一LAN内のものが多いは。このためです。
 ちなみに、同一LAN内の場合、マルチキャストといいつつほぼブロードキャストと同じ通信になっています。つまり、LAN内の誰かがマルチキャストパケットを送出すると、同じLAN内の全端末にそれが届きます。
(マルチキャストグループにjoinしていない端末にパケットが届いても捨てられる)

2. 明示的にマルチキャスト通信が可能なように構築されたIPネットワーク

ルータを超えて(≒異なるLANの端末同士で)マルチキャスト通信をするには、ルータにマルチキャストをルーティングする機能が必要です。ユニキャストをルーティングできないルータは無いと思いますが、マルチキャストをルーティングできないルータは多いです。インターネット上のルータは、できない(しない)ものが圧倒的に多いので、インターネットに接続した端末同士が自由にマルチキャスト通信することはできません。
 企業や大学のイントラネット内や、特定プロバイダ内部の通信に限り、できるように構築されている場合がありますが、できないネットワークのほうが圧倒的に多いですし、できる場合でもユーザ同士が自由にマルチキャスト通信できないように制限していることが多いです。
 できないようになっている理由は詳しく述べませんが、マルチキャスト通信が可能なネットワークを構築・運用すること自体に高度な技術を要することが理由の一つです。特に、インターネットのような超巨大なネットワークで、ユーザ同士のマルチキャスト通信を安定して行えるような決定的な技術はまだ無いと思います。

> 動画配信などで利用されているという記事を見たので
> できると考えているのですが、実際問題どうなのでしょうか?

 上述のように、マルチキャスト通信が可能のように構築されたネットワーク内に限り、マルチキャストの動画配信が行われているのが実情です。


> ・一般家庭にあるルーターはマルチキャストに対応しているのかどうか?

 対応するものはほとんどありません。
 マルチキャストによる動画配信サービスを、自社のユーザに対して行っているプロバイダから提供される(宅内)ルータは、限定的に対応していると言えますが、それでも、ユーザ同士のマルチキャスト通信はできない場合が多いです。

> ・そもそものマルチキャストの考え方はあっているのか?

 あっていると言えると思います。ただし、同一LAN内を除き、マルチキャスト通信が可能なように構築されたネットワークは少数であるのが実情です。

> ・もし対応していないルーターがあった場合このような
> システムを利用しているプログラムはどうしているのか?

 これまで述べてきたように、そもそもマルチキャスト通信できるケースがきわめて限定されるため、「一部の端末同士はマルチキャストが通るが、一部は通らない」という事態を想定して作られているプログラムはほとんどないでしょう。次のいずれかに分類されると思います。

- 同一LAN内や、マルチキャスト通信可能のように構築されたネットワーク内だけで使用することが前提で作られているプログラム
⇒マルチキャストを完全にサポートする特定ネットワーク専用

- そもそもマルチキャストを使用しないように作られているプログラム
⇒インターネット上で利用されているのはこっち。
    • good
    • 1
この回答へのお礼

今まで拝見したどの回答よりも親切、且つ適切な回答だと感じております。ありがとうございます。
言葉でのお礼だけで済んでよいのか迷うほど感謝の気持ちで一杯です。

分からなかったすべての疑問は払拭されました。
jyufi_february様、本当にありがとうございました。

お礼日時:2010/02/06 14:42

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qマルチキャストってどうやって使うのですか?

IPマルチキャストについて調べていまして、いくつかのサイトをまわった結果
IPマルチキャストは複数のホスト(特定のグループ)に向けた通信であるということは分かりました。

しかし、IPマルチキャストの具体的な使い方(設定?の仕方)が
よく分かりません。

ビデオオンデマンドや音声データの配信などに使われるそうですが
具体的に何をどうしているのでしょうか?

一つのサブネット内で2つのホストが同じIPアドレスを使用することはできませんが
マルチキャスト用に予約されたIPアドレス(224.0.0.0~239.255.255.255)なら
2つ以上のホストが同一のIPアドレスを使用できるということでしょうか?
※ なんか全然違う気がするのですが‥)

それともハブかルータか何かにマルチキャストグループとやらを登録するのですか?
※ 224.0.10.1のグループは192.168.1.1と192.168.1.2を設定みたいな

どなたか手解きのほどよろしくお願いします。

Aベストアンサー

> ビデオオンデマンドや音声データの配信などに使われるそうですが
> 具体的に何をどうしているのでしょうか?

ビデオオンデマンドのようなオンデマンド系のサービスはマルチキャストではなくユニキャストです
映像系だとマルチキャストを使うのはIP放送のようなサービスです
見たい番組を見たいときに試聴するということはできず、テレビの放送のように決まった時間に決まった番組を試聴するような使い方になります

> 一つのサブネット内で2つのホストが同じIPアドレスを使用することはできませんが
> マルチキャスト用に予約されたIPアドレス(224.0.0.0~239.255.255.255)なら
> 2つ以上のホストが同一のIPアドレスを使用できるということでしょうか?

たぶんすごい勘違いをしていると思いますが、クラスD(224.0.0.0~239.255.255.255)のアドレスは実際にホストに割り振るものではありません
ホストには普通にクラスA~Cのアドレスを割り振ります
ホスト(リスナ)は224.0.0.1のマルチキャストグループアドレスのパケットを要求し、224.0.0.1のパケットが流れてきたらそれを拾う形になります

> それともハブかルータか何かにマルチキャストグループとやらを登録するのですか?

ルータには、どのマルチキャストグループアドレスを受け取ったり流したりするかの設定は必要です

通常のHUB(SW-HUB含む)からするとマルチキャストはブロードキャストと同じ扱いで、全てのポートにパケットが転送されます
これだと不要なポートにトラフィックが流れる可能性があるので、ちょっと高いL2SWには、必要なポート(リスナがいるポート)にのみマルチキャストを流すことができる、IGMPスヌーピング(IPv4)/MLDスヌーピング(IPv6)の設定ができるものがあります
(このマルチキャストをくれ、という要求をずっとスヌーピング(覗き見)して、必要なポートにだけマルチキャストを流してくれる設定です)

> ビデオオンデマンドや音声データの配信などに使われるそうですが
> 具体的に何をどうしているのでしょうか?

ビデオオンデマンドのようなオンデマンド系のサービスはマルチキャストではなくユニキャストです
映像系だとマルチキャストを使うのはIP放送のようなサービスです
見たい番組を見たいときに試聴するということはできず、テレビの放送のように決まった時間に決まった番組を試聴するような使い方になります

> 一つのサブネット内で2つのホストが同じIPアドレスを使用することはできませんが
>...続きを読む

Qマルチキャストが使えるスイッチングハブを探しています。

今の私の家の環境では、マルチキャストを使ったネットワークプログラムが動作しなかったため、マルチキャスト対応のスイッチングハブを購入しようと思っています。

そこでインターネットでスイッチングハブのカタログなどをダウンロードして見ているのですが、「マルチキャスト対応」と書いているものが見つかりませんでした。

(マルチキャストというのは、最近のスイッチングハブではあたりまえにサポートしているので書いてないのでしょうか?)

そこで、マルチキャストに対応しているスイッチングハブがあれば教えてください。(4ポート以上の家庭用のもので十分です。)

Aベストアンサー

こんばんは。

まず、購入を検討されているようなタイプの「スイッチングハブ」が利用する通信規格では、「マルチキャスト」(通信)に対応する事は出来ないハズだと思います。

ネットワーク通信の仕組みを理解されていないとイメージがつかみにくいかもしれませんが、なるべく噛み砕いて説明してみましょう。

一般的なLAN環境では、「イーサネット」と「TCP/IP」を組み合わせたカタチで構成されている事が多いと思います。(Windowsベースの場合、「NetBIOS(NBT)」という仕組みも併用される事が多いでしょう。)

ネットワークの仕組み(構造)を説明する場合、それぞれの仕組みやプロトコルを論理的/物理的に分割して「OSI階層モデル (OSI layer model)」としてあらわすことがあります。

詳しくは下記のURLの説明を見てみてください。

■OSI階層モデル (OSI layer model)についての説明■ Copyright (C) 2000-2003 Digital Advantage

http://www.atmarkit.co.jp/icd/root/79/5787479.html

要するに、「ネットワーク通信では様々なレイヤに属する仕組みやプロトコルが使われていて、機能によって必要とされるものが変わってくる。」ということです。

量販店などで販売されている一般的なスイッチングハブは「レイヤ2スイッチ」と呼ばれるタイプのもので、レイヤ2にある「MACアドレス」を通信経路の特定に利用します。(レイヤ2よりもネットワーク的な上位層、「レイヤ3」に存在するIPアドレスは参照できません。)

一方、「マルチキャスト」の仕組みではレイヤ3に位置する「IPアドレス」(マルチキャスト・アドレス)を利用した経路解決の仕組み(IGMPなどのプロトコル)を必要とします。

また、マルチキャスト通信の通過経路上にあり、経路選択を必要とする通信機器にも当然レイヤ3のプロトコルを理解する能力(実装)が必要です。

ですから、同じスイッチングハブでもマルチキャストを利用するためには「レイヤ3のマルチキャスト・プロトコルに対応したもの」が必要になります。(その他の仕組み(VLANなど)を含め、比較的高度な機能を利用したい場合、レイヤ3スイッチが必要になる事が多いといえるでしょう。)

具体的には、下記のURLで説明されているような機器で、企業や大規模ネットワークなどでの利用を想定しているものが多く、相対的に「高価」になります。

■@IT連載記事 ネットワーク・デバイス教科書 ~「レイヤ3スイッチ」について~■ Copyright(c) 2000-2004 atmarkIT

http://www.atmarkit.co.jp/fpc/netdevice/010netdevice/l3switch.html

もう一つの選択肢として、「マルチキャストが利用できる(ブロードバンド)・ルーターで、複数のポート(スイッチ)を持つものを利用する。」という方法も考えられると思います。(ルーターによるマルチキャスト対応の有無は、製品の仕様をみれば確認できる場合が多いでしょう。)

しかし、ご質問の様な目的だけでルーターを購入するというのも少しポイントがズレた話かもしれませんね。(インターネットへの常時接続環境で複数台のPC(ノード)を利用しているなら、ルーターの導入意義は大変高いとおもいますが。)

現時点で私が感じる全体的な印象として、「個人環境(?)で、どうしてもマルチキャスト通信が必要なのだろうか?」という思いがします。

もちろん、事情は様々でしょうが、マルチキャストを使わずに同じような目的(通信内容)を達成できる代替手段を考えてみるのも一考だと思いますよ。

以上、事情が良くわからないので、漠然としたアドバイスになってしまいすみません。

少しでも参考になればよいのですが…。

それでは。

こんばんは。

まず、購入を検討されているようなタイプの「スイッチングハブ」が利用する通信規格では、「マルチキャスト」(通信)に対応する事は出来ないハズだと思います。

ネットワーク通信の仕組みを理解されていないとイメージがつかみにくいかもしれませんが、なるべく噛み砕いて説明してみましょう。

一般的なLAN環境では、「イーサネット」と「TCP/IP」を組み合わせたカタチで構成されている事が多いと思います。(Windowsベースの場合、「NetBIOS(NBT)」という仕組みも併用される事が多いで...続きを読む

QUDP通信におけるbind関数について

初めて質問させていただきます。よろしくお願いします。

最近、ネットワークプログラミングの勉強をしているのですが、bindについてよくわからなくなってきました・・・。よろしければご教授願います。

質問内容は以下の通りです。
(1)bindにおける設定内容は、「相手側のIPとポート番号」なのか「自分側のIPとポート番号」なのか?
 色々なところを調べてみましたが、「IPとポート番号」を設定する、としかかかれてなく、いったいどっちなのかがわからなくなってきました・・・。

(2)UDP通信において、bindは必要なのか?
 サーバ-クライアントの関係が曖昧なUDP通信において、bindというのは必要なのでしょうか。
私の認識では例えば、「recv関数」などを使い受信待ちをする場合はbindが必要だが、送信だけの場合には不要であるとなっています。

この認識はあっているのでしょうか。
拙文ですが、どうか教えていただきたく <(_ _*)>

Aベストアンサー

TCP/UDP通信がどのように働くかを考えれば、疑問の答えが分かるのでは?
bindについて言えば
「OSはマシンに届いたパケットを如何にして該当プログラムに届けるか?」
です。
自分のポート番号をOSに教えてあげなければ、OSは着信したパケットをどのプログラム(プロセス)に届けるか分からないでしょう。それをするのがbindの役割です。
従って(1)は自ポート番号。IPは複数IPを持っているマシンで一部IPでのみ受け付ける場合に必要ですね。
一般的にサーバでbindするタイミングでは相手のIPやポート番号は不明ですから、要求されても困りますね。
(2)は質問者さんの認識通り。受信のために必要、送信では不要です。

QUDP通信する時に、相手にどうやって自分のポート番号を教える?

UDP通信する時に、相手(送信側)にどうやって自分(受信側)のポート番号を教えるのでしょうか?

例えば、下記のページのサンプルだと、受信側は5555で待ち受けていますが、この場合は送信側はあらかじめ受信側が5555で待ち受けていると知っています。送信側が知らない場合に、どうやって受信側のポート番号を知らせればよいのでしょうか?

http://www.hellohiro.com/datagram.htm

Aベストアンサー

#1です。

> 受信側は
> DatagramSocket
> を引数なしでインスタンス化して、receiveメソッドを動かせば、そこに返ってくる、ということなのでしょうか?

「返ってくる」というのはレスポンスのことでしょうか。その前提で話をします。

最初の回答のA→B(リクエスト)とB→A(レスポンス)のうち,Aがこの質問のとおりに動作するには,Bが以下のような動作を行う必要があります。逆にBが以下のような動作をするならAの動作はご質問のとおりです。

1)Aは引数なし,Bは固定のポートを指定してインスタンス化。
2)Aは送信するリクエストパケット(DatagramPacket)を作り,これにBのIPアドレスとポートをセットして送信。
3)BのIPアドレス・ポートにAからのパケット到着。Bはこれをreceiveメソッドで受け取る。
4)BはAからのパケットに含まれるAのIPアドレスとポート番号を取得する(DatagramPacketのgetSocketAddressメソッドで多分取得可)。
5)Bはレスポンスを作成し,取得したAのIPアドレスとポートをレスポンスパケット(DatagramPacket)にセットしてこれを送信。
6)AのIPアドレス・ポートにBからのパケット到着。Aはこれをreceiveメソッドで受け取る。

UDPでは,リクエストを送って相手がそれを受け取れば,UDP通信はそれでおわりです。リクエストに対してレスポンスを返す場合,送信側と受信側が入れ替わって新規のUDP通信を始めることになります。

#1です。

> 受信側は
> DatagramSocket
> を引数なしでインスタンス化して、receiveメソッドを動かせば、そこに返ってくる、ということなのでしょうか?

「返ってくる」というのはレスポンスのことでしょうか。その前提で話をします。

最初の回答のA→B(リクエスト)とB→A(レスポンス)のうち,Aがこの質問のとおりに動作するには,Bが以下のような動作を行う必要があります。逆にBが以下のような動作をするならAの動作はご質問のとおりです。

1)Aは引数なし,Bは固定のポートを指定し...続きを読む

Qブロードキャストアドレスへping

IPアドレス192.168.1.xで、サブネット255.255.255.0なので、ブロードキャストは192.168.1.255ということになると思うのですが、その192.168.1.255にpingを実行すると、Reply from...がちゃーんと4行返ってきます。これは正常ですか?もし正常ならば、誰がReplyしてくれてるのでしょう…。
しょうもない質問ですみませんが、困っています。どなたかご解答お願いします。

Aベストアンサー

ブロードキャストのpingは機器によって応答を返すものと無視されるものがあります。
その応答の返す機器がすべてReplyしています。
(今回はルータですね)
Windowsのpingコマンドだと
 Reply from 192.168.1.255 ...
等になってしまい判断が難しいですが、
例えばpingの前後でarp -aをしてみると応答した機器のIPアドレスを確認できますね。
代表的なunixだと全ての応答が列挙されます。

ただ、ブロードキャストのpingに応答することは、DoSのSmurf攻撃を受けることになるので、
RFC1122の「3.2.2.6 エコー要求/応答: RFC-792」にて
「IP ブロードキャストか IP マルチキャストアドレス宛ての ICMP エコー要求は、黙って破棄してもよい 」
となっています。

これに対してMicrosoftとしてはブロードキャストpingに応答しない(破棄する)方向にしているようです。
◆PING to Broadcast Address May Get Response (Q137421)
http://support.microsoft.com/default.aspx?scid=kb;JA;q137421

ブロードキャストのpingは機器によって応答を返すものと無視されるものがあります。
その応答の返す機器がすべてReplyしています。
(今回はルータですね)
Windowsのpingコマンドだと
 Reply from 192.168.1.255 ...
等になってしまい判断が難しいですが、
例えばpingの前後でarp -aをしてみると応答した機器のIPアドレスを確認できますね。
代表的なunixだと全ての応答が列挙されます。

ただ、ブロードキャストのpingに応答することは、DoSのSmurf攻撃を受けることになるので、
RFC1122の「3.2.2.6 ...続きを読む

QConnectエラーが出てしまう・・・。

VC++でストリーム型のネットワークアプリケーションを作成しています。
サーバソケット、クライアントソケットを作成し、Connectしようとしているのですが、WSAEWOULDBLOCKエラーが出てきてしまいます。
いったい何が原因なのでしょう・・・。
調べているのですが手がかりがつかめません。
なにか心あたりのある方、教えてください。
よろしくお願いします。

Aベストアンサー

>OnAccept()はすぐ帰ってくるのですが、、、

んー。サーバー側の動きですが
Listen() -> OnAccept() -> Accept() となりますが
Accept()する時 new した新しい CAsyncSocket に割り当ててますよね? Listenするソケットと実際に通信するソケットは異なるのが普通です。

情報が少ないので、ちょっとよく分かりません。

Qsocket通信、マルチキャストについて

socket通信の勉強中です。

http://www.katto.comm.waseda.ac.jp/~katto/Class/GazoTokuron/code/multicast.html

上記のサイトを参考に、マルチキャスト通信を試しています。
LAN内では、正常に通信できています。


ここで疑問なんですが、マルチキャストのアドレスは、
適当に決めてしまっていますが(224.1.1.1で試しています)
これはイントラネットでの利用が前提なのでしょうか?
それとも、インターネット上でも利用できるのでしょうか?

勝手に決めたアドレスでは、重複する可能性があると思うのですが・・・

しかし、マルチキャストの使用例として、インターネット会議や、
インターネット放送が挙げられているところを見ると、
インターネットでも利用できそうな印象を受けます。

利用できる場合、アドレスをどのように決めているのでしょうか?


ご存知の方いらっしゃいましたら、よろしくお願いします。

Aベストアンサー

手元の資料によれば、
プライベートアドレスのように使える、マルチキャストアドレスは

239.192.0.0 ~ 239.195.255.255 組織内
239.255.0.0 ~ 239.255.255.255 最小サブネット(ルータを介さない通信範囲、同一セグメント内)

です。
尚、ルータを介して、マルチキャストを行うのは、かなり、めんどくさいとのことです。

ちなみにインターネットで使うためには、IANAからマルチキャスト用のアドレスを取得しなければならないようです。

Qブロードキャスト転送できるかはルータによりますか?

WHR-HP-G300N
ブロードキャスト転送できるかはルータによりますか?

【ポート変換】
プロトコル:UDP ポート:2304
LAN側IPアドレス:192.168.1.255

を指定すると
※LAN側ブロードキャストアドレスは使用できません

となり、WAN側に届いたパケットをブロードキャストすることができません。

このようなルーターで、すべての端末へブロードキャストを行わないといけない
状況のパケット転送設定をすることは機器的に無理なのでしょうか?
方法としてあきらめるしかないですかね?

Aベストアンサー

>ブロードキャスト転送できるかはルータによりますか?

はい。ルータによります。

>※LAN側ブロードキャストアドレスは使用できません

ということなので、このルータではできない。
ということになるでしょう。
# 出来ないのにエラーも出さず一見正常に設定されているように見える。
# なんて場合もありますので油断は出来ませんが。
# まぁ、今回の場合は明示的に弾いていますので出来ないでしょう。

プロトコルとポート番号見ると……WAN側からWOLをしようとしているってところでしょうか……。
WOLリピータをLAN内において、そこに転送するようにする。
ってことになるんじゃないでしょうかね。

ウチの場合だと…LAN内はGigabitなので市販のWOLリピータ入れる気にはならないです。
常に動作している省電力サーバ(SheevaPlug)が居るので、必要があればそちらにWOLリピータの機能を組み込みますかねぇ…。
# 外部からsshで接続できるのでログインしてコマンドでMagicPacket投げられますから必要性は低いですけどね。
# もしくはVPN構築。

>方法としてあきらめるしかないですかね?

別のルータに買い換える。
ってことになるかと。
# WANからのパケットをLAN内にブロードキャストできる。
# と判明しているものに買い換えないと無駄な出費ということになりますので…意外と難しいです。
あとは、上記のような別の対策で…ということになるでしょう。

>ブロードキャスト転送できるかはルータによりますか?

はい。ルータによります。

>※LAN側ブロードキャストアドレスは使用できません

ということなので、このルータではできない。
ということになるでしょう。
# 出来ないのにエラーも出さず一見正常に設定されているように見える。
# なんて場合もありますので油断は出来ませんが。
# まぁ、今回の場合は明示的に弾いていますので出来ないでしょう。

プロトコルとポート番号見ると……WAN側からWOLをしようとしているってところでしょうか……。
WOLリピータをLAN...続きを読む

QTCPサーバ bind関数のエラーについて

簡易TCPサーバをC言語で構築しています。
サーバ側のプログラムを実行し、クライアントから要求があった(GET / HTTP/1.0)場合に文字列をクライアント側に送信します。テスト一回目は要求通りの機能を果たし無事に終了できました。しかし、1回目と同じように2回目も実行すると、bind()関数でエラーが出ます。自分では一回目の接続で使ったポートが使用され続けてしまっているので、2回目の接続が前の接続に阻まれている(?)のが原因では無いかと思うのですが、これは何が原因なのでしょうか。いくら考えても分かりません。教えて下さい。

Aベストアンサー

http://www.ibm.com/developerworks/jp/linux/library/l-sockpit/
の落とし穴3かと思います。

QUDPでマルチスレッドは可能か

データ量が大きい場合1回のrecvfrom()で全て受け取れるとは限らないので
while( RecvSize < TotalSize )
{
----RecvSize += recvfrom();
}
とやると思います。
しかし、マルチスレッドの場合、仮に上のwhile文が5回まわって全データ受信できるとしたとき、
2回目が回り終ってからスレッドが切り替わり、
別の(全く同じ動きをする)スレッドに移った場合、そちらで残り3回分のデータが受信されてしまうのではないでしょうか?

Aベストアンサー

>例えば、クライアント側が1000バイトのデータを送信した時にサーバー側では100%成功するとして、1000バイトを一発で受信できるのでしょうか?

環境に依存するのか?
というのは実際に確認していませんが……
参考URLによると、約64KBくらいは送れる…ようです。
ただし、大きいサイズのUDPパケットにした場合、途中で1バイトでもデータが化けると全て破棄されてしまいますが。
# TCPだと再送…でしょうね。

下位レイヤーのEhternetパケットサイズくらいにしておくのが、精神的に安心かも知れません。
# 参考URLによると、IPパケットレベルで分断したとしても大丈夫…らしいですが……試したことはありません。
まあ、ケータイとか使っていた場合だとパケットサイズがEhternetのパケットより小さい…場合もあるかも知れませんが。
# 課金の際に使われるパケットサイズがソレに相当するのかどうかは不明…。

参考URL:http://www.atmarkit.co.jp/fwin2k/network/baswinlan013/baswinlan013_03.html

>例えば、クライアント側が1000バイトのデータを送信した時にサーバー側では100%成功するとして、1000バイトを一発で受信できるのでしょうか?

環境に依存するのか?
というのは実際に確認していませんが……
参考URLによると、約64KBくらいは送れる…ようです。
ただし、大きいサイズのUDPパケットにした場合、途中で1バイトでもデータが化けると全て破棄されてしまいますが。
# TCPだと再送…でしょうね。

下位レイヤーのEhternetパケットサイズくらいにしておくのが、精神的に安心かも知れません。
# 参考URLに...続きを読む


人気Q&Aランキング