A great tool to use to build your own packets is nemesis. It's originally intended for use on *NIX but a Windows port is also available. The *NIX version can be found at http://nemesis.sourceforge.net/ and the Windows version at http://www.engagesecurity.com/dev/#nemesiswin32 . I've used both versions and found them to be extremely flexible. Unlike the engage packet builder which someone mentioned that allows you only craft TCP, UDP and ICMP packets, nemesis allows you to craft ARP, DNS, ICMP, IGMP, OSPF, RIP, TCP and UDP packets.