[Ns-developers] 802.11: ACK tx duration
Ludovico Cavedon
cavedon at sssup.it
Mon Feb 6 03:25:57 PST 2006
We are four students working with ns 2.29.
We noticed that the ACK tx duration is usually calculated as:
txtime(phymib_.getACKlen(), basicRate_)
where txtime() in defined in file mac-802_11.cc as
01398 Mac802_11::txtime(double psz, double drt)
01399 {
01400 double dsz = psz - phymib_.getPLCPhdrLen();
01401 int plcp_hdr = phymib_.getPLCPhdrLen() << 3;
01402 int datalen = (int)dsz << 3;
01403 double t = (((double)plcp_hdr)/phymib_.getPLCPDataRate())
01404 + (((double)datalen)/drt);
01405 return(t);
01406 }
(so Preamble and PLCPHeader at PLCPDataRate, and the rest at basicRate_)
On the contrary, the expression to compute an EIFS length is
00143 inline double getEIFS() {
00144 // see (802.11-1999, 9.2.10)
00145 return(SIFSTime + getDIFS()
00146 + (8 * getACKlen())/PLCPDataRate);
00147 }
(so the whole ACK is sent at PLCPDataRate)
Why this difference when PLCPDataRate != basicRate_? Is it a bug or is there a reason we do not catch?
Thank you for your attention,
Ludovico Cavedon
Claudio Gangemi
Francesco la Torre
Carlo Todaro
More information about the Ns-developers
mailing list