How to change tcp information in layer 3 in java ?(ip spoofing) how to change layer 2 information ? is there any good library for it in java ? it need raw socket?
JpCap may be what you want http://netresearch.ics.uci.edu/kfujii/Jpcap/doc/
unfortunately to need access to the TCP/IP packet structures you need to work at very low level (you need the kernel headers in Linux for instance) so yes, you will definitely 100% need to do this outside java in a native library and call the code in your Java app.