def plotSenderCongestionWindow(pFileName, pTimeWindow=None): mDP = TcpDumpProcessor() mDP.loadDumpFromFile(pFileName) # mDP.printTimeSeries() #----------------------------------------------- # TX Delay #----------------------------------------------- if pTimeWindow is None: winUpd = mDP.filterTimeSeries(mDP.OP_WND, mDP.KIND_UPD) else: winUpd = mDP.filterTimeSeries(mDP.OP_WND, mDP.KIND_UPD, pTimeWindow) cwnd = mDP.generatePlotData(winUpd, 7) # time VS congestion windows which is the 7th item in the details field, in window update records createPlot([cwnd], ["Congestion Window"], [['k', '-', 2.0, '+', 3.0]], "My TCP dump", "Time (sec)", "Size (bytes)")
def plotReceiverTxDelayData(pFileName, pTimeWindow=None): mDP = TcpDumpProcessor() mDP.loadDumpFromFile(pFileName) # mDP.printTimeSeries() #----------------------------------------------- # TX Delay #----------------------------------------------- if pTimeWindow is None: delayTX = mDP.filterTimeSeries(mDP.OP_TX, "*") else: delayTX = mDP.filterTimeSeries(mDP.OP_TX, "*", pTimeWindow) delayTX = mDP.generatePlotData(delayTX) # mDP.printMyTimeSeries(delayTX) createPlot([delayTX], ["TX Delay"], [['k', '-', 2.0, '+', 3.0]], "My TCP dump", "Time (sec)", "# of Items")
def plotReceiverRxTxData(pFileName, pTimeWindow=None): mDP = TcpDumpProcessor() mDP.loadDumpFromFile(pFileName) # mDP.printTimeSeries() #----------------------------------------------- # RX-Segments and TX-Acks #----------------------------------------------- if pTimeWindow is None: receivedSegs = mDP.filterTimeSeries(mDP.OP_RX, mDP.KIND_SEG) sentAcks = mDP.filterTimeSeries(mDP.OP_TX, mDP.KIND_SEG) else: receivedSegs = mDP.filterTimeSeries(mDP.OP_RX, mDP.KIND_SEG, pTimeWindow) sentAcks = mDP.filterTimeSeries(mDP.OP_TX, mDP.KIND_SEG, pTimeWindow) receivedSegs = mDP.generatePlotData(receivedSegs, 0) # time VS received segment_num which is the first item in the details field sentAcks = mDP.generatePlotData(sentAcks, 1) # time VS sent ack_num which is the second item in the details field createPlot([receivedSegs, sentAcks], ["ReceivedSegments", "SentAcks"], [['k', '-', 2.0, '+', 3.0], ['r', '-', 2.0, '+', 3.0]], "My TCP dump", "Time (sec)", "# of Items")
def plotSenderTxRxData(pFileName, pTimeWindow=None): mDP = TcpDumpProcessor() mDP.loadDumpFromFile(pFileName) # mDP.printTimeSeries() #----------------------------------------------- # TX-Segments and RX-Acks #----------------------------------------------- if pTimeWindow is None: sentSegs = mDP.filterTimeSeries(mDP.OP_TX, mDP.KIND_SEG) receivedAcks = mDP.filterTimeSeries(mDP.OP_RX, mDP.KIND_SEG) else: sentSegs = mDP.filterTimeSeries(mDP.OP_TX, mDP.KIND_SEG, pTimeWindow) receivedAcks = mDP.filterTimeSeries(mDP.OP_RX, mDP.KIND_SEG, pTimeWindow) sentSegs = mDP.generatePlotData(sentSegs, 0) # time VS transmitted segment_num which is the first item in the details field receivedAcks = mDP.generatePlotData(receivedAcks, 1) # time VS received ack_num which is the second item in the details field createPlot([sentSegs, receivedAcks], ["SentSegments", "ReceivedAcks"], [['k', '-', 2.0, '+', 3.0], ['r', '-', 2.0, '+', 3.0]], "Sender TCP dump", "Time (sec)", "seqNum")