The difference between BEB in MACA and in MACAW
来源:互联网 发布:脚本编程课程 编辑:程序博客网 时间:2024/06/07 22:20
Compared with MACA, the MACAW mainly optimizes the backoff algorithm and designs RTS-CTS-DS-DATA-ACK message exchange.
backoff algorithm
In MACA, the binary exponential backoff (EBE) algorithm is used to schedule the retransmission. However, the EBE cannot allocate bandwidth fairly because each node does its own congestion individually without sharing the information with other nodes. In MACAW, a package header field of current backoff counter value is added. Once the station hears a package, the current backoff value of this package will be copied into the backoff counter value in the station. Then the station will broadcast its current backoff counter value to all its neighbour nodes. In this way, after a successful data transmission, all nodes will have the same current backoff counter value. Another problem of EBE is its large variations, which means the value of current backoff count varies greatly. To solve this problem, a multiplicative increase and linear decrease (MILD) is proposed.
RTS-CTS-DS-DATA-ACK message exchange
ACK
In MACA, the error data package is recovered at the transport layer, which is very slow. An acknowledgement packet ACK is introduced in MACAW to accelerate the recovery by moving it to the link layer.
DS
[figure from https://en.wikipedia.org/wiki/Exposed_node_problem]
In the above example, say S1 sends package RTS to R1 and S2 can overhear the RTS. Then R1 sends a package CTS to S1. However, this CTS cannot be overheard by S2. In other words, S2 are not sure about the whether the RTS-CTS exchange was successful or not. To overcome this problem, the Data-Sending package (DS) is sent by S1 after receiving the CTS from R1. In this way, S2 will know the RTS-CTS exchange succeeds.
RRTS
[figure from https://en.wikipedia.org/wiki/Exposed_node_problem]
Suppose R1 is transferring data to S1. At the same time, R2 sends RTS to S2. Because S2 are deferred to response CTS in order to avoid the inference with the receiving data of S1. The only chance that R2 can content with R1 to send packages to S2 is between the completion of current the data transmission and the completion of S1's next CTS. So a RRTS (request-for-request-to-send) package is sent to R2 from S2, when S2 find it cannot reply R2's RTS with a CTS. Once R2 receives the RRTS, it will resend RTS to S2. Then the normal message exchange is commenced. All stations overhearing the RRTS will keep silent for two time slots for the RTS-CTS successful exchange.
- The difference between BEB in MACA and in MACAW
- Understand the difference between IN and EXISTS in subqueries
- The difference between && and ; in the Linux command line
- The difference between iostream and stdio in MPI
- What's the difference between LastWriteTime and ChangeTime in FILE_BASIC_INFO?
- the difference between require() and include() in php
- The difference between EXISTS and IN upon Oracle
- the difference between final and static in java
- What is the difference between BIT and TINYINT in MySQL
- What's the difference between Template and Table in Smartforms
- What's the difference between “local” and “my” in Perl
- The difference between null and isEmpty in Groovy
- difference between count(*) and count(col) in the query
- What is the difference between fprintf and vfprintf in C++?
- what is the difference between definition and declaration in c
- what is the difference between _source and _all in Elasticsearch
- The Difference between onCreateView and onViewCreated in Fragment
- Dynamics CRM The difference between UserId and InitiatingUserId in Plugin
- java中String、StringBuffer、StringBuilder的区别
- 流水账笔记:PE文件格式(TLS)
- Replace Pioneer
- Spring xml配置文件头解析
- Go如何按行读取文件及bufio.Split()函数的使用
- The difference between BEB in MACA and in MACAW
- 1106. Lowest Price in Supply Chain (25)
- 5、单例模式(用枚举enum实现)
- svn: E020024: Error resolving case of
- 让Nginx支持php的PHP_INFO
- 1004. Counting Leaves (30)
- 字体图标的使用
- CentOS6.7源码安装vim-8.0
- (超级治愈!)关于创建String对象过程的内存分配