public void packetReceived(SocketBuffer skbuf) {
long received = System.currentTimeMillis();
IPv4Header hdr1 = (IPv4Header) skbuf.getNetworkLayerHeader();
ICMPEchoHeader hdr2 = (ICMPEchoHeader) skbuf.getTransportLayerHeader();
int seq = hdr2.getSeqNumber();
Request r = removeRequest(seq);
if (r == null || r.Obsolete()) {
return;
}
long timestamp = match(hdr2.getIdentifier(), seq, r);
long roundtrip = received - timestamp;
gotResponse(timestamp, hdr1, hdr2, roundtrip);
}