quarta-feira, 5 de janeiro de 2022

Ergue-se um novo paradigma na internet

A demanda atual de conteúdo na internet envolvendo voz e vídeo por aplicativo, stream de filmes e séries, mineração e sistema de criptomoedas em sistemas distribuídos, está levando a internet como conhecemos baseada na arquitetura TCP/IP a exaustão. Faz tempo, remendos vem sendo feitos  para que o IP consiga lidar com mudanças no perfil da internet dos últimos anos. Mobilidade e segurança não são fortes desta plataforma e problemas de escalabilidade tornam ainda mais evidentes as limitações. O uso de técnicas como NAT e o upgrade para v6 não são suficientes para suprir as demandas de serviços no cenário atual. 

Na contrapartida, surge uma nova abordagem para a internet chamada ICN, do inglês Information Centric Network. Nesta abordagem, a demanda de tráfego é dada pelo conteúdo procurado em vez de centrar nos hosts que o detém. Isso facilita a implementação em cenários de mobilidade. Além disso, a mais promissora das arquiteturas neste paradigma chamado NDN, do inglês Named-data Network, possui segurança intrínseca nos dados, e escalabilidade nativa, visto que o nome do conteúdo é quem determina o tráfego. NDN já possui um cenário de testes com 36 sites espalhados pelo mundo e um deles fica aqui na Bahia, na UFBA. Pesquise mais sobre NDN em named-data.net.

quarta-feira, 31 de março de 2021

Falando em armazenamento e vazão.

 Como profissionais de redes e tecnologia, nós nos deparamos com tantos jargões e terminologias que às vezes  não percebemos o real significado deles. Uma nuance importante que por vezes os profissionais de tecnologia não conhecem é a terminologia de medida para armazenamento ou carga, e vazão, tambem conhecida como troughput. O armazenamento diz respeito a capacidade de uma memória seja de massa ou randômica, ou até mesmo a transferência de um arquivo pela rede, em termos de tamanho do conteúdo, e medimos em XB ou XBytes, sendo o X substituído pela grandeza conveniente, kilo, mega, giga etc. Então, um episódio de game of thrones por exemplo, tem 1.8GB, ou 1.8 gibabytes, note GB letras maiúsculas. Neste contexto, se você possui um plano de celular de 8GB, você conseguiria baixar ou assistir no streaming este episódio cerca de 4 vezes. Já a medida xbps ou bits por segundo, nos informa a velocidade ou vazão de dados na rede. Leia-se x por kilo, mega, giga ou tengiga etc com letras minúsculas, e, então, temos megabits por segundo ou mbps a medida da velocidade, vazão ou troughput da rede. Se sua rede tem velocidade de 100mbps você baixaria o eppisódio acima em cerca de 18 segundos. Se seu 4G for turbinado e vocẽ quiser gastar estes dados móveis mesmo, você baixará este episódio em cerca de 3 minutos. Então, agora você não vai mais sair falando por aí que velocidade dos seus dados móveis é 8GB ok? E nem que a internet de sua casa é 120GB. Velocidade em bps e carga ou armazenamento é Byte.

Abraço e até o próximo post!

quarta-feira, 24 de março de 2021

SSTORE5 - Loja de acessórios de celulares e informática

 Tenho uma dica para você que gosta de tecnologia. Acessórios de computadores, notebooks, celulares e tablets com frete grátis para toda Salvador, garantia e preço baixo. Se você acessar a loja, diga que viu a propaganda no meu blog e ganhe mais 10% de desconto acumulativo ao desconto de inauguração da loja. São até 40% de desconto. Tem HD, SSD, SDCARD, Pendrives, Carregadores de celulares, cabos usb, fones de ouvido bluetooth e com fio, kits de teclado e mouse etc. Click no link aqui em baixo e conheça.

https://sstore5.lojavirtualnuvem.com.br

sábado, 2 de janeiro de 2021

Emprego das PDU's corretas no dia-a-dia do engenheiro de redes

