Protocolos de rede em órbita: Construindo um ISP baseado no espaço

Existem requisitos que fazem os engenheiros de software suar. Distribuição massiva para milhares de nós. Alta confiabilidade e disponibilidade. Várias plataformas distintas.

Crescimento rápido da rede. Este é o programa mundial Starlink da SpaceX, que estabeleceu uma meta de fornecer internet banda larga de alta velocidade para locais onde o acesso não era confiável, caro ou completamente indisponível.

 

Existem requisitos que fazem os engenheiros de software suar. Distribuição massiva para milhares de nós. Alta confiabilidade e disponibilidade. Várias plataformas distintas. Crescimento rápido da rede.

 

Plataformas de hardware que mudam em dias ou semanas.

 

Agora coloque suas plataformas de produção no espaço.

 

Este é o programa mundial Starlink da SpaceX, que estabeleceu uma meta de fornecer internet banda larga de alta velocidade para locais onde o acesso não era confiável, caro ou completamente indisponível.

 

O software se divide em duas partes: 1) software que voa e 2) software que suporta os componentes voadores, gerencia as redes, controla a "constelação" do satélite Starlink - os satélites Starlink em órbita - e mantém a comunicação entre a constelação e a Internet terrestre comum.

 

A atual constelação Starlink consiste em centenas de pequenos satélites de baixo custo em órbita baixa da Terra, e a empresa pretende escalar isso para milhares. A baixa altitude é necessária para fornecer baixa latência. Os satélites geoestacionários atuais orbitam 26.200 milhas do centro da Terra e 22.300 milhas acima da superfície, o que significa que um sinal leva cerca de 0,240 segundos para fazer uma viagem de ida e volta. O Starlink está atualmente em órbita a 340 milhas, reduzindo a velocidade do atraso da luz para quase um centésimo disso.

 

Leia Também: Missão Apollo: os prós e os contras de ser um dos primeiros a adotar novas tecnologias

 

Bohn, gerente da equipe de software de rede, disse: “Temos um cluster de serviços para descobrir quem fala com quem na rede. O que é interessante sobre nossos satélites é que eles estão muito próximos. Por causa disso, um satélite pode ficar em cima por apenas alguns minutos. A antena no telhado de um cliente, portanto, precisa mudar com qual satélite ela fala com frequência. ”

 

“Considere como o seu telefone celular se comunica com as torres de comunicação fixas. Ocasionalmente, seu telefone precisa passar de uma torre para outra, mas a conexão geralmente é estável ”, diz Bohn. “Para Starlink, um dos principais desafios é que nossas“ torres ”estão orbitando a Terra, forçando seu caminho para a internet a mudar com muita frequência. Minha equipe orquestra essa dança computando as topologias de rede desejadas, distribuindo esse plano para os ativos na rede e configurando o hardware para que isso aconteça ”.

 

Claro, os satélites Starlink apresentam seus próprios problemas. Cada satélite é responsável não apenas por manter as conexões com as estações terrestres que estão à vista, mas, ao contrário da maioria dos satélites, os Starlink estão navegando sozinhos. Quando você está lançando centenas de satélites, não há tempo para colocar cada um em sua própria órbita específica; em vez disso, o controle de solo atribui a cada satélite um lugar na constelação, e o satélite se posiciona sozinho. A rede do lado da Terra então fornece atualizações contínuas sobre as condições de tráfego e mudanças na constelação, enquanto cada satélite atualiza o solo em sua trajetória planejada.

 

“A combinação do problema torna o dimensionamento desse sistema para muitos milhões de pessoas um desafio”, diz Bohn. “Ao atender aos usuários, os satélites Starlink precisam pintar o solo com feixes de dados de diferentes frequências para evitar interferência. Acabamos resolvendo um problema de coloração em escala global e prevenção de interferências que é outro dos nossos maiores desafios em tempo real. ”

 

O software Starlink, tanto em satélites quanto no solo, é escrito quase exclusivamente em C ++, com algum desenvolvimento de prototipagem em Python. O software é desenvolvido em um ambiente de integração contínua, com equipes se fundindo no ramo de desenvolvimento mestre com frequência e implantando a frota de satélites no espaço a cada semana. 

 

