計算機網絡(第7版)——謝希仁 習題3-24 3-25

首先說明一下,這篇文章只是想討論題3-25。
題3-24出現在這裏只是因爲題3-25涉及到。
3-24我沒計算,因爲覺得沒必要。


3-24

假定站點A和B在同一個10Mbit/s以太網網段上。這兩個站點之間的傳播時延爲225比特時間。現假定A開始發送一幀,並且在A發送結束之前B也發送一幀。如果A發送的是以太網所容許的最短的幀,那麼A在檢測到和B發生碰撞之前能否把自己的數據發送完畢?換言之,如果A在發送完畢之前並沒有檢測到碰撞,那麼能否肯定A所發送的幀不會和B發送的幀發生碰撞?(提示:在計算時應當考慮到每一個以太網幀在發送到信道上時,在MAC幀前面還要增加若干字節的前同步碼和幀定界符。)

我的想法是不用計算啊,用最短幀的定義計算出A的幀長,然後自己證明自己…沒意義。最短幀的提出就是爲了避免在檢測到碰撞前就發送完數據。所以,如果A發送的是以太網所容許的最短幀,那A就不會在檢測到和B發生碰撞之前就把數據發送完了。
 


3-25

在上題中的站點A和B在t=0時同時發送了數據幀。當t=225比特時間,A和B同時檢測到發生了碰撞,並且在t=225+48=273比特時間完成了干擾信號的傳輸。A和B在CSMA/CD算法中選擇不同的r值退避。假定A和B選擇的隨機數分別是rA=0和rB=1。試問A和B各在什麼時間開始重傳其數據幀?A重傳的數據幀在什麼時間到達B? A重傳的數據會不會和B重傳的數據再次發送碰撞? B會不會在預定的重傳時間停止發送數據?

以太網的爭用期爲51.2us,得基本退避時間爲512。10Mbit/s以太網網段上,最短mac幀長=10Mbps×51.2us=512比特,前面再加上7個字節的前同步碼和1個字節的幀開始定界符,A發送的總幀長爲512+8×8=576比特。A發送完512比特需要512/(10Mbps)=51.2us。

  • t=0,A和B同時發送數據。
  • t=225/2,發生碰撞。
  • t=225,A和B同時檢測到發生碰撞,並開始發送人爲干擾信號。
  • t=273,人爲干擾信號發送完畢。適配器接着就執行指數退避算法,等待r倍基本退避時間。rA=0,所以A在t=273時,只要檢測到信道在一個幀間最小間隔內保持空閒就可以開始發送數據;但B需要等待rB=1個基本退避時間,也就是到t=273+512=785,纔開始檢測信道是否在一個幀間最小間隔內是空閒的,是的話而後再發送數據。在本題中,在t=273+96=369前,A會收到由B發送過來的干擾信號,所以不滿足發送的條件。
  • t=273+225=498,干擾信號在信道上傳播完畢,信道開始空閒。
  • t=498+96=594,A檢測到信道空閒保持了幀間最小間隔,A開始重傳數據。
  • t=273+512=785,B經過基本退避時間,開始檢測信道是否在一個幀間最小間隔內空閒。
  • t=594+225=819,A重傳的數據第一位送到B端,因爲785+96=881>819,所以B還沒開始發送數據就收到A的數據了,在預定的重傳時間B會停止發送。
  • t=819+576=1395,A重傳的數據全送到B端,B開始檢測到信道空閒。
  • t=1395+96=1491,B檢測到信道空閒保持了幀間最小間隔,開始重傳數據。
  • t=1491+225=1716,B發送的數據第一位傳到A端。

綜上,A在 t=594 比特時間開始重傳其數據幀,B原預定在 t=819 比特時間開始重傳其數據幀,但實際是在t=1491比特時間纔可能開始重傳其數據。A重傳的數據幀的第一位在t=819比特時間到達B,t=1395比特時間A的數據幀全部到達B。A重傳的數據不會和B重傳的數據再次發生碰撞。B在第一次預定的重傳時間t=881比特時間會停止發送數據。

感謝【哲學長】的指正~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章