Todas as redes que formam a Internet são capazes de comunicar-se umas com as outras, porque todas elas usam a mesma série de protocolos. Os dois procolos mais conhecidos dentre esses são o Transmission Control Protocol (TCP) e o Internet Protocol (IP). Consequentemente, essa família de protocolos é chamada de pilha de protocolos TCP / IP. Esses protocolos são implementados pelo software que reside em cada um dos computadores na Internet e são organizados em camadas. Assim, eles são chamados de pilha TCP / IP . Cada vez que seu computador quer enviar um pacote para outro computador, o pacote caminhar "para baixo" através da série de camadas de protocolo presentes emsua máquina. Cada uma dessas camadas modifica o seu pacote e, em seguida, passa o pacote para o software que está na camada seguinte. Quando o pacote chega ao computador de destino, o pacote deve passar ("subir") pela mesma série de camadas para ser efetivamente entregue.
Uma vez que o pacote está sendo modificado em cada camada, o pacote tem um nome diferente em cada camada. O nome usado genericamente para o pacote em qualquer camada é pacote. O termo pacote é utilizado na camada de aplicação. O termo segmento é usado no camada de transporte. O termo datagrama é usado na camada de rede. O termo quadro é utilizado na camada de enlace.
Uma vez que a Internet é um conjunto de redes, existem nela conexões entre redes adjacentes. Essas conexões geralmente são viabilizadas por meio de computadores especializados chamados roteadores. À medida que seu pacote cruza a Internet em direção ao computador de destino, ele tem que passar através de roteadores interligando as redes que o pacote está atravessando. Em cada roteador, o pacote tem de passar por alguns dos protocolos da pilha TCP / IP, mas não todos eles. O pacote tem de passar pelas camadas no roteador ("subindo", isto das camadas de nível mais baixo para as camadas de nível mais alto) para remover as características específicas da rede da qual ele está saindo. O pacote então se move "para baixo" através das camadas no roteador para adicionar os recursos específicos para a rede ele está entrando.
O applet Java acima ilustra este processo de um pacote que se desloca para baixo através das camadas de protocolo no computador de envio (o computador de origem), para cima e, em seguida, para baixo nas camadas dos roteadores que encontra em sua jornada e, finalmente, para cima nas camadas do computador de recepção (o computador de destino). As camadas de protocolo têm nomes padrão que são mostrados no applet. Nós não vamos tentar explicar a função exata de cada camada. Ao longo do nosso curso vamos estudá-las em profundidadeentantoPor exemplo, tanto a resolução do nome como a implementação da Web são feitas na camada de aplicação, neste último caso (Web) garantindo a transferência de dados confiável , por meio da camada de transporte. O mecanismo de acesso a redes locais Ethernet é implementado na camada de enlace.
Este applet ilustra o processo básico de passagem do pacote pelas camadas, descendo a pilha de proctocolos na máquina de origem, subindo através da pilha de protocolos no roteador da primeira rede, descendo na pilha de protocolos no roteador da segunda rede, e finalmente subindo através da pilha de protocolos na máquina de destino. Cores diferentes são utilizados para indicar as diferentes camadas qu estão sendo atravessadas. Além desse conceito básico, este applet ilustra três conceitos adicionais.
A solução é que a camada de rede deve dividir o seu datagrama em fragmentos, come cada fragmento não maior do que a MTU. Cada fragmento tem de ser um datagrama, que tem um cabeçalho da camada de rede. Assim, o que acontece é que o segmento passado da camada de transportes para a camada de rede é dividido em pedaços (cargas ou payloads) para cada um dos fragmentos. Cada fragmento é então transformado em um datagrama, precedido de um cabeçalho da camada de rede. O fragmento inteiro (incluindo o cabeçalho da camada de rede) não pode ser maior do que a MTU da rede .
A simulação usa um tamanho da mensagem de 2000 bytes e um cabeçalho da camada de transporte de 20 bytes. Assim, o segmento que está sendo passado para a camada de rede na máquina de origem é 2020 bytes. Se a MTU da primeira rede é de 3000 bytes, a fragmentação não é necessário. A camada de rede da máquina de origem simplesmente anexa o cabeçalho da camada de rede de 20 bytes e passa o datagrama para a camada de enlace da máquina de origem. A camada de enlace da máquina de origem anexa seu cabeçalho de quadro de 14 bytes e, em seguida, um quadro de 2054 bytes é transmitido pela rede (na verdade, ainda há normalmente 8 bytes de prefixo na camada física e 4 bytes de frame check sum como trailer, fazendo com que o quadro tenha 2066 bytes. Este cenário ocorre quando a configuração padrão do MTU do primeiro link é 3000 bytes.