Transport Layer Algorithms

This module includes simple transport layer algorithm: stop and wait

TCPTahoe(env, flow) This is the class that implements TCP Tahoe, TCP Tahoe with fast retransmit, TCP Vegas.
TCPVegas(env, flow) This is the class that implements TCP Vegas and FAST TCP.

TCPTahoe

class cs143sim.tla.TCPTahoe(env, flow)[source]

This is the class that implements TCP Tahoe, TCP Tahoe with fast retransmit, TCP Vegas.

Parameters:
  • enable_fast_retransmit – enable fast retransmit
  • enable_fast_recovery – enable fast recovery or not
  • rtt_alpha – change rate of rtt_avg
  • rtt_beta – change rate of rtt_div
Variables:
  • W – window size
  • packet_number – number of packets to be sent
  • time_out – timer’s waiting time
  • transmitter_not_sent – packets that have not been sent
  • transmitter_sending – list of packets that are being sent
  • transmitter_acked – packets that have been acked
  • duplicate_ack_number – record last acked packet number
  • duplicate_ack_times – record how many times the packet has been continuous acked
  • last_reset – last effective timeout time
  • time_out_event – current time out event
  • slow_start_treshold – treshold of slow start
  • rtt_avg – the average value of rtt
  • rtt_div – the divergence of rtt
  • slow_start_flag
  • fast_recovery_flag

TCPVegas

class cs143sim.tla.TCPTahoe(env, flow)[source]

This is the class that implements TCP Tahoe, TCP Tahoe with fast retransmit, TCP Vegas.

Parameters:
  • enable_fast_retransmit – enable fast retransmit
  • enable_fast_recovery – enable fast recovery or not
  • rtt_alpha – change rate of rtt_avg
  • rtt_beta – change rate of rtt_div
Variables:
  • W – window size
  • packet_number – number of packets to be sent
  • time_out – timer’s waiting time
  • transmitter_not_sent – packets that have not been sent
  • transmitter_sending – list of packets that are being sent
  • transmitter_acked – packets that have been acked
  • duplicate_ack_number – record last acked packet number
  • duplicate_ack_times – record how many times the packet has been continuous acked
  • last_reset – last effective timeout time
  • time_out_event – current time out event
  • slow_start_treshold – treshold of slow start
  • rtt_avg – the average value of rtt
  • rtt_div – the divergence of rtt
  • slow_start_flag
  • fast_recovery_flag