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?