A camada de rede precisa, como entrada, de um endereço IP de origem / destino e uma porta de origem / destino, isto é, deve ser uma série de bytes na forma padrão de um pacote IP. Portanto, os cabeçalhos e rodapés Ethernet precisam ser removidos antes que a camada de rede os obtenha, caso contrário, quando a camada de rede examinar determinados deslocamentos dos dados necessários, como endereço IP de origem, etc., isso os equivocaria.
Não há nada "rotulando" os campos em um pacote IP, eles são identificados pela posição no pacote. Portanto, a camada inferior precisa fornecer à camada de rede um fluxo de dados compatível com IP e não um fluxo de dados compatível com Ethernet.
Conceitualmente, isso é o que deveria / poderia acontecer, mas apenas examinar o código fonte ou a desmontagem de uma implementação TCP / IP daria respostas precisas ou exatamente como o "trabalho" é dividido em software. Em uma situação em que você tem um dispositivo incorporado que só executaria um dispositivo de hardware NIC possível, provavelmente poderia acoplar a rede, o link de dados e as camadas físicas com muito rigor, e tenho certeza que roteadores de hardware dedicados, etc. fazem isso. Em uma situação em que você tem um sistema operacional de propósito geral que suporte uma ampla variedade de hardware, você não poderia fazer isso.
No que diz respeito à transmissão, o mesmo se aplica. A placa NIC precisa de um MAC de origem e destino, que aparece em posições específicas em um quadro Ethernet. Portanto, ter a camada de rede enviando diretamente um pacote para o NIC falharia, pois nenhum cabeçalho Ethernet contendo MAC de origem / destino seria anexado a ele.