  Reverse engineering of a communications network is the process of identifying
the communications protocol used in the network. This problem arises in various
situations such as eavesdropping, intelligent jamming, cognitive radio, and
adaptive coding and modulation (ACM). According to the Open Systems
Interconnection (OSI) reference model, the first step in reverse engineering of
communications networks is recognition of physical layer which consists of
recognition of digital modulations and identification of physical layer
transmission techniques. The next step is recognition of data link layer
(consisting of frame synchronization, recognition of channel codes,
reconstruction of interleavers, reconstruction of scramblers, etc.) and also
recognition of network and transport layers. The final step in reverse
engineering of communications networks is recognition of upper layers which
essentially can be seen as identification of source encoders. The objective of
this paper is to provide a comprehensive overview on the current methods for
reverse engineering of communications networks. Furthermore, challenges and
open research issues in this field are introduced.
