How ahlashkari/cicflowmeter works
CICFlowMeter is a Java network-traffic flow meter with a Swing interface and command-line entry point. Its principal workflow reads packet captures or captures live traffic, converts packets into bidirectional flows, and exposes flow data for visualization and clustering. The sampled workers show the capture-to-flow path; clustering and charting are separate analysis capabilities. Main-frame wiring and several unsampled implementations are inferred only from the tree, so uncertain connections are omitted.
Main entry points: FlowVisualPane.java Flow views · TrafficFlowWorker.java Live traffic worker · App.java Application entry · ReadPcapFileWorker.java PCAP reader worker
Components 23
Application UI
- Application entry
src/main/java/cic/cs/unb/ca/ifm/App.java - Main window
src/main/java/cic/cs/unb/ca/ifm/ui/MainFrame.java - Flow views
src/main/java/cic/cs/unb/ca/flow/ui/FlowVisualPane.java - Live monitor
src/main/java/cic/cs/unb/ca/flow/ui/FlowMonitorPane.java - Offline view
src/main/java/cic/cs/unb/ca/flow/ui/FlowOfflinePane.java - Flow charts
src/main/java/cic/cs/unb/ca/flow/ui/FlowChartPane.java
Capture and Flows
- Flow manager
src/main/java/cic/cs/unb/ca/flow/FlowMgr.java - PCAP reader worker
src/main/java/cic/cs/unb/ca/jnetpcap/worker/ReadPcapFileWorker.java - Live traffic worker
src/main/java/cic/cs/unb/ca/jnetpcap/worker/TrafficFlowWorker.java - Interface discovery
src/main/java/cic/cs/unb/ca/jnetpcap/worker/LoadPcapInterfaceWorker.java - Flow generator
src/main/java/cic/cs/unb/ca/jnetpcap/FlowGenerator.java - Flow model
src/main/java/cic/cs/unb/ca/jnetpcap/BasicFlow.java - Flow features
src/main/java/cic/cs/unb/ca/jnetpcap/FlowFeature.java
Flow Analysis
- Clustering worker
src/main/java/cic/cs/unb/ca/weka/ClusterWorker.java - Weka factory
src/main/java/cic/cs/unb/ca/weka/WekaFactory.java - X-Means model
src/main/java/cic/cs/unb/ca/weka/WekaXMeans.java - Chart factory
src/main/java/cic/cs/unb/ca/flow/ui/FlowChartWorkerFactory.java
Packet Support
- Packet reader
src/main/java/cic/cs/unb/ca/jnetpcap/PacketReader.java - Packet model
src/main/java/cic/cs/unb/ca/jnetpcap/BasicPacketInfo.java
Other components
- User
- PCAP files
- Network device
- jNetPcap
Connections 23
- User → Application entry: launches
- Application entry → Main window: opens
- Application entry → Flow manager: initializes
- Main window → Flow views
- Flow views → Live monitor
- Flow views → Offline view
- PCAP files → PCAP reader worker: provides capture
- PCAP reader worker → Packet reader: reads packets
- PCAP reader worker → Flow generator: feeds packets
- Packet reader → Packet model: creates
- Live traffic worker → jNetPcap: opens capture
- Network device → Live traffic worker: supplies traffic
- Interface discovery → jNetPcap: lists devices
- Live traffic worker → Packet reader: decodes packets
- Live traffic worker → Flow generator: feeds packets
- Flow generator → Flow model: generates flows
- Flow model → Flow features: provides flow data
- Clustering worker → Weka factory: loads CSV
- Clustering worker → X-Means model: builds model
- Chart factory → X-Means model: uses model
- Flow views → Chart factory: requests charts
- Flow views → Clustering worker: starts clustering
- Flow charts → Flow views: displays charts