No dia-a-dia de profissional de redes trabalhamos com tipos de "pacotes" de diferentes protocolos, que atuam em diferentes camadas do modelo de referência OSI da ISO. Por exemplo, quando trabalhamos com protocolo ethernet, estamos trabalhando com um protocolo da camada 2 do modelo OSI, e assim, chamamos de frame ethernet. Cada camada por onde os dados trafegam na rede possui uma unidade própria chamada de PDU ou protocol data unit que genericamente dizemos ser um pacote. Porém, no ambiente de tratamento de falhas ou de desenho de redes, cada PDU possui o seu próprio nome, a saber:

#camada física: bit

#camada de enlace: frame ou quadro

#camada de rede: pacote

 #camada de transporte: datagrama ou segmento 

#camadas superiores: dados ou mensagens 

Portanto, um browser requisita ou envia dados por ser inerente a camada de aplicação, um aplicativo de e-mail ou chat, envia e recebe mensagens pelo mesmo motivo. Temos frames ethernet ou frame relay ou em outro protocolo link layer. Já os protocolos de roteamento e roteados como OSPF e IP enviam pacotes, enquanto que TCP e UDP tem segmentos ou datagramas. 

Agora você pode usar a PDU correta ao tratar incidentes de rede, e de quebra domina mais um skill para o CCNA.

Até a próxima!









segunda-feira, 26 de outubro de 2020

Divisão e Conquista e Algorítimo Merge-Sort parte 2

Vimos que o número total de elementos a serem intercalados neste passo é r-p+1 e que este também é o tempo levado pelo procedimento MERGE. agora o algorítimo sugerido a seguir faz este procedimento de organizar de forma crescente os subconjuntos de cartas que já estão ordenadas.


MERGE(A, p, q, r)

1    n1= q - p + 1

2    n2= r - q 

3    sejam L[1..n1 + 1] e R[1.. n2 + 1] novos arranjos

4    for i = 1 to n1

5        L[i] = A[p + i - 1]

6    for j = 1 to n2

7        R[j] = A[q + j]

8    L[n1 + 1] = z

9    R[n2 + 1] = z

10    i = 1

11    j = 1

12     for     k = p to r

13        if L[i] <= R[j]

14            then  A[k] = L[i]

15                    i = i + 1

16            else A[k] = R[j]

17                    j = j + 1

    

O algorítimo acima funciona assim: linhas 1 e 2 calculam as extensões dos subarranjos a serem organizados. A linha 3 cria mais dois Arranjos que recebem os L e R. Na linha 4 e 5 copia o Arranjo A[ p .. q]  em L[1 .. n1] e as 6 e 7 faz o mesmo para A[ q + 1 .. r] em  R[1 .. n2]. As linhas 8 e 9 possuem uma nuance interessante. Aplica-se aqui uma carta de nome z que é um marcador indicando uma carta de valor infinito que já não precisa ser ordenada. Estas cartas são colocadas nas extremidades dos arranjos L e R. De 10 a 17 os r - p + 1 passos básicos são executados. 

No próximo post vamos fazer a análise da corretude deste algorítimo e depois implementar o MERGE-SORT de fato, introduzindo a recursividade. Até lá!


Algoritmos / Thomas H. Cormen... [et al.] ; [tradução Arlete Simille Marques]. - Rio de Janeiro : Elsevier, 2012. il.
Tradução de: Introduction to algorithms, 3rd ed.
Cap 2.



domingo, 20 de setembro de 2020

Divisão e Conquista e algorítimo Merge-Sort part1

Até aqui, no algorítimo Isertion-Sort usamos uma técnica de projeto de algorítimo chamada incremental, e provamos sua funcionalidade usando a técnica de invariante do laço. Para o algorítimo Merge-Sort usaremos uma técnica chamada de Divisão e Conquista. Esta técnica usa no geral, a recursividade, um método em que o algorítimo chama a si mesmo durante a solução de um problema. A divisão e conquista consiste em dividir o problema em instancias cada vez menores a ponto de ele se tornar bem simples. Após isso, o algorítimo recorre recursivamente a si mesmo pela solução destes pequenos problemas resultantes. No fim, ele combina as mini-soluções em uma solução grande para o problema original. A seguir, veja os três passos para a aplicação da técnica da divisão e conquista:

