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

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を設定みたいな

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

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

A 回答 (5件)

> ビデオオンデマンドや音声データの配信などに使われるそうですが


> 具体的に何をどうしているのでしょうか?

ビデオオンデマンドのようなオンデマンド系のサービスはマルチキャストではなくユニキャストです
映像系だとマルチキャストを使うのは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)の設定ができるものがあります
(このマルチキャストをくれ、という要求をずっとスヌーピング(覗き見)して、必要なポートにだけマルチキャストを流してくれる設定です)
    • good
    • 0
この回答へのお礼

なるほど、ちょっとわかったような気がします。
ブロードキャストみたいな形でマルチキャストグループアドレスのパケットが流れてくるのですね。
それで自分の要求したアドレスなら拾うと‥。

回答ありがとうございました。

お礼日時:2009/09/09 18:25

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


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

同一LAN内のホストが同一のマルチキャストアドレス宛のパケットを受信できるという視点では
2つ以上のホストが同一のIPアドレスを使用できると言えますが・・・

例えばホストがgyaoの動画を見たいとします。そしてホストとサーバの間にはルータA、B、Cがあるとします。

ホストは直近のルータAへ、gyaoが利用しているマルチキャストアドレス(例:225.0.0.1)宛のデータが欲しいとリクエストします。
そうすると、ルータAは、隣にいるルータBに225.0.0.1宛のパケットが欲しいとリクエストし、ルータBはgyaoの
サーバが繋がっているルータCへリクエストします。
そこで、初めてルータC→B→Aという順で225.0.0.1宛のパケットが流れるようになり、無事、ホストはルータAから動画のパケットを受信できるようになります。
尚、ルータ間でマルチキャストパケットのやり取りをするにはマルチキャストルーティングプロトコルの設定をする必要があります。

http://www.n-study.com/network/multicast4.htm

参考URL:http://www.n-study.com/network/multicast4.htm
    • good
    • 0

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


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

同一LAN内のホストが同一のマルチキャストアドレス宛のパケットを受信できるという視点では
2つ以上のホストが同一のIPアドレスを使用できると言えますが・・・

例えばホストがgyaoの動画を見たいとします。そしてホストとサーバの間にはルータA、B、Cがあるとします。

ホストは直近のルータAへ、gyaoが利用しているマルチキャストアドレス(例:225.0.0.1)宛のデータが欲しいとリクエストします。
そうすると、ルータAは、隣にいるルータBに225.0.0.1宛のパケットが欲しいとリクエストし、ルータBはgyaoの
サーバが繋がっているルータCへリクエストします。
そこで、初めてルータC→B→Aという順で225.0.0.1宛のパケットが流れるようになり、無事、ホストはルータAから動画のパケットを受信できるようになります。
尚、ルータ間でマルチキャストパケットのやり取りをするにはマルチキャストルーティングプロトコルの設定をする必要があります。
    • good
    • 0
この回答へのお礼

>ホストは直近のルータAへ、gyaoが利用しているマルチキャストアドレス(例:225.0.0.1)宛のデータが欲しいとリクエストします。
>そうすると、ルータAは、隣にいるルータBに225.0.0.1宛のパケットが欲しいとリクエストし、ルータBはgyaoの
>サーバが繋がっているルータCへリクエストします。
>そこで、初めてルータC→B→Aという順で225.0.0.1宛のパケットが流れるようになり、無事、ホストはルータAから動画のパケットを受信できるようになります。

すみません、多分私の頭が悪くてよくわからないのですが、
それはgyaoに対してユニキャストでリクエストするのと何が違うのですか?

ご回答ありがとうございました。

お礼日時:2009/09/09 18:16

実際使う場合はルータ自身がパケットをコピーする必要がありますので


ルータもマルチキャスト対応じゃないとだめなので
やるとしたらOSをルータにして設定する必要がありますよ

ローカルでマルチキャスト用に予約されたIPアドレスを設定して
実験するぐらいしかできないのじゃないでしょうか
    • good
    • 1
この回答へのお礼

ルータが対応している必要があるのですね。

ご回答ありがとうございました。

お礼日時:2009/09/09 18:09

1対1で通信をおこなうものをユニキャストと言います。


ユニとは「1つの」という意味です。

マルチキャストはユニキャスト×複数をまとめてしまうものです。
ビデオオンデマンド(VOD)や放送といったものに利用されます。

以下、例を書いてみます。
・あるマンションでIP放送により映画が見られるとします。
・その映画は、10人の住民が見るとします。
・その映画は、10Mbpsの帯域を使用するものとします。

