2,146 research outputs found
Network coding data planes with programmable switches
Tese de mestrado, Engenharia Informática (Arquitectura, Sistemas e Redes de Computadores), Universidade de Lisboa, Faculdade de Ciências, 2017Atualmente, as redes de computadores seguem um paradigma tradicional de store-andforward, ou seja, os dispositivos de rede fazem armazenamento, encaminhamento e/ou replicação de pacotes recebidos, sem os modificar. No virar do milénio, surgiu um artigo seminal [24], no qual foi demonstrado teoricamente que a combinação da informação proveniente de diversos pacotes, permite aumentar a capacidade de uma rede relativamente à capacidade máxima, alcançada por simples encaminhamento. Este resultado representou o nascimento de uma área promissora de investigação, conhecida como Codificação na Rede (Network Coding). A ideia é permitir que os nós intermédios da rede, possam aplicar uma função de codificação sobre o conteúdo dos pacotes antes do seu encaminhamento, proporcionando assim um novo paradigma de store-code-forward. A família de técnicas tradicionais pode ser divida em duas categorias, com propósitos distintos. Codificação na Origem (Source Coding) com o objetivo de comprimir a informação enviada, e Codificação no Canal (Channel Coding) para compensar perdas e alteração de informação em canais ruidosos. Com codificação na rede, surge oportunidade para a definição de técnicas mais elaboradas e que visam outros propósitos. Deste modo, as técnicas de codificação tradicionais podem ser extendidas para além da codificação de pacotes em nós de origem, e da descodificação em nós de destino. De um ponto de vista geral, a codificação na rede tem potencial para melhorar a taxa de transferência de informação na rede; aumentar a resiliência contra perda de pacotes, interrupção de canais e nós da rede; e aumentar a segurança contra ataques maliciosos que visam a captura, interpretação e modificação de pacotes. Como técnica, a codificação na rede pode ser aplicada de dois modos distintos. Por um lado, sobre pacotes provenientes de um único fluxo de comunicação (intraflow network coding) e por outro, sobre múltiplos fluxos sem qualquer relação entre si (interflow network coding). A título de exemplo, se considerarmos dois fluxos que chegam a um switch por dois canais distintos, mas que contestam o mesmo canal de saída, temos um gargalo na rede. Usando codificação na rede, o switch pode aplicar, bit a bit, o Ou-Exclusivo (XOR) sobre dois pacotes (um de cada fluxo) e encaminhar o resultado. A taxa de transferência é melhorada, pois o switch necessita apenas de encaminhar um pacote codificado em vez de dois originais. É de salientar que, de forma a descodificar o pacote, o nó de destino tem de ter um dos pacotes originais usados na codificação. Portanto, as vantagens da codificação na rede estão dependentes da topologia da rede, da própria função de codificação utilizada, e do modo como é aplicada. Numa rede, um nó intermédio terá à partida acesso a vários pacotes. De forma a tirar máximo partido da técnica de codificação na rede, as funções de codificação utilizadas acabam por consistir num código linear (Linear Network Coding). A ideia é considerar todos os pacotes de uma mensagem a enviar (por exemplo, um ficheiro de texto, um vídeo, ou até um simples pedido HTTP) como um vetor de elementos de um dado campo finito. O tamanho de cada elemento, é dado pelo número de bits necessário para representar o maior valor desse campo. Se por exemplo o campo finito for 256, cada elemento terá 8 bits. A um vetor de elementos, damos o nome de símbolo. Associado a cada símbolo transmitido na rede, existe um vetor de coeficientes, necessário para codificação e descodificação. O tamanho do vetor, é ditado pelo número de símbolos originais. Se a mensagem é divida em 5 símbolos, então o vetor tem tamanho 5. Para codificar e criar um novo símbolo, o nó da rede começa por selecionar um novo vetor de coeficientes local. A função de codificação consiste numa combinação linear sobre um dado número de símbolos, utilizando o novo vetor local. O vetor do novo símbolo codificado é obtido da mesma forma. Sobre os vetores dos símbolos utilizados, é feita uma combinação linear utilizando o vetor local. Para descodificar os símbolos originais, são necessários um número igual de símbolos codificados, linearmente independentes. De forma a que os símbolos codificados e recodificados na rede, sejam linearmente independentes, podem ser utilizados algoritmos de tempo polinomial [59], para estabelecer os vetores locais utilizados por cada nó intermédio da rede. De forma a simplificar o problema, os vetores locais podem ser aleatórios (Random Linear Network Coding). Se o campo finito for suficientemente grande, a probabilidade de obter símbolos codificados linearmente independentes chega perto dos 100%. De forma a ter vetores mais reduzidos, tornando as operações mais simples, e permitindo uma descodificação gradual, os símbolos originais da mensagem podem ser organizados em gerações. Por cada geração, são gerados e injetados pela rede, símbolos codificados. Quando uma geração é descodificada, procede-se para a geração seguinte. Repare-se que a função de codificação referida anteriormente, com base em XOR, é o caso base e mais simples de um código linear. Neste caso, o campo finito é de tamanho 2. Apesar de ser um conceito relativamente simples, implementar e usar técnicas de codificação no plano de dados dos próprios dispositivos de rede é uma tarefa bastante complicada. Até mesmo quase impossível na maioria dos casos, visto que a payload dos pacotes é sujeita a alterações. O seu funcionamento baseia-se em protocolos fixos, que correm no próprio hardware de forma a maximizar o desempenho, o que torna difícil a tarefa de configurar e gerir uma rede para além das simples operações de encaminhamento de pacotes. Por este motivo, as implementações práticas de codificação na rede que têm vindo a surgir nos últimos anos, operam em redes overlay. Uma rede overlay reside logicamente na camada de aplicação, implicando que os dispositivos de rede propriamente ditos não são alterados. O interesse crescente em operações mais complexas e exigentes na rede, mas condicionado pelo funcionamento rígido e fechado dos routers e switches tradicionais, motivou uma mudança de paradigma: de redes configuráveis para redes programáveis. A primeira instância de uma rede programável é conhecida como Rede Definida por Software (SDN). Numa rede SDN, o plano de controlo é separado do plano de dados, e reside num dispositivo à parte - um controlador logicamente centralizado. Utilizando a informação de pacotes provenientes do plano de dados dos switches, o controlador pode definir políticas de configuração mais flexíveis e instalar regras nas tabelas match-action dos mesmos. A comunicação entre os switches e o controlador está estandardizada, sendo utilizado um protocolo conhecido como OpenFlow. A limitação de switches e controladores Open- Flow está no processamento de pacotes, que continua a ser fixo. De facto, o OpenFlow atua sobre um conjunto fixo de protocolos. Além disso, a sequência de tabelas e ações de um switch Openflow também é fixa. Portanto, o OpenFlow não permite realmente definir nova funcionalidade no plano de dados de um switch. Apenas fornece um meio para o controlador tomar decisões e instalar regras nas tabelas match-action, dos mesmos. No âmbito de codificação na rede, este fator impossibilita a alteração da payload dos pacotes, e consequentemente a sua combinação. No entanto, têm vindo a surgir recentemente switches programáveis, alguns até já em produção (por exemplo, Tofino da Barefoot Networks). Estes dispositivos permitem a programação e reprogramação do plano de dados, o que possibilita uma definição precisa e customizada do modo de processamento de pacotes. Com esta liberdade, a codificação na rede torna-se possível, no plano de dados. Porém, a sua programação é baseada em interfaces de baixo nível, tornando-se um processo demorado e doloroso. Esta dificuldade, acrescida também às limitações descritas do OpenFlow, motivou a criação da linguagem de alto nível, P4. A linguagem P4 permite definir cabeçalhos, parsers e a sequência de tabelas de matchaction, para qualquer dispositivo de rede compatível. As ações podem ser definidas utilizando um conjunto de primitivas básicas oferecidas pela linguagem. A linguagem P4 oferece três vantagens. Primeiro, não está dependente de protocolos e formatos de pacotes específicos, uma vez que a sua definição pode ser feita pelo programador. Segundo, permite a reconfiguração do switch a qualquer momento. Terceiro, não depende do hardware subjacente, podendo ser escrita, da mesma forma, para qualquer dispositivo que tenha o compilador adequado. O objetivo desta dissertação consiste no desenho, implementação e avaliação do primeiro switch capaz de realizar codificação no plano de dados, recorrendo à linguagem P4. Mais concretamente, a nossa solução consiste em dois switches: um que executa XOR (P4- XOR Switch), e outro que executa uma variante de Random Linear Network Coding (P4-RLNC Switch). Durante a implementação enfrentámos vários desafios, devido às peculiaridades da linguagem. Entre os principais fatores que dificultaram a implementação, está o facto de a linguagem ser declarativa, não permitindo a criação de estruturas de dados auxiliares em tempo de execução; e a impossibilidade de criar ciclos, essencial para repetir o mesmo processo de codificação sobre os vários elementos dos símbolos, no caso do P4-RLNC Switch. Sendo um trabalho inovador, a avaliação focou-se essencialmente na funcionalidade dos dois switches concretizados. Adicionalmente, a performance do P4-XOR Switch também foi avaliada.Network Coding (NC) is a technique that can be used to improve a network’s throughput. In addition, it has significant potential to improve the security, manageability, resilience (to packet losses, link failures and node departures) and the support of quality of service, in both wired and wireless network environments. The idea is to allow intermediate nodes of the network (i.e. switches and/or routers) to mix the contents of incoming data packets before forwarding them. Something that, traditionally carried out at source nodes, is therefore extended to the network, creating an array of new options. The difficulty of deploying NC on traditional switches lies in the impossibility to change or extend their operation with the requirements of this new paradigm. The devices are closed, the software and underlying hardware are vendor specific, and follow a fixed set of protocols and processing pipeline. This rigidity precludes NC in today’s switches and routers. Fortunately, programmable switches are beginning to emerge, with some already achieving production-levels and reaching the market (e.g., Barefoot Tofino). A new high-level language to program these switches has recently been proposed: P4. The P4 language allows the precise definition of how packets are processed in these programmable switches. Namely, it enables the definition of headers, parsers, match-action tables, and the processing pipeline itself. Therefore, by taking advantage of these constructs, P4 enables the deployment of NC, on the switch’s data plane, for the first time. In this dissertation, we design and implement two NC switches using the P4 language. Both switches employ Linear Network Coding (LNC). The main difference is that the first (P4-XOR Switch), simply performs the XOR of packets (i.e., a linear code with field size 2). The second (P4-RLNC Switch) is more generic, allowing larger field sizes. For this purpose it performs Random Linear Network Coding (RLNC), which is a random variant of LNC. The evaluation was performed on Mininet (a network emulator) and focused on the functionality of both switches. Additionally, the performance of the P4-XOR Switch was tested as well. The main conclusion is that our implementations correctly perform the required operations allowing, for the first time, NC to be performed in real data planes
Essays on Monte Carlo Methods for State Space Models
Koopman, S.J. [Promotor]Lucas, A. [Promotor
Fronteira entre a vida e a morte
The marginal presence of Dionysus in the Homeric Poems offered a large faction of investigators, the basis for believing in the foreign origin of the god, a native of Thrace, belatedly admitted to the Olympic pantheon. This conviction, underlined by Herodotus' testimony, was revalidated by the ambiguity of the mythical versions, has however never been unanimously subscribed nor in ancient times, nor recently. As son of Semele and Zeus, linked with the wildest and most uncontrolled facets of nature, Dionysos was for centuries the god of vegetation, wine, and natural, disordered and liberating pleasures. But not all the mythical narratives and ritual interpretations associated with him boil down to festivals of unreasonable joy; many are related to death and atonement. The remarkable recurrence of the theme of violent death, which multiply in the framework of some of the versions of the myth seems to indicate poetic treatment, corresponding to a ritual phase of human sacrifice, that is not historically documented in the Greek religion. Closer than any of the Olympians, Dionysos shares with the unfortunate mortals his perishable nature. As the vine that represents it, he is capable of being reborn from its own painful severed finitude. His contradictory nature embodies duality and dissolves into a disturbing coexistence the boundaries. After being worshiped in the Ancient World as a god, through a cult of exceptional projection, Dionysos became an irreducible symbol of a human state of mind: that of antithesis, latent opposition, of rebellion against all mechanisms of oppression and all tyrannies, and against prejudice of all kinds in all times. With his contradictory, enigmatic, and fascinating nature, he further evokes, in the innermost recesses of our unconscious, our unavoidable desire to defy the frontiers of death, and inscribe ourselves into eternity.info:eu-repo/semantics/publishedVersio
Optimizing rearing and welfare in Senegalese sole (Solea senegalesensis) broodstock: effect of ambient light intensity and handling time on stress response
Broodstock rearing conditions and handling procedures should be optimized in aquaculture species in order to
benefit fish welfare and guarantee optimal conditions for spawning. In teleosts, basal cortisol levels display daily
rhythms, oscillating along the 24 h of the day. In this sense, handling fish at different moments of the day may
lead to different stress responses. The present study aimed at investigating the optimal rearing conditions for
Senegalese sole broodstock, considering ambient light intensity and handling time. The optimal light intensity
(50, 100 or 200 lx) was investigated by measuring fish cortisol levels and monitoring locomotor activity rhythms
under each intensity tested. Results showed a significant increase in cortisol levels of fish exposed to 200 lx,
when compared to values obtained under 100 lx, accompanied by changes in locomotor activity rhythms in both
tanks under study. These results suggested that 200 lx may be too high as light intensity for this species, whereas
100 lx seems to be more adequate. Also, daily rhythms of stress response were investigated in breeders from
different origins (Wild and first generation, G1). Basal cortisol levels and cortisol stress response after an acute
stressor (air exposure) were monitored at two distinct moments of the day (Mid-Light and Mid-Dark). Basal
levels were higher during the day in the wild group, while G1 fish seemed to have lost the daily fluctuations in
basal cortisol plasma levels, as well as their daily rhythms of locomotor activity. Both groups showed lower stress
responses during night-time, an indication that this is an adequate period of the day to handle this species.
Senegalese sole breeders born in captivity presented more pronounced stress responses when compared to wild
fish, reflecting their different life history in terms of stress challenges.FP7/SME/2008/1; UID/Multi/04326/2019; DL 57/2016/CP1361/CT0007; DL 57/2016/CP1361/CT0033info:eu-repo/semantics/publishedVersio
Making customized tree-like structures: integrating algorithmic design with digital fabrication
The ultimate goal of this paper is to contribute for the discussion on the role of digital technologies in architecture, focusing on the convergence of generative design systems with digital fabrication processes for expanding design capabilities. It presents a generative design system of customized tree-like structures for supporting irregular roof surfaces, as an alternative to conventional architectural design processes. It discusses the introduction of an algorithmic and parametric approach to design problems as a methodology for promoting design experimentation and enabling the fabrication of complex design configurations
Couple's relationship and depressive symptoms during the transition to parenthood and Toddler's emotional and behavioral problems
The couple's relationship and mother and father's depressive symptoms during the transition to parenthood were associated with the toddler's emotional and behavioral problems. This study aimed to analyze how the couple's positive and negative interactions and mother and father's depressive symptoms during the transition to parenthood impact toddlers' emotional and behavioral problems. A sample of 95 mothers and fathers (N = 190) were recruited and individually completed questionnaires to assess couples' positive and negative interactions and depressive symptoms during the first trimester of pregnancy and at 3 and 30 months postpartum, and they completed the Child Behavior Checklist 1.5-5 at 30 months postpartum. The path analyses revealed that the couple's postnatal negative interaction partially mediates the impact of the mother's prenatal depressive symptoms on the toddler's internalizing problems at 30 months postpartum. The father's postnatal depressive symptoms and the couple's concurrent positive interaction mediated the impact of the couple's prenatal positive interaction on the toddler's externalizing problems at 30 months postpartum. The screening of the couple's negative interaction and depressive symptoms during pregnancy and the postnatal period can help to identify mothers, fathers, and toddlers at risk for mental health problems.This study was conducted at the Psychology Research Centre (PSI/01662), School of Psychology, University of Minho, and supported by the Foundation for Science and Technology (FCT) through the Portuguese State Budget (UIDB/PSI/01662/2020)
- …