tcpflow
tcpflow captures TCP connection data streams and stores them in separate files for protocol analysis or debugging. Unlike tcpdump which shows packet summaries, tcpflow reconstructs the actual data flows.
Description
tcpflow is a program that captures data transmitted as part of TCP connections (flows), and stores the data in a way that is convenient for protocol analysis or debugging. A program like 'tcpdump' shows a summary of packets seen on the wire, but usually doesn't store the data that's actually being transmitted. In contrast, tcpflow reconstructs the actual data streams and stores each flow in a separate file for later analysis.
tcpflow understands sequence numbers and will correctly reconstruct data streams regardless of retransmissions or out-of-order delivery. However, it currently does not understand IP fragments; flows containing IP fragments will not be recorded properly.
tcpflow is based on the LBL Packet Capture Library and therefore supports the same rich filtering expressions that programs like 'tcpdump' support. tcpflow can also rebuild flows from data captured with 'tcpdump -w'.
How It Works
tcpflow captures TCP flows using the LBL Packet Capture Library (libpcap), supporting tcpdump-like filtering expressions. It reconstructs data streams by understanding TCP sequence numbers, handling retransmissions and out-of-order delivery correctly. Each flow is stored in a separate file. It does not handle IP fragments properly. tcpflow can process live captures or files from tcpdump -w.
Installation
sudo apt install tcpflowFlags
Examples
tcpflow -htcpflow -atcpflow -b 1000000tcpflow -i eth0tcpflow -ctcpflow -Ctcpflow -stcpflow port 80