Suponho que você esteja perguntando se um fluxo de dados semelhante a isso pode ocorrer:
TCP: | SEGMENT 1 | SEGMENT 2 | ...
IP: | FRAGMENT 1 | FRAGMENT 2 | FRAGMENT 3 | ...
... isto é, o fragmento IP 1 contém a primeira parte do segmento 1 do TCP; O fragmento IP 2 contém a última porção do segmento 1 do TCP e a primeira porção do segmento 2 do TCP; etc.
Você pode recebê-lo? Sim. O que impede isso? Se você está construindo uma implementação de recebimento, você deve estar preparado para qualquer coisa que o mundo possa lançar em você.
É válido? Sim também. Os pacotes IP podem ser fragmentados em trânsito , enquanto a segmentação TCP deve ocorrer apenas nos pontos de extremidade. Eu acho que é muito improvável que um único sistema operacional de transmissão jamais transmita dados segmentados e fragmentados, mas se uma implementação TCP segmenta dados em tudo e transmite através de uma rede IP, então os dados IP podem ser fragmentado em trânsito, e o comportamento acima observado.
Mais informações no RFC 791, link , consulte a seção Fragmentação.
Em relação ao pacote e ao quadro, existem considerações semelhantes, embora eu não tenha material para citar. Uma implementação de IP não deve se importar com o recebimento de pacotes IP, desde que possa restabelecer os limites dos pacotes, o que pode e deve fazer sem as informações de limite da camada de enlace.
Em muitos casos, há benefícios em garantir que as cargas de dados se encaixem em um único bloco de transmissão. Se você conhece a MTU (unidade transmissível máxima) entre você e seu destino, você pode maximizar a taxa de transferência de dados para sobrecarga de protocolo, ajustando seus dados à MTU. Mas esse é o melhor cenário, não o caso geral.