I would probably read the whole file once and store the data in a hash whose key would be the concatenation of the two IPs (or it could also be a hash of hashes). Then,, I would read the file once more and for each "$timestamp $ip1 $arrow $ip2 $length " line loopup for $ip2/$ip1 in the hash. That's the basic idea, I can't really go into more details, because you did not give enough details (such as: can there be several lines with the same ip1/ip2 combination? this would impact how to exactly store the data in the hash).

This could actually be done in only one go, but the mechanics is a bit more complicated.