Channel Coding in Communication Networks: From Theory to Turbocodes