<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><generator uri="https://jekyllrb.com/" version="4.3.3">Jekyll</generator><link href="https://luissequeira.github.io/feed.xml" rel="self" type="application/atom+xml"/><link href="https://luissequeira.github.io/" rel="alternate" type="text/html" hreflang="en"/><updated>2024-09-05T21:04:33+00:00</updated><id>https://luissequeira.github.io/feed.xml</id><title type="html">Luis Sequeira</title><entry><title type="html">Tactile Internet: The role of QoS in teleoperation systems</title><link href="https://luissequeira.github.io/blog/2024/tactile-internet-the-role-of-qos/" rel="alternate" type="text/html" title="Tactile Internet: The role of QoS in teleoperation systems"/><published>2024-09-05T20:30:00+00:00</published><updated>2024-09-05T20:30:00+00:00</updated><id>https://luissequeira.github.io/blog/2024/tactile-internet-the-role-of-qos</id><content type="html" xml:base="https://luissequeira.github.io/blog/2024/tactile-internet-the-role-of-qos/"><![CDATA[<div class="row mt-3" style="text-align: center"> <div class="col-sm mt-3 mt-md-0"> <figure> <picture> <source class="responsive-img-srcset" media="(max-width: 480px)" srcset="/assets/img/Research/tactile-internet-the-role-of-qos/fig1-480.webp"/> <source class="responsive-img-srcset" media="(max-width: 800px)" srcset="/assets/img/Research/tactile-internet-the-role-of-qos/fig1-800.webp"/> <source class="responsive-img-srcset" media="(max-width: 1400px)" srcset="/assets/img/Research/tactile-internet-the-role-of-qos/fig1-1400.webp"/> <img src="/assets/img/Research/tactile-internet-the-role-of-qos/fig1.jpg" class="img-fluid rounded z-depth-1" width="auto" height="auto" onerror="this.onerror=null; $('.responsive-img-srcset').remove();"/> </picture> </figure> </div> </div> <p><strong>Touch</strong> is increasingly being recognized as a modality that will complement hearing and vision as a third media stream over the Internet in various future haptic applications, enabling full immersion and significantly impacting society in many ways. However, the high technical requirements of these applications demand networks that support Ultra-Reliable and Low-Latency Communication (URLLC) to meet the challenging task of delivering the necessary Quality of Service (QoS) and maintaining an optimal Quality of Experience (QoE) for users.</p> <h2 id="tactile-internet">Tactile Internet</h2> <p>In <strong>teleoperation systems for haptic telemanipulation</strong>, also known as telehaptic systems, a human operator typically uses a haptic interface (master device) on one end of the communication channel to control a teleoperator device (slave actuator) on the other end. Teleoperation applications can be short-range, where the communication channel is either wired or wireless without requiring network infrastructure, or long-range, leveraging packet-switched network infrastructures to transmit data. The communication channel for long-range teleoperation can span from local area networks (LANs) to the broader Internet.</p> <p>The primary goal of teleoperation systems is to provide users with a sense of presence in the remote environment where the teleoperator is located. This is made possible by continuous advancements in relevant hardware and software, enabling users to receive multimodal feedback (visual, auditory, and haptic). Achieving this goal requires meeting appropriate QoS standards to maximize the user’s QoE.</p> <h2 id="quality-of-service-requirements">Quality of Service Requirements</h2> <p>Internet-based Telepresence and Teleaction (TPTA) systems implement closed-loop control mechanisms over a real-time communication framework, facilitating interaction between a human operator and a remote environment through sensors and actuators. Such systems are referred to as Network-Based Control Systems (NBCS).</p> <p>Since communication channels are a core component of these systems, various network protocols have been developed or adapted for teleoperation frameworks and their Internet-based implementations, ensuring efficient functionality in both virtual environments and physical systems.</p> <p>As with any networked system, the proper functioning of NBCS is susceptible to several challenges that can degrade performance. These challenges also serve as performance metrics, enabling the comparison of different protocols and the quantification of the QoS they deliver, which is critical in applications like telesurgery. Teleoperation systems, as a subset of NBCS, naturally inherit these performance considerations concerning TPTA systems. Common performance parameters include:</p> <ul> <li><strong>Network delay</strong>: the average time required for a packet to travel from the input to the output of the communication channel. A comprehensive survey of the main sources of network delay and current solutions is provided in [2].</li> <li><strong>Jitter</strong>: the variation in packet delay, formally known as Packet Delay Variation (PDV), which affects packet sequencing. Jitter can be mitigated by using packets with sequence numbers or timestamps, although this typically requires buffers, which in turn increase overall communication delay.</li> <li><strong>Packet loss</strong>: occurs due to network congestion, resulting in the master and slave sides of a TPTA system needing to operate despite missing information. Approaches to handle packet loss include substituting missing values with nulls, holding the last received value, or using interpolation (e.g., predictive methods).</li> <li><strong>Data rate</strong>: the communication channel’s capacity, which can be influenced by the sampling frequency, sample resolution, and protocol overhead.</li> </ul> <p>Additionally, other factors such as signal quantization and sources of noise can also impact system performance.</p> <p>The effects of packet loss, with or without latency, on the perception of visual and haptic events have been studied in [3], demonstrating an additive effect of both factors. However, as noted in [4], packet loss can be managed by mechanisms that enhance communication reliability, though these mechanisms inevitably increase total latency. Thus, achieving a balance between reliability and delay is essential.</p> <h2 id="references">References</h2> <ol> <li>S.G. Tzafestas.Web-Based Control and Robotics Education. IntelligentSystems, Control and Automation: Science and Engineering. Springer Netherlands, 2009. ISBN 9789048125050.</li> <li>B. Briscoe, A. Brunstrom, A. Petlund, D. Hayes, D. Ros, I. J. Tsang,S. Gjessing, G. Fairhurst, C. Griwodz, and M. Welzl. Reducing internetlatency: A survey of techniques and their merits. IEEE Communications Surveys Tutorials, 18(3):2149–2196, thirdquarter 2016. ISSN 1553-877X.</li> <li>Z. Shi, H. Zou, M. Rank, L. Chen, S. Hirche, and H. J. Muller. Effects ofpacket loss and latency on the temporal discrimination of visual-hapticevents. IEEE Transactions on Haptics, 3(1):28–36, Jan 2010. ISSN 1939-1412.</li> <li>Changhoon Seo, Jong-Phil Kim, Jaeha Kim, Hyo-Sung Ahn, andJeha Ryu.Robustly stable bilateral teleoperation under time-varying delays and data losses: an energy-bounding approach.Journal of Mechanical Science and Technology, 25(8):2089, Sep2011.ISSN 1976-3824.</li> </ol>]]></content><author><name></name></author><category term="Innovation"/><category term="Networks"/><category term="QoS"/><category term="tactile-internet"/><category term="teleoperation"/><category term="haptic"/><category term="urllc"/><summary type="html"><![CDATA[Touch is increasingly being recognized as a modality that will complement hearing and vision as a third media stream over the Internet in various future haptic applications, enabling full immersion and significantly impacting society in many ways.]]></summary></entry><entry><title type="html">Cloud Computing meets 5G</title><link href="https://luissequeira.github.io/blog/2024/cloud-computing-and-5g/" rel="alternate" type="text/html" title="Cloud Computing meets 5G"/><published>2024-07-11T20:00:00+00:00</published><updated>2024-07-11T20:00:00+00:00</updated><id>https://luissequeira.github.io/blog/2024/cloud-computing-and-5g</id><content type="html" xml:base="https://luissequeira.github.io/blog/2024/cloud-computing-and-5g/"><![CDATA[<p>Nowadays, many 5G components can be virtualized and they can run in cloud environments. In the 5G radio access and core networks, hardware and software are becoming clearly separated from each other [1]. It means that 5G features are virtualized in software and delivered over commodity hardware where it runs as virtual machines or containers in private or public cloud environments. Such a decoupling is important as it enables companies and researches to innovate independently and in their respective space. In the past, this has been proven as a very successful approach in the computing industry, where hardware (computer), middleware (operating system) and software (applications) are developed independently and driven by their own design and development goals.</p> <p>The clear separation of software functionalities allows to potentially replace certain features much quicker with more advanced embodiments. Therefore, incremental improvements of the technology can now occur more easily and without having to change physical devices or firmware. In this way, software components can be much easier virtualized, then arranged and deployed as per need across different physical locations, datacentres and even across different cloud providers. Advanced functionalities or new features can thus be moved or migrated flexibly, resources instantiated in a moment and services delivered at scale [2].</p> <p>A deployed end-to-end 5G system consists of multiple 5G-enabled components as well as the integration of a - let’s say - legacy system architectures. Network functions can be fully virtualized and run in virtual machines and some of them as containers in different cloud infrastructures, which are all managed and orchestrated using a common orchestration framework.</p> <p>A 5G system requires interaction with legacy commercial 4G networks using cloud based solutions for mobile architectures, including Cloud Radio Access Network (RAN) and Core Network functional splits. A 5G-enabled testbed system could look like as the system shown in Figure #1.</p> <div class="row mt-3" style="text-align: center"> <div class="col-sm mt-3 mt-md-0"> <figure> <picture> <source class="responsive-img-srcset" media="(max-width: 480px)" srcset="/assets/img/Cloud/cloud-computing-5g/fig1-480.webp"/> <source class="responsive-img-srcset" media="(max-width: 800px)" srcset="/assets/img/Cloud/cloud-computing-5g/fig1-800.webp"/> <source class="responsive-img-srcset" media="(max-width: 1400px)" srcset="/assets/img/Cloud/cloud-computing-5g/fig1-1400.webp"/> <img src="/assets/img/Cloud/cloud-computing-5g/fig1.png" class="img-fluid rounded z-depth-1" width="auto" height="auto" onerror="this.onerror=null; $('.responsive-img-srcset').remove();"/> </picture> </figure> </div> </div> <div class="caption"> Figure #1: High level testbed example including access technologies, access networks, core network and orchestration. </div> <p>As any other radio-based technology, a 5G systems consist of a set of outdoor sites transmitting at different bands, such as \(3.5GHz\) and \(28GHz\) in this case, allowing for increased throughputs and lower latencies in the access network. The virtualized RAN and Core Network functions can now run in separate cloud environments, even across different cloud providers, which need to be interfaced with a management and orchestration framework.</p> <p>The 5G core network can be virtualized and can support end-to-end network slicing, which can be used for instance to allow multiple instantiations of Virtualized Network Functions (VNF) to satisfy different levels of Qulity of Service (QoS), it can also be used for service isolation which opens the flexibility to provide bespoken networks for customers or for particular use cases instead of the traditional “one-size-fits-all” approach. Network slicing also makes it easier to decommission or update an entire slice or service when required.</p> <h2 id="references">References</h2> <ol> <li>B. Han, V. Gopalakrishnan, L. Ji and S. Lee, “Network function virtualization: Challenges and opportunities for innovations”, in IEEE Communications Magazine, vol. 53, no. 2, pp. 90-97, Feb. 2015.</li> <li>X. Sun and N. Ansari, “EdgeIoT: Mobile Edge Computing for the Internet of Things,” in IEEE Communications Magazine, vol. 54, no. 12, pp. 22-29, December 2016.</li> </ol>]]></content><author><name></name></author><category term="Cloud"/><category term="cloud"/><category term="5G"/><summary type="html"><![CDATA[Nowadays, many 5G components can be virtualized and they can run in cloud environments. In the 5G radio access and core networks, hardware and software are becoming clearly separated from each other [1]. It means that 5G features are virtualized in software and delivered over commodity hardware where it runs as virtual machines or containers in private or public cloud environments.]]></summary></entry><entry><title type="html">What is a Light Virtual Access Point (LVAP)?</title><link href="https://luissequeira.github.io/blog/2020/what-is-a-light-virtual-access-point-lvap/" rel="alternate" type="text/html" title="What is a Light Virtual Access Point (LVAP)?"/><published>2020-09-07T18:16:08+00:00</published><updated>2020-09-07T18:16:08+00:00</updated><id>https://luissequeira.github.io/blog/2020/what-is-a-light-virtual-access-point-lvap</id><content type="html" xml:base="https://luissequeira.github.io/blog/2020/what-is-a-light-virtual-access-point-lvap/"><![CDATA[<div class="row mt-3" style="text-align: center"> <div class="col-sm mt-3 mt-md-0"> <figure> <picture> <source class="responsive-img-srcset" media="(max-width: 480px)" srcset="/assets/img/Cloud/what-is-lvaps/sticky-client-480.webp"/> <source class="responsive-img-srcset" media="(max-width: 800px)" srcset="/assets/img/Cloud/what-is-lvaps/sticky-client-800.webp"/> <source class="responsive-img-srcset" media="(max-width: 1400px)" srcset="/assets/img/Cloud/what-is-lvaps/sticky-client-1400.webp"/> <img src="/assets/img/Cloud/what-is-lvaps/sticky-client.png" class="img-fluid rounded z-depth-1" width="auto" height="auto" onerror="this.onerror=null; $('.responsive-img-srcset').remove();"/> </picture> </figure> </div> </div> <p>Wireless networks are widely used in areas such as business centres, airports, university campuses or even in many city areas. For this scenarios there are solutions for <strong>coordinating Wi-Fi access points</strong>, usually known as Enterprise Wi-Fi. Although commercial solutions exist, these are proprietary, closed and costly, which in most of the cases make them infeasible for many organizations.</p> <p>In this context, there are some proposals for inter access points <strong>coordination solutions enabling advanced features</strong> such as load balancing, frequency planning or power control. Some works have proposed the adaptation of certain abstractions and concepts from <strong>Software Defined Networks (SDNs)</strong>, for its use in wireless networks [1, 2].</p> <p>One of the problems that arise when coordinating a wireless network is that the stations (STAs) have their own algorithms for selecting the access point. This means that each STA is free to select the access point to associate to, not coordinated with the rest of the clients. This complicates client management, generating the “sticky client”, that never leaves the access point to which it was associated initially.</p> <p>One way to solve these problems is using <strong>Light Virtual Access Point (LVAP)</strong> abstraction [3]. The idea is that a physical access point will use a different <strong>LVAP</strong> (which includes a specific MAC) for communicating with each STA. Therefore, the STA will only “see” a single access point, even if it is actually moving between a set of them, thus avoiding the need for re-association.</p> <p>The <strong>LVAP</strong> is dynamically assigned to a physical access point near the current location of the terminal. As long as the STA only “sees” a single access point, it will not make any roaming decision, thus enabling the network to run a coordinated management of clients. This is achieved without any modification in the STA which runs standard IEEE 802.11.</p> <p>There are some initiatives in this area, in [4] a distributed solution using <strong>LVAPs</strong> was introduced, proposing a protocol for the direct exchange of information between access points. The main limitation is the absence of a central controller, so each access point has to build a list of neighbour access points by itself. In [5], a solution based on <strong>LVAPs</strong>, managed by a central controller, combines two southbound protocols: OpenFlow and Odin. OpenFlow tells the internal switches of the access points where to steer the traffic and the Odin protocol is in charge of the wireless issues. The central manager of the Wi-Fi network runs within the <strong>SDN</strong> controller. The controller is in charge of creating an <strong>LVAP</strong> for each terminal which consists of a tuple with four fields: the real MAC of the STA, a fake MAC for the Access Points to communicate with the STA, the IP of the STA and the SSID to be used in the communication.</p> <p>Fast and seamless handover are essential part of all these solutions because the STAs can be redistributed dynamically. Therefore, in order not to interrupt the user’s session, a seamless access point re-assign can be very convenient when a user is walking, or whenever a load balancing decision is made.</p> <h2 id="references">References</h2> <ol> <li>R. Riggio, T. Rasheed, and M. K. Marina, “Poster: programming software-defined wireless networks.” in MobiCom, S.-J. Lee, A. Sabharwal, and P. Sinha, Eds. ACM, p. 413416.</li> <li>R. Riggio, T. M. Rasheed, and R. Narayanan, “Virtual network functions orchestration in enterprise WLANs.” in IM, R. Badonnel, J. Xiao, S. Ata, F. D. Turck, V. Groza, and C. R. P. dos Santos, Eds. IEEE, p. 12201225.</li> <li>Y. Grunenberger and F. Rousseau, “Virtual Access Points for Transparent Mobility in Wireless LANs.” in WCNC. IEEE, p. 16.</li> <li>M. E. Berezin, F. Rousseau, and A. Duda, “Multichannel Virtual Access Points for Seamless Handoffs in IEEE 802.11 Wireless Networks.” in VTC Spring. IEEE, p. 15.</li> <li>J. Schulz-Zander, L. Suresh, N. Sarrar, A. Feldmann, T. Hhn, and R. Merz, “Programmatic Orchestration of WiFi Networks,” in 2014 USENIX Annual Technical Conference (USENIX ATC 14). Philadelphia, PA: USENIX Association, Jun., p. 347358.</li> </ol>]]></content><author><name></name></author><category term="Cloud"/><category term="Innovation"/><category term="SDN"/><category term="access-point"/><category term="architecture"/><summary type="html"><![CDATA[Wireless networks are widely used in areas such as business centres, airports, university campuses or even in many city areas. Light Virtual Access Point (LVAP) are a solution for coordinating Wi-Fi access points.]]></summary></entry><entry><title type="html">General architecture for Software Defined Networking (SDN)</title><link href="https://luissequeira.github.io/blog/2020/general-architecture-for-software-defined-networking-sdn/" rel="alternate" type="text/html" title="General architecture for Software Defined Networking (SDN)"/><published>2020-08-24T09:00:00+00:00</published><updated>2020-08-24T09:00:00+00:00</updated><id>https://luissequeira.github.io/blog/2020/general-architecture-for-software-defined-networking-sdn</id><content type="html" xml:base="https://luissequeira.github.io/blog/2020/general-architecture-for-software-defined-networking-sdn/"><![CDATA[<div class="row mt-3" style="text-align: center"> <div class="col-sm mt-3 mt-md-0"> <figure> <picture> <source class="responsive-img-srcset" media="(max-width: 480px)" srcset="/assets/img/Cloud/general-architecture-for-sdn/sdn-480.webp"/> <source class="responsive-img-srcset" media="(max-width: 800px)" srcset="/assets/img/Cloud/general-architecture-for-sdn/sdn-800.webp"/> <source class="responsive-img-srcset" media="(max-width: 1400px)" srcset="/assets/img/Cloud/general-architecture-for-sdn/sdn-1400.webp"/> <img src="/assets/img/Cloud/general-architecture-for-sdn/sdn.png" class="img-fluid rounded z-depth-1" width="auto" height="auto" onerror="this.onerror=null; $('.responsive-img-srcset').remove();"/> </picture> </figure> </div> </div> <p>The terminology and layered architecture for <strong>SDN</strong> systems has been defined by the <strong>Software Defined Networking Research Group (SDNRG)</strong> of the <strong>Internet Research Task Force (IRTF)</strong> in [1]. Although it is not intended to standardize any layer or interface, it provides a reference for approaches that can be followed when defining <strong>SDN</strong> architectures. The <strong>Open Networking Foundation (ONF)</strong> proposed a different architecture in [2], more service-oriented, while the one proposed by the IRTF has a more functional vision [3].</p> <p>Figure #1 describes the proposed IRTF architecture which consisting of:</p> <ul> <li><strong>Application Plane</strong>: this layer is where the applications that define the behavior of the network reside.</li> <li><strong>Network Services Abstraction Layer (NSAL)</strong>: provides access to applications to the control and management plane.</li> <li><strong>Control Plane</strong>: is responsible for decisions on how packets should be forwarded by one or more network devices and for forwarding those decisions to the network devices for execution.</li> <li><strong>Management Plane</strong>: this layer is in charge of monitoring, configuring and maintaining network devices, e.g., generating decisions based on the state of a network device.</li> <li><strong>Device and resource Abstraction Layer (DAL)</strong>: abstracts resources from the operational and device forwarding planes to the control and management planes.</li> </ul> <div class="row mt-3" style="text-align: center"> <div class="col-sm mt-3 mt-md-0"> <figure> <picture> <source class="responsive-img-srcset" media="(max-width: 480px)" srcset="/assets/img/Cloud/general-architecture-for-sdn/rfc_architecture-480.webp"/> <source class="responsive-img-srcset" media="(max-width: 800px)" srcset="/assets/img/Cloud/general-architecture-for-sdn/rfc_architecture-800.webp"/> <source class="responsive-img-srcset" media="(max-width: 1400px)" srcset="/assets/img/Cloud/general-architecture-for-sdn/rfc_architecture-1400.webp"/> <img src="/assets/img/Cloud/general-architecture-for-sdn/rfc_architecture.png" class="img-fluid rounded z-depth-1" width="auto" height="auto" onerror="this.onerror=null; $('.responsive-img-srcset').remove();"/> </picture> </figure> </div> </div> <div class="caption"> Figure #1: **SDN** layer architecture according to RFC 7426. </div> <p>Following a <strong>SDN</strong> approach, some examples of proposed architectures can be found in the literature: in [4], the EmPOWER architecture was presented which integrates different Radio Access Technologies (RAT) and proposes a set of programming abstractions in order to model some important aspects of wireless networks. This architecture was also used in [5], where an algorithm for mobility management was proposed; the objective of the algorithm is the adaptation rate for multicast communications in 802.11 networks. Another architecture was presented in [6], which is aimed at minimizing packet-level delay; in this case, all base stations (BSs) are configured to use the same MAC address; specific virtual BSs are created to manage each service. All these proposals include a central controller in charge of network management.</p> <h2 id="references">References</h2> <ul> <li>E.Haleplidis, K. Pentikousis, S. Denazis, J.H. Salim, D. Meyer, O. Koufopavlou, (2015). Software-defined networking (SDN): Layers and architecture terminology (No. RFC 7426).</li> <li>Open Networking Foundation, “SDN architecture,” vol. 1.0, Jun 2014. <a href="https://www.opennetworking.org/images/stories/downloads/sdn-resources/technical-reports/TRSDN ARCH_1.0_06062014.pdf">https://www.opennetworking.org/ images/stories/downloads/sdn-resources/technical-reports/TRSDN ARCH_1.0_06062014.pdf</a></li> <li>J. Schultz, R. Szczepanski, K. Haensge, M. Maruschke, N. Bayer and H. Einsiedler, “OpenGUFI: An Extensible Graphical User Flow Interface for an SDN-Enabled Wireless Testbed,” 2015 IEEE International Conference on Computer and Information Technology; Ubiquitous Computing and Communications; Dependable, Autonomic and Secure Computing; Pervasive Intelligence and Computing, Liverpool, 2015, pp. 770-776.</li> <li>R. Riggio, M. K. Marina, J. Schulz-Zander, S. Kuklinski, and T. Rasheed, “Programming abstractions for software-defined wireless networks,” IEEE Transactions on Network and Service Management, vol. 12, no. 2, pp. 146–162, 2015.</li> <li>E. Coronado, R. Riggio, J. Villalón and A. Garrido, “Joint Mobility Management and Multicast Rate Adaptation in Software–Defined Enterprise WLANs,” in IEEE Transactions on Network and Service Management. In press. doi: 10.1109/TNSM.2018.2798296</li> <li>K. Nakauchi and Y. Shoji, “WiFi Network Virtualization to Control the Connectivity of a Target Service,” IEEE Transactions on Network and Service Management, vol. 12, no. 2, pp. 308–319, 2015.</li> </ul>]]></content><author><name></name></author><category term="Cloud"/><category term="Networks"/><category term="SDN"/><category term="architecture"/><category term="cloud"/><summary type="html"><![CDATA[The terminology and layered architecture for SDN systems has been defined by the Software Defined Networking Research Group (SDNRG) of the Internet Research Task Force (IRTF) in [1]. Although it is not intended to standardize any layer or interface, it provides a reference for approaches that can be followed when defining SDN architectures.]]></summary></entry><entry><title type="html">How to setup a Kubernetes cluster</title><link href="https://luissequeira.github.io/blog/2018/how-to-setup-a-kubernetes-cluster/" rel="alternate" type="text/html" title="How to setup a Kubernetes cluster"/><published>2018-08-06T14:06:57+00:00</published><updated>2018-08-06T14:06:57+00:00</updated><id>https://luissequeira.github.io/blog/2018/how-to-setup-a-kubernetes-cluster</id><content type="html" xml:base="https://luissequeira.github.io/blog/2018/how-to-setup-a-kubernetes-cluster/"><![CDATA[<div class="row mt-3" style="text-align: center"> <div class="col-sm mt-3 mt-md-0"> <figure> <picture> <source class="responsive-img-srcset" media="(max-width: 480px)" srcset="/assets/img/Cloud/how-install-kubernetes-cluster/1-480.webp"/> <source class="responsive-img-srcset" media="(max-width: 800px)" srcset="/assets/img/Cloud/how-install-kubernetes-cluster/1-800.webp"/> <source class="responsive-img-srcset" media="(max-width: 1400px)" srcset="/assets/img/Cloud/how-install-kubernetes-cluster/1-1400.webp"/> <img src="/assets/img/Cloud/how-install-kubernetes-cluster/1.png" class="img-fluid rounded z-depth-1" width="auto" height="auto" onerror="this.onerror=null; $('.responsive-img-srcset').remove();"/> </picture> </figure> </div> </div> <p>The initial setup consists of a remote server running KVM in which three virtual machines were installed using Ubuntu 16.04. Each virtual machine has one network interface bridged to a physical network interface on the remote server, so that each VM is using a different interface of the server and IP addresses were assigned accordingly.</p> <p>At the end of this tutorial, you will have a kubernetes cluster that consist of one Kubernetes master and two Kubernetes nodes.</p> <h2 id="docker-installation">Docker installation</h2> <p>First, let’s install updates, dependencies and docker:</p> <div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">sudo </span>apt update
<span class="nb">sudo </span>apt upgrade
<span class="nb">sudo </span>apt <span class="nb">install </span>apt-transport-https <span class="c"># already installed</span>
<span class="nb">sudo </span>apt <span class="nb">install </span>docker.io
</code></pre></div></div> <p>Now, we can start docker and enable it to start during the system boot:</p> <div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">sudo </span>systemctl start docker
<span class="nb">sudo </span>systemctl <span class="nb">enable </span>docker
</code></pre></div></div> <h2 id="kubernetes-installation">Kubernetes installation</h2> <p>Before the installation, we need to add the key:</p> <div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">sudo </span>curl <span class="nt">-s</span> https://packages.cloud.google.com/apt/doc/apt-key.gpg | <span class="nb">sudo </span>apt-key add -
</code></pre></div></div> <p>To create the apt repository for Kubernetes, we open a file:</p> <div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">sudo </span>nano /etc/apt/sources.list.d/kubernetes.list
</code></pre></div></div> <p>and add the following line into it and close the file:</p> <div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code>deb http://apt.kubernetes.io/ kubernetes-xenial main
</code></pre></div></div> <p>Time to update and install kebernetes:</p> <div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">sudo </span>apt update
<span class="nb">sudo </span>apt <span class="nb">install </span>kubelet kubeadm kubectl kubernetes-cni
</code></pre></div></div> <h2 id="kubernetes-master">Kubernetes master</h2> <p>To initialise Kubernetes cluster to run as master, execute the below command:</p> <div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">sudo </span>kubeadm init <span class="nt">--pod-network-cidr</span> 10.244.0.0/16
</code></pre></div></div> <p>If you receive this error:</p> <div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="o">[</span>preflight] Some fatal errors occurred:
<span class="o">[</span>ERROR Swap]: running with swap on is not supported. Please disable swap
<span class="o">[</span>preflight] If you know what you are doing, you can make a check non-fatal with <span class="sb">`</span><span class="nt">--ignore-preflight-errors</span><span class="o">=</span>...<span class="sb">`</span>
</code></pre></div></div> <p>You will need to disable the swap:</p> <div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">sudo </span>nano /etc/fstab <span class="c"># comment swap to disable permanently</span>
<span class="nb">sudo </span>swapoff <span class="nt">-a</span>
</code></pre></div></div> <p>After the initialisation, you will see something like this:</p> <div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Your Kubernetes master has initialized successfully!

