- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:javaでtcpヘッダを自前で作成する方法)
【Java】TCPヘッダを自作する方法とは?
このQ&Aのポイント
- JavaでTCPヘッダを自作する方法を探しています。
- TCPヘッダの作成には、シーケンス番号の設定や特定のフラグの設定などが必要です。
- Javaのどのクラスや関数を使用してTCPヘッダを作成するか、教えていただけないでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
たぶんJpcapでできると思いますよ。 http://netresearch.ics.uci.edu/kfujii/jpcap/doc/index.html 見れば分かると思いますが、サンプルも、 http://netresearch.ics.uci.edu/kfujii/jpcap/sample/SendTCP.java
その他の回答 (3)
- sha-girl
- ベストアンサー率52% (430/816)
回答No.3
多くのOSはTCPの実装をOS側が持っているので、そこを変更したいのであれば RAW Socketを使うか、ドライバレベルで変更するしかありません。 http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/net/socketOpt.html JavaではRAW/ICMP SOCKETSをサポートしていないと書かれていますね。(実装はC/C++で書いてJNIで呼び出すとかしかないようです。) >例えばsynやrstのみ出力するですとか、シーケンス番号を自分で決めてTCPヘッダとデータを作っていくことです。 TCPの偽装が目的でなく、そのような制御を実装したいのであればUDPで可能かと思います。 ちなみにRAW Socketを扱う場合WindowsならAdmin権限、UNIX系ではRoot権限が必要になります。
- mintia007
- ベストアンサー率59% (16/27)
回答No.2
jpcapでググってみてください。 もしかしたら出来るかもしれません。 (としか言えませんが・・・)
- salsberry
- ベストアンサー率69% (495/711)
回答No.1
ネットワーク通信関係のクラスはjava.netにありますが、Javaではそのレベルでの制御は難しいんじゃないのかな。 http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/net/package-summary.html
お礼
mintia007さん、ありがとうございます! まさしくこのようなものを探していました。 さっそく使ってみます。