Во-первых, криптография изобретается в математике - а там нет уровней сетевой модели. На уровни сетевой модели криптография внедряется разработчиками.
Ну, для начала приведу такой пример:
- PPTP и прочие VPN-протоколы с шифрованием - упихивают трафик в IP-пакеты. Это позволяет коннектиться в любую точку Интернета.
- PPoE - упихивает трафик в Ethernet-кадры. Это значит, что протокол может работать не далее ближайшего роутера, на котором Ethernet-сегмент заканчивается. Зато мы имеет не такое сильное ужимание MTU.
Простейшая причина шифровать трафик на уровне приложения - в том, что приложение само реализует шифрование, не спрашивая операционку. Ибо непривилегированный юзер не имеет права внедрять свой код в ядро - а в программе можно реализовать без участия админа. Ну и вообще - в ядре надо иметь как можно меньше кода.