简体   繁体   中英

Sending SYN packet with Jpcap problems

I want to send a SYN packet with Jpcap and get a response, but when I do this I automatically send a RST packet, but I don't want to send a RST packet. How can I stop sending a RST packet and why am I sending a RST packet

Here is my code:

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);
}

}

Packets:

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

Your TCP/IP stack is doing that for you because it saw the SYN/ACK response and didn't know what it was for. You can't stop it doing that.

Why on earth are you doing this?

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM