2010-12-01 14 views
4

クライアントからの最初のSYNパケットを受け取った後、最初のSYN + ACKでクライアントに応答するときに制御できるlisten TCPソケットを作成したいと思います。Linuxでrawソケットを使用してリスニング用のTCPソケットを作成できますか?

いくつかの遅延を導入したり、いくつかの初期SYNパケットを無視するためにこれを実行したいと思います。私は現時点でiptablesを使用してこれを行うことができますが、これがOSソケットインタフェースを使用して実行できるかどうかは疑問です。

通常のTCPソケットを使用すると、サーバーがソケット記述子でlisten()を呼び出すと、クライアントはクライアントが接続するときに接続を確立します。

この動作を実装するためにrawソケットを使用できるかどうかは疑問です。今まで私が生のソケットについて見た例はすべて、アクティブソケット(クライアントからサーバーへ)であり、パッシブソケット(リスニングソケット)ではありません。

答えて

0

なぜそうは見えないのですか?あなたはあなたの前でたくさんの仕事をしています;-)すでにこの種のことをすることができる既存のパッケージや製品があると思います。

+0

この回答は非常に広く、「ウェブカメラを使ってlolcatsの写真をスキャンすることはできますか?」の回答として使用することもできます。 –

+0

@LukaRamishvili合意しましたが、あなたが求めた質問に答えます。あなたは*可能かどうか*尋ねました。それが答えです。 – EJP

+0

私はOPではなく、私は何も尋ねなかった、私はこの質問を偶然見つけた。私の発言はあなたの答えの価値を損なうものではなかった、私は答えが定式化されている理由を理解するが、答えに使われた*単語がはるかに広範であり、 –

3

あなたは理論的には、生のソケット上で、独自のTCPの実装を書くことができます。しかし、rawソケットがコピーを取得する前に、カーネルは受信TCPパケットに応答します。だから、これを回避するには、iptablesなどを使ってカーネルがあなたが興味を持っているパケットを見るのをブロックする必要があります。

私はカーネルモジュールでnetfilterインターフェースあなたがすでにやっていることかもしれません)。また、実際にユーザー空間でやりたい場合にはうまくいくかもしれないlibnetfilter_queueをチェックすることもできます。

関連する問題