Dividir: o problema é dividido em subproblemas cada vez menores até se tornarem simples de resolver

Conquista: O algorítimo resolve o problema recursivamente, ou se o problema é pequeno o bastante, resolve direto.

Combinar: as soluções dos subproblemas são combinadas para formar a solução do problema original.

O algorítimo Merge-Sort segue à risca este paradigma. Ele Divide a sequencia a ser ordenada de n elementos em subsequências de n/2 cada, executando o passo da DIVISÃO. Depois segue ordenando as subsequencias recursivamente utilizando a intercalação, o que configura o passo da CONQUISTA. Por último o passo da COMBINAÇÃO que é conseguida intercalando as subsequências de forma a gerar a resposta ao problema original.

A recursividade deixa de existir quando a sequencia tiver cumprimento 1(ou seja, ordenada por si só). O passo mais importante no Merge-Sort é o da combinação onde recorremos ao processo MERGE(A,p,q,r) em que A é um arranjo e p,q,r são índices de enumeração onde p=<q<r partindo da premissa que A[p...q] e A[q+1...r] já estão ordenados. À partir disso, forma-se um único sub-arranjo ordenado que ficará no lugar de A[p...r]. Este procedimento leva um tempo teta(n) onde n= r-p+1. 

No próximo post, o algoritmo MERGE. Até lá!



Algoritmos / Thomas H. Cormen... [et al.] ; [tradução Arlete Simille Marques]. - Rio de Janeiro : Elsevier, 2012. il.
Tradução de: Introduction to algorithms, 3rd ed.
Cap 2.




quinta-feira, 6 de agosto de 2020

Ordem de crescimento

Você percebeu que algumas abordagens abstrativas foram usadas para simplificar a análise do Insertio-Sort. Os custos reais foram substituídos por custos abstratos definidos pelas constantes ci. Depois até mesmo estas constantes foram desprezadas porque elas nos davam mais detalhes do que, de fato, precisávamos. Então expressamos o tempo de pior caso como an²+bn+c para constantes a, b e c que dependem dos custos abstratos ci. Porém, ao ignorarmos inclusive este custo abstrato, facilitamos ainda mais a estimativa T(n). Mais uma abstração simplificadora é feita aqui, e definimos assim o que chamamos de taxa de crescimento ou ordem de crescimento. Neste caso, consideramos apenas o primeiro termo an² ou seja, o termo mais significativo, pois os termos de ordem mais baixa são insignificantes para grandes valores. Ignoramos a constante inicial pois não pesa nos cálculos de crescimento. Com toda esta abstração da matemática envolvida, afirmamos que a ordem de crescimento do algorítimo de ordenação por inserção, tem um tempo de execução teta de n ao quadrado e se representa ø(n²). 
ps.: entenda esse simbolo como a letra teta. Meu notebook não tem. 
No futuro, vamos estudar essa notação com mais cuidado. No memento, queremos apenas entender que para comparar a eficiência de um algorítimo com outro, usamos o tempo de execução como parâmetro. Assim, se um algorítimo tem o tempo de execução na ordem ø(n²) e o outro ø(n), então, o segundo algorítimo tem melhor eficiência. Essa ideia será usada quando terminarmos de analisar a complexidade do algorítimo Merge-Sort para definirmos o mais eficiente na tarefa de ordenação.

Algoritmos / Thomas H. Cormen... [et al.] ; [tradução Arlete Simille Marques]. - Rio de Janeiro : Elsevier, 2012. il.
Tradução de: Introduction to algorithms, 3rd ed.
Cap 2.


 

Ergue-se um novo paradigma na internet

A demanda atual de conteúdo na internet envolvendo voz e vídeo por aplicativo, stream de filmes e séries, mineração e sistema de criptomoeda...