Resumo
- Fragmentos enviados por vários membros usavam uma sequência de todo o feixe. B e E marcavam começo e fim do pacote; o número avançava por fragmento e não reiniciava a cada pacote ou novo membro.
- O acordo comum não exigia partes iguais nem um único escalonador. Pacotes pequenos podiam permanecer inteiros, enquanto a MRRU limitava o tamanho que o receptor prometia reconstruir.
- O FCS de cada enlace protegia seu fragmento, não o pacote remontado. Endpoint Discriminator auxiliava o agrupamento sem autenticar; BAP/BACP e a extensão multiclasse trataram depois de banda dinâmica e latência.
A segunda linha não virou uma segunda rede
Quando um segundo canal PPP ficava disponível, tratá-lo como enlace totalmente separado multiplicava também endereços, negociação de protocolos de rede e estado operacional. Distribuir pedaços sem ordem compartilhada era igualmente insuficiente: velocidades e atrasos diferentes fariam a parte posterior chegar primeiro.
Multilink introduziu o feixe. Cada membro continuava com framing, LCP e autenticação próprios. Os protocolos de camada de rede podiam ser negociados uma vez para o conjunto. Assim, adicionar ou retirar uma linha não obrigava a destruir toda a conversação que existia acima dela.
O RFC 1717 apresentou o mecanismo em 1994, com múltiplos canais B de ISDN como motivação importante. O RFC 1990 o substituiu em 1996 e fechou ambiguidades. Chamar o resultado apenas de agregação de banda esconde a escolha essencial: tornar comum só o estado necessário para remontar pacotes enquanto a composição física mudava.
O objeto cortado ainda não era um quadro físico
Primeiro, o transmissor acrescentava o campo Protocol do PPP ao pacote de rede. Ainda não havia Address, Control, Flags ou FCS de um membro específico. Esse pacote encapsulado era a entidade lógica dividida pelo MP.
Cada parte seguia como protocolo PPP 0x003d, com cabeçalho Multilink. O primeiro fragmento começava pelo Protocol original. O bit B marcava a primeira parte e E a última; ambos podiam ser um quando um único fragmento carregava todo o pacote.
Isso significa que a divisão não era obrigatória. Um pacote curto podia seguir inteiro. Os fragmentos de outro pacote podiam ter comprimentos diferentes. O emissor podia distribuí-los segundo a velocidade de cada membro ou escolher outra política local. O receptor não precisava conhecer esse algoritmo, apenas a ordem e os limites declarados.
O contrato compartilhado era, portanto, menor que a implementação. Essa separação permitia melhorar desempenho sem renegociar a linguagem de reconstrução.
A numeração era do feixe
O cabeçalho normal carregava 24 bits de sequência. Um formato curto de 12 bits podia ser negociado, mas o mesmo formato valia em todo o feixe. Cada fragmento transmitido consumia o próximo número.
O contador não voltava a zero no começo de cada pacote. A entrada de uma linha secundária também não o reiniciava. Só um feixe realmente novo começava em zero. Desse modo, os números baixos de um membro recém-chegado não pareciam fragmentos antigos atrasados nos outros.
O receptor mantinha uma única estrutura de reassembly para o feixe. Como os membros podiam ter ritmos distintos, desordem era esperada. O receptor acompanhava o avanço observado em cada linha e calculava o mínimo que todas já tinham ultrapassado. Se um número abaixo desse ponto permanecesse ausente, não podia mais ser explicado apenas como atraso em outro membro; o pacote incompleto podia ser descartado para retomar a sincronização.
Buffer não eliminava toda a dúvida. A necessidade dependia de taxas, atrasos e tamanhos máximos. O RFC 1990 alertava que nenhum volume de memória garantiria a detecção contra um par que retivesse um pacote. Sequência organiza reconstrução; não cria confiabilidade.
Fragmentos corretos não provavam um pacote completo
Cada membro colocava seu fragmento MP em um quadro PPP comum e aplicava seu próprio FCS. Um FCS válido sustentava a integridade daquela parte naquele enlace. O MP não acrescentava uma nova verificação sobre o pacote inteiro após remontagem.
Dez partes podem passar no FCS e a décima primeira nunca chegar. O pacote continua indisponível. “Todos os FCS estão limpos” e “o feixe entregou pacotes completos” são afirmações diferentes.
O protocolo também não impunha um detector de falha. LQM ou LCP Echo podiam ajudar, mas eram mecanismos separados. Entrega confiável em um membro exigia negociar PPP Reliable Transmission à parte. MP não retransmitia e não confirmava resultados de aplicação.
Operações precisam separar estado do membro, erros de framing/FCS, última sequência em cada linha, mínimo do feixe, lacunas, descartes incompletos, pacotes passados para cima e efeito no serviço. Um único indicador de saúde perde a localização do defeito.
MRRU era a promessa de remontagem
Maximum Reconstructed Receive Unit definia o maior campo de informação remontado que o receptor aceitaria. Não era o MRU da linha física. Cada membro precisava comportar seu fragmento; o objeto lógico podia ser maior, desde que dentro da MRRU.
A opção LCP MRRU era o tipo 17 e sinalizava explicitamente a capacidade de receber Multilink ou anexar a linha a um feixe. O RFC 1990 exigia ao menos 1500 octetos e eliminava um default ambíguo. Short Sequence Header Format era o tipo 18.
Endpoint Discriminator, tipo 19, ajudava a decidir se linhas alcançavam o mesmo par e pertenciam ao mesmo feixe. Não anunciava capacidade MP sozinho e não comprovava identidade. Algumas classes eram atribuídas localmente, sem unicidade global. Magic-Number Block era apenas provavelmente único e foi desaconselhado como chave de autenticação ou banco quando havia autenticação real.
Um discriminador podia ser falsificado. Para a entrada segura no feixe, o RFC exigia autenticação PPP. Correspondência de identificador não era autorização.
A decisão de discar ficou fora do MP básico
O Multilink aceitava mudanças de membros, mas não escolhia quando abrir outra chamada nem qual par controlava a banda. O RFC 2125 atribuiu isso a BACP e BAP. BACP decidia o controlador da alocação; BAP solicitava inclusão ou retirada e informava o estado da chamada.
Sucesso da chamada comprovava aquela operação, não configuração útil, tráfego MP, aumento de throughput ou entrega de transação. A separação mantinha o resultado do plano de controle abaixo da prova do plano de dados.
Latência também ganhou extensão própria. O RFC 2686 mostrou que 1500 bytes a 28,8 kbit/s ocupavam cerca de 400 ms e podiam empurrar uma conversa para quase um segundo de ida e volta. Classes múltiplas permitiram intercalar fragmentos prioritários. A sequência básica resolvia ordem de reconstrução, não toda política temporal.
O feixe foi um acordo mínimo
Os pares compartilhavam capacidade MP, MRRU, um formato de cabeçalho, limites B/E e um espaço de sequência. Tamanho de fragmento, escolha do membro, detecção de falha, acionamento de chamada e prioridade permaneciam locais ou opcionais.
O feixe não apagava os membros nem se tornava autoridade central. Ele era a menor base sobre a qual decisões diferentes ainda produziam o mesmo pacote reconstruído.
0x003d prova uma representação MP no ponto observado. B/E e sequência descrevem a posição alegada; MRRU mostra um limite negociado; Endpoint Discriminator oferece uma pista. Entrega completa, identidade, ganho de banda e implantação atual só aparecem em capturas, contadores por membro, reassemblies concluídos e resultados da camada superior.
Fontes
Briefing para membros
Contexto aprofundado do perfil
Faça login com o nível de assinatura correto para desbloquear o briefing completo e as notas das fontes.
Apenas para Strategic Circle
Strategic Circle
Aberto a todos os leitores. Desbloqueie Briefings de perfil após se inscrever e fazer login.
Junte-se ao Strategic CircleSomente para Leadership Alliance
Leadership Alliance
Para proprietários e gestores qualificados de ativos de PI; faça login para desbloquear os briefings da Leadership Alliance.
Junte-se ao Leadership Alliance
