Как я понял примерно так:
// Это твой TCP пакет
struct sRawBuffer
{
char szPortSource[16];
char szPortTarget[16];
char szSeqNum[32];
char szRetNum[32];
char szOffsetData[4];
char szRezerved[6];
char szFlags[6];
char szWindow[16];
char szCRC[16];
char szImpotentPointer[16];
char szOptions[32];
char szData[];
};
sRawBuffer rb;
// Собираешь TCP пакет...
// Подгатавливаешь сокет к отправке...
socket.send(boost::asio::buffer((void*)&rb, sizeof( rb)));
Надеюсь идея понятна.
Структура имитирующая TCP пакет написана была по памяти мог и ошибиться в чем-то, так как давно не пользовал.