To start using your cluster, you need to run the following as a regular user:

<span class="nb">mkdir</span> <span class="nt">-p</span> <span class="nv">$HOME</span>/.kube
<span class="nb">sudo cp</span> <span class="nt">-i</span> /etc/kubernetes/admin.conf <span class="nv">$HOME</span>/.kube/config
<span class="nb">sudo chown</span> <span class="si">$(</span><span class="nb">id</span> <span class="nt">-u</span><span class="si">)</span>:<span class="si">$(</span><span class="nb">id</span> <span class="nt">-g</span><span class="si">)</span> <span class="nv">$HOME</span>/.kube/config

You should now deploy a pod network to the cluster.

Run &amp;quot<span class="p">;</span>kubectl apply <span class="nt">-f</span> <span class="o">[</span>podnetwork].yaml&amp;quot<span class="p">;</span> with one of the options listed at:
https://kubernetes.io/docs/concepts/cluster-administration/addons/

You can now <span class="nb">join </span>any number of machines by running the following on each node
as root:

kubeadm <span class="nb">join </span>10.143.6.161:6443 <span class="nt">--token</span> de5fen.6y2w4x7shlyhnfyf8 <span class="nt">--discovery-token-ca-cert-hash</span> sha256:2a9dfacf654eba7d374b8dfac0028d6a094c550c67bc084f1efcc1f4301ca656
</code></pre></div></div> <p>To complete the setup:</p> <div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">mkdir</span> <span class="nt">-p</span> <span class="nv">$HOME</span>/.kube
<span class="nb">sudo cp</span> <span class="nt">-i</span> /etc/kubernetes/admin.conf <span class="nv">$HOME</span>/.kube/config
<span class="nb">sudo chown</span> <span class="si">$(</span><span class="nb">id</span> <span class="nt">-u</span><span class="si">)</span>:<span class="si">$(</span><span class="nb">id</span> <span class="nt">-g</span><span class="si">)</span> <span class="nv">$HOME</span>/.kube/config
</code></pre></div></div> <p>Execute below commands on master node to apply network settings:</p> <div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">sudo </span>kubectl apply <span class="nt">-f</span> https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
<span class="nb">sudo </span>kubectl apply <span class="nt">-f</span> https://raw.githubusercontent.com/coreos/flannel/master/Documentation/k8s-manifests/kube-flannel-rbac.yml
</code></pre></div></div> <p>Now, check all pods:</p> <div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">sudo </span>kubectl get pods <span class="nt">--all-namespaces</span>
</code></pre></div></div> <h2 id="kubernetes-node">Kubernetes node</h2> <p>First of all, follow: <a href="#docker-installation">Docker installation</a> and <a href="#kubernetes-installation">Kubernetes installation</a>. Then:</p> <div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code>kubeadm <span class="nb">join </span>10.143.6.161:6443 <span class="nt">--token</span> de5fen.6y2w4x7shlyhnfyf8 <span class="nt">--discovery-token-ca-cert-hash</span> sha256:2a9dfacf654eba7d374b8dfac0028d6a094c550c67bc084f1efcc1f4301ca656
</code></pre></div></div> <p>Go back to Master and check:</p> <div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code>kubectl get nodes

