A B SYN------> <--------SYN+ACK ACK------> #### use Net::RawIP; $ack_with_data = Net::RawIP->new({ ip => { saddr => '111.111.111.111', daddr => '111.111.111.112' }, }); tcp => { source => 111, dest => 111, ack => 1, #insert the correct seq number and ack seq number seq => 11111, ack_seq => 11111, #insert http data here (i am not very familiar with http) data => "GET /asdlfk HTTP/1.1\nHost: asd.asd.com\n", }, }); $ack_with_data->send;