Qual é o tamanho mínimo de um pacote TCP?

9

Um post aqui:

link

afirma que "O menor download que os navegadores podem fazer é de 1K bytes."

Isso é devido ao tamanho mínimo de um pacote na rede? Se não, qual é a razão para isso (se é que é verdade)?

    
por Andy Hume 08.02.2011 / 12:40

4 respostas

19

Pacote é um termo ambíguo aqui porque às vezes é usado incorretamente para se referir a elementos diferentes para a sua transmissão. Vamos ver o que os seus dados estão envolvidos e você verá o que quero dizer, e espero ter a resposta que você queria:

Vamos supor que você esteja enviando 1 byte de dados 1 pela Internet, no TCP Modelo / IP .

Os dados são iniciados no nível do aplicativo e precisam ser agrupados em cabeçalhos para os níveis inferiores, para que possam ser passados.

Primeiro, os dados são agrupados em um Segmento TCP , que adiciona um cabeçalho de 20 bytes (tamanho mínimo agora 21 bytes). Isso nos coloca no nível de transporte.

Isso é então empacotado em um IP Packet , que adiciona outro cabeçalho de 20 bytes (tamanho mínimo agora 41 bytes). Agora estamos no nível da internet. Observe que esse envolvimento é alterado toda vez que um novo roteador encaminha seus dados para uma nova sub-rede.

Isso é encapsulado em um link frame de algum tipo - do qual o tamanho do cabeçalho e do rodapé varia dependendo do tipo de quadro usado, que depende do tipo de link que está sendo usado. Isso está no nível do link.
Este envolvimento é alterado cada vez que a unidade é transmitida entre duas entidades.

Finalmente, a transmissão física (por exemplo, sinais elétricos por um cabo, ondas de rádio, etc.).

Veja algumas imagens informativas disponíveis na página do modelo TCP / IP da Wikipédia que ajudam a explicar visualmente o que está acontecendo :

1. Eu acho que você pode enviar 0 bytes ... mas não verificou isso. Na verdade eu não verifiquei se 1 byte é permitido, mas ei.

    
por 08.02.2011 / 13:46
4

Isso está incorreto, não há tamanho mínimo para um download. Você pode verificar isso criando um pequeno arquivo no seu servidor da Web e usando o wireshark para observar o tráfego da rede quando fizer o download desse arquivo.

O tamanho mínimo de um pacote ethernet padrão é de 64 bytes.

    
por 08.02.2011 / 12:42
3

Em face disso, a postagem no blog da qual você está citando está incorreta. Não há "tamanho mínimo de download" para HTTP. (E sua teoria sobre tamanhos mínimos de pacotes também está incorreta.)

No entanto, há um grão de verdade nisso. E isso é que, se o tamanho do arquivo que você está baixando for pequeno o suficiente, a mensagem de resposta HTTP (que consiste no arquivo e nos cabeçalhos de resposta HTTP) caberá em um único pacote de rede. Se isso acontecer, é provável que o navegador obtenha o arquivo mais rapidamente do que se fossem necessários dois ou mais pacotes para enviar a resposta.

(Com um pacote na resposta, há menos chances de que um pacote seja descartado e precise ser reenviado, e uma chance maior de que a janela de controle de fluxo do TCP / IP não adicione atrasos extras de ida e volta confirmação do pacote.)

O tamanho máximo típico de um pacote enviado / recebido (o MTU) é de 1500 bytes para ethernet. Quando você considera as sobrecargas de IP e TCP e o tamanho de um cabeçalho de resposta HTTP típico, isso pode deixar ~ 1K para os dados do arquivo no primeiro pacote de uma resposta. Daí o grão da verdade no comentário do blogueiro.

    
por 08.02.2011 / 17:30
1

É pior do que você pensa.

O carregamento de página lento ocorre porque o navegador está tendo problemas ao renderizar o pixel 1x1 800000 vezes (por exemplo, para uma janela do navegador definida como 1000x800). Muitos anos atrás, talvez em 1999, eu li um artigo em algum lugar que prescrevia 16x16 como sendo o 'mais rápido' x menor para o ladrilho. Claro, a renderização pode ser diferente agora.

Se você ler a postagem do blog, a reclamação é sobre carregamento lento de página. Download não lento. Não tem nada a ver com pacotes, embora tenha sido uma discussão interessante.

Então talvez a questão deva ser reformulada.

    
por 09.02.2011 / 04:39