NAME STATUS ROLES AGE VERSION
k8-master Ready master 17h v1.11.0
k8-node1 Ready 37s v1.11.0
k8-node2 Ready 29s v1.11.0
</code></pre></div></div>]]></content><author><name></name></author><category term="Cloud"/><category term="Linux"/><category term="kubernetes"/><category term="docker"/><category term="linux"/><summary type="html"><![CDATA[A tutorial on how to setup a Kubernetes cluster using a Ubutu 16.04 virtuam machine. At the end of this tutorial, you will have a kubernetes cluster that consist of one Kubernetes master and two Kubernetes nodes.]]></summary></entry><entry><title type="html">Kerberos protocol operation</title><link href="https://luissequeira.github.io/blog/2014/el-funcionamiento-del-protocolo-kerberos/" rel="alternate" type="text/html" title="Kerberos protocol operation"/><published>2014-09-10T05:00:00+00:00</published><updated>2014-09-10T05:00:00+00:00</updated><id>https://luissequeira.github.io/blog/2014/el-funcionamiento-del-protocolo-kerberos</id><content type="html" xml:base="https://luissequeira.github.io/blog/2014/el-funcionamiento-del-protocolo-kerberos/"><![CDATA[<p><strong>The authentication protocol Kerberos allows a number of computers to prove their identity among them safely over an insecure network</strong>. The operation of the protocol is based on the Needham-Schroeder protocol, which defines a “trusted third party” called Key Distribution Center (KDC). William Stallings in his book Fundamentals of Network Security: Applications and Standards, Second Edition (p.394) defines a KDC as follows:</p> <blockquote> <p>Authorized system to transmit temporary session key for users. Each session key is transmitted encrypted using a master key that the Key Distribution Center shares with the target user. <em>William Stallings</em></p> </blockquote> <p><strong>The KDC can be seen as a set of two logic stages: an authentication server (AS) and an ticket granting server (TGS)</strong>. The AS has the function to identify each user, validate their identity and give the client a key that allows to communicate with the TGS. Furthermore, the TGS is the responsible server for checking that the client possesses the authentication ticket and provides a key to the user that allows access to the requested services. This scenario is shown in Figure #1.</p> <div class="row mt-3" style="text-align: center"> <div class="col-sm mt-3 mt-md-0"> <figure> <picture> <source class="responsive-img-srcset" media="(max-width: 480px)" srcset="/assets/img/TICs/funcionamiento-protocolo-kerberos/1-480.webp"/> <source class="responsive-img-srcset" media="(max-width: 800px)" srcset="/assets/img/TICs/funcionamiento-protocolo-kerberos/1-800.webp"/> <source class="responsive-img-srcset" media="(max-width: 1400px)" srcset="/assets/img/TICs/funcionamiento-protocolo-kerberos/1-1400.webp"/> <img src="/assets/img/TICs/funcionamiento-protocolo-kerberos/1.png" class="img-fluid rounded z-depth-1" width="auto" height="auto" onerror="this.onerror=null; $('.responsive-img-srcset').remove();"/> </picture> </figure> </div> </div> <div class="caption"> Figure #1: Components and communication flow of Kerberos protocol. </div> <p>Kerberos performs a ticket management that allows users to prove their identity and get the keys for a particular service, these keys allow to two entities interact safely. This requires that the protocol perform a proper management of different databases in order to identify users, while maintaining another database of secret keys to assign to each entity, either client or server.</p> <p>Figure #2 shows the produced messages flow by the Kerberos protocol, which clearly sees the contained information in each sent message between the different entities involved in the key exchange. It should be clarified that the previous communication that should be established between the client and the AS, which gives the user name and password entered by the user on the client, is not shown. However, the ticket management is quite clear.</p> <p>When the client makes a request to the AS, the AS responds with two messages: <strong>the first sends the encrypted key that the client will share with the TGS, and the second packet should be forwarded to the TGS</strong>, this package cannot be decrypted by the client and contains information about the validation made by the AS.</p> <p>Then, the client sends two messages to the TGS: <strong>in the first message forwards the packet that has been received from the AS, adding the type of the requested service and the second message is an authenticator</strong> which is encrypted with the key generated by the AS for the communication between client and TGS.</p> <p>Now, the TGS responds to the client with the key that will be sharing with the requested service server and a ticket that only this server can decrypt and that the client must forward. The client forwards the ticket to the service server and also an authenticator encrypted with the provided key by the TGS for the communication, so that, the communication between client and service can be performed in encrypted form with that key.</p> <div class="row mt-3" style="text-align: center"> <div class="col-sm mt-3 mt-md-0"> <figure> <picture> <source class="responsive-img-srcset" media="(max-width: 480px)" srcset="/assets/img/TICs/funcionamiento-protocolo-kerberos/2-480.webp"/> <source class="responsive-img-srcset" media="(max-width: 800px)" srcset="/assets/img/TICs/funcionamiento-protocolo-kerberos/2-800.webp"/> <source class="responsive-img-srcset" media="(max-width: 1400px)" srcset="/assets/img/TICs/funcionamiento-protocolo-kerberos/2-1400.webp"/> <img src="/assets/img/TICs/funcionamiento-protocolo-kerberos/2.png" class="img-fluid rounded z-depth-1" width="auto" height="auto" onerror="this.onerror=null; $('.responsive-img-srcset').remove();"/> </picture> </figure> </div> </div> <div class="caption"> Figure #2: Message Exchange of the Kerberos protocol. </div> <h2 id="references">References</h2> <ol> <li>William Stallings. Fundamentals of Network Security: Applications and Standards, Second Edition. Pearson Education. 2004.</li> </ol>]]></content><author><name></name></author><category term="Networks"/><category term="kerberos"/><category term="security"/><category term="criptography"/><summary type="html"><![CDATA[The authentication protocol Kerberos allows a number of computers to prove their identity among them safely over an insecure network. The operation of the protocol is based on the Needham-Schroeder protocol, which defines a ''trusted third party'' called Key Distribution Center (KDC).]]></summary></entry><entry><title type="html">How to modify files with SED?</title><link href="https://luissequeira.github.io/blog/2014/how-to-modify-files-with-sed/" rel="alternate" type="text/html" title="How to modify files with SED?"/><published>2014-05-12T05:00:00+00:00</published><updated>2014-05-12T05:00:00+00:00</updated><id>https://luissequeira.github.io/blog/2014/how-to-modify-files-with-sed</id><content type="html" xml:base="https://luissequeira.github.io/blog/2014/how-to-modify-files-with-sed/"><![CDATA[<div class="row mt-3" style="text-align: center"> <div class="col-sm mt-3 mt-md-0"> <figure> <picture> <source class="responsive-img-srcset" media="(max-width: 480px)" srcset="/assets/img/Linux/como-modificar-ficheros-con-sed/1-480.webp"/> <source class="responsive-img-srcset" media="(max-width: 800px)" srcset="/assets/img/Linux/como-modificar-ficheros-con-sed/1-800.webp"/> <source class="responsive-img-srcset" media="(max-width: 1400px)" srcset="/assets/img/Linux/como-modificar-ficheros-con-sed/1-1400.webp"/> <img src="/assets/img/Linux/como-modificar-ficheros-con-sed/1.jpg" class="img-fluid rounded z-depth-1" width="auto" height="auto" onerror="this.onerror=null; $('.responsive-img-srcset').remove();"/> </picture> </figure> </div> </div> <h2 id="what-is-sed">What is sed?</h2> <p><code class="language-plaintext highlighter-rouge">sed</code> is a stream editor which is used to perform basic text transformations on an input stream (a file or input from a pipeline) or filter strings. It permits to <strong>modify the contents of different lines in a file</strong>, based on some parameters.</p> <p>For the examples shown in this article, you used the 4.2.1 version of <code class="language-plaintext highlighter-rouge">sed</code> as shown below:</p> <div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">sed</span> <span class="nt">--version</span>&lt;/span&gt;&lt;/span&gt;

