Network coding (NC) is a promising technique recently proposed to improve network performance in terms of maximum throughput, minimum delivery delay, and energy consumption. The original proposal highlighted the advantages of NC for multicast communications in wire-line networks. Recently, network coding has been considered as an efficient approach to improve performance in wireless networks, mainly in terms of data reliability and lower energy consumption, especially for broadcast communications. The basic idea of NC is to remove the typical requirement that different information flows have to be processed and transmitted independently through the network. When NC is applied, intermediate nodes in the network do not simply relay the received packets, but they combine several received packets before transmission. As a consequence, the output flow at a given node is obtained as a linear combination of its input flows. This chapter deals with the application of network coding principle at different communications layers of the protocol stack, specifically, the Medium Access Control (MAC) and physical (PHY) Layers for wireless communication networks.