ネットワークプログラミング相談室 Port15
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2005/09/30(金) 22:54:08Programming UNIX Socket FAQ (日本語訳)
http://www.kt.rim.or.jp/~ksk/sock-faq/indexj.html
Winsock Programmer's FAQ (日本語訳)
http://www.kt.rim.or.jp/~ksk/wskfaq-ja/
関連リンクは>>2-10辺り
足りなかったら適当に付け足してね
前スレ
ネットワークプログラミング相談室 Port14
http://pc8.2ch.net/test/read.cgi/tech/1118469143/
0348デフォルトの名無しさん
2005/11/01(火) 10:29:02今時のOSなら故意か偶然かIPアドレスが衝突したことくらいはわかる。
メッセージ出るよ。
0349デフォルトの名無しさん
2005/11/01(火) 13:08:03IPアドレスの衝突は関係ないだろ。
ターゲットとなる2つのホストに、第3者が、それぞれ他方を偽るARPを送るだけだから。
0350デフォルトの名無しさん
2005/11/01(火) 15:45:06の
>(local timing significance only)
とはどういう意味でしょうか。
「ローカルタイミングの意味のみ??」どう訳せばいいのかわかりません、、
0351デフォルトの名無しさん
2005/11/01(火) 16:15:16ローカル側でのタイミングのみ意味がある
=リモート側の処理のタイミングとは無関係
という意味では?
つまり、Client side の場合、
(1) と (5) の間にこの処理が発生するけれども、
(2),(3),(4)の処理のタイミングとは無関係、という意味。
0352デフォルトの名無しさん
2005/11/01(火) 16:30:42ああなるほど、納得しました。
ありがとうございました。
0353デフォルトの名無しさん
2005/11/01(火) 23:12:01タイミングw
NICチーミングの話だよ。
0354デフォルトの名無しさん
2005/11/02(水) 00:16:03その arp をいつ送るかを考えてごらん。
0355デフォルトの名無しさん
2005/11/02(水) 00:27:46IT用語辞典並の知識しかなさそうに見えるぞ。
ARPというプロトコルについて勉強したまえ。
0356デフォルトの名無しさん
2005/11/02(水) 01:43:21その考えだと、すべての技術の詳細を厳密に把握してないと
設計できないことになるね。
少なくとも、よい設計者は君のようなことは言わない。
0357デフォルトの名無しさん
2005/11/02(水) 01:43:50念のため聞きたいんだが、ARP Poisoning Attack については理解してるんだよね?
どうみてもわかってないのはそっちの方にしか見えないんだが。
0358デフォルトの名無しさん
2005/11/02(水) 01:46:43お ま え ら た だ の 土 管 屋 ?
0359デフォルトの名無しさん
2005/11/02(水) 01:48:57NICチーミングって、俺は NIC Teaming のことしか知らないんだが、他にもあるの?
0360デフォルトの名無しさん
2005/11/02(水) 01:59:490361デフォルトの名無しさん
2005/11/02(水) 02:13:590362デフォルトの名無しさん
2005/11/02(水) 02:16:100363デフォルトの名無しさん
2005/11/02(水) 05:58:10icmpの話しだろ
明後日はripの話しで温く盛り上がろう。
0364デフォルトの名無しさん
2005/11/02(水) 16:40:18考えたが、答えは「割り込む直前」ぐらいしか思いつかん。
正解があるんなら教えてくれ。
偽ARP投げて、自分に流れはじめたEthフレームをフォワードするだけだから、
ARP Poinsoningで通信に割り込むには、IPアドレス振る必要もないわけだが。
0365デフォルトの名無しさん
2005/11/03(木) 02:27:360366デフォルトの名無しさん
2005/11/03(木) 11:35:100367デフォルトの名無しさん
2005/11/03(木) 12:57:19> その考えだと、すべての技術の詳細を厳密に把握してないと設計できないこ
> とになるね。
どう曲解したらそんな結論が導き出されるんだろう…。
少なくとも、アフォな設計者しか君のようなことは言わない。(w
>>357 ⇒ >>362
>>364
自分の IP アドレスは要らんけど、、偽装する IP アドレスは指定するだろ。
通信相手の MAC アドレスが変わったらログを取る OS は別に珍しくないよ。
ところで、普通の実装だと arp-request を投げてないのに arp-reply が来る
と arp テーブルを更新してしまうものなのか?
0368デフォルトの名無しさん
2005/11/03(木) 13:04:46UDPソケット作っててdestが受信体制にない場合のunreachableを無視したいんですよ。
0369デフォルトの名無しさん
2005/11/03(木) 14:40:39recvfromの返り値をチェックするだけだろ。
0370デフォルトの名無しさん
2005/11/03(木) 15:44:25何したいんだか分からんが、unreachableを受信したらOSがそれをメモってて、
いつ届くようになるか分からんからキャッシュを無効にしたいって事かな?
0371デフォルトの名無しさん
2005/11/03(木) 19:38:39recvが反応する(エラーを返す)のを無効にしたいんですよ。
0372デフォルトの名無しさん
2005/11/03(木) 21:10:50いいじゃないか。
0373デフォルトの名無しさん
2005/11/03(木) 21:18:31ると思っているんだろうか…。
0374デフォルトの名無しさん
2005/11/03(木) 21:23:500375デフォルトの名無しさん
2005/11/03(木) 21:30:34後学のために教えて欲しいんだが、例えば?
>ところで、普通の実装だと arp-request を投げてないのに arp-reply が来る
>と arp テーブルを更新してしまうものなのか?
する。
でないと、(特殊ケースだけど)VRRPが切り替わったときとか、やたらと時間がかかるようになる。
そもそも、ターゲットのarpエントリがエージアウトされるまで我慢して待って、
requstが飛んだときに偽replyを返せばいい。
受ける側は、2つの異なるreplyが返ってきたとき、なんかおかしいということはわかっても、
どちらが正しいかなんて、知る方法はない。
古き良き時代のプロトコルであるarpは性善説で成り立ってるから、
悪意あるホストの存在なんて、仮定されてない。
ってことで、1年ぐらい前試したときは、LinuxでもFreeBSDでもSolarisでもWindowsでも、
その手のツールが吐く偽arpを、ホイホイ信じてた。
0376デフォルトの名無しさん
2005/11/03(木) 21:54:27君が使ってた、FreeBSD でも取るよ。(少なくとも、4.3R では。)
一年ぐらい前に、試した時に Syslog とか見たことないの?
> でないと、(特殊ケースだけど)VRRPが切り替わったときとか、やたらと時
> 間がかかるようになる。
なんで? 仮想 MAC アドレスも引き継げば、arp テーブルの更新なんかは必要
ないと思うんだけど。
> どちらが正しいかなんて、知る方法はない。
arp (に限らず、初期のネットワーク設計) が、性善説でなりっていると言う
のは理解してるつもり。
まあ、ポリシーの問題だろうけど、こういう世の中になったんだから、どっち
が正しいかわからないんだったら、両方信じないと言う実装もありかなぁ。
0377デフォルトの名無しさん
2005/11/03(木) 22:30:59アホは逝ってよし。
スルーの方向で。> ALL
0378デフォルトの名無しさん
2005/11/03(木) 23:31:31そのタイムロスを無くしたいから無視したかったんですよ。
まあそんなもんないってことが分かったんで、あきらめてエラーコード見ます。
0379デフォルトの名無しさん
2005/11/03(木) 23:35:08ipfilterあたりのフィルタリングで弾くとかな。
けど結局リトライしなきゃいけないんだから、
> エラーコード見ます。
みて、どういうリトライするかロジック組んだ方がいい。
0380デフォルトの名無しさん
2005/11/03(木) 23:48:421514byteより多くのパケットを送るのはジャンボフレームを使わないと無理なの?
WindowsSize=64Kbyte とか指定できてもそれじゃ意味ない気がするんだけど。
0381デフォルトの名無しさん
2005/11/03(木) 23:53:24エラーコードは見てますよ。
ただWaitFor〜、readが反応する時間がもったいないだけです。
>>380
MTU
0382357
2005/11/03(木) 23:56:47> ところで、普通の実装だと arp-request を投げてないのに arp-reply が来る
> と arp テーブルを更新してしまうものなのか?
普通にする。だからこそ ARP Poisoning が問題になるんだが…
悪い点だけでなく積極的に使う例が冗長クラスタリングの切替だ、というのは
>>375 が書いている通り。
>>376
> なんで? 仮想 MAC アドレスも引き継げば、arp テーブルの更新なんかは必要
> ないと思うんだけど。
VRRP以外にも、仮想MACを使ってない、仮想IPを使った冗長クラスタリングの
システムだって普通にあるよ。そういう場合 Unsolicited ARP を投げて
近隣ルータのARPキャッシュを更新して切替時間を短くする。
arping コマンドの -U とか -A オプションとかがまさにそれだけど。
ttp://linuxcommand.org/man_pages/arping8.html
0383デフォルトの名無しさん
2005/11/04(金) 00:42:15> 普通にする。
なるほど。
ただ、そうしないといけない理由は、冗長クラスタリン
グの他にあるのか?
> 仮想MACを使ってない、仮想IPを使った冗長クラスタ
> リングのシステムだって普通にあるよ。
仮想 IP で、実 MAC と言うこと?
なんか中途半端な構成だな。
ちなみに、どういうシステムがあるか例を教えてくれないか。
0384デフォルトの名無しさん
2005/11/04(金) 01:24:22382ではないが、自分の実装した例ではpppでリモートのホストにLAN内のサブネットのアドレスを与えた時
仮想的にLAN上に存在しているように見せるためにpppをターミネートしているローカルなホストがリモートの
IPアドレスでgratuitous arpをした。 いわゆるRemote Access Serverと呼ばれるたぐいはこういうことを
するんじゃないかな。
0385デフォルトの名無しさん
2005/11/04(金) 01:39:02再送のこと考えたら、少々の待ち時間は必要だろ?
それともICMP来たらすぐに再送して帯域食い潰すつもりか?
0386357
2005/11/04(金) 04:44:25> ただ、そうしないといけない理由は、冗長クラスタリングの他にあるのか?
「そうしないといけない」かどうかじゃなくて、
「現実にはそういう実装が普通にある」って言ってるだけなんだがな。
で、RFC 826 を今読み直してみたけど、素直に実装すればそういう動作になると
思うんだが、俺の読み方間違ってる?
> 仮想 IP で、実 MAC と言うこと?
> なんか中途半端な構成だな。
> ちなみに、どういうシステムがあるか例を教えてくれないか。
普通に ifconfig で仮想 IP 割り当てたらそういう状態にならないか?
まあOSによって違うかもしれんが、少なくとも Linux ではそうなる。
冗長クラスタリングシステムの例では UltraMonkey とか。
(以下の「高可用性」の節あたり読んでみて)
ttp://ultramonkey.jp/papers/lvs_tutorial/html/
その他の商用の高可用化製品でも同じことやってると思うけど。
俺はむしろ仮想MACまで使うシステムの方をあまり見たことが無い。
0387384
2005/11/04(金) 05:50:26ちょっと手元のLinux 2.4のソース(net/ipv4/arp.c)見てみたらこうあったのでデフォルトでは
そういうことはないようだ。
#ifdef CONFIG_IP_ACCEPT_UNSOLICITED_ARP
/* Unsolicited ARP is not accepted by default.
It is possible, that this option should be enabled for some
devices (strip is candidate)
*/
if (n == NULL &&
arp->ar_op == htons(ARPOP_REPLY) &&
inet_addr_type(sip) == RTN_UNICAST)
n = __neigh_lookup(&arp_tbl, &sip, dev, -1);
#endif
ちなみに自分はunsolicited arpとgratuitous arpをごっちゃにしてた。ごめん。
普通冗長クラスタやプロクシ・エージェント(RAS)が普通使うのはgratuitous
arpでunsolicited arpではない。 Gratuitous ARPはソースとリクエストのアドレスが
同じARPリクエスト。
0388デフォルトの名無しさん
2005/11/04(金) 10:01:20にJavaのHttpClientなどでアクセスできません。
アクセスするためのヒントちょっとでもいいのでお願いします。
スレ違いだったらすいません。
0389デフォルトの名無しさん
2005/11/04(金) 10:07:22エラーコードその他くらい書け。
0390デフォルトの名無しさん
2005/11/04(金) 10:29:58その後↓のようなエラーが出ました。
エラーです。
2005/11/04 10:16:01 org.apache.commons.httpclient.SimpleHttpConnectionManager re
leaseConnection
警告: SimpleHttpConnectionManager being used incorrectly. Be sure that HttpMeth
od.releaseConnection() is always called and that only one thread and/or method i
s using this connection manager at a time.
DelphiのIndyコンポーネントという
やつではアクセスできるんですが・・。
なにしろDelphiはあまり詳しくはなく、
Javaでやりたいもんで・・。
たぶんサイトの方がスクリプトからのアクセスを
禁止してるみたいで、
Header偽装とかでやれるのかなあ
とかも考えてみたのですが、
Header偽装でやれるんでしたら、その本を見て
勉強します。
0391357
2005/11/04(金) 15:57:06> ちょっと手元のLinux 2.4のソース(net/ipv4/arp.c)見てみたらこうあったのでデフォルトでは
> そういうことはないようだ。
これなんだけどさ、「新規にARPキャッシュに追加することはしないけど、
既に存在するARPエントリは更新される」っていう動作になると思うんだ。
ロジックを追っかけてもそう思えるし、実際に試してもそうなった。
(RedHat EL4(2.6) で確認。ちなみに Windows XP SP2 も同じ動作だった)
> Gratuitous ARPはソースとリクエストのアドレスが同じARPリクエスト。
これ、俺が知ってる使い分けとは違うんだけど、明確な使い分けの定義
ってあるのかな? 人によっては区別しないで使ってるように思うんだけど…
俺の知ってる使い分けの例はこれ。
ttp://linux-ip.net/html/ether-arp.html
つまり ARP Request されてない ARP Reply のことが Gratuitous ARP。
ソースとリクエストのアドレスが同じARP Request が Unsolicited ARP。
いろいろぐぐってみると、両者を含めて Unsolicited って言ってると
思われる文章もあるし(arping のマニュアルとか)、Stevens の「詳解
TCP/IP」では前者の記述は無くて Gratuitous ARP って書いてあるね。
# 「根拠のないARP」って一瞬なんだかわからんかったぞ。>詳解TCP/IP
# 「余計なARP」とか「押し付けARP」とかそんな感じじゃないかな。
0392デフォルトの名無しさん
2005/11/04(金) 17:33:43与えられられたが、その根拠はない、その両方の状態のこと。
0393デフォルトの名無しさん
2005/11/04(金) 21:28:56Linuxだと、IPヘッダ構造体はインクルードすれば利用できるんですが、
winsockの場合だと、自分で定義しなきゃダメですか?
0394デフォルトの名無しさん
2005/11/04(金) 23:12:51IncludeすればOK
0395デフォルトの名無しさん
2005/11/04(金) 23:49:10技術者気取りやがって。
OSI 2階層のバカ共めが。
0396デフォルトの名無しさん
2005/11/05(土) 00:02:48も、もっと言ってぇ〜
0397釣られるなよ ⇒ おれ。(w
2005/11/05(土) 00:04:39なんだなんだ、いきなり。
話についていけなくなって嵐に走ったのか?
0398デフォルトの名無しさん
2005/11/05(土) 00:14:13かなり的を射ている。彼らは土管屋なのだ。
右から左へ。左から右へ。双方向リストくらいの知能しか持ち合わせていない。
0399デフォルトの名無しさん
2005/11/05(土) 00:20:340400デフォルトの名無しさん
2005/11/05(土) 00:26:020401デフォルトの名無しさん
2005/11/05(土) 00:27:490402デフォルトの名無しさん
2005/11/05(土) 00:33:03warata。
0403デフォルトの名無しさん
2005/11/05(土) 00:47:190404デフォルトの名無しさん
2005/11/05(土) 01:10:20そういう話はセキュリティ板か初級ネット板(旧ハッカー板)でどうぞ
0405デフォルトの名無しさん
2005/11/05(土) 01:23:45で、チミはどんな高度な話題を振ってくれるんだ?
0406デフォルトの名無しさん
2005/11/05(土) 01:27:12今蟹とマベのDualLAN用意して、
蟹-->マベに生パケットそのまま転送するところまで作ったので、
パケットフィルタを今度は実装しようかと思ってます。
参考文献などあったら教えてください。
とりあえず、目標は、仕事場に転がってる10GBpsのネットワークで
大域98.9%維持しつつフィルタリングできるようになりたいです。
0407デフォルトの名無しさん
2005/11/05(土) 01:35:00蟹って・・・ギャグ?
OSは?
フィルタリングならカーネルレベルで動作しないとパフォーマンス悪いと思うぞ
snortとかWin/Unixでソースも公開してるんじゃないか?
Winの場合デバドラキットを買わないといけないが
0408デフォルトの名無しさん
2005/11/05(土) 01:37:120409デフォルトの名無しさん
2005/11/05(土) 02:10:06今は会社に転がっていたパーツ組み合わせた即席Linux鯖作ってそこで勉強中です
0410デフォルトの名無しさん
2005/11/05(土) 07:44:1610GBps なんて云うあまり聞いたこともない通信速度だし。
98.9% なんて、中途半端な仕様だし。
まあ、釣りやね。
0411デフォルトの名無しさん
2005/11/05(土) 12:37:52蟹とかマベとか意味わかんないし、DualLANってオレ用語だけど、
ほんとに職場に10GbE NICが転がってて、それをアピールしたかったんだろうよ。
0412デフォルトの名無しさん
2005/11/05(土) 12:43:04>>410
大文字のBはバイトを表すことが多い、って教えてやれよ。
0413デフォルトの名無しさん
2005/11/05(土) 13:55:09http://d.hatena.ne.jp/keyword/Realtek
0414デフォルトの名無しさん
2005/11/05(土) 13:55:44http://www.nicmania.net/nic/gh-el100rd.html
0415デフォルトの名無しさん
2005/11/05(土) 19:15:330416デフォルトの名無しさん
2005/11/05(土) 19:21:220417デフォルトの名無しさん
2005/11/05(土) 19:22:00ウェイトハンドルかタイマー(シグナル)
0418デフォルトの名無しさん
2005/11/05(土) 20:11:300419デフォルトの名無しさん
2005/11/05(土) 23:13:19決まりってわけでもないしな。
0420デフォルトの名無しさん
2005/11/05(土) 23:44:24まあ、この板に来てる奴なら常識だろ。
0421デフォルトの名無しさん
2005/11/06(日) 02:36:01物理的に繋げられれば確実に勝てる。
つーかおまいらルータ屋なのか?
0422デフォルトの名無しさん
2005/11/06(日) 03:05:43この時点で
0423デフォルトの名無しさん
2005/11/06(日) 13:53:33アプリへはローカルからソケット経由で情報のやり取りができるようにしようと思っています。
で、通信その相手はUIです。WindowsのGUIだったり、CGIだったり。
質問は通信プロトコルに関してなのですが、多くの人に扱いやすいプロトコルは、
テキストベースとバイナリベースだと、テキストベースと思ってよいでしょうか?
テストベースの場合どのようなものが扱いやすいでしょうか?
ここでの扱いやすいというのは、
1.さまざまなプログラムから扱える
2.複雑な処理を必要としない(複雑なフォーマットをものすごいアルゴリズムで解析したりしない)
そこで、、個人的には、要求はライブラリの多いHTTPベースで、応答はCSVかなと思っていますが、
もっとよいものありますか?
0424デフォルトの名無しさん
2005/11/06(日) 14:05:04XMLを使え!!
0425デフォルトの名無しさん
2005/11/06(日) 14:21:19XMLは考えていたのですが、ライブラリがないと自分でパーザ書くのは敷居たかいかなと思いました。
ちなみに自分はDでこれ作っているのですが、標準ライブラリにXMLがないです。
YAMLとかもいいのですが、同じ理由で。
ちなみに、ぱっとライセンスに制限されずにXMLが扱えるプログラミング言語って何があります?
java、C#、VB.NET...
0426423
2005/11/06(日) 14:22:490427デフォルトの名無しさん
2005/11/06(日) 14:26:02それ全部使えるよ
0428423
2005/11/06(日) 14:40:26使えなさそうなもの(別途自分でライブラリを用意しないといけないもの)
C, C++, D, HSP(-_-), VB6..
案外あるものなんです?XMLのライブラリ。
画面くらいしか作れない!と言い切るような方でも簡単にXML使えますでしょうか。
0429デフォルトの名無しさん
2005/11/06(日) 14:55:310430デフォルトの名無しさん
2005/11/06(日) 15:00:040431デフォルトの名無しさん
2005/11/06(日) 15:12:010432デフォルトの名無しさん
2005/11/06(日) 16:30:110433デフォルトの名無しさん
2005/11/06(日) 16:46:24どのレイヤーのプロトコルを作ろうとしてる?
ちなみに要求をHTTP、応答はCSVなんて言っちゃってるけど
もう少しお勉強してから作った方が良いのでは?
今のまま作らせると要求応答、HTTPでやるんでしょう、どうせ。
HTTPより上層のプロトコルを決めようとしてるの?
0434デフォルトの名無しさん
2005/11/06(日) 18:50:08SOAPにしろよ。全部揃ってるし。
0435デフォルトの名無しさん
2005/11/06(日) 18:55:42SEXはSOAPにしろよ
0436デフォルトの名無しさん
2005/11/06(日) 22:45:00CもC++もXMLライブラリくらいある。
「画面くらいしか作れない」ってどういう意味?
個人的にはXML-RPCかSOAPを推す。
0437デフォルトの名無しさん
2005/11/06(日) 23:00:21428をよく読め
0438デフォルトの名無しさん
2005/11/07(月) 00:01:02帯域外データって奴ですか?それともエラーですか?
0439デフォルトの名無しさん
2005/11/07(月) 00:19:430441423
2005/11/07(月) 01:20:30TCP上に独自のプロトコルを定義して、ライブラリは要求に応じてこっちで作ることにしました。
それが一番敷居を低くできるかなと。
0442デフォルトの名無しさん
2005/11/07(月) 01:34:39さんくる
0443デフォルトの名無しさん
2005/11/07(月) 01:39:07敷居下げるんならSOAP使った方がいいと思うんだけどな。
0444デフォルトの名無しさん
2005/11/07(月) 03:06:18そうではないようだから、>>441が楽じゃないの。
HTTP鯖の機能を自前で実装するのは面倒くさいでしょ。
ま、Windows限定なら、そういうのはCOMサーバにしちゃうのが普通な気もするが。
0445デフォルトの名無しさん
2005/11/07(月) 04:00:350446デフォルトの名無しさん
2005/11/07(月) 14:24:250447デフォルトの名無しさん
2005/11/07(月) 14:49:35■ このスレッドは過去ログ倉庫に格納されています