@Test public void test_getStatisticResult() throws UnknownHostException{ InetAddress iAdr = Mockito.mock(InetAddress.class); InetAddress iAdr1 = Mockito.mock(InetAddress.class); Mockito.when(iAdr.getAddress()).thenReturn(new byte[]{89,10,1,1}); Mockito.when(iAdr1.getAddress()).thenReturn(new byte[]{72,12,13,1}); Set<InetAddress> inetSet = new HashSet<InetAddress>(); inetSet.add(iAdr); inetSet.add(iAdr1); DomainNameSystem dns = Mockito.mock(DomainNameSystem.class); Mockito.when(dns.getIpAddresses()).thenReturn(inetSet); Mockito.when(dns.getDomainName()).thenReturn("www.att.com"); UDPPacket udpPacket = Mockito.mock(UDPPacket.class); Mockito.when(udpPacket.isDNSPacket()).thenReturn(true); Mockito.when(udpPacket.getDns()).thenReturn(dns); Mockito.when(udpPacket.getSourcePort()).thenReturn(83); Mockito.when(udpPacket.getDestinationPort()).thenReturn(84); Mockito.when(udpPacket.getDestinationIPAddress()).thenReturn(iAdr); PacketInfo packetInfo1 = Mockito.mock(PacketInfo.class); Mockito.when(packetInfo1.getPacket()).thenReturn(udpPacket); Mockito.when(packetInfo1.getDir()).thenReturn(PacketDirection.UPLINK); Mockito.when(packetInfo1.getPayloadLen()).thenReturn(0); Mockito.when(packetInfo1.getLen()).thenReturn(10); Mockito.when(packetInfo1.getAppName()).thenReturn("Test1"); Mockito.when(packetInfo1.getTcpFlagString()).thenReturn("TestString"); Mockito.when(packetInfo1.getTimeStamp()).thenReturn(500d); InetAddress iAdr2 = Mockito.mock(InetAddress.class); Mockito.when(iAdr2.getAddress()).thenReturn(new byte[]{95,10,1,1}); TCPPacket tcpPacket = Mockito.mock(TCPPacket.class); Mockito.when(tcpPacket.getSourcePort()).thenReturn(81); Mockito.when(tcpPacket.getDestinationPort()).thenReturn(82); Mockito.when(tcpPacket.getDestinationIPAddress()).thenReturn(iAdr2); Mockito.when(tcpPacket.isSYN()).thenReturn(true); Mockito.when(tcpPacket.isFIN()).thenReturn(true); Mockito.when(tcpPacket.isRST()).thenReturn(true); Mockito.when(tcpPacket.getTimeStamp()).thenReturn(1000d); PacketInfo packetInfo2 = Mockito.mock(PacketInfo.class); Mockito.when(packetInfo2.getPacket()).thenReturn(tcpPacket); Mockito.when(packetInfo2.getDir()).thenReturn(PacketDirection.UPLINK); Mockito.when(packetInfo2.getTcpInfo()).thenReturn(TcpInfo.TCP_ESTABLISH); Mockito.when(packetInfo2.getPayloadLen()).thenReturn(0); Mockito.when(packetInfo2.getLen()).thenReturn(15); Mockito.when(packetInfo2.getAppName()).thenReturn("Test2"); Mockito.when(packetInfo2.getTcpFlagString()).thenReturn("Test2String"); Mockito.when(packetInfo2.getTimeStamp()).thenReturn(10d); TCPPacket tcpPacket2 = Mockito.mock(TCPPacket.class); Mockito.when(tcpPacket2.getSourcePort()).thenReturn(95); Mockito.when(tcpPacket2.getDestinationPort()).thenReturn(99); Mockito.when(tcpPacket2.getDestinationIPAddress()).thenReturn(iAdr2); Mockito.when(tcpPacket2.isSYN()).thenReturn(true); Mockito.when(tcpPacket2.isFIN()).thenReturn(true); Mockito.when(tcpPacket2.isRST()).thenReturn(false); Mockito.when(tcpPacket2.getTimeStamp()).thenReturn(50d); Inet4Address address = (Inet4Address) InetAddress.getByName("192.168.1.4"); PacketInfo packetInfo3 = Mockito.mock(PacketInfo.class); Mockito.when(packetInfo3.getPacket()).thenReturn(tcpPacket2); Mockito.when(packetInfo3.getDir()).thenReturn(PacketDirection.UPLINK); Mockito.when(packetInfo3.getTcpInfo()).thenReturn(TcpInfo.TCP_ESTABLISH); Mockito.when(packetInfo3.getPayloadLen()).thenReturn(0); Mockito.when(packetInfo3.getLen()).thenReturn(15); Mockito.when(packetInfo3.getAppName()).thenReturn("Test2"); Mockito.when(packetInfo3.getTcpFlagString()).thenReturn("Test2String"); Mockito.when(packetInfo3.getTimeStamp()).thenReturn(10d); Mockito.when(packetInfo3.getRemoteIPAddress()).thenReturn(address); List<PacketInfo> packetsList = new ArrayList<PacketInfo>(); packetsList.add(packetInfo1); packetsList.add(packetInfo2); packetsList.add(packetInfo3); Statistic testResult = iPacketAnalyzer.getStatistic(packetsList); assertEquals(3,testResult.getTotalPackets()); }
@Override public Statistic getStatistic(List<PacketInfo> packetlist) { Statistic stat = new Statistic(); Set<String> appNames = new HashSet<String>(); List<PacketInfo> packets = packetlist; if (!packets.isEmpty()) { int totalHTTPSBytes = 0; int totalTCPBytes = 0; int totalBytes = 0; double avgKbps = 0; double packetsDuration = 0; List<IPPacketSummary> ipPacketSummary = new ArrayList<IPPacketSummary>(); List<ApplicationPacketSummary> applicationPacketSummary = new ArrayList<ApplicationPacketSummary>(); Map<Integer, Integer> packetSizeToCountMap = new HashMap<Integer, Integer>(); PacketInfo lastPacket = packets.get(packets.size() - 1); Map<String, PacketCounter> appPackets = new HashMap<String, PacketCounter>(); Map<InetAddress, PacketCounter> ipPackets = new HashMap<InetAddress, PacketCounter>(); for (PacketInfo packet : packets) { totalBytes += packet.getLen(); if (packet.getPacket() instanceof TCPPacket) { TCPPacket tcp = (TCPPacket) packet.getPacket(); if ((tcp.isSsl()) || (tcp.getDestinationPort() == 443) || (tcp.getSourcePort() == 443)) { totalHTTPSBytes += packet.getLen(); } totalTCPBytes += packet.getLen(); } String appName = packet.getAppName(); appNames.add(appName); PacketCounter pCounter = appPackets.get(appName); if (pCounter == null) { pCounter = new PacketCounter(); appPackets.put(appName, pCounter); } pCounter.add(packet); if (packet.getPacket() instanceof IPPacket) { Integer packetSize = packet.getPayloadLen(); Integer iValue = packetSizeToCountMap.get(packetSize); if (iValue == null) { iValue = 1; } else { iValue++; } packetSizeToCountMap.put(packetSize, iValue); InetAddress ipAddress = packet.getRemoteIPAddress(); pCounter = ipPackets.get(ipAddress); if (pCounter == null) { pCounter = new PacketCounter(); ipPackets.put(ipAddress, pCounter); } pCounter.add(packet); } } for (Map.Entry<InetAddress, PacketCounter> ipPacketMap : ipPackets.entrySet()) { ipPacketSummary.add(new IPPacketSummary(ipPacketMap.getKey(), ipPacketMap.getValue().getPacketCount(), ipPacketMap.getValue().getTotalBytes())); } for (Map.Entry<String, PacketCounter> appPacketMap : appPackets.entrySet()) { applicationPacketSummary .add(new ApplicationPacketSummary(appPacketMap.getKey(), appPacketMap.getValue().getPacketCount(), appPacketMap.getValue().getTotalBytes())); } packetsDuration = lastPacket.getTimeStamp() - packets.get(0).getTimeStamp(); avgKbps = packetsDuration != 0 ? totalTCPBytes * 8.0 / 1000.0 / packetsDuration : 0.0; stat.setApplicationPacketSummary(applicationPacketSummary); stat.setAppName(appNames); stat.setAverageKbps(avgKbps); stat.setAverageTCPKbps(avgKbps); stat.setIpPacketSummary(ipPacketSummary); stat.setPacketDuration(packetsDuration); stat.setTCPPacketDuration(packetsDuration); stat.setTotalByte(totalBytes); stat.setTotalTCPBytes(totalTCPBytes); stat.setTotalHTTPSByte(totalHTTPSBytes); stat.setTotalPackets(packets.size()); stat.setTotalTCPPackets(packets.size()); stat.setPacketSizeToCountMap(packetSizeToCountMap); } stat.setAppName(appNames); return stat; }
PacketAnalyzerImpl implements IPacketAnalyzer { @Override public Statistic getStatistic(List<PacketInfo> packetlist) { Statistic stat = new Statistic(); Set<String> appNames = new HashSet<String>(); List<PacketInfo> packets = packetlist; if (!packets.isEmpty()) { int totalHTTPSBytes = 0; int totalTCPBytes = 0; int totalBytes = 0; double avgKbps = 0; double packetsDuration = 0; List<IPPacketSummary> ipPacketSummary = new ArrayList<IPPacketSummary>(); List<ApplicationPacketSummary> applicationPacketSummary = new ArrayList<ApplicationPacketSummary>(); Map<Integer, Integer> packetSizeToCountMap = new HashMap<Integer, Integer>(); PacketInfo lastPacket = packets.get(packets.size() - 1); Map<String, PacketCounter> appPackets = new HashMap<String, PacketCounter>(); Map<InetAddress, PacketCounter> ipPackets = new HashMap<InetAddress, PacketCounter>(); for (PacketInfo packet : packets) { totalBytes += packet.getLen(); if (packet.getPacket() instanceof TCPPacket) { TCPPacket tcp = (TCPPacket) packet.getPacket(); if ((tcp.isSsl()) || (tcp.getDestinationPort() == 443) || (tcp.getSourcePort() == 443)) { totalHTTPSBytes += packet.getLen(); } totalTCPBytes += packet.getLen(); } String appName = packet.getAppName(); appNames.add(appName); PacketCounter pCounter = appPackets.get(appName); if (pCounter == null) { pCounter = new PacketCounter(); appPackets.put(appName, pCounter); } pCounter.add(packet); if (packet.getPacket() instanceof IPPacket) { Integer packetSize = packet.getPayloadLen(); Integer iValue = packetSizeToCountMap.get(packetSize); if (iValue == null) { iValue = 1; } else { iValue++; } packetSizeToCountMap.put(packetSize, iValue); InetAddress ipAddress = packet.getRemoteIPAddress(); pCounter = ipPackets.get(ipAddress); if (pCounter == null) { pCounter = new PacketCounter(); ipPackets.put(ipAddress, pCounter); } pCounter.add(packet); } } for (Map.Entry<InetAddress, PacketCounter> ipPacketMap : ipPackets.entrySet()) { ipPacketSummary.add(new IPPacketSummary(ipPacketMap.getKey(), ipPacketMap.getValue().getPacketCount(), ipPacketMap.getValue().getTotalBytes())); } for (Map.Entry<String, PacketCounter> appPacketMap : appPackets.entrySet()) { applicationPacketSummary .add(new ApplicationPacketSummary(appPacketMap.getKey(), appPacketMap.getValue().getPacketCount(), appPacketMap.getValue().getTotalBytes())); } packetsDuration = lastPacket.getTimeStamp() - packets.get(0).getTimeStamp(); avgKbps = packetsDuration != 0 ? totalTCPBytes * 8.0 / 1000.0 / packetsDuration : 0.0; stat.setApplicationPacketSummary(applicationPacketSummary); stat.setAppName(appNames); stat.setAverageKbps(avgKbps); stat.setAverageTCPKbps(avgKbps); stat.setIpPacketSummary(ipPacketSummary); stat.setPacketDuration(packetsDuration); stat.setTCPPacketDuration(packetsDuration); stat.setTotalByte(totalBytes); stat.setTotalTCPBytes(totalTCPBytes); stat.setTotalHTTPSByte(totalHTTPSBytes); stat.setTotalPackets(packets.size()); stat.setTotalTCPPackets(packets.size()); stat.setPacketSizeToCountMap(packetSizeToCountMap); } stat.setAppName(appNames); return stat; } }
PacketAnalyzerImpl implements IPacketAnalyzer { @Override public Statistic getStatistic(List<PacketInfo> packetlist) { Statistic stat = new Statistic(); Set<String> appNames = new HashSet<String>(); List<PacketInfo> packets = packetlist; if (!packets.isEmpty()) { int totalHTTPSBytes = 0; int totalTCPBytes = 0; int totalBytes = 0; double avgKbps = 0; double packetsDuration = 0; List<IPPacketSummary> ipPacketSummary = new ArrayList<IPPacketSummary>(); List<ApplicationPacketSummary> applicationPacketSummary = new ArrayList<ApplicationPacketSummary>(); Map<Integer, Integer> packetSizeToCountMap = new HashMap<Integer, Integer>(); PacketInfo lastPacket = packets.get(packets.size() - 1); Map<String, PacketCounter> appPackets = new HashMap<String, PacketCounter>(); Map<InetAddress, PacketCounter> ipPackets = new HashMap<InetAddress, PacketCounter>(); for (PacketInfo packet : packets) { totalBytes += packet.getLen(); if (packet.getPacket() instanceof TCPPacket) { TCPPacket tcp = (TCPPacket) packet.getPacket(); if ((tcp.isSsl()) || (tcp.getDestinationPort() == 443) || (tcp.getSourcePort() == 443)) { totalHTTPSBytes += packet.getLen(); } totalTCPBytes += packet.getLen(); } String appName = packet.getAppName(); appNames.add(appName); PacketCounter pCounter = appPackets.get(appName); if (pCounter == null) { pCounter = new PacketCounter(); appPackets.put(appName, pCounter); } pCounter.add(packet); if (packet.getPacket() instanceof IPPacket) { Integer packetSize = packet.getPayloadLen(); Integer iValue = packetSizeToCountMap.get(packetSize); if (iValue == null) { iValue = 1; } else { iValue++; } packetSizeToCountMap.put(packetSize, iValue); InetAddress ipAddress = packet.getRemoteIPAddress(); pCounter = ipPackets.get(ipAddress); if (pCounter == null) { pCounter = new PacketCounter(); ipPackets.put(ipAddress, pCounter); } pCounter.add(packet); } } for (Map.Entry<InetAddress, PacketCounter> ipPacketMap : ipPackets.entrySet()) { ipPacketSummary.add(new IPPacketSummary(ipPacketMap.getKey(), ipPacketMap.getValue().getPacketCount(), ipPacketMap.getValue().getTotalBytes())); } for (Map.Entry<String, PacketCounter> appPacketMap : appPackets.entrySet()) { applicationPacketSummary .add(new ApplicationPacketSummary(appPacketMap.getKey(), appPacketMap.getValue().getPacketCount(), appPacketMap.getValue().getTotalBytes())); } packetsDuration = lastPacket.getTimeStamp() - packets.get(0).getTimeStamp(); avgKbps = packetsDuration != 0 ? totalTCPBytes * 8.0 / 1000.0 / packetsDuration : 0.0; stat.setApplicationPacketSummary(applicationPacketSummary); stat.setAppName(appNames); stat.setAverageKbps(avgKbps); stat.setAverageTCPKbps(avgKbps); stat.setIpPacketSummary(ipPacketSummary); stat.setPacketDuration(packetsDuration); stat.setTCPPacketDuration(packetsDuration); stat.setTotalByte(totalBytes); stat.setTotalTCPBytes(totalTCPBytes); stat.setTotalHTTPSByte(totalHTTPSBytes); stat.setTotalPackets(packets.size()); stat.setTotalTCPPackets(packets.size()); stat.setPacketSizeToCountMap(packetSizeToCountMap); } stat.setAppName(appNames); return stat; }  }
PacketAnalyzerImpl implements IPacketAnalyzer { @Override public Statistic getStatistic(List<PacketInfo> packetlist) { Statistic stat = new Statistic(); Set<String> appNames = new HashSet<String>(); List<PacketInfo> packets = packetlist; if (!packets.isEmpty()) { int totalHTTPSBytes = 0; int totalTCPBytes = 0; int totalBytes = 0; double avgKbps = 0; double packetsDuration = 0; List<IPPacketSummary> ipPacketSummary = new ArrayList<IPPacketSummary>(); List<ApplicationPacketSummary> applicationPacketSummary = new ArrayList<ApplicationPacketSummary>(); Map<Integer, Integer> packetSizeToCountMap = new HashMap<Integer, Integer>(); PacketInfo lastPacket = packets.get(packets.size() - 1); Map<String, PacketCounter> appPackets = new HashMap<String, PacketCounter>(); Map<InetAddress, PacketCounter> ipPackets = new HashMap<InetAddress, PacketCounter>(); for (PacketInfo packet : packets) { totalBytes += packet.getLen(); if (packet.getPacket() instanceof TCPPacket) { TCPPacket tcp = (TCPPacket) packet.getPacket(); if ((tcp.isSsl()) || (tcp.getDestinationPort() == 443) || (tcp.getSourcePort() == 443)) { totalHTTPSBytes += packet.getLen(); } totalTCPBytes += packet.getLen(); } String appName = packet.getAppName(); appNames.add(appName); PacketCounter pCounter = appPackets.get(appName); if (pCounter == null) { pCounter = new PacketCounter(); appPackets.put(appName, pCounter); } pCounter.add(packet); if (packet.getPacket() instanceof IPPacket) { Integer packetSize = packet.getPayloadLen(); Integer iValue = packetSizeToCountMap.get(packetSize); if (iValue == null) { iValue = 1; } else { iValue++; } packetSizeToCountMap.put(packetSize, iValue); InetAddress ipAddress = packet.getRemoteIPAddress(); pCounter = ipPackets.get(ipAddress); if (pCounter == null) { pCounter = new PacketCounter(); ipPackets.put(ipAddress, pCounter); } pCounter.add(packet); } } for (Map.Entry<InetAddress, PacketCounter> ipPacketMap : ipPackets.entrySet()) { ipPacketSummary.add(new IPPacketSummary(ipPacketMap.getKey(), ipPacketMap.getValue().getPacketCount(), ipPacketMap.getValue().getTotalBytes())); } for (Map.Entry<String, PacketCounter> appPacketMap : appPackets.entrySet()) { applicationPacketSummary .add(new ApplicationPacketSummary(appPacketMap.getKey(), appPacketMap.getValue().getPacketCount(), appPacketMap.getValue().getTotalBytes())); } packetsDuration = lastPacket.getTimeStamp() - packets.get(0).getTimeStamp(); avgKbps = packetsDuration != 0 ? totalTCPBytes * 8.0 / 1000.0 / packetsDuration : 0.0; stat.setApplicationPacketSummary(applicationPacketSummary); stat.setAppName(appNames); stat.setAverageKbps(avgKbps); stat.setAverageTCPKbps(avgKbps); stat.setIpPacketSummary(ipPacketSummary); stat.setPacketDuration(packetsDuration); stat.setTCPPacketDuration(packetsDuration); stat.setTotalByte(totalBytes); stat.setTotalTCPBytes(totalTCPBytes); stat.setTotalHTTPSByte(totalHTTPSBytes); stat.setTotalPackets(packets.size()); stat.setTotalTCPPackets(packets.size()); stat.setPacketSizeToCountMap(packetSizeToCountMap); } stat.setAppName(appNames); return stat; }  @Autowired void setTraceReader(ITraceDataReader traceReader); @Autowired void setRrcStateMachineFactory(IRrcStateMachineFactory rrcStateMachineFactory); @Autowired void setProfileFactory(IProfileFactory profileFactory); @Autowired void setEnergyModelFactory(IEnergyModelFactory energyModelFactory); @Autowired void setBurstCollectionAnalayzer(IBurstCollectionAnalysis burstCollectionAnalysis); @Autowired void setPktTimeRangeUtil(IPktAnazlyzerTimeRangeUtil pktUtil); @Autowired void setVideoStreamingAnalysis(IVideoTrafficCollector videoTrafficCollector); @Override PacketAnalyzerResult analyzeTraceFile(String traceFilePath, Profile profile, AnalysisFilter filter); @Override PacketAnalyzerResult analyzeTraceDirectory(String traceDirectory, Profile profile, AnalysisFilter filter); List<PacketInfo> filterPackets(AnalysisFilter filter, List<PacketInfo> packetsInfo); @Override Statistic getStatistic(List<PacketInfo> packetlist); void generateRequestMap(List<Session> sessionList); Map<Double, HttpRequestResponseInfo> getReqMap(); }
PacketAnalyzerImpl implements IPacketAnalyzer { @Override public Statistic getStatistic(List<PacketInfo> packetlist) { Statistic stat = new Statistic(); Set<String> appNames = new HashSet<String>(); List<PacketInfo> packets = packetlist; if (!packets.isEmpty()) { int totalHTTPSBytes = 0; int totalTCPBytes = 0; int totalBytes = 0; double avgKbps = 0; double packetsDuration = 0; List<IPPacketSummary> ipPacketSummary = new ArrayList<IPPacketSummary>(); List<ApplicationPacketSummary> applicationPacketSummary = new ArrayList<ApplicationPacketSummary>(); Map<Integer, Integer> packetSizeToCountMap = new HashMap<Integer, Integer>(); PacketInfo lastPacket = packets.get(packets.size() - 1); Map<String, PacketCounter> appPackets = new HashMap<String, PacketCounter>(); Map<InetAddress, PacketCounter> ipPackets = new HashMap<InetAddress, PacketCounter>(); for (PacketInfo packet : packets) { totalBytes += packet.getLen(); if (packet.getPacket() instanceof TCPPacket) { TCPPacket tcp = (TCPPacket) packet.getPacket(); if ((tcp.isSsl()) || (tcp.getDestinationPort() == 443) || (tcp.getSourcePort() == 443)) { totalHTTPSBytes += packet.getLen(); } totalTCPBytes += packet.getLen(); } String appName = packet.getAppName(); appNames.add(appName); PacketCounter pCounter = appPackets.get(appName); if (pCounter == null) { pCounter = new PacketCounter(); appPackets.put(appName, pCounter); } pCounter.add(packet); if (packet.getPacket() instanceof IPPacket) { Integer packetSize = packet.getPayloadLen(); Integer iValue = packetSizeToCountMap.get(packetSize); if (iValue == null) { iValue = 1; } else { iValue++; } packetSizeToCountMap.put(packetSize, iValue); InetAddress ipAddress = packet.getRemoteIPAddress(); pCounter = ipPackets.get(ipAddress); if (pCounter == null) { pCounter = new PacketCounter(); ipPackets.put(ipAddress, pCounter); } pCounter.add(packet); } } for (Map.Entry<InetAddress, PacketCounter> ipPacketMap : ipPackets.entrySet()) { ipPacketSummary.add(new IPPacketSummary(ipPacketMap.getKey(), ipPacketMap.getValue().getPacketCount(), ipPacketMap.getValue().getTotalBytes())); } for (Map.Entry<String, PacketCounter> appPacketMap : appPackets.entrySet()) { applicationPacketSummary .add(new ApplicationPacketSummary(appPacketMap.getKey(), appPacketMap.getValue().getPacketCount(), appPacketMap.getValue().getTotalBytes())); } packetsDuration = lastPacket.getTimeStamp() - packets.get(0).getTimeStamp(); avgKbps = packetsDuration != 0 ? totalTCPBytes * 8.0 / 1000.0 / packetsDuration : 0.0; stat.setApplicationPacketSummary(applicationPacketSummary); stat.setAppName(appNames); stat.setAverageKbps(avgKbps); stat.setAverageTCPKbps(avgKbps); stat.setIpPacketSummary(ipPacketSummary); stat.setPacketDuration(packetsDuration); stat.setTCPPacketDuration(packetsDuration); stat.setTotalByte(totalBytes); stat.setTotalTCPBytes(totalTCPBytes); stat.setTotalHTTPSByte(totalHTTPSBytes); stat.setTotalPackets(packets.size()); stat.setTotalTCPPackets(packets.size()); stat.setPacketSizeToCountMap(packetSizeToCountMap); } stat.setAppName(appNames); return stat; }  @Autowired void setTraceReader(ITraceDataReader traceReader); @Autowired void setRrcStateMachineFactory(IRrcStateMachineFactory rrcStateMachineFactory); @Autowired void setProfileFactory(IProfileFactory profileFactory); @Autowired void setEnergyModelFactory(IEnergyModelFactory energyModelFactory); @Autowired void setBurstCollectionAnalayzer(IBurstCollectionAnalysis burstCollectionAnalysis); @Autowired void setPktTimeRangeUtil(IPktAnazlyzerTimeRangeUtil pktUtil); @Autowired void setVideoStreamingAnalysis(IVideoTrafficCollector videoTrafficCollector); @Override PacketAnalyzerResult analyzeTraceFile(String traceFilePath, Profile profile, AnalysisFilter filter); @Override PacketAnalyzerResult analyzeTraceDirectory(String traceDirectory, Profile profile, AnalysisFilter filter); List<PacketInfo> filterPackets(AnalysisFilter filter, List<PacketInfo> packetsInfo); @Override Statistic getStatistic(List<PacketInfo> packetlist); void generateRequestMap(List<Session> sessionList); Map<Double, HttpRequestResponseInfo> getReqMap();  }