ユニキャストの場合、マンションまでの回線は10Mbps×10人=100Mbpsの帯域が使用されることになります。
マルチキャストの場合には、これを10Mbpsに抑えることができます。
マルチキャスト対応のルータやスイッチによりデータがマンション内で「コピー」されて転送されます。

このように、データ転送を効率化し「コピーして」分配するのがマルチキャストです。
そして、このコピーする宛先をまとめたものがマルチキャストアドレス・グループになります。

大雑把にはこんな感じです。
レイヤ3とレイヤ2がありますので、それぞれ検索してみてください。
    • good
    • 0
この回答へのお礼

質問の内容はマルチキャストを使ったものの話ではなく、
マルチキャストの実装について伺ったつもりでした。

とはいえ、ご回答ありがとうございました。

お礼日時:2009/09/09 18:08

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

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

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

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

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)」という仕組みも併用される事が多いで...続きを読む

Qpingでポートの指定

pingでIPアドレスを指定して、通信できるかどうかというのは
よく使いますが、pingでポートを指定して応答するかどうかは調べられるのでしょうか?

よろしくお願いします

Aベストアンサー

pingを含むICMPというプロトコルは、OSIの7レイヤで言うところのL2(同一セグメント内通信)とL3(IPルーティングされた通信)の両方にまたがる、ちょっと珍しいプロトコルです。

IPアドレスは指定できますが、別サブネットに属するIPアドレスに到達できればL3通信、できなければゲートウェイと呼ばれる同一サブネットに属する中継装置からの回答を得るという点でL2(MAC通信ではなく、同一セグメント内通信という意味)通信です。

ポート番号はL4で使用されるアドレスですから、L4機能の疎通確認はping(を含むICMP)ではできません。

FTPの疎通確認であれば、クライアントからサーバに対するTCP/21通信(FTP-CMD)が可能であること(サーバからクライアントへのTCP/21からの応答を含む)+サーバからクライアントに対するTCP/20通信(FTP-DATA)が可能であること(クライアントからサーバへのTCP/21からの応答を含む)が必要でしょう。

監視ソフトによるものであれば、
・クライアントからサーバへのログイン(TCP/21)
・クライアントからサーバへのlsの結果(TCP/20)
で確認すればよいでしょう。

pingを含むICMPというプロトコルは、OSIの7レイヤで言うところのL2(同一セグメント内通信)とL3(IPルーティングされた通信)の両方にまたがる、ちょっと珍しいプロトコルです。

IPアドレスは指定できますが、別サブネットに属するIPアドレスに到達できればL3通信、できなければゲートウェイと呼ばれる同一サブネットに属する中継装置からの回答を得るという点でL2(MAC通信ではなく、同一セグメント内通信という意味)通信です。

