場景:
問題:
分析:
GNU R 程式碼:
tansmisionTimeOfToken <- 2.5
tokenProcessTimeOfMidPoint <- 1.5
numOfMidPoint <- 2
totalDataSize <- 244
PacketDataSize <- 15
timeOfDataPacketTransmission <- 18
dataPacketProcessTimeOfMidPoint <- 3
############################################################################################################################
output <- function(format, val) {
msg <- sprintf(format, val)
print(msg)
}
# 總驗證資訊傳遞時間:前進指揮所 -> 中繼指揮所 -> 戰地指揮所
totalTimeOfTokenTransmission <- tansmisionTimeOfToken + numOfMidPoint * (tansmisionTimeOfToken + tokenProcessTimeOfMidPoint)
output("總驗證資訊傳遞時間=%.2f", totalTimeOfTokenTransmission)
# 總驗證碼傳遞時間:戰地指揮所 -> 中繼指揮所 -> 前進指揮所
totalTimeOfTokenValidation <- tansmisionTimeOfToken + numOfMidPoint * (tansmisionTimeOfToken + tokenProcessTimeOfMidPoint)
output("總驗證碼傳遞時間=%.2f", totalTimeOfTokenValidation)
# 通信建立時間:前進指揮所 -> 中繼指揮所 -> 戰地指揮所
totalTimeOfCommunicationSetup <- totalTimeOfTokenTransmission + totalTimeOfTokenValidation
output("通信建立時間=%.2f", totalTimeOfCommunicationSetup)
# 通信包裹數
numOfPackets <- ceiling(totalDataSize / PacketDataSize)
output("通信包裹數=%.2f", numOfPackets)
# 第一個通信包裹到達時間:前進指揮所 -> 中繼指揮所 -> 戰地指揮所
timeOfFirstDataPacketTransmission <- numOfMidPoint * (timeOfDataPacketTransmission + dataPacketProcessTimeOfMidPoint)
output("第一個通信包裹到達前進指揮所時間=%.2f", totalTimeOfCommunicationSetup + timeOfFirstDataPacketTransmission)
# 最後一個通信包裹到達時間:前進指揮所 -> 中繼指揮所 -> 戰地指揮所
timeOfOtherDataPacketsTransmission <- numOfPackets * numOfMidPoint * (timeOfDataPacketTransmission + dataPacketProcessTimeOfMidPoint)
output("最後一個通信包裹到達前進指揮所時間=%.2f", totalTimeOfCommunicationSetup + timeOfOtherDataPacketsTransmission)
# 總已收畢碼傳遞時間:戰地指揮所 -> 中繼指揮所 -> 前進指揮所
totalTransmissionTimeOfDataACK <- tansmisionTimeOfToken + numOfMidPoint * (tansmisionTimeOfToken + tokenProcessTimeOfMidPoint)
output("總已收畢碼傳遞時間=%.2f", totalTransmissionTimeOfDataACK)
# 所有資料傳遞時間:前進指揮所 -> 中繼指揮所 -> 戰地指揮所
totalTimeOfInformationTransmission <- totalTimeOfCommunicationSetup + timeOfOtherDataPacketsTransmission + totalTransmissionTimeOfDataACK
output("所有資料傳遞時間=%.2f", totalTimeOfInformationTransmission)