1

JpcapでSYNパケットを送信して応答を取得したいのですが、これを行うと、自動的にRSTパケットを送信しますが、RSTパケットを送信したくありません。RSTパケットの送信を停止するにはどうすればよいですか?また、なぜRSTパケットを送信するのですか?

これが私のコードです:

public class JavaApplication1 {

public static void main(String[] args) throws UnknownHostException, IOException {
    JpcapSender sender = JpcapSender.openDevice(JpcapCaptor.getDeviceList()[0]);
    NetworkInterfaceAddress[] nia = JpcapCaptor.getDeviceList()[0].addresses;        
    TCPPacket packet = new TCPPacket(57912, 80, 1, 0, false, false, false, false, true, false, false, false, 0, 0);
    packet.setIPv4Parameter(0, false, false, false, 0, false, true, false, 0, 34567, 64, IPPacket.IPPROTO_TCP, nia[0].address , InetAddress.getByName("www.google.com"));

    packet.data = ("").getBytes();

    EthernetPacket ether = new EthernetPacket();
    ether.frametype = EthernetPacket.ETHERTYPE_IP;
    ether.src_mac = ((NetworkInterface)JpcapCaptor.getDeviceList()[0]).mac_address;
    ether.dst_mac = new byte[]{(byte)200, (byte)205, (byte)114, (byte)68, (byte)129, (byte)162};

    packet.datalink = ether;
    sender.sendPacket(packet);
}

}

パケット:

57912 > http [SYN] Seq=0 Win=0 Len=0

http > 57912 [SYN, ACK] Seq=0 ACK=1 Win=14300 Len=0 MSS=1430

57912 > http [RST] Seq=0 Win=0 Len=0
4

1 に答える 1

0

TCP / IPスタックは、SYN / ACK応答を確認し、それが何のためにあるのかわからなかったため、これを実行しています。あなたはそれをやめることはできません。

一体なぜあなたはこれをしているのですか?

于 2012-11-09T00:03:29.363 に答える