GNU <span class="nb">sed </span>version 4.2.1
Copyright <span class="o">(</span>C<span class="o">)</span> 2009 Free Software Foundation, Inc.
This is free software<span class="p">;</span> see the <span class="nb">source </span><span class="k">for </span>copying conditions. There is NO
warranty<span class="p">;</span> not even <span class="k">for </span>MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE,
to the extent permitted by law.
</code></pre></div></div> <p><code class="language-plaintext highlighter-rouge">sed</code> has a syntax as follows:</p> <div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">sed</span> <span class="o">[</span><span class="nt">-options</span><span class="o">]</span> <span class="o">[</span><span class="nb">command</span><span class="o">]</span> <span class="o">[</span>&lt;file<span class="o">(</span>s<span class="o">)&gt;]</span>
</code></pre></div></div> <h2 id="visualization">Visualization</h2> <p>For the cases where you need to display the contents of a file or part of it, we can use any of the following commands:</p> <div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">sed </span>5q file1                            <span class="c"># see the firsts 5 lines of file1</span>
<span class="nb">cat</span> <span class="nt">-n</span> file1 | <span class="nb">sed</span> <span class="nt">-n</span> <span class="s1">'5,6 p'</span>           <span class="c"># see lines 5 and 6 of file1</span>
<span class="nb">sed</span> <span class="nt">-n</span> <span class="s1">'1p'</span> file1 <span class="o">&gt;</span> file2               <span class="c"># copy the first line of file1 to file2</span>
<span class="nb">sed</span> <span class="nt">-n</span> <span class="s1">'$p'</span> file1                       <span class="c"># show the last line of file1</span>
</code></pre></div></div> <h2 id="replacing-strings-and-characters">Replacing strings and characters</h2> <p>In these cases, it is always advisable storing in another file, the results of a substitution, leaving the original file unchanged. Some examples are:</p> <div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># replace strings in all lines that satisfied the string of file1 and store the result in file2</span>
<span class="nb">sed</span> <span class="s1">'s/old_string/new_string/g'</span> file1 <span class="o">&gt;</span> file2

