[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 06/09 07:18 / Filesize : 162 KB / Number-of Response : 753
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

ネットワークプログラミング相談室 Port29



1 名前:デフォルトの名無しさん [2012/10/31(水) 17:05:08.29 ]
主にソケットに関しての質疑応答スレッドです。

Programming UNIX Socket FAQ (日本語訳)
www.kt.rim.or.jp/~ksk/sock-faq/indexj.html
Winsock Programmer's FAQ (日本語訳)
www.kt.rim.or.jp/~ksk/wskfaq-ja/

関連リンクは>>2-10辺り
足りなかったら適当に付け足してね

前スレ
ネットワークプログラミング相談室 Port28
toro.2ch.net/test/read.cgi/tech/1334736934/

関連スレ
ネットワークプログラミング雑談
toro.2ch.net/test/read.cgi/tech/1235800707/


175 名前:デフォルトの名無しさん mailto:sage [2013/04/03(水) 13:32:21.38 ]
>>173
試しに1じゃなくて送信時刻を送ってみては

176 名前:デフォルトの名無しさん mailto:sage [2013/04/03(水) 14:19:03.34 ]
全てが正しく動いているなら、ICMP port unreachが送信したホストに返る

177 名前:デフォルトの名無しさん mailto:sage [2013/04/03(水) 19:24:47.39 ]
>>175
サンクス
5秒ほど遅れてた…

178 名前:デフォルトの名無しさん mailto:sage [2013/04/03(水) 21:56:32.66 ]
自己解決しますた…

受信プログラムを待機させている間にソケットにポート設定をしてたのが原因みたい

よくワカンネ

179 名前:デフォルトの名無しさん mailto:sage [2013/04/04(木) 11:58:03.35 ]
>>178
ふざけんなよ!
>送信プログラムをしばらく走らせてから受信プログラムを走らせ
って書いてたよな? 適当なことを書きやがって


ポートをバインドした時点で受信は開始されます
カーネルにバッファされます

180 名前:デフォルトの名無しさん mailto:sage [2013/04/04(木) 12:12:58.81 ]
ワロタ

181 名前:デフォルトの名無しさん mailto:sage [2013/04/04(木) 13:30:39.19 ]
>>178
死ねよおまえ
生きてる価値ねーよ

182 名前:デフォルトの名無しさん mailto:sage [2013/04/04(木) 13:57:20.53 ]
プロトコルスタックさんの気持ちになって考えればすぐにわかることだろうに
なにが「よくワカンネ」だ

183 名前:デフォルトの名無しさん mailto:sage [2013/04/04(木) 22:09:15.34 ]
馬鹿は馬鹿とは自分では認識できないということだな



184 名前: 忍法帖【Lv=2,xxxP】(2+0:5) mailto:sage [2013/05/11(土) 23:27:23.69 ]
ほしゅ

185 名前:デフォルトの名無しさん mailto:sage [2013/05/13(月) 21:29:52.72 ]
久しぶりにwinsock使ったら面倒くさかった。
ここ数年C#にどっぷりつかってたから、C++でコーディングするのが面倒だった。
実行環境のことを考えなくてよいなら、C#やJavaで作る方が簡単だな。

186 名前:デフォルトの名無しさん mailto:sage [2013/05/13(月) 21:34:47.80 ]
JavaはHttpURLConnectionで事足りるレベルなら簡単だけど
Socket作るんだったらたぶんC#のほうが簡単そう。

187 名前:デフォルトの名無しさん mailto:sage [2013/06/01(土) 23:20:34.89 ]
質問ですが
select(2)の第一引数には結局何を渡せば良いのん?

バークレーソケットの場合、FD_SETSIZEを渡しとけば機能的には問題無いらしいが、
これは例えばFD_SETSIZEが32768の環境なら、select()を呼ぶたびに
32768個のディスクリプタがチェックされることになるので無駄が生じている気がする…

あとWinsockではFD_SETした個数を渡せば良いというのは本当ですか

188 名前:187 mailto:sage [2013/06/01(土) 23:24:31.90 ]
ああWinsockについては自己解決しました、
ttp://msdn.microsoft.com/en-us/library/windows/desktop/ms740141(v=vs.85).aspx
>nfds [in]
>Ignored. The nfds parameter is included only for compatibility with Berkeley sockets.
→ガン無視されるので0とか-1とか渡しても良い(適当)

バークレーソケットではどうなのですか

189 名前:デフォルトの名無しさん mailto:sage [2013/06/01(土) 23:49:25.06 ]
一番大きいfd+1

190 名前:187 mailto:sage [2013/06/02(日) 00:00:57.31 ]
>>189
レスdクス、
select(2)を呼ぶ時点でFD_SETされているのはソケット番号であってディスクリプタ番号ではなく、
ソケット番号がディスクリプタ番号と一致するとは限らないと思うのですが、それでも?
実はバークレーソケットでは一致するのでしょうか
(C標準ライブラリのIOBとかの実装と同じで、
 ハンドル==配列の添え字、とする実装のが自然とは思えますが、仕様としてどうなの?)

191 名前:デフォルトの名無しさん mailto:sage [2013/06/02(日) 00:15:20.65 ]
socket(2), open(2)が返すのはfd。
fdは全部数字。
「ソケット番号」という概念はない。

192 名前:デフォルトの名無しさん mailto:sage [2013/06/02(日) 00:50:32.12 ]
>>191
レスdクス多分理解しました
バークレーソケットの場合は全部fdなので問題は無い、と、

ただ、サーバ側のプログラムでは、クライアントから新規接続cがあった場合、
listenしていたfdをaccept(2)に渡して接続c用の新規fdを取得する結果、
select(2)で待つべきfdが増殖していくと思うのですが、
ということは<一番大きいfd+1 >というのはそのつど更新していくもの?
それとも、通信プロセスを起こすタイプのマルチスレッドサーバにすると問題無い(普通はそうする?)のでしょうか…

あと関連質問なのですが、
通信「スレッド」を起こすタイプのマルチスレッドサーバではどうすれば良いのでしょう…
子プロセスにfdを渡すのと異なり、親がfdを閉じるわけには行かない
しかし親だけがselect(2)するのでは通信「スレッド」を起こす意味がない
また、実情はともかく、仕様上はWinsockはスレッドセーフとは謳われていない
(Winsock互換の非スレッドセーフな実装が理論上は有り得る)
ので、どうプログラミングするのが正しいのかいまいちわからん…

193 名前:デフォルトの名無しさん mailto:sage [2013/06/02(日) 03:49:28.43 ]
そりゃ更新しないと意味ないわな。

マルチスレッドサーバならselect(2)は使わなくていいでしょ。
いろいろな混合モデルもあるけど、最初は簡単なモデルで。



194 名前:デフォルトの名無しさん mailto:sage [2013/06/02(日) 09:34:05.28 ]
何バイト送られて来るかわからない通信でselect→1バイトずつreadと言うのはやるべきじゃないってmanに書かれてたけどどうするのが一番効率的なんでしょう。
mtuの値を取得してその値-フレーム分をreadするのでしょうか?

195 名前:デフォルトの名無しさん mailto:sage [2013/06/02(日) 10:54:39.80 ]
そりゃ 1MB 受け取るのに百万回繰り返さなきゃいかんようではお世辞にも効率いいとは言えまい
ノンブロッキングモードにして適当に大きなサイズ (8KB とか 64 KB とか) で読めばいい

196 名前:デフォルトの名無しさん mailto:sage [2013/06/03(月) 01:05:59.71 ]
ノンブロッキングにする必要はない。

197 名前:デフォルトの名無しさん mailto:sage [2013/06/03(月) 01:16:29.85 ]
selectしているのはブロッキングさせたくないからで、selectの後に受信データより多いバッファ分読み込もうとしたらブロッキングしちゃうからノンブロッキングで読み込む方が良さそうな気がするけど何か見落としあったりします?

198 名前:デフォルトの名無しさん mailto:sage [2013/06/03(月) 01:24:07.02 ]
> しちゃう

ダウト

199 名前:デフォルトの名無しさん mailto:sage [2013/06/03(月) 01:56:25.17 ]
ブロックするだろ

200 名前:デフォルトの名無しさん mailto:sage [2013/06/03(月) 02:00:17.97 ]
しないだろ

201 名前:デフォルトの名無しさん mailto:sage [2013/06/03(月) 02:05:28.99 ]
>>199
しない
実験してみるといい

202 名前:デフォルトの名無しさん mailto:sage [2013/06/03(月) 02:05:39.31 ]
うん。やっぱしないね>>199は忘れて

203 名前:デフォルトの名無しさん mailto:sage [2013/06/03(月) 03:59:52.42 ]
1バイトでもデータがあればね



204 名前:デフォルトの名無しさん mailto:sage [2013/06/03(月) 11:23:03.45 ]
selectした後の話だからね。>>197

205 名前:デフォルトの名無しさん mailto:sage [2013/06/03(月) 11:26:58.12 ]
select後
受信データが1以上でバッファはデータ以上の大きさで読み込むと?
受信データが無いのに読み込むと?

206 名前:デフォルトの名無しさん [2013/06/03(月) 11:33:03.05 ]
馬鹿じゃなかと?

207 名前:デフォルトの名無しさん mailto:sage [2013/06/03(月) 11:41:45.21 ]
ゴカイうまかっちゃ

208 名前:デフォルトの名無しさん mailto:sage [2013/06/03(月) 12:12:09.02 ]
むろみさんは海に還れ

209 名前:デフォルトの名無しさん mailto:sage [2013/06/03(月) 23:50:05.47 ]
あんたドライバー刺すわよ

210 名前:192 mailto:sage [2013/06/08(土) 23:51:12.09 ]
かなり自己解決したっぽい
プロセスを起こすタイプのマルチスレッドサーバの現代版サンプル(他)↓
www.v6pc.jp/jp/upload/pdf/socket-sample-20121203.pdf
いとぢゅん氏が絡んでいたやつっぽいので多分信用に足る

で、Winsockにおいてプロセスにソケットを渡す方法↓
app.m-cocolog.jp/t/typecast/114340/102386/category/3335520
プロセスの終了を何の工夫も無くWaitForMultipreObjects()で待つと64プロセスが上限になるが、
そこはそれ、WaitForMultipreObjects()で64プロセス待つスレッドを64スレッド待つ、とかいう
多段構成が考えられる(いや知らんけど多分、

WinsockはGUIとの共存に適した非同期インタ──フェ──スも有するが、
とりあえずそこまでウィンドウズべったりにしなくとも、
select()かWsaPoll()だけでもマルチスレッドサ─バをなんとか構成できるのではないか(適当)

211 名前:192 mailto:sage [2013/06/09(日) 00:01:04.61 ]
ちなみに、WinsockではデフォルトでFD_SETSIZE=64だが、
socket()は平気でこれより大きいfd番号を返してくる

ていうか、現代のOSではLinuxだろうがWindowsだろうがFD_SETSIZEの制限に特に意味はなく、
FD_ISSET()の第一引数には 0..max{ socket()が返した値 } + 1 というの連番を与えるのではなくて、
socket()が返した数値(FD_SETSIZEより大きく成り得、かつ離散的)を配列かvectorにでもとっておいて、
その値を直接与えるのが正しいっぽい
上の現代版サンプルでもそうなっている(つまり>189のやり方は古い疑い有り)

212 名前:デフォルトの名無しさん mailto:sage [2013/06/09(日) 07:07:01.75 ]
何言ってるか分からないが、その現代版サンプル(謎)でも fd + 1 になってるじゃねーか

213 名前:デフォルトの名無しさん mailto:sage [2013/06/09(日) 07:21:28.43 ]
>>212
そこはそうだが、
x68000.q-e-d.net/~68user/net/c-echo-2.html
における
 166: for ( i=0 ; i<FD_SETSIZE ; i++ ){
 167: if ( FD_ISSET(i, &target_fds) ){
が、
www.v6pc.jp/jp/upload/pdf/socket-sample-20121203.pdf
の「複数の socket を生成するデュアルスタック対応サーバプログラム」では
 for (i = 0; i < smax; i++) {
  if (FD_ISSET(s[i], &rfd)) {
になってるねん(s[]にはsocket()が返した値が入っており、 smaxはs[]の要素数+1



214 名前:デフォルトの名無しさん mailto:sage [2013/06/09(日) 09:30:05.98 ]
>>213
何を言いたいのか分からない

FD_SETSIZEを超えたらまずいというのならその通り。
下のURLの方は、

>> if (s[smax] >= FD_SETSIZE) {

でFD_SETSIZEを超えるものを除外してるから、
s[smax]がFD_SETSIZEを超えることはない

離散的だのベクターだのは意味不明

215 名前:デフォルトの名無しさん mailto:sage [2013/06/09(日) 13:20:01.15 ]
>>214
話を込み入らせてしまって申し訳ないですが、
>> if (s[smax] >= FD_SETSIZE) {
これは少なくともWinsockでは不要ていうか、
>socket()は平気でこれ(FD_SETSIZE)より大きいfd番号を返してくる (211)
という事実があるので、削除して試した

実際、あるとgetaddrinfo()で列挙されたlisten可能ポート(うちの環境では
s[0] = 116, s[120]=120となった)が全てそのif文で除外され、
bind()やlisten()まで行き着かない。削除するとうまくいく(クライアントとつながり、"hello ::1"とか出る)

>FD_SETSIZEを超えたらまずいというのならその通り。
「何が」FD_SETSIZEを超えたらまずいのかいまいちどお考えいただきたい
FD_ISSET(a, b)の第一引数aが超えたらfd_set構造体をオーバーランするからまずい、というのが第一義だが、
しかし、>213の上のリンク先と、>213の下のリンク先では、第一引数に書かれている内容が異なるのですじゃ

216 名前:215 mailto:sage [2013/06/09(日) 13:22:58.77 ]
訂正。
誤1: getaddrinfo()で列挙されたlisten可能ポート
正1: getaddrinfo()で列挙されたlisten可能ソケット
誤2: s[0] = 116, s[120]=120となった
正2: s[0] = 116, s[1]=120となった

217 名前:214 mailto:sage [2013/06/09(日) 17:26:56.22 ]
一応「何が」について答えておくと、ファイルディスクリプタ番号。
fd_set構造体をオーバーランしたらまずい、という理解で合ってる。
>>213 の上の引用と下の引用の第一引数は同じなので、何言ってるかわからない。

218 名前:デフォルトの名無しさん mailto:sage [2013/06/09(日) 17:51:44.47 ]
>>211
> socket()が返した数値(FD_SETSIZEより大きく成り得、かつ離散的)を配列かvectorにでもとっておいて、
> その値を直接与えるのが正しいっぽい
> 上の現代版サンプルでもそうなっている(つまり>189のやり方は古い疑い有り)

根本的に理解してないな。
>>189と同じ事を言っておいて、古い疑いありとはw
仕様と仕様を満たすための実装方法の区別がつかない人みたい。
実装方法で考えないと仕様が理解できない。

219 名前:デフォルトの名無しさん mailto:sage [2013/06/10(月) 11:24:49.53 ]
私はselectは使わない、絶対に。

220 名前:デフォルトの名無しさん mailto:sage [2013/06/10(月) 11:30:49.49 ]
絶対ニダ

221 名前:デフォルトの名無しさん mailto:sage [2013/06/15(土) 12:03:09.61 ]
>>217>>218
はいはい御託は>189をWinsockで動かしてから言ってね&#9825;

BSDソケットでは、ファイルディスクリプタ番号がFD_SETを超えることは無いから>189のコードで良い
0〜FD_SETまでの中に、必ずsocket()で作ったlisten中のソケットがある
Windsockでは違う

222 名前:デフォルトの名無しさん mailto:sage [2013/06/15(土) 15:40:20.49 ]
>>221
> Windsock
ってのは, BSD ソケット API を Windows で実装したものって理解してたんだが違うのか?
つか,
> BSDソケットでは、ファイルディスクリプタ番号がFD_SETを超えることは無い
保証は何処にある?

223 名前:デフォルトの名無しさん mailto:sage [2013/06/15(土) 15:58:13.05 ]
FD_SETじゃなくてFD_SETSIZEの事言ってるんだろうけど
そんなもの使うのヤメレ



224 名前:デフォルトの名無しさん mailto:sage [2013/06/15(土) 15:59:06.31 ]
保証されてるのはFD_SETSIZE未満の記述子に対してだな。
しれっとウソつくなよ。>>221

225 名前:デフォルトの名無しさん mailto:sage [2013/06/15(土) 16:46:01.43 ]
>>222
> > Windsock
> ってのは, BSD ソケット API を Windows で実装したものって理解してたんだが違うのか?

違う。似て非なるもの。意味不明の改変もある。

226 名前:デフォルトの名無しさん mailto:sage [2013/06/15(土) 16:46:47.76 ]
>>225
>>221は馬鹿でよく分かってないので間違ったこと書くのは仕方ない。

227 名前:デフォルトの名無しさん mailto:sage [2013/06/16(日) 12:00:56.26 ]
windsockってなんだwinsock2のことかね

228 名前:デフォルトの名無しさん mailto:sage [2013/06/17(月) 12:46:20.67 ]
>>227
1も2もどっちも嫌い

229 名前:デフォルトの名無しさん mailto:sage [2013/06/23(日) 03:27:09.95 ]
別物なんだよなあ…ところどころ似てるけど全然違うから紛らわしい

230 名前:デフォルトの名無しさん mailto:sage [2013/07/03(水) NY:AN:NY.AN ]
質問です。
Winsockを使っています。
一度通信を終えた後に再度通信を行おうとすると、sendをacceptが認識してくれません。
bind,listen関数は正常に動作しています。
クライアント側は完全に再起動、サーバーはwhileで使いまわしています。
原因に心当たりのある人教えてください

231 名前:デフォルトの名無しさん mailto:sage [2013/07/03(水) NY:AN:NY.AN ]
>sendをacceptが認識してくれません

認識するわけなかろう

232 名前:230 mailto:sage [2013/07/03(水) NY:AN:NY.AN ]
>>231
済みません。仰る通りでした。
connectの戻り値は0でクライアント側は繋がっていると認識しているようです。
サーバー側を消すとエラーが出てくるので間違い無いと思います。

サーバー側はacceptを使っているスレッドを消していない時は2つ以上の接続であっても、上手く動作します。
クライアント側が再接続する場合もちゃんと動きます。
しかしスレッドを再起動した時には一つ目の接続から認識しません。
変数は毎回初期化しています。

233 名前:デフォルトの名無しさん mailto:sage [2013/07/03(水) NY:AN:NY.AN ]
サーバーはwhileで使い回してるのにスレッドを再起動?
状況がよくわからんな



234 名前:デフォルトの名無しさん mailto:sage [2013/07/03(水) NY:AN:NY.AN ]
closeし忘れ?

235 名前:デフォルトの名無しさん mailto:sage [2013/07/03(水) NY:AN:NY.AN ]
>>232
ちゃんとListenしなおしてる?

236 名前:デフォルトの名無しさん mailto:sage [2013/07/04(木) NY:AN:NY.AN ]
listenしなおしってなんだよ
しっぱなしでいいだろ
いちいち再listenとかどこのBASICモドキだよ

237 名前:デフォルトの名無しさん mailto:sage [2013/07/04(木) NY:AN:NY.AN ]
accept に渡してるソケットを accept の戻り値で書き換えてるとか?

accept の戻りのソケットは 接続発生毎に別物だから
変な使いまわしからすると 「接続は受けた けど クライアントとの通信が出来てない」 ってなことになる

238 名前:230 mailto:sage [2013/07/05(金) NY:AN:NY.AN ]
>>233,236
考えてみればlistenしっぱなしで良かったです;
設定を弄る時に排他処理が必要かと思い、止めようとしてました

>>234,5
再lisetn,closeはしていると思います。

>>237
有用な情報ありがとうございます!
以下のような処理をしてるので大丈夫だとは思いますが、調べてみます。

listen(--);
-初期化処理-
while(1){
dstSocket[id] = accept(----);
if(-1 != dstSocket[id]){
--------
id = DecideNewId();
}
}

239 名前:デフォルトの名無しさん mailto:sage [2013/07/09(火) NY:AN:NY.AN ]
これは肝心なところを隠して、どうでもいいところだけ書くダメな質問の典型だな
全体に意味不明だから、もう少し勉強してから出直すほうがいいと思う

240 名前:デフォルトの名無しさん mailto:sage [2013/07/10(水) NY:AN:NY.AN ]
ほとんどのバグは本人が関係ないと思って端折ってるところに存在する
そもそも肝心なところがどこか判ってるプログラマはむしろバグらない

241 名前:デフォルトの名無しさん mailto:sage [2013/07/10(水) NY:AN:NY.AN ]
なんでこうセンスの無い人間がプログラミングなんかやるのか
すべて駆逐したい

242 名前:デフォルトの名無しさん mailto:sage [2013/07/10(水) NY:AN:NY.AN ]
9割5分くらいのPGが消えてしまうじゃないか

243 名前:デフォルトの名無しさん mailto:sage [2013/07/10(水) NY:AN:NY.AN ]
104期生ってどのくらい巨人になれるの?



244 名前:デフォルトの名無しさん mailto:sage [2013/07/10(水) NY:AN:NY.AN ]
web(HTTP)の普及のせいで
ネットワークを利用するアプリの質が極端に下がった
退化しまくり

245 名前:デフォルトの名無しさん mailto:sage [2013/07/10(水) NY:AN:NY.AN ]
なんでもWebサービス。まあ便利だけどね。

246 名前:デフォルトの名無しさん [2013/07/10(水) NY:AN:NY.AN ]
webサービスは機種依存性をなくしたりアプリのインスコの手間を省いたりDLL地獄回避のメリットがあると言われていたが
結局ブラウザのバージョン依存で地獄とか同じ過ちを繰り返してるとしか

247 名前:デフォルトの名無しさん mailto:sage [2013/07/10(水) NY:AN:NY.AN ]
俺の言ったwebサービスはWebブラウザは関係ないけどね

248 名前:デフォルトの名無しさん [2013/07/10(水) NY:AN:NY.AN ]
P2P掲示板の同期方法はどうやればいいですか?
基本が一対一の通信なのに全体で同じデータを受け取れるのはむずかしくないですか?

249 名前:デフォルトの名無しさん mailto:sage [2013/07/10(水) NY:AN:NY.AN ]
通信速度が上がったから、HTTPのオーバーヘッドが気にならんからなぁ

>>248
P2Pで全体ってどういう事を言ってるのかしらんが
全体で同じデータを受け取る必要はないだろ

250 名前:デフォルトの名無しさん mailto:sage [2013/07/10(水) NY:AN:NY.AN ]
WebサービスってWSDLとかの話だろ、ブラウザ関係ねえw

251 名前:デフォルトの名無しさん [2013/07/10(水) NY:AN:NY.AN ]
ソケットでhttpクライアント作ってみたけど意外に簡単すね
でも企業面接でhttpの質問のみで落とされますた

252 名前:デフォルトの名無しさん mailto:sage [2013/07/11(木) NY:AN:NY.AN ]
java の質問で拾ってもらいました10年前

253 名前:デフォルトの名無しさん mailto:sage [2013/07/11(木) NY:AN:NY.AN ]
TCPのパケットの問題で落ちたわ…



254 名前:デフォルトの名無しさん mailto:sage [2013/07/11(木) NY:AN:NY.AN ]
>>248
難しくは無い。
全体に同じデータを送る必要があるなら、全体に同じデータを送るだけ。
非常に単純な話だよ。

255 名前:デフォルトの名無しさん mailto:sage [2013/07/11(木) NY:AN:NY.AN ]
実はUDPの方が転送効率は良いんです。TCPは糞です。
ascii.jp/elem/000/000/712/712158/

256 名前:デフォルトの名無しさん mailto:sage [2013/07/11(木) NY:AN:NY.AN ]
>>255
tcp6に採用されるような論文書かないと説得力全くない。
特殊な状況でしか効率良くないプロトコルじゃあ...

257 名前:デフォルトの名無しさん mailto:sage [2013/07/11(木) NY:AN:NY.AN ]
TCPが効率悪く見えるのは通信が1対1のときのを測定してるからだよな
多対多の通信を想定したプロトコルなんだから

258 名前:デフォルトの名無しさん mailto:sage [2013/07/11(木) NY:AN:NY.AN ]
TCPって思いっきり1対1の通信を想定したプロトコルじゃねーか。

259 名前:デフォルトの名無しさん [2013/07/11(木) NY:AN:NY.AN ]
故47氏がTCPを何十倍も超える高速通信を実現したとか聞いたが

260 名前:デフォルトの名無しさん mailto:sage [2013/07/11(木) NY:AN:NY.AN ]
TCPが回線スループットの何十分の1の速度しか出ないなんて事は無いから
言ってることが明らかにおかしい

261 名前:デフォルトの名無しさん mailto:sage [2013/07/12(金) NY:AN:NY.AN ]
UDPは一方向の無手順通信
無手順だから早いってだけでハマらんようにね

262 名前:デフォルトの名無しさん mailto:sage [2013/07/12(金) NY:AN:NY.AN ]
既存ファイル転送プロトコルに比べて大して変わらない性能で何のインパクトもなかった(当時)。

263 名前:デフォルトの名無しさん mailto:sage [2013/07/12(金) NY:AN:NY.AN ]
出たなMulticastTCPお化け!



264 名前:デフォルトの名無しさん mailto:sage [2013/07/12(金) NY:AN:NY.AN ]
SCTPのマルチホーミング構成をとっているときに
クライアント-プライマリサーバからはHEARTBEAT
の送信・応答があるんだけど、セカンダリサーバの
ほうってプライマリからのハートビートインフォメーションに
乗せるんじゃなくてセカンダリサーバからHEARTBEAT
返すことってSOCKOPTのパラメタ設定とかで可能?

265 名前:デフォルトの名無しさん mailto:sage [2013/07/12(金) NY:AN:NY.AN ]
>>260
複数セッション束ねるとか、方法はあるでしょ

266 名前:デフォルトの名無しさん mailto:sage [2013/07/12(金) NY:AN:NY.AN ]
>>260
TCPはRTT依存するし、パケットロスに対する速度低下率が高すぎる。

267 名前:デフォルトの名無しさん mailto:sage [2013/07/12(金) NY:AN:NY.AN ]
>>264
dynamic multihomingが有効なら管理されてるpathの死活を把握してないといけないから、
セカンダリでもheartbeatによるpath管理が行われているはず。
フリーの実装ならRandall Stewartさんが関わっていたFreeBSDが信頼性あるんじゃないか。

>>266
image.itmedia.co.jp/l/im/news/articles/1206/12/l_moto_ssbp.jpg
みると、最初からwindow最大化したTCP4とRTT性能は大差ないように思う。
ack管理が閾値ベースである問題は解消してるけど、
そんなのは10年以上前からあるし。

268 名前:デフォルトの名無しさん mailto:sage [2013/07/12(金) NY:AN:NY.AN ]
無罪判決後、47氏の夢   2012年  『Winnyの金子氏が夢見る次世代高速ネットの世界』
ascii.jp/elem/000/000/712/712158/
>金子:本当にTCPがボトルネックなんですよ。みなさんあまり気付いていないですけど、
>SilverBulletで動作させてみると楽勝で10倍くらいの通信速度が出るんですよ。ヘタすると100倍くらい出ますから。

269 名前:デフォルトの名無しさん [2013/07/12(金) NY:AN:NY.AN ]
>>258
多対多だおω

270 名前:デフォルトの名無しさん mailto:sage [2013/07/12(金) NY:AN:NY.AN ]
>>258はTCP層だけしか見てないから仕方ない

271 名前:デフォルトの名無しさん mailto:sage [2013/07/12(金) NY:AN:NY.AN ]
TCPコネクションが <自IPアドレス, 自ポート番号, 他IPアドレス, 他ポート番号>という
組(tupple)でモデル化されることは、このスレ住人にとっては常識だと思う。

で、TCP層の利用者(user)であるアプリケーションの視点からは、
TCPコネクションは相手アプリケーションとの間の「1対1」関係に見えるし、同時に
TCPコネクションの集合を扱うTCP層の提供者(provider)であるTCPスタックの視点からは、
自集合と多集合との間の「多対多」に見える。

272 名前:デフォルトの名無しさん mailto:sage [2013/07/12(金) NY:AN:NY.AN ]
ベストエフォート側のネットワークで、
みんな帯域を譲りあいながら使ってるわけだからさ、
じゃないとslow-startとか必要ないわけよ。

273 名前:デフォルトの名無しさん mailto:sage [2013/07/12(金) NY:AN:NY.AN ]
>>266
>パケットロスに対する速度低下
それは確かにそうだね



274 名前:デフォルトの名無しさん mailto:sage [2013/07/12(金) NY:AN:NY.AN ]
>>271
ふつう、全単射を「多対多」とは言わんわな。

275 名前:デフォルトの名無しさん mailto:sage [2013/07/12(金) NY:AN:NY.AN ]
言わないな






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<162KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef