Using Cross-Layer Techniques for Communication Systems