<span class="c"># replace strings only in lines 200 y 201</span>
<span class="nb">sed</span> <span class="s1">'200,201 s/old_string/new_string/g'</span> file1 <span class="o">&gt;</span> file2

<span class="c"># replace several strings by new one</span>
<span class="nb">sed</span> <span class="s1">'s/old_string_1\|old_string_2/new_string/g'</span> file1 <span class="o">&gt;</span> file2

<span class="c"># replace all lowercase to uppercase</span>
<span class="nb">sed</span> <span class="s1">'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'</span> file1 <span class="o">&gt;</span> file2
</code></pre></div></div> <h2 id="insert-strings">Insert strings</h2> <p>As in the previous case, the original file is left unchanged while the second will contain the changes.</p> <div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># insert a string at the beginning of each line</span>
<span class="nb">sed</span> <span class="s1">'s/^/string_at_the_beginning/'</span> file1 <span class="o">&gt;</span> file2

<span class="c"># insert a string at the end of the file</span>
<span class="nb">sed</span> <span class="nt">-e</span> <span class="s1">'$ string_at_the_end'</span> file <span class="o">&gt;</span> file2

<span class="c"># insert a blank line before each line that matches with string</span>
<span class="nb">sed</span> <span class="s1">'/string/{x;p;x;}'</span> file1 <span class="o">&gt;</span> file2

