BEGIN   {
       # we need to know (usual) packet size to convert byte numbers
       # to packet numbers
       if (packetsize <= 0)
               packetsize = 512
       }
$5 !~ /[SR]/    {
       # print out per-packet data in the form:
       #  <packet #>
       #  <start sequence #>
       #  <1st send time>
       #  <last send time>
       #  <1st ack time>
       #  <last ack time>
       #  <# sends>
       #  <# acks>

       n = split ($1,t,":")
       tim = t[1]*3600 + t[2]*60 + t[3]
       if ($6 != "ack") {
               i = index($6,":")
               strtSeq = substr($6,1,i-1)
               id = 1.5 + (strtSeq - 1) / packetsize
               id -= id % 1
               if (maxId < id)
                       maxId = id
               if (firstSend[id] == 0) {
                       firstSend[id] = tim
                       seqNo[id] = strtSeq
               }
               lastSend[id] = tim
               timesSent[id]++
               totalPackets++
       } else {
               id = 1 + ($7 - 2) / packetsize
               id -= id % 1
               timesAcked[id]++
               if (firstAck[id] == 0)
                       firstAck[id] = tim
               lastAck[id] = tim
               totalAcks++
       }
       }
END     {
       print "# " maxId " chunks.  " totalPackets " packets sent.  " \
               totalAcks " acks."
       # for packets that were implicitly acked, make the ack time
       # be the ack time of next explicitly acked packet.
       for (i = maxId-1; i > 0; --i)
               while (i > 0 && firstAck[i] == 0) {
                       lastAck[i] = firstAck[i] = firstAck[i+1]
                       --i
               }
       tzero = firstSend[1]
       for (i = 1; i <= maxId; i++)
               printf "%d\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%d\t%d\n",\
                       i, seqNo[i], \
                       firstSend[i] - tzero, lastSend[i] - tzero,\
                       firstAck[i] - tzero, lastAck[i] - tzero,\
                       timesSent[i], timesAcked[i]
       }