opstream.js
function (options) {
  options = options || {};
  this.retryTimeout = options.retryTimeout || 10000;
  this.maxNotAck = options.maxNotAck || 10; //how many unacknowledged packets can be in fly
  this.ops = [];
  this.seq = 0;
  this.sentSeq = 0; //the last packet which was sent, but still not acknowledged
  this.lastSend = 0;
  this._send = function (op) {
  };
}
function (options) {
  options = options || {};
  this.retryTimeout = options.retryTimeout || 10000;
  this.maxNotAck = options.maxNotAck || 10; //how many unacknowledged packets can be in fly
  this.ops = [];
  this.seq = 0;
  this.sentSeq = 0; //the last packet which was sent, but still not acknowledged
  this.lastSend = 0;
  this._send = function (op) {
  };
}
/*
Sender stream