<span class="c"># insert a blank line after each line that matches with string</span>
<span class="nb">sed</span> <span class="s1">'/string/G'</span> file1 <span class="o">&gt;</span> file2

<span class="c"># insert a blank line before and other after each line that matches with string</span>
<span class="nb">sed</span> <span class="s1">'/string/{x;p;x;G;}'</span> file1 <span class="o">&gt;</span> file2

<span class="c"># insert a blank line every 2 lines</span>
<span class="nb">sed</span> <span class="s1">'n;G;'</span> file1 <span class="o">&gt;</span> file2
</code></pre></div></div> <h2 id="delete-lines-and-strings">Delete lines and strings</h2> <p>If we want to delete characters or entire lines, either because they are empty or commented, we can use the following commands:</p> <div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">sed</span> <span class="s1">'2,4 d'</span> file1 <span class="o">&gt;</span> file2                   <span class="c"># remove lines 100 and 105 of file1</span>
<span class="nb">sed</span> <span class="s1">'5,20 !d'</span> file1 <span class="o">&gt;</span> file2                 <span class="c"># delete all lines except the 5 and 20</span>
<span class="nb">sed</span> <span class="s1">'$d'</span> file1 <span class="o">&gt;</span> file2                      <span class="c"># delete the last line of file1</span>
<span class="nb">sed</span> <span class="nt">-i</span> <span class="s1">'$d'</span> file1                           <span class="c"># delete the last line of file1 in the same file</span>
<span class="nb">sed</span> <span class="s1">'/string/ d'</span> file1 <span class="o">&gt;</span> file2              <span class="c"># remove lines that satisfied a string</span>
<span class="nb">sed</span> <span class="s1">'/^$/d'</span> file1 <span class="o">&gt;</span> file2                   <span class="c"># remove blank lines</span>
<span class="nb">sed</span> <span class="s1">'/^$/d; / *#/d'</span> file1 <span class="o">&gt;</span> file2           <span class="c"># remove blank lines and bash comments</span>
</code></pre></div></div>]]></content><author><name></name></author><category term="Linux"/><category term="linux"/><category term="console"/><category term="commandline"/><summary type="html"><![CDATA[Sed is a stream editor which is used to perform basic text transformations on an input stream (a file or input from a pipeline) or filter strings. It permits to modify the contents of different lines in a file, based on some parameters.]]></summary></entry><entry><title type="html">Femtocell’s access methods</title><link href="https://luissequeira.github.io/blog/2014/femtocell-s-access-methods/" rel="alternate" type="text/html" title="Femtocell’s access methods"/><published>2014-05-05T05:00:00+00:00</published><updated>2014-05-05T05:00:00+00:00</updated><id>https://luissequeira.github.io/blog/2014/femtocell-s-access-methods</id><content type="html" xml:base="https://luissequeira.github.io/blog/2014/femtocell-s-access-methods/"><![CDATA[<p><strong>Femtocells are low-power and low-cost base stations</strong> that provide residential cellular services, providing a coverage of roughly \(10 m\) [1]. They can integrate with mobile operator through a <strong>broadband connection</strong>, typically ADSL. In General, femtocell makes that the traffic from the home cellular system, <strong>deviates through the broadband connection</strong>, releasing the resource consumption of the macrocell.</p> <p>The 3GPP has introduced the concept of Closed Subscriber Group (CSG), which essentially identifies a group of subscribers who have <strong>access permission to one or more cells</strong>. Femtocells basically have three different operating modes: <strong>open access, closed access and a combination of both named hybrid access</strong> [2] and [3], the access methods are:</p> <ul> <li><strong>Open access</strong>: In this case, the UE can access the femtocell without any restrictions, this is seen in the Figure #1 wherein the EU2 has unrestricted access to the femtocell in the building.</li> <li><strong>Closed Access</strong>: The administrator defines the only femtocell users (CSG) that can access the network. For this mode, emergency calls are exempt.</li> <li><strong>Hybrid Access</strong>: In this type of access, a limited amount of resources is allocated for access to users who are not part of CSG.</li> </ul> <div class="row mt-3" style="text-align: center"> <div class="col-sm mt-3 mt-md-0"> <figure> <picture> <source class="responsive-img-srcset" media="(max-width: 480px)" srcset="/assets/img/TICs/metodos-acceso-femtoceldas/1-480.webp"/> <source class="responsive-img-srcset" media="(max-width: 800px)" srcset="/assets/img/TICs/metodos-acceso-femtoceldas/1-800.webp"/> <source class="responsive-img-srcset" media="(max-width: 1400px)" srcset="/assets/img/TICs/metodos-acceso-femtoceldas/1-1400.webp"/> <img src="/assets/img/TICs/metodos-acceso-femtoceldas/1.png" class="img-fluid rounded z-depth-1" width="auto" height="auto" onerror="this.onerror=null; $('.responsive-img-srcset').remove();"/> </picture> </figure> </div> </div> <div class="caption"> Figure #1: Example of different femto-cell's access methods [2]: open access, closed access and hybrid access. </div> <p>Figure #1 is an example of the various types of femtocell access which are defined by the 3GPP. <strong>The closed access provides the contracted services to users who are part of the CSG</strong>, providing some level of security and privacy when accessing the femtocell, further that all resources are available for femtocell users, <strong>guaranteeing certain level of QoS</strong>. However, the users who are not part of subscriber’s group can not access the network, except for emergency calls. This type of access generates more interference, since nearby mobiles try to connect to the femtocell, but they will be blocked due the access method, so a large number of implicit signaling is generated in that area.</p> <p>On the other hand, <strong>open access has a good advantage for the service provider because part of the traffic is diverted by femtocells, releasing in largely, the macrocell’s load</strong>. However, this type of implementation provides an increasement in the handover because a UE who moves to an area where there are several deployed femtocells, it will perform handovers on each femtocell with better signal quality, thereby increasing signaling traffic. From this perspective, <strong>the hybrid method may have advantages, but the shared resources by each femtocell must be managed carefully</strong> in order to not degrade the quality of service for the users into the femtocell.</p> <h2 id="references">References</h2> <ol> <li>D. Calin, H. Claussen, H. Uzunalioglu. On Femto Deployment Architectures and Macrocell Offloading Benefits in Joint Macro-Femto Deployments. Communications Magazine, IEEE, vol. 48, no. 1, pp. 26-32, 2010.</li> <li>Assen, Golaup;Mona, Mustapha;Leo, Boonchin Patanapogpibul, Femtocell Access Control Strategy in UMTS and LTE, 2009.</li> <li>G, de la Roche;A, Valcarce;D, Lopez-Perez;Jie, Zhang, Access control Mechanisms for Femtocells, 2010.</li> <li><a href="http://www.femtoforum.org">http://www.femtoforum.org/</a></li> <li><a href="http://www.3gpp.org/">http://www.3gpp.org/</a></li> </ol>]]></content><author><name></name></author><category term="Networks"/><category term="Innovation"/><category term="femtocell"/><category term="4G"/><category term="LTE"/><category term="QoS"/><summary type="html"><![CDATA[Femtocells basically have three different operating modes open access, closed access and a combination of both named hybrid access.]]></summary></entry><entry><title type="html">What is LaTeX?</title><link href="https://luissequeira.github.io/blog/2014/what-is-latex/" rel="alternate" type="text/html" title="What is LaTeX?"/><published>2014-04-28T05:00:00+00:00</published><updated>2014-04-28T05:00:00+00:00</updated><id>https://luissequeira.github.io/blog/2014/what-is-latex</id><content type="html" xml:base="https://luissequeira.github.io/blog/2014/what-is-latex/"><![CDATA[<div class="row mt-3" style="text-align: center"> <div class="col-sm mt-3 mt-md-0"> <figure> <picture> <source class="responsive-img-srcset" media="(max-width: 480px)" srcset="/assets/img/Research/que-es-latex/1-480.webp"/> <source class="responsive-img-srcset" media="(max-width: 800px)" srcset="/assets/img/Research/que-es-latex/1-800.webp"/> <source class="responsive-img-srcset" media="(max-width: 1400px)" srcset="/assets/img/Research/que-es-latex/1-1400.webp"/> <img src="/assets/img/Research/que-es-latex/1.png" class="img-fluid rounded z-depth-1" width="auto" height="auto" onerror="this.onerror=null; $('.responsive-img-srcset').remove();"/> </picture> </figure> </div> </div> <p><strong>Latex is a language for high quality editing documents, especially oriented to book composition, scientific and technical documents, that include formulas and high quality images</strong>. It consists on a set of Tex macros (one low-level language) and has become almost a standard for scientific publications in areas such as mathematics, physics and engineering, since we can have finer control over any typographical appearance of the document.</p> <p><strong>Latex is not a text editor</strong>, is a language for preparing documents and therefore its appearance is not equal. The latex editors differ of the WYSIWYG editor (what you see is what you get) because latex allows users to write a paper, focusing exclusively on the content <strong>without having to worry about the format details</strong>.</p> <h2 id="advantages-of-latex">Advantages of Latex</h2> <ul> <li>Stable and multi-platform: <strong>the file format is more stable than the one in text editors</strong>, also there exist implementations for different platforms, and in all of them, the result is exactly the same.</li> <li><strong>High-quality equation editing</strong>: it can set the size of the parentheses, integrals, subscript and superscript, align elements in a matrices, constructed boxes, etc.</li> <li><strong>Ease-writing structured documents</strong>: it is possible to write texts dividing them into chapters, sections, subsections, controlling at all times numbering and cross-referencing. Automatic indexing of contents, tables or figures.</li> <li><strong>It’s free</strong>.</li> </ul> <h2 id="disadvantages-of-latex">Disadvantages of Latex</h2> <ul> <li><strong>Slow learning curve</strong>: it requires a learning period before getting the first results. Even medium or advanced user always have a manual nearby.</li> <li><strong>The results are not seen until the file is compiled</strong>: no preview available until it is compiled. During this process, it is usual the appearing of compilation errors and it can be frustrating for beginners. The only solution is to be patient.</li> </ul> <h2 id="using-latex">Using Latex</h2> <p>The document preparation normally requires <strong>two stages</strong>: the first is to <strong>create a source file</strong> using a text editor, which includes the appropriate commands and the text to be printed. The second is to <strong>compile the source file</strong>; this process consists on interpreting the written orders on the source file, leaving it ready to be sent to the corresponding output, either the screen or the pdf printer. Now, if you want to add or change something in the document, you must make the appropriate changes in the source file and compile it again.</p> <h2 id="latex-distributions">Latex distributions</h2> <p>There are several latex distributions, e.g., TeXLive can be used on Linux, Mac and Windows, MacTex for OS X and MiKTeX is used in Windows. Another advantage of LaTeX is that the output is always the same, regardless of the device (printer, screen, etc..) or the operating system, and it can be exported to a variety of formats (Postscript, PDF, SGML, HTML, RTF, etc.).</p> <h2 id="latex-editors">Latex Editors</h2> <p>There are several applications that helps a person to write a document in a more visual way: Texmaker, LyX, TeXmacs, Texstudio, WinShell, Kile and others. Another easy way to edit and to produce the corresponding equations in latex code, is to use a Google Chrome browser extension called Daum Equation Editor.</p> <h2 id="example-of-a-latex-document">Example of a Latex document</h2> <div class="language-latex highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">\documentclass</span><span class="na">[12pt]</span><span class="p">{</span>article<span class="p">}</span>
<span class="k">\usepackage</span><span class="na">[spanish]</span><span class="p">{</span>babel<span class="p">}</span>
<span class="k">\usepackage</span><span class="p">{</span>amsmath<span class="p">}</span>
<span class="k">\usepackage</span><span class="na">[latin1]</span><span class="p">{</span>inputenc<span class="p">}</span>