“Usamos C ++ para a maior parte do software de controle do veículo. Há uma grande herança com ele na SpaceX, pois é uma linguagem de nível muito baixo que podemos usar em microcontroladores bare metal. Isso nos permite usá-lo em nossos computadores Linux embarcados que usamos em todos os nossos diferentes veículos ”, explica Badshah. “Aprendemos muito com o Dragon e o Falcon sobre como você pode executar uma arquitetura autorredundante em computadores triplicados que compartilham dados e resolvem os mesmos problemas.”

 

Leia Também: Construindo uma Internet na Lua

 

O novo código passa por um ciclo de teste extensivo usando muitas estruturas de teste diferentes, desde testes de unidade simples até a execução em simulações massivas. Alguns dos testes mais interessantes incluem desde colocar satélites em isolamento anecóico de estações terrestres e testar sua comunicação, até um teste que apresenta a plataforma de teste com uma simulação de todo o ambiente em que os satélites irão operar. Em essência, o Starlink construiu uma simulação para fazer um mock-up do espaço-tempo, pelo menos na vizinhança da Terra.

 

“Para o desenvolvimento e teste desses algoritmos, temos uma simulação de rede em escala real rodando em integração contínua em um cluster de computação de alto desempenho. Esta simulação é capaz de executar o código de produção C ++, bem como executar contra o código de protótipo escrito em Python ”, diz Bohn. “A versão Python permite uma iteração rápida durante a fase de design. Uma vez que estamos satisfeitos com os resultados de um algoritmo, nós o transferimos para C ++ para que funcione de forma eficiente na produção. ”

 

Um dos grandes desafios da Starlink é que os próprios satélites costumam mudar. A Starlink diz que nunca houve um lançamento em que os satélites que iam para a constelação não tivessem mudado desde o último lançamento. Na maioria dos ambientes, isso seria um grande problema (leia: receita para o desastre.) A Starlink resolveu esse problema colocando os desenvolvedores de software diretamente no ciclo de manufatura.

 

Em vez de o novo hardware ser "jogado por cima da parede" para os desenvolvedores, os desenvolvedores de software são integrados ao processo de manufatura ao ponto de estarem no chão de fábrica real. Para garantir que o hardware e o software permaneçam sincronizados durante todo o processo, o software às vezes é testado em satélites saindo da linha de produção e entrando em órbita.

 

Assim que o software do satélite estiver pronto para voar, ele será empacotado para transmissão aos satélites. Os lançamentos são primeiro implantados em alguns satélites em órbita e testados no local. Se houver falhas, o software pode ser revertido. Se for considerado satisfatório, o software é implantado em uma distribuição exponencial para os satélites restantes.

 

Outra vantagem do C ++ está na área de gerenciamento de memória. Não importa quantas vezes você verifique o código antes do lançamento, você deve estar preparado para a corrupção do software quando estiver em órbita. “O que estabelecemos é uma infraestrutura central que nos permite saber que estamos alocando toda a nossa memória em

 

tempo de inicialização. Se algo vai falhar na alocação, fazemos isso logo no início ”, diz Badshah. “Também temos diferentes ferramentas para que qualquer estado que persista na aplicação seja gerenciado em um local muito particular da memória. Isso nos permite saber que está sendo compartilhado corretamente entre os computadores. O que você não quer é uma situação em que um dos computadores sofra um impacto de radiação, vire um pouco e não esteja em uma memória compartilhada com os outros computadores, e pode meio que funcionar por conta própria. ”

 

Se você quiser saber mais sobre como é trabalhar como engenheiro de veículos no Space X, verifique a página de carreiras deles. Se estiver interessado em como o código funciona em outras partes do SpaceX.

 

 

O Avance Network é uma comunidade fácil de usar que fornece segurança de primeira e não requer muito conhecimento técnico. Com uma conta, você pode proteger sua comunicação e seus dispositivos. O Avance Network não mantém registros de seus dados; portanto, você pode ter certeza de que tudo o que sai do seu dispositivo chega ao outro lado sem inspeção.


Strong

5178 Blog indlæg

Kommentarer