ポート番号はL4で使用されるアドレスですから、L4機能の疎通確認はping(を含む...続きを読む

QUDPのマルチキャストについて。

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

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

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

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


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


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

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

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

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

そこで調べてみたのですが、サンプルがどれも同一ネットワーク内のものばかりです。
動画配信などで利用されているという記事を見たのでできると考えているのですが、実際問題どうなのでしょうか?
...続きを読む

Aベストアンサー

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

1. 同一LAN内の通信

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

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

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

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

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


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

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

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

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

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

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

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

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

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

1. 同一LAN内の通信

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

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 ...続きを読む

QLinuxでパケットを発信する際・・・。

ひとつ疑問なのですが、たとえばudpでパケットを送信するときに、sockaddr構造体を使って

dest_addr.sin_port = htons(10001);

などで送信先を定義しますよね。このとき、自分の発信元ポートは
決められないのでしょうか。

通信相手がマイコンでして、要求パケットを受けたら自分のステータスを
発信元にそのまま送り返すというシロモノで・・・発信元ポートがわからないと
サーバ側でlistenできないんです・・・。

パケットを拾ったところ、1045発10001着のようにランダムで決められているんですね。
なにかいいアイデアはありますでしょうか?

Aベストアンサー

少し時間が取れたので、私も試してみました。

a-kuma> ポート番号だけじゃなくて、相手先のIPアドレスもきちんと設定しましたよね?

何を言ってるんでしょうね。思い付きの方は良かったのに、頭の中が腐ってる
ようです (^^;

No.3 の Fooky さんも「さっきやった間違い」とあるので、私だけが特に そこつ者
なわけではないようですが、思い込みがあったので、ちょっとはまりました。

■送信側

int sock = socket(PF_INET, SOCK_DGRAM, 0);

sockaddr_in addr;
memset(&addr, 0, sizeof(addr));
addr.sin_family = AF_INET;
addr.sin_port = htons(2500);  // このポートに返して欲しい
addr.sin_addr.s_addr = INADDR_ANY;
bind(sock, (sockaddr*)&addr, sizeof(sockaddr_in));

memset(&addr, 0, sizeof(addr));
addr.sin_family = AF_INET;
addr.sin_port = htons(1999);  // 送信の為のポート
memcpy(&addr.sin_addr.s_addr, gethostbyname("相手のホスト名")->h_addr_list[0], sizeof(addr.sin_addr.s_addr));

char* buf = "test message";
sendto(sock, buf, strlen(buf) + 1, 0, (sockaddr*)&addr, sizeof(sockaddr_in));


■受信側

int sock = socket(PF_INET, SOCK_DGRAM, 0);

sockaddr_in addr;
memset(&addr, 0, sizeof(addr));
addr.sin_family = AF_INET;
addr.sin_port = htons(1999);
addr.sin_addr.s_addr = htonl(INADDR_ANY);

bind(sock, (sockaddr*)&addr, sizeof(sockaddr_in));

char buf[256];
int len;
recvfrom(sock, buf, sizeof(buf), 0, (sockaddr*)&addr, &len);
cout << "port: " << htons(addr.sin_port) << endl;

少し時間が取れたので、私も試してみました。

a-kuma> ポート番号だけじゃなくて、相手先のIPアドレスもきちんと設定しましたよね?

何を言ってるんでしょうね。思い付きの方は良かったのに、頭の中が腐ってる
ようです (^^;

No.3 の Fooky さんも「さっきやった間違い」とあるので、私だけが特に そこつ者
なわけではないようですが、思い込みがあったので、ちょっとはまりました。

■送信側

int sock = socket(PF_INET, SOCK_DGRAM, 0);

sockaddr_in addr;
memset(&addr, 0, s...続きを読む

Qソケットのrecvの戻り値が0

linuxにてソケットの勉強をしようと思い、
簡単なソケット通信のプログラムをCで組みました。

ret = recv(ID, Buff, sizeof(Buff), 0);

といった感じでサーバ側を組んだのですが、
この戻り値retに0が入ることがあり、思うように動いてくれません。

私の認識だと、recvは受信するまで待ち、
受信したサイズを返すと思っているのですが、
それが0とは、いったいどういう意味を持つのでしょうか?

Aベストアンサー

recv()の切断時の返り値は-1とは限りません。
むしろ、通常の切断では0以上が返ると思ってください。
つまり、recv()の返り値だけで切断を検出することは出来ません。

単純に1回の接続で短いデータを1回受信するだけのような場合はrecv()が返ってきた時点で切断されていると見なすことは出来るでしょう。

通常は、プロトコルで切断手順を定めて、切断することがプログラムで分かるよう工夫します。
例えば、終了時には必ず"EOF"という行を送るようにする、等です。

しかし、クライアントが強制終了した場合などは上記方法では対応できないので、alarm()を用いて一定時間通信がなければ自動終了するようにするなどしてタイムアウトを定めるわけです。
もちろん、可能ならばクライアント側で強制終了時もシグナルを拾って切断手順を実行できるようにすることも大事です。

QIP-VPNとインターネットVPNの違い

就職活動をしている大学生です。
セキュリティとネットワークに興味があり、そこから自分が何をやりたいのか突き詰めて行った結果VPNを提供している企業が浮かび上がって来ました、業界研究をしている際に疑問が出てきました。

IP-VPNとインターネットVPNの違いの違いがいまいちわかりません。

インターネットVPNはインターネット上を介したVPN、IPは事業者のネットワーク内のVPNって解釈でよいのですかね??

そうなるとプライベート回線を引くのとIP-VPNの違いは???

提供している事業者の違い、VPNに関すること、VPNの今後&求められるもの等、教えてください。

よろしくお願いします。

Aベストアンサー

こんちは。hirasakuです。

簡単に言うと
インターネットVPNはその名の通り、インターネット網を利用した拠点間をあたかもLANのように使うためのWAN構築です。
基本的にVPN接続するためのルータの設定(トンネリングや暗号化・認証など)はユーザーが設定し、運用管理もユーザーが行います。
インターネット網なので通信に対する保障がありませんので、VPNに通すデータを検討しなければならない場合もあります。
一番安価に構築できランニングコストが抑えられます。

IP-VPNは通信事業者の閉域IPネットワーク網を通信経路として用い、自社専用ネットワークであるかのようなWANを構築できるサービスのことです。
通信事業者側で用意している網は品質を保証してあり、ユーザー側はIP-VPN網に接続するだけで、セキュアな通信ができ、インターネットVPN同様LANのように使えます。

プライベート回線とは専用線やフレームリレー網などのことを言っているのですかね?
専用線は料金が距離に比例し、拠点間の距離が離れるほどコストが大きくなり、セルリレー/フレームリレーは、フルメッシュ型接続ですけど、柔軟なネットワーク構築が難しいという問題があります。専用線・フレームリレーなどは回線帯域の割にはコストが高いので、インターネットVPNやIP-VPNでコストを安くしてネットワークを構築するようになってきてます。

インターネットVPNやIP-VPNはプロトコルにIPを使わなくてはならないので、データはIPに乗せる必要があります。
そこで、広域イーサネットというサービスを各通信事業者が行っています。広域イーサネットはプロトコルをIP以外(IPXやSNAなど)を通すことができ、またイーサなので、WAN側に接続するのに極端な話、スイッチでつなげられますので、今までのようにルータの設定などいらなくなります。(VLAN構成にするならスイッチの設定が必要ですけけど)また、QoSなどデータの優先制御や帯域制御などもできますので、VoIPなどにも使えますね。
ということで、簡単に拠点間のLAN構築が可能になります。

提供しているサービスの違いは、どこも似たり寄ったりかなって思いますけど。
サービス提供エリアや、構築にあったオプションサービスなどで選べばいいのでは。

こんちは。hirasakuです。

簡単に言うと
インターネットVPNはその名の通り、インターネット網を利用した拠点間をあたかもLANのように使うためのWAN構築です。
基本的にVPN接続するためのルータの設定(トンネリングや暗号化・認証など)はユーザーが設定し、運用管理もユーザーが行います。
インターネット網なので通信に対する保障がありませんので、VPNに通すデータを検討しなければならない場合もあります。
一番安価に構築できランニングコストが抑えられます。

IP-VPNは通信事業者の閉域IPネットワ...続きを読む

QNTPで同期が始まらない

こんにちは。
度々すみません、NTPの設定をしましたがどうも同期が始まりません。

「ntpdate 130.69.251.23」と手動同期は成功します。
しかしntpデーモンを起動し1時間以上放置しても同期されません。
※外部タイムサーバー参照としてます

ntp.confは下記のとおりです。
---------------------------------------------------
server 133.100.9.2 # clock.nc.fukuoka-u.ac.jp
server 130.69.251.23
driftfile /var/lib/ntp/drift
---------------------------------------------------

でntpq -pの結果は下記となります。

remote refid st t when poll reach delay offset jitter
==============================================================================
133.100.9.2 .INIT. 16 u - 64 0 0.000 0.000 4000.00
130.69.251.23 .GPS. 1 u 27 64 377 8.015 -99970. 17262.6

同期ができれば「remote」列に「*」が表示されると思っています。
何か設定が足りないでしょうか?。
尚、「/vat/log/message」をtailしてますが特にエラーは無さそうです。

よろしくお願いします。

こんにちは。
度々すみません、NTPの設定をしましたがどうも同期が始まりません。

「ntpdate 130.69.251.23」と手動同期は成功します。
しかしntpデーモンを起動し1時間以上放置しても同期されません。
※外部タイムサーバー参照としてます

ntp.confは下記のとおりです。
---------------------------------------------------
server 133.100.9.2 # clock.nc.fukuoka-u.ac.jp
server 130.69.251.23
driftfile /var/lib/ntp/drift
---------------------------------------------------

でntp...続きを読む

Aベストアンサー

#4のqaaqです。

○ntp.conf 関連
server 行に "iburst" を付けておきましょう。
server ntp.nict.jp iburst <--こんな感じになります。

ntp サーバ起動時の時刻調整の収束時間が早くなります。
http://www.jp.freebsd.org/cgi/mroff.cgi?subdir=man&lc=1&cmd=&man=ntp.conf&dir=jpman-5.4.0%2Fman&sect=0

○ntpdate での時刻調整
ntpdate -b -u [サーバ名] を複数回実行して、"offset の値が0.1以下"になるまで、強制的に時刻調整して下さい。

○ハードウエアclockの修正
hwclock -w コマンドでハードウエアclockを合わせます。
http://www.linux.or.jp/JM/html/util-linux/man8/hwclock.8.html

○ntpdの動作
ntpによる時刻調整は、調整幅が通常128mSと小さいので、1時間は様子をましょう。
2時間程度経過しても、時刻修正の兆候が見られない場合ハードウェアの不良も考えられます。

時刻調整の兆候としては、
・logファイルに 一時間毎に調整したメッセージが書かれる。
Jan 7 21:57:40 ntpd[91145]: offset 0.000994 sec freq -190.802 ppm error 0.000076 poll 8
・ntpq -p の出力の最初の桁に"*,+"が付く。また、reach が377になる。
% ntpq -np
remote refid st t when poll reach delay offset jitter
+192.168.0.102 GPS_NMEA(0) 2 u 3 32 377 0.926 -0.330 0.023
*192.168.0.192 GPS_NMEA(1) 2 u 10 32 377 0.747 -0.336 0.023
192.168.0.9 PPS(1) 2 u 3 32 377 0.757 6.559 0.161


○その他
・PC起動時には、システムクロックを計測してその後の動作の基準にしていますが、
CMOSバッテリ不足やハードウェアに何らかの異常があるととんでもない時刻を示すことがあります。(要修理です)
・BIOSの時計も起動時の初期時刻として使われてしまうので、ある程度合わせておいた方がいいです。

#4のqaaqです。

○ntp.conf 関連
server 行に "iburst" を付けておきましょう。
server ntp.nict.jp iburst <--こんな感じになります。

ntp サーバ起動時の時刻調整の収束時間が早くなります。
http://www.jp.freebsd.org/cgi/mroff.cgi?subdir=man&lc=1&cmd=&man=ntp.conf&dir=jpman-5.4.0%2Fman&sect=0

○ntpdate での時刻調整
ntpdate -b -u [サーバ名] を複数回実行して、"offset の値が0.1以下"になるまで、強制的に時刻調整して下さい。

○ハードウエアclockの修正
hwclock -w コマンドでハ...続きを読む

QwiresharkでパケットモニタするとRetransmissionが多発しているという意味は?

現在、自分で作成したパケット送信クライアントプログラムをテストしており、3秒に1回のタイミングでインターネット上にあるサーバのグローバルipアドレスに対し、TCPパケットを発信させて受信するというテストを行っています。
しかし、3秒に一回データを送っているはずなのに、その間隔10秒とか20秒とか間隔が開いてしまう時があります。

wiresharkというパケットモニタソフトで送信側、受信側共にパケットモニタを行ってみたところ、”Retransmission”が多発しているということがわかりました。(tcp.analysis.retransmissionというフィルタ設定で検索)この現象はある時とない時があります。テストして10日ぐらい経つのですが、このパケットが確認されるのはお昼の12時頃と夕方の6時頃が多いのですが、このことからどのようなことが起こっていると考えられますか?

わかる方いらっしゃいましたらご教授よろしくお願いいたします。

Aベストアンサー

簡単に言うと「トラフィック過多によるパケットの再送が多発している」です。

噛み砕いて言えば「回線が混雑していて、送信したパケットが、他の誰かが送信したパケットと衝突(コリジョンが発生)してパケットが消えた。なので、もう一度、送り直した」と言う事。

>このパケットが確認されるのはお昼の12時頃と夕方の6時頃が多いのですが、このことからどのようなことが起こっていると考えられますか?

「お昼休み、終業時間の6時になると、みんな、メールをチェックしたり、個人的にインターネットを閲覧し、トラフィック過多が起き、回線が異常に混雑する」と言う事が起きていると考えられます。

解消するには以下の方法があります。
・「休み時間も、終業時間後も、プライベートでネットを使うな!」と言う「通達」を全社に出す
・社内LANを、トラフィック過多によるコリジョンが起きないよう高速で帯域のあるネットワークカード、LANハブ、ルーターに変える
・受信側と送信側を、社内LANから(電気的、アドレス的に)独立した別のLANにする

要は「混んでる時間帯なので仕方が無い」って事です。

簡単に言うと「トラフィック過多によるパケットの再送が多発している」です。

噛み砕いて言えば「回線が混雑していて、送信したパケットが、他の誰かが送信したパケットと衝突(コリジョンが発生)してパケットが消えた。なので、もう一度、送り直した」と言う事。

>このパケットが確認されるのはお昼の12時頃と夕方の6時頃が多いのですが、このことからどのようなことが起こっていると考えられますか?

「お昼休み、終業時間の6時になると、みんな、メールをチェックしたり、個人的にインターネットを...続きを読む


人気Q&Aランキング