I’m officially killing flowreplay as a future feature of tcpreplay. After giving more thought to this problem and where protocols and applications are going, it’s become clear to me that the goals of flowreplay are unobtainable.
The basic issue is that protocols/applications are becoming more state based and even so-called stateless protocols like HTTP have many important stateful characteristics which preclude a tool like flowreplay from properly interacting with a target. Also more and more protocols are including security features which actively prevent successful replay.
Hence, rather then spending a lot of effort building a custom IP stack and some basic protocol decoders to handle protocols like FTP and SIP, I’ve decided my relatively limited free time is better spent elsewhere. With that in mind, I’ll be removing the flowreplay code from the tcpreplay trunk branch. If someone/group of people are interested in continuing development of this project, I’m more then willing to provide hosting and access to the old code, but I’m unlikely to provide much in the way of assistance.
Too bad. It sounded like a really cool project and extremely useful. If you had built the basic infrastructure, I am sure people who have contributed there time to build protocol handlers for specific protocols. These plugins could have dealt with statefullness or security features of particular protocols.
people [would] have contributed there time
Unfortunately, history has proven otherwise. A few people have offered to help with flowreplay and then disappeared before writing a single line of code. This seems typical in my experience for all the open source projects I’ve done. People get busy, find out it’s actual work or find out they don’t have the skillset to contribute.
If someone wants write access to the svn tree where flowreplay exists, I’m more then happy to give it and they can prove me wrong.
Hey, I was wondering if I could see the flowreplay source. I’m pretty sure that I don’t actually have the skillset to contribute (yet) but I’m trying to learn about this sort of stuff and am trying to graduate from running other people’s scripts to actually writing some of my own. Thanks!
You should see tcpcopy (https://github.com/wangbin579/tcpcopy)