<span class="k">\title</span><span class="p">{</span><span class="k">\LaTeX</span><span class="p">}</span>
<span class="k">\date</span><span class="p">{}</span>

<span class="c">% This is a comment, not be displayed in the final document.</span>

<span class="nt">\begin{document}</span>
<span class="k">\maketitle</span>

<span class="k">\LaTeX</span> es un programa para preparar documentos con el sistema de tipograf<span class="k">\'</span>ias <span class="k">\footnote</span><span class="p">{</span>Seg<span class="k">\'</span>un Wikipedia, la tipograf<span class="k">\'</span>ia es el arte y t<span class="k">\'</span>ecnica del manejo y selecci<span class="k">\'</span>on de tipos, originalmente de plomo, para crear trabajos de impresi<span class="k">\'</span>ion<span class="p">}</span> <span class="k">\TeX</span>. <span class="k">\LaTeX</span> fue desarrollado originalmente por Leslie Lamport en <span class="p">$</span><span class="m">1984</span><span class="p">$</span> y se convirti<span class="k">\'</span>o en el m<span class="k">\'</span>etodo dominante para la manipulaci<span class="k">\'</span>on de <span class="k">\TeX</span>. La versi<span class="k">\'</span>on utilizada para generar este documento es <span class="k">\LaTeXe</span>.

<span class="k">\newline</span>

