ホップごとの遅延値
- proc_delay: 処理遅延 (Processing delay)
- queue_delay: 渋滞遅延 (Queueing delay)
- link_distance: リンクの距離(Link distance)
- propagation_speed:リンクの伝播スピード(propagation speed)
- pkt_len: パケットサイズ(Packet size)
- transmission_rate: リンクの伝送速度(Transmission rate)
伝播遅延(Propagation_delay) = link_distance / propagation_speed
伝送遅延(Transmission_dalay) = Packet_size / transmission_rate
ホップごとの遅延値(Per-hop delay)[ms] = proc_delay + queue_delay + Propagation_delay + Transmission_dalay
#include <stdio.h> #include <stdlib.h> float per_hop_delay(float proc_delay, float queue_delay, float link_distance, float propagation_speed, float pkt_len, float transmission_rate) { float transmission_dalay; float propagation_delay; transmission_dalay = pkt_len / transmission_rate; //伝送遅延 propagation_delay = link_distance / propagation_speed; //伝播遅延 return proc_delay + queue_delay + propagation_delay + transmission_dalay; } void main(int argc, char *argv[]) { float proc_delay = atoi(argv[1]); float queue_delay = atoi(argv[2]); float link_distance = atoi(argv[3]); float propagation_speed = atoi(argv[4]); float pkt_len = atoi(argv[5]); float transmission_rate = atoi(argv[6]); printf("per_hop_delay= %f ms\n", per_hop_delay(proc_delay, queue_delay, link_distance, propagation_speed, pkt_len, transmission_rate)); }
gcc per-hop-delay.c
でa.out
へコンパイル
例題
- 処理遅延 (Processing delay) = 0.1 ms
- 渋滞遅延 (Queueing delay)= 20 ms
- リンクの距離(Link distance)= 200 km
- リンクの伝播スピード(Propagation speed)= 3・10 ^ 8 m/s
- パケットサイズ(Packet size) = 1500 bytes
- 10 Mbps Ethernet Link (リンクの伝送速度(Transmission rate)= 100 Mbps)
単位をそろえて実行する。
> ./a.out 0.1 20 1000000 300000000 1500 10000000 per_hop_delay= 20.003485 ms