[過去ログ] ネットワークプログラミング相談室 Port4 (1001レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
71
(4): デフォルトの名無しさん [sage] 02/10/18 13:37 AAS
>>70
> もっともありもののTCPスタックはRSTとか勝手に返しそうだから
ごめん。意味が分かりません。TCP がどういう場合に RST を送信
するか、理解してます?

> サーバのコネクション数には限界があるわけで、
ありません。
73
(2): デフォルトの名無しさん [sage] 02/10/18 14:48 AAS
>>71
ごめんなさい。
> それだと、コネクション張った側(クライアント側)もコネクションを
> 保持し続けないといけないわけだし。
が意味不明だったんで意味不明なレスしてしまいました。

> ありません。
listenの引数は飾りですか?
ApacheのMaxClientsはダミーですか?
カーネルの(以下略
つーかマジで言ってます?

>>72
> おこらない。recv() でブロックしたまま。
はただ延々と待ってるという意味ではないの?
74
(1): 71 [sage] 02/10/18 15:21 AAS
>>73
> listenの引数は飾りですか?
listen() の第 2 引数はバックログ値であって、コネクションの数と
関係しませんよ。accept() しない状態のコネクションをいくつまで保持
できるか、でしかありません。
普通、サーバアプリケーションが速やかに accept() でコネクション
を引き取っていくので、いくらでもコネクションは張れます。

コネクション数の話で、listen() の引数の話を出してくるところを見ると
バックログキューとかが、理解できてないように思います。

> ApacheのMaxClientsはダミーですか?
それは Apache がどのように扱うか、であって、TCP レベルのコネクション
の数と関係ありません。...と書いてて気付いた。>>73 さんは、アプリケー
ションレベルでの話をしてるんですね。そうすると、それはアプリケーショ
ンがどう振る舞うか、に依存しちゃうので、どうにでもなっちゃう。

でも、なぜここで、listen() の引数の話を出してきたのかが分からない…。

> カーネルの(以下略
カーネルとして、TCP コネクションの数に制限はありません。
84
(2): 71 [sage] 02/10/18 18:25 AAS
>>75
> ポートは65535個しかありませんが。
はぁ? オマエが「サーバの」って限定したんだろーが?
サーバ側のポート番号は一緒だよ。

>>76
> カーネルのSOMAXCONNは(以下略
> 皆まで言わないとシラを切るつもりですか?
それも、バックログキューの上限値の話だろ?

>>77
> fd_setの数にも同時起動可能なプロセス数にも上限があるし
何が言いたいのかわからんけど、fd_set って select(2) の話だと
思うんだけど、それはファイルディスクリプタの話であって、
コネクション数とは一致しないよ。確かに、fd が open できなければ、
ソケットが生成できないから、アプリケーションがコネクションを保持
できなくなるけど、でも、コネクションは存在するからね。

>>82
> まあ、カーネルにコネクション数制限がないって話は、打ち砕く
> ことはできるんじゃないかな。つーか、すべての資源で制限がない
> てものはないんだから...まあ、モノによっては、上限が2の64乗
> とかになっちゃうんだけどさ...それでも、それが上限だとは言い
> 張れるわけで(笑)
もちろん、確かにそーゆー話をし始めると、無制限じゃないよ。
でも、「コネクション数」としての制限値はないよ。リソースの
制約は受けるだろうけど。
90
(2): デフォルトの名無しさん [age] 02/10/18 20:20 AAS
なんか、盛り上がってますね。
話のきっかけは、recv() で物理的な回線断、相手のクラッシュが検出できるか?
ってことに関しては、判断不可能ってのが正解だと思います。
そういう状態になったら、recv() は永久に戻ってきません。
そのために、わざわざアプリで定周期にパケットをやり取りして相手の生死の
確認をするんだと思います。

その後のやり取りについても、 >>61 , >>71 , >>81 , >>84 の説明のほうが
筋が通ってて、正しいように思います。
私は、TCPの内部のソースはまだ読めないので、一部の説明は理解不能ですが。

それと、
>じゃあどうしてSYN floodのような攻撃が可能なのですか?
についてですが、大抵のサーバは、コネクション毎にプロセスやスレッドを
作りますから、それらに割くリソースがシステムのリソースを食いつぶしていって、
最後にはサーバーが動けなくなる(メモリが足りなくてプロセス、スレッドがもう
作成できないとか)や、ものすごい勢いでコネクションの確立要求がくるとそれの
対応にカーネルが追われてしまって、本来のサーバーの仕事が出来ないくらいCPU
パワーを使ってしまい、結果、サーバーとしての機能停止って感じじゃないのかな?

よって、サーバー側のコネクション数に限界がなくても、SYN flood攻撃は成り立つ
と思います。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.056s