Это действительно довольно просто. Просто возьмите кадры Ethernet, которые вы получаете от pcap, и извлеките из них IP-пакеты, собрав все фрагментированные. Затем измените порядок сегментов TCP из IP-пакетов в соответствии с порядковыми номерами, обратив внимание на то, что вы отбрасываете любые дублирующиеся данные. Затем обработайте поток как поток HTTP. Конечно, HTTP не приходит в пакетах; это протокол прикладного уровня, но я уверен, что это станет очевидным, как только вы сделаете всю эту другую работу. При выполнении всех этих действий обращайте внимание на контрольную сумму заголовков IP и сегментов TCP, чтобы убедиться, что ваши данные верны. Кроме того, если pcap пропустит какие-либо пакеты, убедитесь, что вы справились с этим соответствующим образом.
Чтобы помочь вам в стеке Linux Linux *, 1004 * должен предоставить краткую ссылку на этот процесс, происходящий в ядре.