IT
OmnvertImage • Document • Network

PCAP Conversations

Upload a PCAP/PCAPNG and get top endpoints and pairs (IP:port, proto, packets, bytes). Optional display filter & DNS mapping.

We accept .pcap and .pcapng. Filters use Wireshark display syntax.

Top Pairs

ProtoSourceDestinationPacketsBytes

If analysis fails, ensure the capture isn’t corrupted. Very large PCAPs may be truncated by the server limit.

Server-sideProcessed server-side

This tool uses a server-side service for processing; uploaded files or requests are not kept for long-term storage.

About

When someone hands you a capture with no context, endpoint and pair summaries are the fastest way to work out what it is. Upload a PCAP or PCAPNG and you get the busiest endpoints and the busiest pairs, with packet and byte counts and protocol labels, downloadable as JSON.

An endpoint row answers a different question from a flow row. Endpoints tell you how much a given address did in total, across every conversation it took part in; flows tell you how much one specific conversation carried. Faced with an unfamiliar capture, endpoints come first — fifteen rows usually reveal which handful of machines the capture is really about — and everything after that is drilling in. If you already know the pair you care about, the flow export is the better starting point.

Interpretation is comparative, not absolute. A workstation at the top of the byte list is only interesting if it should not be there: a backup client during the backup window is fine, the same client at 3am on a Sunday is not. Pay attention to shape as much as size. One address dominating bytes usually means a transfer. One address touching a very large number of distinct peers usually means a scan, a proxy, or a mail server. A long tail of addresses with tiny, near-identical counts is generally broadcast and multicast noise — ARP, mDNS, SSDP, NetBIOS — which is worth recognising so you can ignore it.

Pairs give you adjacency: which endpoints spoke to which. This is where segmentation problems become obvious. A user workstation holding direct SMB conversations with twelve other workstations is not how a properly segmented network behaves, and it is a recognised lateral-movement pattern. It is also the quickest way to prove a firewall rule is not doing what the diagram claims, because you can see traffic between two segments that were supposed to be isolated, with counts attached.

The group-by-IP toggle changes the resolution. Leave it on for a machine-level census, where ports are noise — you want to know which hosts are involved, not which ephemeral source port a browser picked. Turn it off when the port is the point: separating a host’s 443 traffic from its 22 traffic, spotting a service listening somewhere nobody approved, or checking whether an application server is hitting a database directly instead of going through the API. Expect a much longer list with grouping off, since client-side ephemeral ports fragment each host into many rows.

Display filters narrow the scope before aggregation, using Wireshark display filter syntax rather than BPF. Common patterns: tcp to drop UDP noise, ip.addr == 192.168.10.0/24 to look at one segment, !(arp || mdns || ssdp) to strip discovery chatter, and not ip.dst == 224.0.0.0/4 to remove multicast. Filtering first also makes the top-N list meaningful, because a handful of loud, uninteresting protocols can otherwise crowd out everything you care about.

The output is JSON rather than CSV because endpoints are a natural input to further work. Addresses feed straight into an ASN or WHOIS lookup, join against an asset inventory by IP, or get diffed between two captures taken before and after a change to see which conversations appeared or disappeared. A flat structure of address, port, protocol, packets and bytes is easy to process with jq or a short script, which is usually faster than repeating the analysis by hand.

Some caveats worth stating plainly. Endpoint totals are only as honest as the capture point: behind NAT or a proxy, every internal host hides behind one address, and a capture taken without a mirror or SPAN port sees a fraction of the segment. Direction in pair rows follows the first packet observed, so a capture that started mid-conversation can label client and server the wrong way round. And no summary tells you what was transferred — it tells you who, how much, and over which protocol. Files are processed to produce the JSON and are not retained.

How it works

  1. 1Open PCAP Conversations and choose your file or enter the required input.
  2. 2Check the settings and start the process.
  3. 3The tool creates the result with temporary server-side processing.
  4. 4Download the output or copy the result when it is ready.

FAQ

What is the difference between endpoints and flows?
An endpoint aggregates everything one address did, across all its conversations. A flow aggregates one specific conversation between two addresses and ports. Endpoints are for orienting yourself; flows are for drilling into a specific pair.
What are pairs?
A pair is a directional conversation between two addresses, optionally including ports, with byte and packet totals. Pairs show you the adjacency graph of the capture — who talked to whom, and how much.
What does group by IP only do?
It merges every port under a single address, giving one row per machine. Turn it off when ports matter, such as when checking which services a host used or whether a client bypassed the API and hit the database directly.
Why is one address talking to hundreds of peers?
Usually a scanner, a proxy or gateway, a mail server, or a monitoring system polling everything. Check the port distribution: many destinations on one port looks like scanning, many destinations on many ports looks like a proxy.
What is all the broadcast traffic in my results?
Discovery protocols — ARP, mDNS, SSDP, NetBIOS, DHCP — produce a large number of small packets to broadcast and multicast addresses. It is normal background noise on any LAN. Filter it out to see the traffic you actually care about.
Can I filter before analysis?
Yes, using Wireshark display filter syntax such as tcp, ip.addr == 10.0.0.0/8 or !(arp || mdns). Filtering first makes the top-N list far more useful, since loud low-value protocols otherwise dominate it.
Why is every internal host showing as one address?
The capture was almost certainly taken outside the NAT boundary, so source addresses have already been translated. Capture on the inside interface to see individual hosts.
Can DNS names be included?
Yes. With enrichment enabled, addresses resolved during the capture are labelled with the corresponding names, which makes recognising familiar services much quicker. Addresses never looked up in the capture stay numeric.
Why does a pair show the direction backwards?
Direction is inferred from the first packet seen for that pair. If the capture started after the connection was established, the initiator may be misidentified. Look at the ports — the well-known one is nearly always the server.
What format is the output?
JSON, with address, port, protocol, packet and byte fields. It is designed to be piped into jq, joined against an inventory, or diffed between two captures rather than read only by eye.
Is my capture stored?
No. The file is processed to produce the results and is not retained. Captures can contain credentials and internal hostnames, so treat them as sensitive wherever they are analysed.