Documente Academic
Documente Profesional
Documente Cultură
Submitted By Tony Hayek Elie Nassif Abdelrahim Moubayed Submitted To Professor Jihad Daba
24-04-2012
1
Table of contents
Case 1: FIFO SAR = 1 GPRS CS1 1 TS ..................................................................... 3 Case 2: FIFO SAR = 10 GPRS CS1 1 TS: ........................................................................... 6 Case 3: FIFO SAR = 1 GPRS CS4 8 TS .............................................................................. 9 Case 4: FIFO SAR = 10 GPRS CS4 8 TS: ............................ Error! Bookmark not defined. Case 5: FIFO SAR = 1 EDGE 1 TS ........................................ Error! Bookmark not defined. Case 6: FIFO SAR = 10 EDGE 1 TS ...................................... Error! Bookmark not defined. Case 7: FIFO SAR = 1 EDGE 8 TS ..................................................................................... 21 Case 8: FIFO SAR = 10 EDGE 8 TS ................................................................................... 24 Case 9: Priority Resume GPRS CS1 1 TS ......................................................................... 27 Case 10: Priority Resume GPRS CS4 8 TS ....................................................................... 30 Case 11: Priority Resume EDGE 1 TS ................................................................................... 33 Case 12: Priority Resume EDGE 8 TS .................................................................................. 36 Case 13: Priority Non Resume GPRS CS1 1 TS .............................................................. 39 Case 14: Priority Non Resume GPRS CS4 8 TS .............................................................. 42 Case 15: Priority Non Resume EDGE 1 TS .......................................................................... 45 Case 16: Priority Non Resume EDGE 8 TS .......................................................................... 48
These are the Traffic Parameters used in all cases : 1 2 3 4 5 6 Voice Messaging Telnet Audio Streaming Video Streaming Email FTP G/G/1 M/G/1 G/G/1 G/G/1 M/G/1 G/G/1
%FIF0 - GPRS - CS1 - 1 Time slot clear all; close all; classesNb = 6; waitingTime = zeros(1,6); i = 1; % CS1 - 1 TS channelCapacity = 9.05 * 1000; % 1 Voice messaging averageFrameSize = 31; arrivalRate = (1000 * 10.7) / (8 * averageFrameSize); serviceTime = 8 * averageFrameSize / channelCapacity; varFrameSize = 4; varServiceTime = (64 * varFrameSize) / ( channelCapacity^2); SAR = 1; interArrivalTime = 0.02308; varInterArrivalTime = ((SAR)^2) * (interArrivalTime^2); ETwSup = (arrivalRate/2) * ((varServiceTime^2 + varInterArrivalTime^2) / (1 arrivalRate*serviceTime)); ETqSup = ETwSup + serviceTime; waitingTime(i) = ETqSup; i = i + 1; % 2 Telnet averageFrameSize = 64; arrivalRate = (1000 * 0.512) / (8 * averageFrameSize); throughput = arrivalRate; serviceTime = 8 * averageFrameSize / channelCapacity; SAR = 1; ETs2 = (serviceTime * (1 + SAR))^2; %Mean buffer length ENw = (arrivalRate^2 * ETs2) / (2 * (1 - arrivalRate * serviceTime)); ETw = ENw / throughput; ETq = ETw + serviceTime;
waitingTime(i) = ETq; i = i + 1; % 3 Audio streaming averageFrameSize = 200; arrivalRate = (1000 * 20) / (8 * averageFrameSize); serviceTime = 8 * averageFrameSize / channelCapacity; varFrameSize = 4; varServiceTime = (64 * varFrameSize) / ( channelCapacity^2); SAR = 1; interArrivalTime = 0.08; varInterArrivalTime = ((SAR)^2) * (interArrivalTime^2); ETwSup = (arrivalRate/2) * ((varServiceTime^2 + varInterArrivalTime^2) / (1 arrivalRate*serviceTime)); ETqSup = ETwSup + serviceTime; waitingTime(i) = ETqSup; i = i + 1; % 4 Video streaming averageFrameSize = 320; arrivalRate = (1000 * 64) / (8 * averageFrameSize); serviceTime = 8 * averageFrameSize / channelCapacity; varFrameSize = 4; varServiceTime = (64 * varFrameSize) / ( channelCapacity^2); SAR = 1; interArrivalTime = 0.04; varInterArrivalTime = ((SAR)^2) * (interArrivalTime^2); ETwSup = (arrivalRate/2) * ((varServiceTime^2 + varInterArrivalTime^2) / (1 arrivalRate*serviceTime)); ETqSup = ETwSup + serviceTime; waitingTime(i) = ETqSup; i = i + 1; % 5 Email averageFrameSize = 500; arrivalRate = (1000 * 4) / (8 * averageFrameSize); throughput = arrivalRate; serviceTime = 8 * averageFrameSize / channelCapacity; SAR = 1; ETs2 = (serviceTime * (1 + SAR))^2; %Mean buffer length ENw = (arrivalRate^2 * ETs2) / (2 * (1 - arrivalRate * serviceTime)); ETw = ENw / throughput; ETq = ETw + serviceTime; waitingTime(i) = ETq; i = i + 1; % 6 FTP averageFrameSize = 500; arrivalRate = (1000 * 55) / (8 * averageFrameSize); serviceTime = 8 * averageFrameSize / channelCapacity; varFrameSize = 4; varServiceTime = (64 * varFrameSize) / ( channelCapacity^2);
SAR = 1; interArrivalTime = 0.5; varInterArrivalTime = ((SAR)^2) * (interArrivalTime^2); ETwSup = (arrivalRate/2) * ((varServiceTime^2 + varInterArrivalTime^2) / (1 arrivalRate*serviceTime)); ETqSup = ETwSup + serviceTime; waitingTime(i) = ETqSup; i = i + 1; stem(waitingTime); grid on xlabel('Application Class Number') ylabel('Queueing Time') title('Latencies Versus Traffic Classes')
% CS1 - 1 TS channelCapacity = 9.05 * 1000; % 1 Voice messaging averageFrameSize = 31; arrivalRate = (1000 * 10.7) / (8 * averageFrameSize); serviceTime = 8 * averageFrameSize / channelCapacity; varFrameSize = 4; varServiceTime = (64 * varFrameSize) / ( channelCapacity^2); SAR = 10; interArrivalTime = 0.02308; varInterArrivalTime = ((SAR)^2) * (interArrivalTime^2); ETwSup = (arrivalRate/2) * ((varServiceTime^2 + varInterArrivalTime^2) / (1 arrivalRate*serviceTime)); ETqSup = ETwSup + serviceTime; waitingTime(i) = ETqSup; i = i + 1; % 2 Telnet averageFrameSize = 64; arrivalRate = (1000 * 0.512) / (8 * averageFrameSize); throughput = arrivalRate; serviceTime = 8 * averageFrameSize / channelCapacity; SAR = 10; ETs2 = (serviceTime * (1 + SAR))^2; %Mean buffer length ENw = (arrivalRate^2 * ETs2) / (2 * (1 - arrivalRate * serviceTime)); ETw = ENw / throughput; ETq = ETw + serviceTime; waitingTime(i) = ETq; i = i + 1; % 3 Audio streaming averageFrameSize = 200; arrivalRate = (1000 * 20) / (8 * averageFrameSize); serviceTime = 8 * averageFrameSize / channelCapacity; varFrameSize = 4; varServiceTime = (64 * varFrameSize) / ( channelCapacity^2); SAR = 10;
interArrivalTime = 0.08; varInterArrivalTime = ((SAR)^2) * (interArrivalTime^2); ETwSup = (arrivalRate/2) * ((varServiceTime^2 + varInterArrivalTime^2) / (1 arrivalRate*serviceTime)); ETqSup = ETwSup + serviceTime; waitingTime(i) = ETqSup; i = i + 1; % 4 Video streaming averageFrameSize = 320; arrivalRate = (1000 * 64) / (8 * averageFrameSize); serviceTime = 8 * averageFrameSize / channelCapacity; varFrameSize = 4; varServiceTime = (64 * varFrameSize) / ( channelCapacity^2); SAR = 10; interArrivalTime = 0.04; varInterArrivalTime = ((SAR)^2) * (interArrivalTime^2); ETwSup = (arrivalRate/2) * ((varServiceTime^2 + varInterArrivalTime^2) / (1 arrivalRate*serviceTime)); ETqSup = ETwSup + serviceTime; waitingTime(i) = ETqSup; i = i + 1; % 5 Email averageFrameSize = 500; arrivalRate = (1000 * 4) / (8 * averageFrameSize); throughput = arrivalRate; serviceTime = 8 * averageFrameSize / channelCapacity; SAR = 10; ETs2 = (serviceTime * (1 + SAR))^2; %Mean buffer length ENw = (arrivalRate^2 * ETs2) / (2 * (1 - arrivalRate * serviceTime)); ETw = ENw / throughput; ETq = ETw + serviceTime; waitingTime(i) = ETq; i = i + 1; % 6 FTP averageFrameSize = 500; arrivalRate = (1000 * 55) / (8 * averageFrameSize); serviceTime = 8 * averageFrameSize / channelCapacity; varFrameSize = 4; varServiceTime = (64 * varFrameSize) / ( channelCapacity^2); SAR = 10; interArrivalTime = 0.5; varInterArrivalTime = ((SAR)^2) * (interArrivalTime^2); ETwSup = (arrivalRate/2) * ((varServiceTime^2 + varInterArrivalTime^2) / (1 arrivalRate*serviceTime)); ETqSup = ETwSup + serviceTime; waitingTime(i) = ETqSup; i = i + 1; stem(waitingTime);
grid on xlabel('Application Class Number') ylabel('Queueing Time') title('Latencies Versus Traffic Classes')
% CS4 - 8 TS channelCapacity = 171.2 * 1000; % 1 Voice messaging averageFrameSize = 31; arrivalRate = (1000 * 10.7) / (8 * averageFrameSize); serviceTime = 8 * averageFrameSize / channelCapacity; varFrameSize = 4; varServiceTime = (64 * varFrameSize) / ( channelCapacity^2); SAR = 1; interArrivalTime = 0.02308; varInterArrivalTime = ((SAR)^2) * (interArrivalTime^2); ETwSup = (arrivalRate/2) * ((varServiceTime^2 + varInterArrivalTime^2) / (1 arrivalRate*serviceTime)); ETqSup = ETwSup + serviceTime; waitingTime(i) = ETqSup; i = i + 1; % 2 Telnet averageFrameSize = 64; arrivalRate = (1000 * 0.512) / (8 * averageFrameSize); throughput = arrivalRate; serviceTime = 8 * averageFrameSize / channelCapacity; SAR = 1; ETs2 = (serviceTime * (1 + SAR))^2; %Mean buffer length ENw = (arrivalRate^2 * ETs2) / (2 * (1 - arrivalRate * serviceTime)); ETw = ENw / throughput; ETq = ETw + serviceTime; waitingTime(i) = ETq; i = i + 1; % 3 Audio streaming averageFrameSize = 200; arrivalRate = (1000 * 20) / (8 * averageFrameSize); serviceTime = 8 * averageFrameSize / channelCapacity; varFrameSize = 4; varServiceTime = (64 * varFrameSize) / ( channelCapacity^2); SAR = 1;
interArrivalTime = 0.08; varInterArrivalTime = ((SAR)^2) * (interArrivalTime^2); ETwSup = (arrivalRate/2) * ((varServiceTime^2 + varInterArrivalTime^2) / (1 arrivalRate*serviceTime)); ETqSup = ETwSup + serviceTime; waitingTime(i) = ETqSup; i = i + 1; % 4 Video streaming averageFrameSize = 320; arrivalRate = (1000 * 64) / (8 * averageFrameSize); serviceTime = 8 * averageFrameSize / channelCapacity; varFrameSize = 4; varServiceTime = (64 * varFrameSize) / ( channelCapacity^2); SAR = 1; interArrivalTime = 0.04; varInterArrivalTime = ((SAR)^2) * (interArrivalTime^2); ETwSup = (arrivalRate/2) * ((varServiceTime^2 + varInterArrivalTime^2) / (1 arrivalRate*serviceTime)); ETqSup = ETwSup + serviceTime; waitingTime(i) = ETqSup; i = i + 1; % 5 Email averageFrameSize = 500; arrivalRate = (1000 * 4) / (8 * averageFrameSize); throughput = arrivalRate; serviceTime = 8 * averageFrameSize / channelCapacity; SAR = 1; ETs2 = (serviceTime * (1 + SAR))^2; %Mean buffer length ENw = (arrivalRate^2 * ETs2) / (2 * (1 - arrivalRate * serviceTime)); ETw = ENw / throughput; ETq = ETw + serviceTime; waitingTime(i) = ETq; i = i + 1; % 6 FTP averageFrameSize = 500; arrivalRate = (1000 * 55) / (8 * averageFrameSize); serviceTime = 8 * averageFrameSize / channelCapacity; varFrameSize = 4; varServiceTime = (64 * varFrameSize) / ( channelCapacity^2); SAR = 1; interArrivalTime = 0.5; varInterArrivalTime = ((SAR)^2) * (interArrivalTime^2); ETwSup = (arrivalRate/2) * ((varServiceTime^2 + varInterArrivalTime^2) / (1 arrivalRate*serviceTime)); ETqSup = ETwSup + serviceTime; waitingTime(i) = ETqSup; i = i + 1; stem(waitingTime);
10
grid on xlabel('Application Class Number') ylabel('Queueing Time') title('Latencies Versus Traffic Classes')
11
% CS4 - 8 TS channelCapacity = 171.2 * 1000; % 1 Voice messaging averageFrameSize = 31; arrivalRate = (1000 * 10.7) / (8 * averageFrameSize); serviceTime = 8 * averageFrameSize / channelCapacity; varFrameSize = 4; varServiceTime = (64 * varFrameSize) / ( channelCapacity^2); SAR = 10; interArrivalTime = 0.02308; varInterArrivalTime = ((SAR)^2) * (interArrivalTime^2); ETwSup = (arrivalRate/2) * ((varServiceTime^2 + varInterArrivalTime^2) / (1 arrivalRate*serviceTime)); ETqSup = ETwSup + serviceTime; waitingTime(i) = ETqSup; i = i + 1; % 2 Telnet averageFrameSize = 64; arrivalRate = (1000 * 0.512) / (8 * averageFrameSize); throughput = arrivalRate; serviceTime = 8 * averageFrameSize / channelCapacity; SAR = 10; ETs2 = (serviceTime * (1 + SAR))^2; %Mean buffer length ENw = (arrivalRate^2 * ETs2) / (2 * (1 - arrivalRate * serviceTime)); ETw = ENw / throughput; ETq = ETw + serviceTime; waitingTime(i) = ETq; i = i + 1; % 3 Audio streaming %%%%%%%%%%%%%%%%%%%%%%%%%%% averageFrameSize = 200; arrivalRate = (1000 * 20) / (8 * averageFrameSize); serviceTime = 8 * averageFrameSize / channelCapacity; varFrameSize = 4; varServiceTime = (64 * varFrameSize) / ( channelCapacity^2);
12
SAR = 10; interArrivalTime = 0.08; varInterArrivalTime = ((SAR)^2) * (interArrivalTime^2); ETwSup = (arrivalRate/2) * ((varServiceTime^2 + varInterArrivalTime^2) / (1 arrivalRate*serviceTime)); ETqSup = ETwSup + serviceTime; waitingTime(i) = ETqSup; i = i + 1; % 4 Video streaming averageFrameSize = 320; arrivalRate = (1000 * 64) / (8 * averageFrameSize); serviceTime = 8 * averageFrameSize / channelCapacity; varFrameSize = 4; varServiceTime = (64 * varFrameSize) / ( channelCapacity^2); SAR = 10; interArrivalTime = 0.04; varInterArrivalTime = ((SAR)^2) * (interArrivalTime^2); ETwSup = (arrivalRate/2) * ((varServiceTime^2 + varInterArrivalTime^2) / (1 arrivalRate*serviceTime)); ETqSup = ETwSup + serviceTime; waitingTime(i) = ETqSup; i = i + 1; % 5 Email averageFrameSize = 500; arrivalRate = (1000 * 4) / (8 * averageFrameSize); throughput = arrivalRate; serviceTime = 8 * averageFrameSize / channelCapacity; SAR = 10; ETs2 = (serviceTime * (1 + SAR))^2; %Mean buffer length ENw = (arrivalRate^2 * ETs2) / (2 * (1 - arrivalRate * serviceTime)); ETw = ENw / throughput; ETq = ETw + serviceTime; waitingTime(i) = ETq; i = i + 1; % 6 FTP averageFrameSize = 500; arrivalRate = (1000 * 55) / (8 * averageFrameSize); serviceTime = 8 * averageFrameSize / channelCapacity; varFrameSize = 4; varServiceTime = (64 * varFrameSize) / ( channelCapacity^2); SAR = 10; interArrivalTime = 0.5; varInterArrivalTime = ((SAR)^2) * (interArrivalTime^2); ETwSup = (arrivalRate/2) * ((varServiceTime^2 + varInterArrivalTime^2) / (1 arrivalRate*serviceTime)); ETqSup = ETwSup + serviceTime; waitingTime(i) = ETqSup; i = i + 1;
13
stem(waitingTime); grid on xlabel('Application Class Number') ylabel('Queueing Time') title('Latencies Versus Traffic Classes')
14
% 1 TS channelCapacity = 69.2 * 1000; % 1 Voice messaging averageFrameSize = 31; arrivalRate = (1000 * 10.7) / (8 * averageFrameSize); serviceTime = 8 * averageFrameSize / channelCapacity; varFrameSize = 4; varServiceTime = (64 * varFrameSize) / ( channelCapacity^2); SAR = 1; interArrivalTime = 0.02308; varInterArrivalTime = ((SAR)^2) * (interArrivalTime^2); ETwSup = (arrivalRate/2) * ((varServiceTime^2 + varInterArrivalTime^2) / (1 arrivalRate*serviceTime)); ETqSup = ETwSup + serviceTime; waitingTime(i) = ETqSup; i = i + 1; % 2 Telnet averageFrameSize = 64; arrivalRate = (1000 * 0.512) / (8 * averageFrameSize); throughput = arrivalRate; serviceTime = 8 * averageFrameSize / channelCapacity; SAR = 1; ETs2 = (serviceTime * (1 + SAR))^2; %Mean buffer length ENw = (arrivalRate^2 * ETs2) / (2 * (1 - arrivalRate * serviceTime)); ETw = ENw / throughput; ETq = ETw + serviceTime; waitingTime(i) = ETq; i = i + 1; % 3 Audio streaming averageFrameSize = 200; arrivalRate = (1000 * 20) / (8 * averageFrameSize); serviceTime = 8 * averageFrameSize / channelCapacity; varFrameSize = 4; varServiceTime = (64 * varFrameSize) / ( channelCapacity^2); SAR = 1;
15
interArrivalTime = 0.08; varInterArrivalTime = ((SAR)^2) * (interArrivalTime^2); ETwSup = (arrivalRate/2) * ((varServiceTime^2 + varInterArrivalTime^2) / (1 arrivalRate*serviceTime)); ETqSup = ETwSup + serviceTime; waitingTime(i) = ETqSup; i = i + 1; % 4 Video streaming averageFrameSize = 320; arrivalRate = (1000 * 64) / (8 * averageFrameSize); serviceTime = 8 * averageFrameSize / channelCapacity; varFrameSize = 4; varServiceTime = (64 * varFrameSize) / ( channelCapacity^2); SAR = 1; interArrivalTime = 0.04; varInterArrivalTime = ((SAR)^2) * (interArrivalTime^2); ETwSup = (arrivalRate/2) * ((varServiceTime^2 + varInterArrivalTime^2) / (1 arrivalRate*serviceTime)); ETqSup = ETwSup + serviceTime; waitingTime(i) = ETqSup; i = i + 1; % 5 Email averageFrameSize = 500; arrivalRate = (1000 * 4) / (8 * averageFrameSize); throughput = arrivalRate; serviceTime = 8 * averageFrameSize / channelCapacity; SAR = 1; ETs2 = (serviceTime * (1 + SAR))^2; %Mean buffer length ENw = (arrivalRate^2 * ETs2) / (2 * (1 - arrivalRate * serviceTime)); ETw = ENw / throughput; ETq = ETw + serviceTime; waitingTime(i) = ETq; i = i + 1; % 6 FTP averageFrameSize = 500; arrivalRate = (1000 * 55) / (8 * averageFrameSize); serviceTime = 8 * averageFrameSize / channelCapacity; varFrameSize = 4; varServiceTime = (64 * varFrameSize) / ( channelCapacity^2); SAR = 1; interArrivalTime = 0.075; varInterArrivalTime = ((SAR)^2) * (interArrivalTime^2); ETwSup = (arrivalRate/2) * ((varServiceTime^2 + varInterArrivalTime^2) / (1 arrivalRate*serviceTime)); ETqSup = ETwSup + serviceTime; waitingTime(i) = ETqSup; stem(waitingTime); grid on
16
17
% 1 TS channelCapacity = 69.2 * 1000; % 1 Voice messaging averageFrameSize = 31; arrivalRate = (1000 * 10.7) / (8 * averageFrameSize); serviceTime = 8 * averageFrameSize / channelCapacity; varFrameSize = 4; varServiceTime = (64 * varFrameSize) / ( channelCapacity^2); SAR = 10; interArrivalTime = 0.02308; varInterArrivalTime = ((SAR)^2) * (interArrivalTime^2); ETwSup = (arrivalRate/2) * ((varServiceTime^2 + varInterArrivalTime^2) / (1 arrivalRate*serviceTime)); ETqSup = ETwSup + serviceTime; waitingTime(i) = ETqSup; i = i + 1; % 2 Telnet averageFrameSize = 64; arrivalRate = (1000 * 0.512) / (8 * averageFrameSize); throughput = arrivalRate; serviceTime = 8 * averageFrameSize / channelCapacity; SAR = 10; ETs2 = (serviceTime * (1 + SAR))^2; %Mean buffer length ENw = (arrivalRate^2 * ETs2) / (2 * (1 - arrivalRate * serviceTime)); ETw = ENw / throughput; ETq = ETw + serviceTime; waitingTime(i) = ETq; i = i + 1; % 3 Audio streaming averageFrameSize = 200; arrivalRate = (1000 * 20) / (8 * averageFrameSize); serviceTime = 8 * averageFrameSize / channelCapacity; varFrameSize = 4; varServiceTime = (64 * varFrameSize) / ( channelCapacity^2); SAR = 10;
18
interArrivalTime = 0.08; varInterArrivalTime = ((SAR)^2) * (interArrivalTime^2); ETwSup = (arrivalRate/2) * ((varServiceTime^2 + varInterArrivalTime^2) / (1 arrivalRate*serviceTime)); ETqSup = ETwSup + serviceTime; waitingTime(i) = ETqSup; i = i + 1; % 4 Video streaming averageFrameSize = 320; arrivalRate = (1000 * 64) / (8 * averageFrameSize); serviceTime = 8 * averageFrameSize / channelCapacity; varFrameSize = 4; varServiceTime = (64 * varFrameSize) / ( channelCapacity^2); SAR = 10; interArrivalTime = 0.04; varInterArrivalTime = ((SAR)^2) * (interArrivalTime^2); ETwSup = (arrivalRate/2) * ((varServiceTime^2 + varInterArrivalTime^2) / (1 arrivalRate*serviceTime)); ETqSup = ETwSup + serviceTime; waitingTime(i) = ETqSup; i = i + 1; % 5 Email averageFrameSize = 500; arrivalRate = (1000 * 4) / (8 * averageFrameSize); throughput = arrivalRate; serviceTime = 8 * averageFrameSize / channelCapacity; SAR = 10; ETs2 = (serviceTime * (1 + SAR))^2; %Mean buffer length ENw = (arrivalRate^2 * ETs2) / (2 * (1 - arrivalRate * serviceTime)); ETw = ENw / throughput; ETq = ETw + serviceTime; waitingTime(i) = ETq; i = i + 1; % 6 FTP averageFrameSize = 500; arrivalRate = (1000 * 55) / (8 * averageFrameSize); serviceTime = 8 * averageFrameSize / channelCapacity; varFrameSize = 4; varServiceTime = (64 * varFrameSize) / ( channelCapacity^2); SAR = 10; interArrivalTime = 0.075; varInterArrivalTime = ((SAR)^2) * (interArrivalTime^2); ETwSup = (arrivalRate/2) * ((varServiceTime^2 + varInterArrivalTime^2) / (1 arrivalRate*serviceTime)); ETqSup = ETwSup + serviceTime; waitingTime(i) = ETqSup; stem(waitingTime); grid on
19
20
% 8 TS channelCapacity = 553.6 * 1000; % 1 Voice messaging averageFrameSize = 31; arrivalRate = (1000 * 10.7) / (8 * averageFrameSize); serviceTime = 8 * averageFrameSize / channelCapacity; varFrameSize = 4; varServiceTime = (64 * varFrameSize) / ( channelCapacity^2); SAR = 1; interArrivalTime = 0.02308; varInterArrivalTime = ((SAR)^2) * (interArrivalTime^2); ETwSup = (arrivalRate/2) * ((varServiceTime^2 + varInterArrivalTime^2) / (1 arrivalRate*serviceTime)); ETqSup = ETwSup + serviceTime; waitingTime(i) = ETqSup; i = i + 1; % 2 Telnet averageFrameSize = 64; arrivalRate = (1000 * 0.512) / (8 * averageFrameSize); throughput = arrivalRate; serviceTime = 8 * averageFrameSize / channelCapacity; SAR = 1; ETs2 = (serviceTime * (1 + SAR))^2; %Mean buffer length ENw = (arrivalRate^2 * ETs2) / (2 * (1 - arrivalRate * serviceTime)); ETw = ENw / throughput; ETq = ETw + serviceTime; waitingTime(i) = ETq; i = i + 1; % 3 Audio streaming averageFrameSize = 200; arrivalRate = (1000 * 20) / (8 * averageFrameSize); serviceTime = 8 * averageFrameSize / channelCapacity; varFrameSize = 4; varServiceTime = (64 * varFrameSize) / ( channelCapacity^2); SAR = 1;
21
interArrivalTime = 0.08; varInterArrivalTime = ((SAR)^2) * (interArrivalTime^2); ETwSup = (arrivalRate/2) * ((varServiceTime^2 + varInterArrivalTime^2) / (1 arrivalRate*serviceTime)); ETqSup = ETwSup + serviceTime; waitingTime(i) = ETqSup; i = i + 1; % 4 Video streaming averageFrameSize = 320; arrivalRate = (1000 * 64) / (8 * averageFrameSize); serviceTime = 8 * averageFrameSize / channelCapacity; varFrameSize = 4; varServiceTime = (64 * varFrameSize) / ( channelCapacity^2); SAR = 1; interArrivalTime = 0.04; varInterArrivalTime = ((SAR)^2) * (interArrivalTime^2); ETwSup = (arrivalRate/2) * ((varServiceTime^2 + varInterArrivalTime^2) / (1 arrivalRate*serviceTime)); ETqSup = ETwSup + serviceTime; waitingTime(i) = ETqSup; i = i + 1; % 5 Email averageFrameSize = 500; arrivalRate = (1000 * 4) / (8 * averageFrameSize); throughput = arrivalRate; serviceTime = 8 * averageFrameSize / channelCapacity; SAR = 1; ETs2 = (serviceTime * (1 + SAR))^2; %Mean buffer length ENw = (arrivalRate^2 * ETs2) / (2 * (1 - arrivalRate * serviceTime)); ETw = ENw / throughput; ETq = ETw + serviceTime; waitingTime(i) = ETq; i = i + 1; % 6 FTP averageFrameSize = 500; arrivalRate = (1000 * 55) / (8 * averageFrameSize); serviceTime = 8 * averageFrameSize / channelCapacity; varFrameSize = 4; varServiceTime = (64 * varFrameSize) / ( channelCapacity^2); SAR = 1; interArrivalTime = 0.075; varInterArrivalTime = ((SAR)^2) * (interArrivalTime^2); ETwSup = (arrivalRate/2) * ((varServiceTime^2 + varInterArrivalTime^2) / (1 arrivalRate*serviceTime)); ETqSup = ETwSup + serviceTime; waitingTime(i) = ETqSup; stem(waitingTime); grid on
22
23
% 8 TS channelCapacity = 553.6 * 1000; % 1 Voice messaging averageFrameSize = 31; arrivalRate = (1000 * 10.7) / (8 * averageFrameSize); serviceTime = 8 * averageFrameSize / channelCapacity; varFrameSize = 4; varServiceTime = (64 * varFrameSize) / ( channelCapacity^2); SAR = 10; interArrivalTime = 0.02308; varInterArrivalTime = ((SAR)^2) * (interArrivalTime^2); ETwSup = (arrivalRate/2) * ((varServiceTime^2 + varInterArrivalTime^2) / (1 arrivalRate*serviceTime)); ETqSup = ETwSup + serviceTime; waitingTime(i) = ETqSup; i = i + 1; % 2 Telnet averageFrameSize = 64; arrivalRate = (1000 * 0.512) / (8 * averageFrameSize); throughput = arrivalRate; serviceTime = 8 * averageFrameSize / channelCapacity; SAR = 10; ETs2 = (serviceTime * (1 + SAR))^2; %Mean buffer length ENw = (arrivalRate^2 * ETs2) / (2 * (1 - arrivalRate * serviceTime)); ETw = ENw / throughput; ETq = ETw + serviceTime; waitingTime(i) = ETq; i = i + 1; % 3 Audio streaming averageFrameSize = 200; arrivalRate = (1000 * 20) / (8 * averageFrameSize); serviceTime = 8 * averageFrameSize / channelCapacity; varFrameSize = 4; varServiceTime = (64 * varFrameSize) / ( channelCapacity^2); SAR = 10;
24
interArrivalTime = 0.08; varInterArrivalTime = ((SAR)^2) * (interArrivalTime^2); ETwSup = (arrivalRate/2) * ((varServiceTime^2 + varInterArrivalTime^2) / (1 arrivalRate*serviceTime)); ETqSup = ETwSup + serviceTime; waitingTime(i) = ETqSup; i = i + 1; % 4 Video streaming averageFrameSize = 320; arrivalRate = (1000 * 64) / (8 * averageFrameSize); serviceTime = 8 * averageFrameSize / channelCapacity; varFrameSize = 4; varServiceTime = (64 * varFrameSize) / ( channelCapacity^2); SAR = 10; interArrivalTime = 0.04; varInterArrivalTime = ((SAR)^2) * (interArrivalTime^2); ETwSup = (arrivalRate/2) * ((varServiceTime^2 + varInterArrivalTime^2) / (1 arrivalRate*serviceTime)); ETqSup = ETwSup + serviceTime; waitingTime(i) = ETqSup; i = i + 1; % 5 Email averageFrameSize = 500; arrivalRate = (1000 * 4) / (8 * averageFrameSize); throughput = arrivalRate; serviceTime = 8 * averageFrameSize / channelCapacity; SAR = 10; ETs2 = (serviceTime * (1 + SAR))^2; %Mean buffer length ENw = (arrivalRate^2 * ETs2) / (2 * (1 - arrivalRate * serviceTime)); ETw = ENw / throughput; ETq = ETw + serviceTime; waitingTime(i) = ETq; i = i + 1; % 6 FTP averageFrameSize = 500; arrivalRate = (1000 * 55) / (8 * averageFrameSize); serviceTime = 8 * averageFrameSize / channelCapacity; varFrameSize = 4; varServiceTime = (64 * varFrameSize) / ( channelCapacity^2); SAR = 10; interArrivalTime = 0.075; varInterArrivalTime = ((SAR)^2) * (interArrivalTime^2); ETwSup = (arrivalRate/2) * ((varServiceTime^2 + varInterArrivalTime^2) / (1 arrivalRate*serviceTime)); ETqSup = ETwSup + serviceTime; waitingTime(i) = ETqSup; stem(waitingTime); grid on
25
26
27
if(priorities(i)==1) varFrameSize(i)=0; elseif(priorities(i)==2) varFrameSize(i)=6; elseif(priorities(i)==3) varFrameSize(i)=0; elseif(priorities(i)==4) varFrameSize(i)=8; elseif(priorities(i)==5) varFrameSize(i)=8; elseif(priorities(i)==6) varFrameSize(i)=4; end end varServiceTime = zeros(1, classesNb); % Computing service time variance for i=1:classesNb, varServiceTime(i) = (64 * varFrameSize(i) ) / ( channelCapacity^2); end ETs2 = zeros(1, classesNb); % Computing service time second order statistics for i=1:classesNb, ETs2(i) = varServiceTime(i) + (serviceTime(i))^2; end ro = zeros(1, classesNb); ETw = zeros(1, classesNb); % Computing mean waiting time per class k for k=1:classesNb, ro(k) = arrivalRate(k) * serviceTime(k); end for k=1:classesNb, numerator = 0; denom1 = 0; denom2 = 0; for i=1:k, numerator = numerator + arrivalRate(i) * ETs2(i); end if(k==1) denom1 = 0; else for i=1:k-1, denom1 = denom1 + ro(i); end end for j=1:k, denom2 = denom2 + ro(j); end denominator = 2 * (1 - denom1) * (1 - denom2); ETw(k) = numerator / denominator; end % Computing mean queuing time (latency) per class k ETqk = ETw + serviceTime; % Kleinrock's Conservation Law sumRo = sum(ro); r = 0; for i=1:classesNb, r = r + arrivalRate(i) * ETs2(i); end R = 0.5*r; p1 = zeros(1, classesNb); for i=1:classesNb, p1(i) = ro(i) * ETw(i); end p2 = (( sumRo * R ) / (classesNb * ( 1 - sumRo))); e = zeros(1, classesNb); for i=1:classesNb, e(i) = p1(i) - p2; end sumE = sum(e); stem(ETqk); grid on xlabel('Application Class Number') ylabel('Queueing Time') title('Latencies Versus Traffic Classes')
28
figure stem(p1,'b','LineWidth',3); grid on xlabel('Application Class Number') ylabel('Sum (ro * ETw)') title('Kleinrock Conservation Law') hold on for i=1:6, p2Line(i) = p2; end plot(p2Line,'r');
29
% CS4 - 8 TS channelCapacity = 171.2 * 1000; % Ascending order = Shortest packet first averageFrameSize = [31, 64, 200, 320, 500, 500]; arrivalRate = [10.7, 0.512, 20, 64, 4, 55]; priorities = zeros(1,classesNb); prioritizedArrivalRate = zeros(1,classesNb); prioritizedAverageFrameSize = zeros(1,classesNb); % Assigning priorities for traffic classes for i=1:classesNb priority = input ('Please assign class priority: '); prioritizedArrivalRate(i) = arrivalRate(priority); prioritizedAverageFrameSize(i) = averageFrameSize(priority); priorities(i) = priority; end % Getting the arrival rate vector in packet/sec with respect to the % assigned priorities for i=1:classesNb, arrivalRate(i) = 1000 * (prioritizedArrivalRate(i) / (8 * averageFrameSize(i))); end serviceTime = zeros(1, classesNb); % Computing the mean frame service time for i=1:classesNb, serviceTime(i) = 8 * prioritizedAverageFrameSize(i) / channelCapacity; end varFrameSize = zeros(1, classesNb); for i=1:classesNb, if(priorities(i)==1) varFrameSize(i)=0; elseif(priorities(i)==2) varFrameSize(i)=6; elseif(priorities(i)==3) varFrameSize(i)=0; elseif(priorities(i)==4) varFrameSize(i)=8; elseif(priorities(i)==5) varFrameSize(i)=8; elseif(priorities(i)==6) varFrameSize(i)=4; end end varServiceTime = zeros(1, classesNb);
30
% Computing service time variance for i=1:classesNb, varServiceTime(i) = (64 * varFrameSize(i) ) / ( channelCapacity^2); end ETs2 = zeros(1, classesNb); % Computing service time second order statistics for i=1:classesNb, ETs2(i) = varServiceTime(i) + (serviceTime(i))^2; end ro = zeros(1, classesNb); ETw = zeros(1, classesNb); % Computing mean waiting time per class k for k=1:classesNb, ro(k) = arrivalRate(k) * serviceTime(k); end for k=1:classesNb, numerator = 0; denom1 = 0; denom2 = 0; for i=1:k, numerator = numerator + arrivalRate(i) * ETs2(i); end if(k==1) denom1 = 0; else for i=1:k-1, denom1 = denom1 + ro(i); end end for j=1:k, denom2 = denom2 + ro(j); end denominator = 2 * (1 - denom1) * (1 - denom2); ETw(k) = numerator / denominator; end % Computing mean queuing time (latency) per class k ETqk = ETw + serviceTime; % Kleinrock's Conservation Law sumRo = sum(ro); r = 0; for i=1:classesNb, r = r + arrivalRate(i) * ETs2(i); end R = 0.5*r; p1 = zeros(1, classesNb); for i=1:classesNb, p1(i) = ro(i) * ETw(i); end p2 = (( sumRo * R ) / (classesNb * ( 1 - sumRo))); e = zeros(1, classesNb); for i=1:classesNb, e(i) = p1(i) - p2; end sumE = sum(e); stem(ETqk); grid on xlabel('Application Class Number') ylabel('Queueing Time') title('Latencies Versus Traffic Classes') figure stem(p1,'b','LineWidth',3); grid on xlabel('Application Class Number') ylabel('Sum (ro * ETw)') title('Kleinrock Conservation Law') hold on for i=1:6, p2Line(i) = p2; end plot(p2Line,'r');
31
32
% 1 TS channelCapacity = 69.2 * 1000; % Ascending order = Shortest packet first averageFrameSize = [31, 64, 200, 320, 500, 500]; arrivalRate = [10.7, 0.512, 20, 64, 4, 55]; priorities = zeros(1,classesNb); prioritizedArrivalRate = zeros(1,classesNb); prioritizedAverageFrameSize = zeros(1,classesNb); % Assigning priorities for traffic classes for i=1:classesNb priority = input ('Please assign class priority: '); prioritizedArrivalRate(i) = arrivalRate(priority); prioritizedAverageFrameSize(i) = averageFrameSize(priority); priorities(i) = priority; end % Getting the arrival rate vector in packet/sec with respect to the % assigned priorities for i=1:classesNb, arrivalRate(i) = 1000 * (prioritizedArrivalRate(i) / (8 * averageFrameSize(i))); end serviceTime = zeros(1, classesNb); % Computing the mean frame service time for i=1:classesNb, serviceTime(i) = 8 * prioritizedAverageFrameSize(i) / channelCapacity; end varFrameSize = zeros(1, classesNb); for i=1:classesNb, if(priorities(i)==1) varFrameSize(i)=0; elseif(priorities(i)==2) varFrameSize(i)=6; elseif(priorities(i)==3) varFrameSize(i)=0; elseif(priorities(i)==4) varFrameSize(i)=8; elseif(priorities(i)==5) varFrameSize(i)=8; elseif(priorities(i)==6) varFrameSize(i)=4; end end varServiceTime = zeros(1, classesNb);
33
% Computing service time variance for i=1:classesNb, varServiceTime(i) = (64 * varFrameSize(i) ) / ( channelCapacity^2); end ETs2 = zeros(1, classesNb); % Computing service time second order statistics for i=1:classesNb, ETs2(i) = varServiceTime(i) + (serviceTime(i))^2; end ro = zeros(1, classesNb); ETw = zeros(1, classesNb); % Computing mean waiting time per class k for k=1:classesNb, ro(k) = arrivalRate(k) * serviceTime(k); end for k=1:classesNb, numerator = 0; denom1 = 0; denom2 = 0; for i=1:k, numerator = numerator + arrivalRate(i) * ETs2(i); end if(k==1) denom1 = 0; else for i=1:k-1, denom1 = denom1 + ro(i); end end for j=1:k, denom2 = denom2 + ro(j); end denominator = 2 * (1 - denom1) * (1 - denom2); ETw(k) = numerator / denominator; end % Computing mean queuing time (latency) per class k ETqk = ETw + serviceTime; % Kleinrock's Conservation Law sumRo = sum(ro); r = 0; for i=1:classesNb, r = r + arrivalRate(i) * ETs2(i); end R = 0.5*r; p1 = zeros(1, classesNb); for i=1:classesNb, p1(i) = ro(i) * ETw(i); end p2 = (( sumRo * R ) / (classesNb * ( 1 - sumRo))); e = zeros(1, classesNb); for i=1:classesNb, e(i) = p1(i) - p2; end sumE = sum(e); stem(ETqk); grid on xlabel('Application Class Number') ylabel('Queueing Time') title('Latencies Versus Traffic Classes') figure stem(p1,'b','LineWidth',3); grid on xlabel('Application Class Number') ylabel('Sum (ro * ETw)') title('Kleinrock Conservation Law') hold on for i=1:6, p2Line(i) = p2; end plot(p2Line,'r');
34
35
% 8 TS channelCapacity = 553.6 * 1000; % Ascending order = Shortest packet first averageFrameSize = [31, 64, 200, 320, 500, 500]; arrivalRate = [10.7, 0.512, 20, 64, 4, 55]; priorities = zeros(1,classesNb); prioritizedArrivalRate = zeros(1,classesNb); prioritizedAverageFrameSize = zeros(1,classesNb); % Assigning priorities for traffic classes for i=1:classesNb priority = input ('Please assign class priority: '); prioritizedArrivalRate(i) = arrivalRate(priority); prioritizedAverageFrameSize(i) = averageFrameSize(priority); priorities(i) = priority; end % Getting the arrival rate vector in packet/sec with respect to the % assigned priorities for i=1:classesNb, arrivalRate(i) = 1000 * (prioritizedArrivalRate(i) / (8 * averageFrameSize(i))); end serviceTime = zeros(1, classesNb); % Computing the mean frame service time for i=1:classesNb, serviceTime(i) = 8 * prioritizedAverageFrameSize(i) / channelCapacity; end varFrameSize = zeros(1, classesNb); for i=1:classesNb, if(priorities(i)==1) varFrameSize(i)=0; elseif(priorities(i)==2) varFrameSize(i)=6; elseif(priorities(i)==3) varFrameSize(i)=0; elseif(priorities(i)==4) varFrameSize(i)=8; elseif(priorities(i)==5) varFrameSize(i)=8; elseif(priorities(i)==6) varFrameSize(i)=4; end end varServiceTime = zeros(1, classesNb);
36
% Computing service time variance for i=1:classesNb, varServiceTime(i) = (64 * varFrameSize(i) ) / ( channelCapacity^2); end ETs2 = zeros(1, classesNb); % Computing service time second order statistics for i=1:classesNb, ETs2(i) = varServiceTime(i) + (serviceTime(i))^2; end ro = zeros(1, classesNb); ETw = zeros(1, classesNb); % Computing mean waiting time per class k for k=1:classesNb, ro(k) = arrivalRate(k) * serviceTime(k); end for k=1:classesNb, numerator = 0; denom1 = 0; denom2 = 0; for i=1:k, numerator = numerator + arrivalRate(i) * ETs2(i); end if(k==1) denom1 = 0; else for i=1:k-1, denom1 = denom1 + ro(i); end end for j=1:k, denom2 = denom2 + ro(j); end denominator = 2 * (1 - denom1) * (1 - denom2); ETw(k) = numerator / denominator; end % Computing mean queuing time (latency) per class k ETqk = ETw + serviceTime; % Kleinrock's Conservation Law sumRo = sum(ro); r = 0; for i=1:classesNb, r = r + arrivalRate(i) * ETs2(i); end R = 0.5*r; p1 = zeros(1, classesNb); for i=1:classesNb, p1(i) = ro(i) * ETw(i); end p2 = (( sumRo * R ) / (classesNb * ( 1 - sumRo))); e = zeros(1, classesNb); for i=1:classesNb, e(i) = p1(i) - p2; end sumE = sum(e); stem(ETqk); grid on xlabel('Application Class Number') ylabel('Queueing Time') title('Latencies Versus Traffic Classes') figure stem(p1,'b','LineWidth',3); grid on xlabel('Application Class Number') ylabel('Sum (ro * ETw)') title('Kleinrock Conservation Law') hold on for i=1:6, p2Line(i) = p2; end plot(p2Line,'r');
37
38
% CS1 - 1 TS channelCapacity = 9.05 * 1000; % Ascending order = Shortest packet first averageFrameSize = [31, 64, 200, 320, 500, 500]; arrivalRate = [10.7, 0.512, 20, 64, 4, 55]; priorities = zeros(1,classesNb); prioritizedArrivalRate = zeros(1,classesNb); prioritizedAverageFrameSize = zeros(1,classesNb); % Assigning priorities for traffic classes for i=1:classesNb priority = input ('Please assign class priority: '); prioritizedArrivalRate(i) = arrivalRate(priority); prioritizedAverageFrameSize(i) = averageFrameSize(priority); priorities(i) = priority; end % Getting the arrival rate vector in packet/sec with respect to the % assigned priorities for i=1:classesNb, arrivalRate(i) = 1000 * (prioritizedArrivalRate(i) / (8 * averageFrameSize(i))); end serviceTime = zeros(1, classesNb); % Computing the mean frame service time for i=1:classesNb, serviceTime(i) = 8 * prioritizedAverageFrameSize(i) / channelCapacity; end varFrameSize = zeros(1, classesNb); for i=1:classesNb, if(priorities(i)==1) varFrameSize(i)=0; elseif(priorities(i)==2) varFrameSize(i)=6; elseif(priorities(i)==3) varFrameSize(i)=0; elseif(priorities(i)==4) varFrameSize(i)=8; elseif(priorities(i)==5) varFrameSize(i)=8; elseif(priorities(i)==6) varFrameSize(i)=4; end end varServiceTime = zeros(1, classesNb);
39
% Computing service time variance for i=1:classesNb, varServiceTime(i) = (64 * varFrameSize(i) ) / ( channelCapacity^2); end ETs2 = zeros(1, classesNb); % Computing service time second order statistics for i=1:classesNb, ETs2(i) = varServiceTime(i) + (serviceTime(i))^2; end ro = zeros(1, classesNb); ETw = zeros(1, classesNb); % Computing mean waiting time per class k for k=1:classesNb, ro(k) = arrivalRate(k) * serviceTime(k); end for k=1:classesNb, numerator = 0; denom1 = 0; denom2 = 0; for i=1:classesNb, numerator = numerator + arrivalRate(i) * ETs2(i); end if(k==1) denom1 = 0; else for i=1:k-1, denom1 = denom1 + ro(i); end end for j=1:k, denom2 = denom2 + ro(j); end denominator = 2 * (1 - denom1) * (1 - denom2); ETw(k) = numerator / denominator; end % Computing mean queuing time (latency) per class k ETqk = ETw + serviceTime; % Kleinrock's Conservation Law sumRo = sum(ro); r = 0; for i=1:classesNb, r = r + arrivalRate(i) * ETs2(i); end R = 0.5*r; p1 = zeros(1, classesNb); for i=1:classesNb, p1(i) = ro(i) * ETw(i); end p2 = (( sumRo * R ) / (classesNb * ( 1 - sumRo))); e = zeros(1, classesNb); for i=1:classesNb, e(i) = p1(i) - p2; end sumE = sum(e); stem(ETqk); grid on xlabel('Application Class Number') ylabel('Queueing Time') title('Latencies Versus Traffic Classes') figure stem(p1,'b','LineWidth',3); grid on xlabel('Application Class Number') ylabel('Sum (ro * ETw)') title('Kleinrock Conservation Law') hold on for i=1:6, p2Line(i) = p2; end plot(p2Line,'r');
40
Note here that the Kleinrock's conservation law applies and sumE is equal to zero.
41
42
for i=1:classesNb, varServiceTime(i) = (64 * varFrameSize(i) ) / ( channelCapacity^2); end ETs2 = zeros(1, classesNb); % Computing service time second order statistics for i=1:classesNb, ETs2(i) = varServiceTime(i) + (serviceTime(i))^2; end ro = zeros(1, classesNb); ETw = zeros(1, classesNb); % Computing mean waiting time per class k for k=1:classesNb, ro(k) = arrivalRate(k) * serviceTime(k); end for k=1:classesNb, numerator = 0; denom1 = 0; denom2 = 0; for i=1:classesNb, numerator = numerator + arrivalRate(i) * ETs2(i); end if(k==1) denom1 = 0; else for i=1:k-1, denom1 = denom1 + ro(i); end end for j=1:k, denom2 = denom2 + ro(j); end denominator = 2 * (1 - denom1) * (1 - denom2); ETw(k) = numerator / denominator; end % Computing mean queuing time (latency) per class k ETqk = ETw + serviceTime; % Kleinrock's Conservation Law sumRo = sum(ro); r = 0; for i=1:classesNb, r = r + arrivalRate(i) * ETs2(i); end R = 0.5*r; p1 = zeros(1, classesNb); for i=1:classesNb, p1(i) = ro(i) * ETw(i); end p2 = (( sumRo * R ) / (classesNb * ( 1 - sumRo))); e = zeros(1, classesNb); for i=1:classesNb, e(i) = p1(i) - p2; end sumE = sum(e); stem(ETqk); grid on xlabel('Application Class Number') ylabel('Queueing Time') title('Latencies Versus Traffic Classes') figure stem(p1,'b','LineWidth',3); grid on xlabel('Application Class Number') ylabel('Sum (ro * ETw)') title('Kleinrock Conservation Law') hold on for i=1:6, p2Line(i) = p2; end plot(p2Line,'r');
43
Note here that the Kleinrock's conservation law applies and sumE is equal to zero.
44
% 1 TS channelCapacity = 69.2 * 1000; % Ascending order = Shortest packet first averageFrameSize = [31, 64, 200, 320, 500, 500]; arrivalRate = [10.7, 0.512, 20, 64, 4, 55]; priorities = zeros(1,classesNb); prioritizedArrivalRate = zeros(1,classesNb); prioritizedAverageFrameSize = zeros(1,classesNb); % Assigning priorities for traffic classes for i=1:classesNb priority = input ('Please assign class priority: '); prioritizedArrivalRate(i) = arrivalRate(priority); prioritizedAverageFrameSize(i) = averageFrameSize(priority); priorities(i) = priority; end % Getting the arrival rate vector in packet/sec with respect to the % assigned priorities for i=1:classesNb, arrivalRate(i) = 1000 * (prioritizedArrivalRate(i) / (8 * averageFrameSize(i))); end serviceTime = zeros(1, classesNb); % Computing the mean frame service time for i=1:classesNb, serviceTime(i) = 8 * prioritizedAverageFrameSize(i) / channelCapacity; end varFrameSize = zeros(1, classesNb); for i=1:classesNb, if(priorities(i)==1) varFrameSize(i)=0; elseif(priorities(i)==2) varFrameSize(i)=6; elseif(priorities(i)==3) varFrameSize(i)=0; elseif(priorities(i)==4) varFrameSize(i)=8; elseif(priorities(i)==5) varFrameSize(i)=8; elseif(priorities(i)==6) varFrameSize(i)=4; end end varServiceTime = zeros(1, classesNb);
45
% Computing service time variance for i=1:classesNb, varServiceTime(i) = (64 * varFrameSize(i) ) / ( channelCapacity^2); end ETs2 = zeros(1, classesNb); % Computing service time second order statistics for i=1:classesNb, ETs2(i) = varServiceTime(i) + (serviceTime(i))^2; end ro = zeros(1, classesNb); ETw = zeros(1, classesNb); % Computing mean waiting time per class k for k=1:classesNb, ro(k) = arrivalRate(k) * serviceTime(k); end for k=1:classesNb, numerator = 0; denom1 = 0; denom2 = 0; for i=1:classesNb, numerator = numerator + arrivalRate(i) * ETs2(i); end if(k==1) denom1 = 0; else for i=1:k-1, denom1 = denom1 + ro(i); end end for j=1:k, denom2 = denom2 + ro(j); end denominator = 2 * (1 - denom1) * (1 - denom2); ETw(k) = numerator / denominator; end % Computing mean queuing time (latency) per class k ETqk = ETw + serviceTime; % Kleinrock's Conservation Law sumRo = sum(ro); r = 0; for i=1:classesNb, r = r + arrivalRate(i) * ETs2(i); end R = 0.5*r; p1 = zeros(1, classesNb); for i=1:classesNb, p1(i) = ro(i) * ETw(i); end p2 = (( sumRo * R ) / (classesNb * ( 1 - sumRo))); e = zeros(1, classesNb); for i=1:classesNb, e(i) = p1(i) - p2; end sumE = sum(e); stem(ETqk); grid on xlabel('Application Class Number') ylabel('Queueing Time') title('Latencies Versus Traffic Classes') figure stem(p1,'b','LineWidth',3); grid on xlabel('Application Class Number') ylabel('Sum (ro * ETw)') title('Kleinrock Conservation Law') hold on for i=1:6, p2Line(i) = p2; end plot(p2Line,'r');
46
Note here that the Kleinrock's conservation law applies and sumE is equal to zero.
47
48
for i=1:classesNb, varServiceTime(i) = (64 * varFrameSize(i) ) / ( channelCapacity^2); end ETs2 = zeros(1, classesNb); % Computing service time second order statistics for i=1:classesNb, ETs2(i) = varServiceTime(i) + (serviceTime(i))^2; end ro = zeros(1, classesNb); ETw = zeros(1, classesNb); % Computing mean waiting time per class k for k=1:classesNb, ro(k) = arrivalRate(k) * serviceTime(k); end for k=1:classesNb, numerator = 0; denom1 = 0; denom2 = 0; for i=1:classesNb, numerator = numerator + arrivalRate(i) * ETs2(i); end if(k==1) denom1 = 0; else for i=1:k-1, denom1 = denom1 + ro(i); end end for j=1:k, denom2 = denom2 + ro(j); end denominator = 2 * (1 - denom1) * (1 - denom2); ETw(k) = numerator / denominator; end % Computing mean queuing time (latency) per class k ETqk = ETw + serviceTime; % Kleinrock's Conservation Law sumRo = sum(ro); r = 0; for i=1:classesNb, r = r + arrivalRate(i) * ETs2(i); end R = 0.5*r; p1 = zeros(1, classesNb); for i=1:classesNb, p1(i) = ro(i) * ETw(i); end p2 = (( sumRo * R ) / (classesNb * ( 1 - sumRo))); e = zeros(1, classesNb); for i=1:classesNb, e(i) = p1(i) - p2; end sumE = sum(e); stem(ETqk); grid on xlabel('Application Class Number') ylabel('Queueing Time') title('Latencies Versus Traffic Classes') figure stem(p1,'b','LineWidth',3); grid on xlabel('Application Class Number') ylabel('Sum (ro * ETw)') title('Kleinrock Conservation Law') hold on for i=1:6, p2Line(i) = p2; end plot(p2Line,'r');
49
Notehere that the Kleinrock's conservation law applies and sumE is equal to zero.
50