ネットワーキング割り当てでCを使用して選択リピートプロトコルを実装しようとしていますが、個々のパケットごとにタイマーをシミュレートする方法がわかりません。私は1つのタイマーにしかアクセスできず、以下で説明するように関数を呼び出すことができます。1つの物理タイマーを持つ複数の仮想タイマーをシミュレートする
/* start timer at A or B (int), increment in time*/
extern void starttimer(int, double);
/* stop timer at A or B (int) */
extern void stoptimer(int);
黒瀬とロスは、単一のハードウェアタイマは、複数の論理タイマー[Varghese 1997]の 動作を模倣するために使用することができる
こと彼らのネットワークの教科書に記載されました。
そして、私はあなたが単一の物理タイマーを使用して複数の仮想タイマーをシミュレートすることができます同様のassignment
ために、以下のヒントを見つけました。基本的な考え方は、仮想タイマーの連鎖を有効期限内に整理し、最初の仮想タイマーの満了時に物理タイマーがオフになることです。
しかし、エミュレータが別の抽象レイヤにあるため、RTT以外の時間変数にアクセスすることはできません。この場合、個々のパケットのタイマーはどのように実装できますか?
希望する限り、カウンタの配列を保持します。また、それぞれの物理タイマーを更新してください。また、個々のスタート/ストップインジケータを追加することもできます。 –