AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / computer / Perguntas / 1649421
Accepted
Woodstock
Woodstock
Asked: 2021-05-17 00:38:21 +0800 CST2021-05-17 00:38:21 +0800 CST 2021-05-17 00:38:21 +0800 CST

Entropia do arquivo na transferência de rede

  • 772

Se ignorarmos a compactação de arquivos da camada de aplicativo (como Mega ou iCloud compactando um arquivo antes da transferência), o conteúdo de um arquivo afeta a velocidade de transferência?

ou seja - todas as coisas sendo iguais, a camada subjacente de internet/roteadores/phy, se importa se está transportando 1 GB de zerosvs 1 Gb de dados aleatórios de alta entropia?

Eu entendo que pode haver compactação, mas estou perguntando especificamente sem isso ativado.

networking compression
  • 4 4 respostas
  • 3333 Views

4 respostas

  • Voted
  1. Best Answer
    user1686
    2021-05-17T01:04:32+08:002021-05-17T01:04:32+08:00

    Se ignorarmos a compactação de arquivos da camada de aplicativo (como Mega ou iCloud compactando um arquivo antes da transferência), o conteúdo de um arquivo afeta a velocidade de transferência?

    Eu entendo que pode haver compactação, mas estou perguntando especificamente sem isso ativado.

    Não, um byte sempre leva o mesmo tempo para ser transmitido, independentemente de seu valor, e um pacote de um determinado tamanho e tipo sempre leva o mesmo tempo para ser tratado, independentemente de sua carga útil.

    No entanto, existem outras diferenças possíveis além da velocidade de transferência:

    ou seja - todas as coisas sendo iguais, a camada subjacente de internet/roteadores/phy, se importa se está transportando 1 GB de zeros versus 1 GB de dados aleatórios de alta entropia?

    Algumas camadas físicas se importam. Uma longa sequência de bits idênticos pode fazer com que eles se dessincronizem, pois dependem da transição ocasional entre 0s e 1s, de modo que podem perder o controle de onde um bit, um byte ou um símbolo começa e onde termina. Para evitar que isso cause problemas, uma camada superior precisa embaralhar os dados (criptografá-los, de certa forma) para aumentar a entropia. Por exemplo, SONET tem esse problema.

    • Juniper: habilitando o embaralhamento de carga útil SONET

    • Cisco: Quando a codificação deve ser habilitada em circuitos virtuais ATM?

    • Wikipedia: codificação 64/66b – duração da execução ; Cisco Press: Pacote sobre SONET

      "Um scrambler anterior usado no Packet over SONET/SDH (RFC 1619) tinha um polinômio curto com apenas 7 bits de estado interno que permitia que um invasor malicioso criasse um ataque de negação de serviço transmitindo padrões em todos os 2 7 −1 estados , um dos quais foi garantido para dessincronizar os circuitos de recuperação de clock. Essa vulnerabilidade foi mantida em segredo até que o comprimento do scrambler fosse aumentado para 43 bits (RFC 2615), tornando impossível para um invasor mal-intencionado bloquear o sistema com uma sequência curta."

    Isso não se aplica a todas as camadas físicas, apenas a algumas.

    Por exemplo, a Ethernet de fibra não é afetada devido ao uso da codificação 8b/10b . Em outros casos (como na Ethernet de cobre), o scrambling é construído diretamente na camada física, de modo que as camadas mais altas não precisam se preocupar com isso (assim como não deveriam).

    Os links seriais (RS-232) usam 'bits de início/parada' explícitos pelo mesmo motivo.

    • Wikipedia: recuperação do relógio

    Camadas mais altas não se importam. Todos eles foram construídos para transportar cargas arbitrárias e não há nenhuma razão específica para que, por exemplo, um segmento TCP contendo todos os 0s seja tratado de forma diferente do resto. (E mesmo esse segmento ainda tem um cabeçalho TCP e um cabeçalho IP que não são claramente nulos.)


    Obviamente, isso também não é um problema se seus dados forem criptografados por uma camada intermediária (como sendo transferidos por TLS ou via Wi-Fi seguro), o que sempre faz com que pareçam de alta entropia para o exterior.

    • 40
  2. jcaron
    2021-05-18T03:20:50+08:002021-05-18T03:20:50+08:00

    Como outros já disseram, a maioria das tecnologias de transmissão modernas são bastante determinísticas, e uma sequência de bits X sempre levará o mesmo tempo para transmitir, como está, ou se uma camada inferior exigir embaralhamento, mas aplicando uma proporção fixa.

    No entanto, existem alguns casos em que pode haver um pequeno efeito, se alguns caracteres precisarem ser escapados. Este é, por exemplo, o caso de PPP, onde pelo menos 0x7De 0x7Eprecisa ser escapado (o primeiro sendo o prefixo de escape e o último sendo o delimitador de quadro). Caracteres adicionais podem precisar ser escapados se o link exigir. Para esses caracteres, levará o dobro do tempo para transmiti-los. Como o PPP ainda é a base para PPPoA e PPPoE e usado em alguns cenários de última milha, isso pode ter um efeito muito pequeno. A menos, é claro, que seu arquivo seja apenas uma repetição de 0x7Dou 0x7E, nesse caso levará o dobro do tempo em comparação com um arquivo que não contém esses caracteres.

    Há também o caso de preenchimento de bits como usado, por exemplo, por HDLC e USB: o esquema de codificação NRZI não muda de nível quando uma série de uns é enviada, então depois de muitos uns, um zero é inserido para garantir que a sincronização não seja perdida. O pior caso aqui é que, se você enviar apenas um (ou seja, seu arquivo é apenas uma repetição de 0xFF), levará 20% a mais (HDLC, bit extra após 5 unidades) ou 17% mais longo (USB, bit extra após 6 unidades) do que se você enviar todos os zeros ou qualquer sequência que nunca inclua uma sequência de uns de 5 ou 6 bits.

    Antigamente, quando nem todos os links eram transparentes de 8 bits, os dados transmitidos podiam precisar de codificação em algumas situações (por exemplo, base64 para dados binários) e não em outras (por exemplo, ASCII puro enviado como está), com coisas como Quote-printable em entre (por exemplo, texto com alguns caracteres acentuados). Portanto, dependendo do que você enviou, exigiria mais ou menos caracteres/bits no fio. Mas isso deve ser extremamente raro hoje em dia (e era principalmente um problema para o correio).

    Em todos esses casos, não é realmente a entropia que importa, mas o conteúdo real que corresponde a sequências específicas. Se você tiver dados de alta entropia (por exemplo, dados compactados ou criptografados), obterá uma velocidade média relativamente consistente , mesmo nesses casos. Se você tiver sequências específicas de dados (você envia 1 GB de 0x7DPPP ou 1 GB de 0xFFHDLC, por exemplo), pode demorar mais. Se você evitar essas sequências completamente, pode ser mais curto.

    Observe que algumas camadas inferiores introduzem compactação mesmo que você não a use nas camadas superiores. Novamente, nos velhos tempos dos modems POTS (dial-up), os modems podiam usar compressão V.42bis entre eles. Existem provavelmente algumas outras tecnologias de transmissão que incluem compressão em uma camada relativamente baixa.

    • 10
  3. fgrieu
    2021-05-19T10:58:47+08:002021-05-19T10:58:47+08:00

    A camada subjacente de internet/roteadores/phy se importa se está transportando 1 GB de zeros versus 1 GB de dados aleatórios de alta entropia?

    Muitas vezes há algo nessa música. Alguns exemplos:

    • Em muitos links comumente usados, incluindo qualquer coisa HDLC , o preenchimento de bits faz com que sequências longas de 1 requeiram quase 20% mais tempo do que uma sequência aleatória de mesmo comprimento.
    • Alguma compressão de dados em nível de modem foi padronizada como V.42bis e V.44, e ainda é encontrada em dispositivos modernos .
    • Me disseram que algumas operadoras de longa distância, ou seus clientes, inserem compressão de baixa latência sem perdas em seus links, porque isso economiza largura de banda/dinheiro. Referências apreciadas.
    • Há compactação (geralmente gzip) incorporada ao HTTP e suportada por servidores e navegadores comuns, e dificilmente é uma compactação de "camada de aplicativo" comparável a "Mega ou iCloud compactando um arquivo antes da transferência".
    • Existem protocolos (tipicamente antigos) onde um byte é reservado para um caractere de escape e é transmitido como dois bytes (exceto, em alguns protocolos, quando repetido).
    • Em código morse, a taxa de dados de .é maior que a taxa de dados de _, e esse não é o único protocolo com 0 e 1 exigindo tempo diferente.
    • 5
  4. Peter Cordes
    2021-05-17T10:35:03+08:002021-05-17T10:35:03+08:00

    Geralmente, a compactação em tempo real seria possível em qualquer nível. E, na prática, pode acontecer abaixo da camada do aplicativo se sua conexão incluir o encaminhamento de porta ssh ssh -C(habilitar a compactação, inclusive para encaminhamento de porta e X11).

    A compactação SSH usa apenas gzip, não um algoritmo moderno mais rápido como zstd ou lz4 projetado, então só vai acelerar as coisas com uma CPU rápida em comparação com a velocidade do link.

    Protocolos de camada física/de link padrão como 802.3 ethernet ou 802.11 Wifi não usam compressão; custaria latência, exigiria hardware poderoso para acompanhar as taxas de dados de gigabit e qualquer ganho de tamanho em alguns casos pioraria o pior caso. O mesmo vale para protocolos de nível de link usados ​​em links de fibra óptica de longa distância.

    A compactação funciona muito melhor no nível do aplicativo, ou pelo menos para um túnel do tipo VPN em vários links de nível inferior.


    As únicas coisas que podem acelerar a transferência são enviar menos pacotes (compressão no nível do aplicativo), enviar pacotes menores (menos bons e o que você provavelmente obteria com a compressão hipotética no nível do link após o enquadramento em quadros TCP) ou pacotes menores taxas de perda se fossem diferentes de zero.

    A resposta do user1686 trouxe a possibilidade de alguns padrões de dados serem um problema para as codificações de nível de link, por exemplo, possivelmente você poderia criar pacotes que levam alguns equipamentos ao ponto de falha de comunicação, se eles já estiverem próximos de suas tolerâncias de tempo. Geralmente não é algo que você precisa se preocupar na Internet, AFAIK. Os links de fibra do mundo real geralmente são bem mantidos e têm uma taxa muito baixa de introdução de erros de bits que levariam a uma falha de checksum TCP, e isso provavelmente não depende de dados em nenhum grau significativo. (E depois de embaralhar, não depende de longas execuções de 0s ou 1s; isso acontece em dados não compactados da vida real, portanto, as funções de embaralhamento são projetadas para garantir que não sejam um problema.)

    • 4

