Da perspectiva do IP, um pacote é uma única unidade de dados. Ele pode ser fragmentado ao atravessar dispositivos com MTU (unidade de transmissão máxima) diferente e é responsável por colocar esses fragmentos juntos novamente na outra extremidade. Assim, um pacote de 1500 bytes pode ser dividido em 5 fragmentos enquanto ele percorre parte da rede com um 300 MTU e, em seguida, o pacote é reconstruído no outro extremo.
O TCP, por outro lado, lida com fluxos de dados, consistindo em qualquer número de pacotes IP. Portanto, é responsabilidade do TCP garantir que 1) a ordem dos pacotes no fluxo esteja correta (quando passada para a próxima camada), e 2) todos eles passem - ou indique um erro, caso contrário
Então, ambos são responsáveis pela sequência de dados em suas próprias camadas.
Mas cada camada ISO não tem conhecimento das camadas superiores. Portanto, simplesmente não é possível para o IP reorganizar os pacotes na sequência correta para o TCP - a sequência na qual o TCP espera que os pacotes estejam não faz sentido para o IP. Da mesma forma que o TCP não pode garantir que uma chamada HTTP seja configurada corretamente ou que a Ethernet saiba que um pacote IP está sendo endereçado corretamente.