# An Efficient Routing Protocol with Overload Control for Group Mobility in Delay-Tolerant Networking
## 3 A Proposed Routing Protocol with Overload Control for Group Mobility
Additionally, a message delivered to a node in the same group as a destination node is not removed from the buffer of contact nodes, different from that in [24; 25], but direct delivery is only allowed for the message at the contact node. Table 2 shows examples of the overload control table in the proposed proactive overload control protocol. The message \(m_{1}(x_{A})\), where \(m_{1}\) is the message ID and \(x_{A}\) is the destination node of the message \(m_{1}\), has not been delivered to a destination node or a node in the same group of a destination node yet. Therefore, the state of forwarding permission is stored as \"permission\". The message \(m_{2}(y_{A})\) has not delivered to a destination node yet, but it was delivered to a node in the same group of a destination node already. Thus, the status of forwarding permission is stored as \"limited permission\", since forwarding is only permitted to a destination node only. The message \(m_{3}(u_{C})\) has been delivered to a destination node already, and the status of forwarding permission is stored as \"prohibition\", and it is not permitted to forward to any node anymore. At contact with another node, a node in the proposed proactive protocol makes a forwarding decision based on the forwarding condition using the group delivery predictability defined in Table 1, and overload control is applied if a message is delivered to either a node in a group of a destination node or a destination node. Figure 3 shows examples of the overload control table, where information before contact is printed in black color and information after contact is printed in red color for illustration purposes. Message ID (destination node), delivery state to a destination node, delivery state to a node in the same group as a destination node, and state of forwarding permission in Table 2 are denoted as message ID, destination node, group of destination node, and forwarding state, respectively, for brevity. In Figure 2(a), nodes \(x_{A}\), \(y_{A}\), and \(w_{A}\) belong to group \(A\), and node \(z_{B}\) belongs to group \(B\). Node \(z_{B}\) is in contact with \(w_{A}\) now. Before contact, node \(z_{B}\) has \(m_{1}(x_{A})\) and \(m_{2}(y_{A})\) in its buffer and has delivery state and forwarding state information of \(m_{3}(u_{C})\) in its overload control table. Node \(w_{A}\) has \(m_{3}(u_{C})\) in its buffer and has delivery state and forwarding state information of \(m_{2}(y_{A})\) in its overload control table before contact. At contact, it is assumed that \(m_{1}(x_{A})\) in the buffer of \(z_{B}\) is forwarded to \(w_{A}\) according to the forwarding condition defined in Table 1. As shown in overload control table of node \(z_{B}\), \(m_{3}(u_{C})\) was already delivered to destination node \(u_{C}\). Additionally, \(m_{2}(y_{A})\) was already delivered to destination node \(y_{A}\), as shown in overload control table of node \(w_{A}\). Using this information, \(m_{2}(y_{A})\) is removed from the buffer of \(z_{B}\), and the delivery state and forwarding state of \(m_{2}(y_{A})\) are updated appropriately in the overload control table of node \(z_{B}\) after contact. In addition, the delivery state and forwarding state of \(m_{1}(x_{A})\) are updated in overload control table of \(z_{B}\) after contact. After contact, \(m_{3}(u_{C})\) is removed from the buffer of node \(w_{A}\). Then, the delivery state and forwarding state of \(m_{1}(x_{A})\) and \(m_{3}(u_{C})\) are updated appropriately in the overload control table of node \(w_{A}\). In Figure 2(b), \(w_{A}\) is in contact with \(x_{A}\), and \(z_{B}\) is in contact with \(y_{A}\) now. Since \(x_{A}\) is the destination node of \(m_{1}(x_{A})\), \(m_{1}(x_{A})\) is delivered to \(x_{A}\) from \(w_{A}\) at contact, and \(m_{1}(x_{A})\) is removed from the buffer of \(w_{A}\) after contact. The delivery state and forwarding state of \(m_{1}(x_{A})\) are updated in overload control table of node \(w_{A}\).