relate perguntas

  • Três computadores, como configurar a rede sem roteador/switch?

  • A conexão do usuário ao servidor SFTP usando o FileZilla se recusa a conectar

  • Como funciona um NAT atrás de um NAT (NAT do roteador e NAT do ISP)?

  • Win10 1803: Como tornar o ponto de acesso móvel uma rede privada?

  • Como o nc identifica nomes de serviço

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como posso reduzir o consumo do processo `vmmem`?

    • 11 respostas
  • Marko Smith

    Baixar vídeo do Microsoft Stream

    • 4 respostas
  • Marko Smith

    O Google Chrome DevTools falhou ao analisar o SourceMap: chrome-extension

    • 6 respostas
  • Marko Smith

    O visualizador de fotos do Windows não pode ser executado porque não há memória suficiente?

    • 5 respostas
  • Marko Smith

    Como faço para ativar o WindowsXP agora que o suporte acabou?

    • 6 respostas
  • Marko Smith

    Área de trabalho remota congelando intermitentemente

    • 7 respostas
  • Marko Smith

    O que significa ter uma máscara de sub-rede /32?

    • 6 respostas
  • Marko Smith

    Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows?

    • 1 respostas
  • Marko Smith

    O VirtualBox falha ao iniciar com VERR_NEM_VM_CREATE_FAILED

    • 8 respostas
  • Marko Smith

    Os aplicativos não aparecem nas configurações de privacidade da câmera e do microfone no MacBook

    • 5 respostas
  • Martin Hope
    Saaru Lindestøkke Por que os arquivos tar.xz são 15x menores ao usar a biblioteca tar do Python em comparação com o tar do macOS? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh Como posso reduzir o consumo do processo `vmmem`? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Pesquisa do Windows 10 não está carregando, mostrando janela em branco 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    v15 Por que uma conexão de Internet gigabit/s via cabo (coaxial) não oferece velocidades simétricas como fibra? 2020-01-25 08:53:31 +0800 CST
  • Martin Hope
    andre_ss6 Área de trabalho remota congelando intermitentemente 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney Por que colocar um ponto após o URL remove as informações de login? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca Todos os meus complementos do Firefox foram desativados repentinamente, como posso reativá-los? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK É possível criar um código QR usando texto? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 Altere o nome da ramificação padrão do git init 2019-04-01 06:16:56 +0800 CST

Hot tag

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve