Om een diagnose bij netwerkproblemen te stellen kun je uiteraard Wireshark gebruiken, de netwerkprotocolanalyzer die de de facto standaard is voor netwerkanalyse en troubleshooting. Maar Wireshark is een complex en niet altijd even intuïtief programma. Als je gewoon de flow van een netwerkverbinding wil volgen, is tcpflow heel wat eenvoudiger in gebruik. Tcpflow verzamelt de netwerkpakketjes die over de gedefinieerde netwerkinterface gaan en reconstrueert de datastreams in paren van bron en doel.

Voorbeelden

De meest eenvoudige manier om tcpflow te draaien ziet er als volgt uit:

# tcpflow -i eth0 -c -e

Met -i definieer je de interface waarop tcpflow luistert en met -c toon je alle uitvoer op de console. De optie -e tot slot voegt een kleurencodering toe. Bekijk je veel non-printable verkeer, dan kun je nog de optie -s toevoegen, die alle non-printable tekens omzet in een punt.

Achteraan deze opties kun je nog een expressie plaatsen. Omdat tcpflow de libpcap-bibliotheek gebruikt, die ook bijvoorbeeld onder de motorkap van tcpdump en Wireshark zit, kun je dezelfde expressies gebruiken. Stel dat je bijvoorbeeld alleen de datastreams van webverkeer op poort 80 wilt zien:

# tcpflow -i eth0 -c -e port 80

Of stel dat je alle datastreams wilt reconstrueren die host 192.168.0.100 als bron of doel hebben:

# tcpflow -i eth0 -c -e host 192.168.0.100

Opslag

Zonder de optie -c maakt tcpflow voor elke datastream een afzonderlijk bestand aan, wat voor uitgebreidere of geautomatiseerde analysedoeleinden wel eens interessant kan zijn. De bestandsnaam is dan gebaseerd op de IP-adressen van de bron en het doel en de poortnummers. Een handige optie in deze situatie is -b, waarmee je aangeeft hoeveel bytes per datastream tcpflow moet capturen, waardoor je de opslagruimte van al die datastreams kunt beperken. Ook handig is de optie -r, waarmee tcpflow pakketten uit een bestand in tcpdump-formaat inleest en als datastreams toont.

Hoewel tcpflow al jaren niet meer onderhouden wordt en het niet om kan gaan met IP-fragmenten, doet het zijn werk heel goed en is het een handig instrument in de toolbox van een systeem- of netwerkbeheerder.