Esempio n. 1
0
 def __init__(self, flow_id, source, destination, amount, env, time, bw):
     """ Constructor for Flow class
     """
     self._flow_id = flow_id
     self._src = source
     self._dest = destination
     self._amount = amount * 8 * 10**6
     self._pack_num = 0
     self._cwnd = 1.0
     self._ssthresh = 1000
     self._resend_time = 10
     self._min_RTT = 1000.0
     self._last_RTT = 3000.0
     self._SRTT = -1
     self._RTTVAR = 0
     self._RTO = 3000
     self._packets_sent = []
     self._packets_time_out = []
     self._acks_arrived = set()
     self.env = env
     self.bw = bw
     self._flow_start = time * 1000.0
     self._last_packet = 0
     self._done = 0
     self._send_rate = Rate_Graph(self._flow_id,
                                  "flow {0} send rate".format(self.flow_id),
                                  self.env, self.bw)
     self._receive_rate = Rate_Graph(
         self._flow_id, "flow {0} receive"
         " rate".format(self.flow_id), self.env, self.bw)
     self.env.add_event(
         Event("Start flow", self._flow_id, self.send_packet),
         self._flow_start)
Esempio n. 2
0
    def __init__(self, id, device_a, device_b, delay, rate, capacity, env, bw):
        self._id = id
        self._device_a = device_a
        self._device_b = device_b

        # rate is initially Mbps. rate is stored as bits per ms.
        self._rate = rate * 10 ** 3
        self._delay = delay
        # capacity is initially KB. capacity is stored as bits.
        self._capacity = capacity * 1000 * 8

        # Buffer to enter link
        self._release_into_link_buffer = deque()

        # Environment variables
        self.env = env
        self.bw = bw

        # Buffer size. Initialize to 0 since there are no packets.
        self._size = 0
        self._distance = delay

        # Recorder for rate data
        self._send_rate = Rate_Graph(self._id,
                                     "link {0} send rate".format(self._id),
                                     self.env,
                                     self.bw)
Esempio n. 3
0
 def __init__(self, router_id, env, bw):
     """Constructor for Router class."""
     super(Router, self).__init__(router_id)
     self.env = env
     self.bw = bw
     self._routing_table = {}
     self._new_routing_table = {}
     self._send_rate = Rate_Graph(router_id,
                                  "router {0} send rate".format(router_id),
                                  self.env, self.bw)
     self._receive_rate = Rate_Graph(
         router_id, "router {0} receive"
         " rate".format(router_id), self.env, self.bw)
     self.env.add_event(
         Event("{} sent routing"
               " packet".format(self._network_id), self._network_id,
               self.start_new_routing), 0)