<span class="c">% The following code shows the quality of LaTeX typesetting</span>
<span class="p">$$</span><span class="nb">E</span><span class="o">=</span><span class="nb">mc</span><span class="p">^</span><span class="m">2</span><span class="p">$$</span>
<span class="p">$$</span><span class="nv">\oint</span><span class="nb"> F</span><span class="o">(</span><span class="nb">x</span><span class="o">)</span><span class="nb">dx</span><span class="p">$$</span>
<span class="p">$$</span><span class="nv">\iint</span><span class="nb"> </span><span class="nv">\Phi</span><span class="o">(</span><span class="nb">x, y</span><span class="o">)</span><span class="nb">dxdy</span><span class="p">$$</span>
<span class="p">$$</span><span class="nv">\begin</span><span class="p">{</span><span class="nb">matrix</span><span class="p">}</span><span class="nb">A</span><span class="nv">\xrightarrow</span><span class="p">{</span><span class="nv">\;\;\;</span><span class="nb">f</span><span class="nv">\;\;\;</span><span class="p">}</span><span class="nb">B</span><span class="nv">\\\pi\downarrow</span><span class="p">{</span><span class="nv">\;\;\;\;\;</span><span class="p">}</span><span class="nv">\;\;\;\uparrow</span><span class="p">{}</span><span class="nb"> </span><span class="nv">\phi\\</span><span class="nb">C</span><span class="nv">\xrightarrow</span><span class="p">{</span><span class="nv">\;\;\;</span><span class="nb">g</span><span class="nv">\;\;\;</span><span class="p">}</span><span class="nb">D</span><span class="nv">\end</span><span class="p">{</span><span class="nb">matrix</span><span class="p">}$$</span>

<span class="nt">\end{document}</span>
</code></pre></div></div> <p>This code will produce a document as in Figure #1.</p> <div class="row mt-3" style="text-align: center"> <div class="col-sm mt-3 mt-md-0"> <figure> <picture> <source class="responsive-img-srcset" media="(max-width: 480px)" srcset="/assets/img/Research/que-es-latex/2-480.webp"/> <source class="responsive-img-srcset" media="(max-width: 800px)" srcset="/assets/img/Research/que-es-latex/2-800.webp"/> <source class="responsive-img-srcset" media="(max-width: 1400px)" srcset="/assets/img/Research/que-es-latex/2-1400.webp"/> <img src="/assets/img/Research/que-es-latex/2.png" class="img-fluid rounded z-depth-1" width="auto" height="auto" onerror="this.onerror=null; $('.responsive-img-srcset').remove();"/> </picture> </figure> </div> </div> <div class="caption"> Figure #1: Example of a Latex document. </div>]]></content><author><name></name></author><category term="Innovation"/><category term="latex"/><category term="tools"/><summary type="html"><![CDATA[Latex is a language for high quality editing documents, especially oriented to book composition, scientific and technical documents, that include formulas and high quality images. It consists on a set of Tex macros (one low-level language) and has become almost a standard for scientific publications in areas such as mathematics, physics and engineering, since we can have finer control over any typographical appearance of the document.]]></summary></entry><entry><title type="html">AES Other attacks</title><link href="https://luissequeira.github.io/blog/2014/aes-other-attacks/" rel="alternate" type="text/html" title="AES Other attacks"/><published>2014-04-21T05:00:00+00:00</published><updated>2014-04-21T05:00:00+00:00</updated><id>https://luissequeira.github.io/blog/2014/aes-other-attacks</id><content type="html" xml:base="https://luissequeira.github.io/blog/2014/aes-other-attacks/"><![CDATA[<div class="row mt-3" style="text-align: center"> <div class="col-sm mt-3 mt-md-0"> <figure> <picture> <source class="responsive-img-srcset" media="(max-width: 480px)" srcset="/assets/img/Research/aes-otros-ataques/1-480.webp"/> <source class="responsive-img-srcset" media="(max-width: 800px)" srcset="/assets/img/Research/aes-otros-ataques/1-800.webp"/> <source class="responsive-img-srcset" media="(max-width: 1400px)" srcset="/assets/img/Research/aes-otros-ataques/1-1400.webp"/> <img src="/assets/img/Research/aes-otros-ataques/1.jpg" class="img-fluid rounded z-depth-1" width="auto" height="auto" onerror="this.onerror=null; $('.responsive-img-srcset').remove();"/> </picture> </figure> </div> </div> <p>It is clear that so far, <strong>none of the attacks carried out against full-AES has been successful</strong>, these attacks usually focus on reducing rounds. Many authors claim that none of the following types of attacks have been more effective than an exhaustive-key search:</p> <ul> <li>Linear cryptanalysis</li> <li>Differential Cryptanalysis</li> <li>Truncated diferencials</li> <li>Interpolation attacks</li> <li>Square attack</li> </ul> <p>However, the ordered structure and the deep mathematical basis that AES uses, make it an object of study for new attacks proposals such as algebraic attacks. These attacks consist on propose an equation system, and with the unknowns of the system, it can deduce the key; one of the advantages of this type of attack, is the small number of known texts needed.</p> <p>In 2002, Asiacrypt made a publication of Nicolas Courtois and Josef Pieprzyk [1] where they propose a theoretical model of AES, which ensure characterization it as a quadratic equations system, the system consists on \(8000\) equations with \(1600\) binary variables, however, the attack failed in trying to break AES, as Courtois mentioned in [2]. In addition, several cryptography experts have commented that there are mathematics problems behind the attack, the authors have probably made a mistake, despite this, considering the orderly shape and the mathematical complete structure of AES, it is possible that this type of cryptanalysis can become one of the most powerful to break AES.</p> <p>Other known publications are:</p> <ul> <li><strong>Impossible Differentials Attack</strong>: there is an attack of this type on \(5\) rounds of AES, requiring \(2^{29}\) chosen plaintext, \(2^{30}\) encryptions, \(2^{42}\) bytes of memory, \(2^{26}\) precalculus steps. These conditions were improved in [3] and [4] to achieve an attack on \(6\) rounds of AES.</li> <li><strong>Square Attack</strong>: is an attack aimed at a type of Rijndael algorithm, it has been designed based on bytes structures. Just the first such attack was made on the predecessor algorithm called <em>Square</em>. This attack can break Rijndael on \(6-7\) rounds, which may be upgraded to attack on \(9\) rounds of AES-256 with \(2^{77}\) plaintexts, \(2^{56}\) related keys and \(2^{224}\) encryptions [5].</li> <li><strong>Collision Attack</strong>: it tries to find two inputs that produce the same hash value, i.e., a hash collision. This attack affects all versions of AES, \(128\), \(192\) and \(256\) with \(7\) rounds [6].</li> </ul> <p>## References</p> <ol> <li>Nicolas C, Josef P. Cryptanalysis of Block Ciphers with Overdefined Systems of Equations. ASIACRYPT ‘02 Proceedings of the 8th International Conference on the Theory and Application of Cryptology and Information Security: Advances in Cryptology (2002), pp. 267-287.</li> <li><a href="http://www.cryptosystem.net/aes/">http://www.cryptosystem.net/aes/</a></li> <li>J H C, M K, K K, J L, S K. Improved Impossible Differential Cryptanalysis of Rijndael and Crypton. ICISC (2001) LNCS 2288: pp. 39-49.</li> <li>Raphael CP, M U S. Generalised impossible differentials of advanced encryption standard. IEE Electronics Letters (2001) Vol. 37, Issue 14: pp. 896-898.</li> <li>N F, J K, S L, B S, M S, D W, D W, D W. Improved cryptanalysis of Rijndael. FSE 00, LNCS 1978, pp. 213-230.</li> <li>H G, M M. A collision Attack on 7 rounds of Rijndael. AES3papers, pp. 2-11.</li> </ol>]]></content><author><name></name></author><category term="Innovation"/><category term="AES"/><category term="criptography"/><category term="simetrickey"/><category term="algorithm"/><category term="attack"/><category term="security"/><summary type="html"><![CDATA[It is clear that so far, none of the attacks carried out against full-AES has been successful, these attacks usually focus on reducing rounds. Many authors claim that none of the following types of attacks have been more effective than an exhaustive-key search.]]></summary></entry></feed>