You can check a couple of things. 1 check if the packet you have constructed is correct. I mean offsets, header length etc. Because if not, the recipient will simply discard it 2 check if the packet is actually reaching the destination. Try tcpdump on the recipient. 3 once you know the packet is correct. Check other troubleshoot at other layers. Like if the host is doing an arp for dmac or are you supplying it in the packet. If arp, then does the destination reply. If manual is it the correct value. Does the sender have a route to destination. Does the destination have a return route. There are many possibilities if you post the outcome of above scenerios someone here can help you