I have seen the SYN flooding packet source code.
But in there, there are nothing about making ethernet packet.
Why source code doesn't manipulate the ethernet header. Why just TCP (It should be manipulated), and IP (It should be also) are manipulated?
If ethernet header is not manipulated, the kernel make the ethernet header's source address with attacker's mac address automatically. So victim can know source mac address, but not IP address (because of randomize IP address when sending SYN packet to victim).