Создание сокета не так уж и много.
using System.Net.Sockets;
Socket rawSocket = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.Raw);
или, если это пользовательские TCP-пакеты, вы ищете:
Socket rawSocket = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.IP);
Если вы планируете отправлять пакеты IP или более высокого уровня, которые не предоставляются платформой .Net. Однако пакеты IP и TCP довольно просто собрать, и если вы тестируете искаженные пакеты, вам, скорее всего, все равно придется настраивать пакеты.