Underwater channels have unique characteristics such as high and variable propagation delay, limited bandwidth and frequency dependent attenuation. These specificatio degrade the performance of contention-free MAC protocols (e.g. TDMA, FDMA, CDMA).The channel reservation-based protocols like FAMA, MACA are not also a good choice for long range underwater acoustic communications, because of their long handshake process. Hence, it seems that when the propagation delay is more than the packet transmission delay, random access protocols (e.g. ALOHA, CSMA) are the best options.Although these methods are independent of propagation delay, but there is still the problem of packet collision at high traffics that reduces the throughput of these protocols.To enhance the reliability of packet delivery, one can add ACK packet to the above methods. But this causes severe reduction in the network throughput. Therefore FEC methods is preferred to the ARQ based protocols in the applications which reliability is too important. So in this thesis to acquire both network throughput and reliability, we fragment packets and use a coding scheme called Fountain Codes. Note that this coding scheme is an application based forward error correction coding. So by using this coding method, any desired number of coded symbols can be created and therefore the number of coded packets can be adjusted by the channel failure rate. By choosing non-persistent CSMA as the MAC layer protocol, we show in the simulations that the proposed method increases the reliability of received packets effectively. Furthermore it has higher throughput than ARQ and FEC based methods at medium and high traffics. Moreover the delay of packets in the proposed method is less than ARQ-based methods. Keywords: Underwater Sensor Networks, MAC Layer, Fountain Codes, Rateless Coding