Wireless ad hoc networks consists of autonomous hosts which have equal status within a network. Unlike managed wireless networks, ad hoc networks are decentralized. Each host can participate in routing by forwarding packets. Decentralized nature of ad hoc networks makes them more reliable than managed wireless networks, because failure of one host does not cause failure of the whole network. This feature makes them also more suitable for some kinds of applications, like sensoric networks. Message delivery protocols are fundamental for applications that use the network, especially when it comes to sending messages to host that is not directly accessible. Assuming that hosts can be spread over a large area and distance between any pair of adjacent hosts can be large, temporary failures of links and network topology changes should be taken into account. This makes delivery guarantee a hard problem. Another problem is to provide self-organising network. Joining to network should be as simple as possible and maintaining topology should happen in automatic way. In context of the above observations, in this thesis we propose new communication protocols that provide self-organizing networks and try to ensure delivery of messages between any pair of hosts in a network. Moreover, we provide sample implementation of these protocols.