A Internet do futuro 13ª Conferência sobre Redes de Computadores, CRC2013 Leiria, Portugal, 14-15 de Novembro de 2013 Atas da conferência Editores António Pereira Carlos Rabadão Patrício Domingues Vitor Fernandes Publicado por INSTITUTO POLITÉCNICO DE LEIRIA ISBN 978-972-8793-62-3 Créditos TÍTULO A Internet do futuro SUBTÍTULO 13ª Conferência sobre Redes de Computadores, CRC2013 Leiria, Portugal, 14-15 de Novembro de 2013 Atas da conferência EDITORES António Pereira Carlos Rabadão Patrício Domingues Vitor Fernandes Centro de Investigação em Informática e Comunicações do Instituto Politécnico de Leiria Departamento de Engenharia Informática, Escola Superior de Tecnologia e Gestão, Instituto Politécnico de Leiria EDIÇÃO, IMPRESSÃO E ACABAMENTOS Escola Superior de Tecnologia e Gestão, Instituto Politécnico de Leiria COPYRIGHT Instituto Politécnico de Leiria DEPÓSITO LEGAL 367128/13 ISBN 978-972-8793-62-3 WEB http://crc2013.dei.estg.ipleiria.pt Organização Presidentes Gerais António Pereira Patrício Domingues ESTG - Instituto Politécnico de Leiria ESTG - Instituto Politécnico de Leiria Presidentes da Comissão de Programa Carlos Rabadão Vítor Fernandes ESTG - Instituto Politécnico de Leiria ESTG - Instituto Politécnico de Leiria Comissão Coordenadora Alexandre Santos Edmundo Monteiro Rui Aguiar Teresa Vazão Universidade do Minho Universidade de Coimbra Universidade de Aveiro Instituto Superior Técnico Comissão Organizadora João Pereira Mário Antunes Miguel Frade Nuno Costa Paulo Loureiro ESTG - Instituto Politécnico de Leiria ESTG - Instituto Politécnico de Leiria ESTG - Instituto Politécnico de Leiria ESTG - Instituto Politécnico de Leiria ESTG - Instituto Politécnico de Leiria Comissão de Programa Adriano Moreira Alexandre Santos Álvaro Barradas Amaro de Sousa António Costa António Nogueira António Pereira Arnaldo Martins Augusto Casaca Bruno Dias Carlos Eduardo Pereira Carlos Miguel Ribeiro Carlos Ribeiro Carlos Salema Carlos Sá da Costa Carlos Serôdio Diogo Gomes Edmundo Monteiro Eduardo Cerqueira Fernando Boavida Fernando Ramos Fernando Velez Universidade do Minho Universidade do Minho Universidade do Algarve Universidade de Aveiro Universidade do Minho Universidade de Aveiro ESTG - Instituto Politécnico de Leiria Universidade de Aveiro Instituto Superior Técnico Universidade do Minho Universidade Federal do Rio Grande do Sul (Brasil) ESTG - Instituto Politécnico de Leiria Instituto Superior Técnico Instituto Superior Técnico ISCTE - Instituto Universitário de Lisboa Universidade de Trás os Montes e Alto Douro Universidade de Aveiro Universidade de Coimbra Universidade Federal do Pará (Brasil) Universidade de Coimbra Universidade de Lisboa Universidade da Beira Interior Gabriela Schütz Jânio Monteiro João Pereira Joaquim Ferreira Joaquim Macedo Joel Rodrigues Jorge Sá Silva José Alberto Fonseca José Legauteaux Martins José Luís Oliveira José Ruela Luís Almeida Luís Bernardo Luís Lino Ferreira Luís Rodrigues Manuel Ricardo Maria João Nicolau Marília Curado Mário Antunes Mário Freire Miguel Frade Nuno Costa Nuno Cota Noélia Correia Osvaldo Santos Patrício Domingues Paulo Carvalho Paulo Loureiro Paulo Mendes Paulo Pedreiras Paulo Pereira Paulo Pinto Paulo Portugal Paulo Salvador Paulo Simões Pedro Assunção Pedro Gonçalves Pedro Sousa Rui Aguiar Rui Lopes Salvador Abreu Silvana Meire Solange Rito Lima Susana Sargento Universidade do Algarve Universidade do Algarve ESTG - Instituto Politécnico de Leiria Universidade de Aveiro Universidade do Minho Universidade da Beira Interior Universidade de Coimbra Universidade de Aveiro Universidade Nova de Lisboa Universidade de Aveiro Faculdade de Engenharia da Universidade do Porto Universidade do Porto Universidade Nova de Lisboa Instituto Politécnico do Porto Instituto Superior Técnico Faculdade de Engenharia da Universidade do Porto Universidade do Minho Universidade de Coimbra ESTG - Instituto Politécnico de Leiria Universidade da Beira Interior ESTG - Instituto Politécnico de Leiria ESTG - Instituto Politécnico de Leiria Instituto Politécnico de Lisboa Universidade do Algarve Instituto Politécnico de Castelo Branco ESTG - Instituto Politécnico de Leiria Universidade do Minho ESTG - Instituto Politécnico de Leiria Universidade Lusófona Universidade de Aveiro Instituto Superior Técnico Universidade Nova de Lisboa Universidade do Porto Universidade de Aveiro Universidade de Coimbra ESTG - Instituto Politécnico de Leiria Universidade de Aveiro Universidade do Minho Universidade de Aveiro Instituto Politécnico de Bragança Universidade de Évora Universidade de Vigo (Espanha) Universidade do Minho Universidade de Aveiro Prefácio Foi com particular entusiasmo que o Centro de Investigação em Informática e Comunicações e o Departamento de Engenharia Informática da Escola Superior de Tecnologia e Gestão, do Instituto Politécnico de Leiria, organizaram e receberam a 13ª Conferência sobre Redes de Computadores – CRC2013. Desde o seu início, em 1998, a Conferência sobre Redes de Computadores tem-se assumido como um veículo por excelência para a divulgação de trabalhos de investigação, desenvolvimento e inovação na área das redes de computadores, constituindo um fórum para a partilha de experiências e a descoberta de interesses comuns entre a comunidade científica nacional. Tem-no feito seguindo uma política de proximidade com as comunidades científicas nacionais, tendo já sido realizada em Coimbra, Évora, Viseu, Covilhã, Faro, Bragança, Leiria, Portalegre, Oeiras, Braga e Aveiro. Nesta sua 13ª edição, dedicada ao tema “A Internet do Futuro”, a CRC tem por principal objetivo constituir-se num fórum nacional para a apresentação e discussão de resultados de investigação originais de elevada qualidade, orientados no sentido de mitigar os novos desafios colocados à Internet, e navegar rumo à Internet do Futuro. Privilegia-se nesta edição os trabalhos sobre novas tecnologias, capazes de responder a novos serviços e desafios, atuais e futuros, nomeadamente ao nível da segurança, da qualidade de serviço, da mobilidade, da gestão da rede, da escalabilidade e da sustentabilidade. Foram submetidos 32 trabalhos e, após cuidada revisão, foram selecionados 18 artigos de elevada qualidade que foram apresentados nas sessões temáticas em que a Conferência foi organizada – Eficiência energética e sustentabilidade, Serviços e aplicações para a Internet de futuro, Redes sensoriais e veiculares, Arquiteturas e tecnologias para funcionamento em rede, e Encaminhamento em redes – e que se encontram reunidos e editados neste livro de Atas. Adicionalmente, e para divulgação de trabalhos de I&D+i em curso, essencialmente associados a licenciaturas, mestrados e doutoramentos, incluem-se também 5 artigos curtos, em formato de resumo estendido. Expressam-se os agradecimentos a todos os que contribuíram para este processo, especialmente a todos os colegas da Comissão Científica de Programa da CRC2013, aos membros da Comissão Coordenadora das CRC, aos colegas do Centro de Investigação em Informática e Comunicações e do Departamento de Engenharia Informática da ESTG/IPLeiria, e a toda a Comissão Organizadora desta 13ª Conferência sobre Redes de Computadores. Expressa-se também um agradecimento especial ao INOV – INESC Inovação e aos cursos e estudantes dos cursos afetos ao Departamento de Engenharia Informática da ESTG/IPLeiria, por todo o apoio logístico prestado. Finalmente, um reconhecido agradecimento para todas as entidades e instituições que apoiaram esta CRC2013, concedendo outros contributos essenciais para elevar a qualidade desta Conferência. Para finalizar, esperamos que encontre nestas Atas um documento útil e atual, com novas ideias, resultados e descobertas no sentido de mitigar os novos desafios colocados à Internet, e de nos levar rumo à Internet do Futuro. Leiria, novembro de 2013 António Pereira Carlos Rabadão Patrício Domingues Vitor Fernandes Índice Sessão 1: Eficiência energética e sustentabilidade A Survey of Communication Technologies for the Low Voltage Distribution Segment in a Smart Grid ......................................................................................................................... 1 António Grilo, Paulo Rogério Pereira, Mário Serafim Nunes, Augusto Casaca Performance Analysis and Comparison between Legacy-PSM and U-APSD ................................. 7 Adriano Vinhas, Vitor Bernardo, Marilia Curado, Torsten Braunn Gestão de Cargas numa Micro Grid Utilizando Algoritmos Genéticos .......................................... 13 Jorge Eduardo, Pedro Cardoso, Jânio Monteiro Sessão 2: Serviços e aplicações para a Internet de futuro SDN Framework for Connectivity Services ........................................................................................ 19 Rafael Gouveia, João Aparício, João Soares, Bruno Parreira, Susana Sargento, Jorge Carapinha Framework e Cliente WebRTC ............................................................................................................. 25 Vasco Amaral, Solange Lima, Telma Mota, Paulo Chainho Testing Performance of MLP Neural Networks for Intrusion Detection with MATLAB .......... 33 José Quevedo, Rui Aguiar Configuração dinâmica em redes sem fios ........................................................................................... 39 Daniel Fuentes, António Pereira Sessão 3: Redes sensoriais e veiculares Encaminhamento com QoS para Redes Ad Hoc com rotas estáveis .............................................. 47 Tiago Coelho, António Costa, Maria João Nicolau, Joaquim Macedo Performance Evaluation of IEEE 802.11 Underwater Wireless Networks ................................... 53 Filipe Teixeira, José Quevedo, Rui Campos, Manuel Ricardo SILOS - A Simple Location Service for Vehicular Ad-hoc Networks ............................................ 59 André Camões, Teresa Vazão Sessão 4: Arquiteturas e tecnologias para funcionamento em rede Solução Aberta para uma Rede de Sondas de QoS na RCTS ........................................................... 65 Pedro Queiros, M. João Nicolau, Alexandre Santos Using Web10G for Service and Network Diversity Exploitation and Failure Recovery ............. 73 Filipe Ribeiro de Carvalho, José Legatheaux Martins Towards Widespread use of SCTP for the Future Internet .............................................................. 79 Bruno Sousa, Ricardo Santos, Marilia Curado A comparative analysis of IEEE 802.11 MAC layer mechanisms to handle real-time traffic in open communication environments ..................................................................................... 85 Robson Costa, Paulo Portugal, Francisco Vasques, Ricardo Moraes Sessão 5: Encaminhamento em redes Bayesian based selfish aware routing on Delay Tolerant Networks ................................................ 91 Ricardo Oliveira, António Costa, Joaquim Macedo, Maria Nicolau Recolha e Análise de Dados de Contactos Físicos e Sociais numa Rede Tolerante a Atrasos .... 97 João Antunes, António Costa, Joaquim Macedo Encaminhamento Multi-Caminho Baseado num Número Reduzido de Árvores ....................... 103 João Horta, Margarida Mamede, José Legatheaux Martins Encaminhamento IP Optimizado Através de uma Aproximação de Software Defined Networking ............................................................................................................................. 109 Alexandre Pinote, José Legatheaux Martins Sessão de posters Automatização de Testes SIP .............................................................................................................. 115 David Gonçalves, Nuno Sousa, António Amaral, António Costa Transmissão de vídeo com múltiplas descrições com débitos variáveis em canais multi-percurso com débito assimétrico .............................................................................................. 119 Pedro Correia, Pedro Assunção, Vítor Silva Web-browser Real Time Communication in IMS Systems ............................................................. 123 Rui Sábio, Fernando Silva, Carlos Rabadão, António Pereira Técnicas de classificação e detecção de tráfego para Voice over Internet Protocol (VoIP) ...... 127 Hugo Fonseca, Paulo Simões, Edmundo Monteiro, Tiago Cruz, José Silva, Pedro Gomes, Nuno Centeio Validação remota de aplicações de informática forense com recurso a dongles por USB/IP ... 131 Albano Afonso, Mário Antunes, Filipe Pinto A Survey of Communication Technologies for the Low Voltage Distribution Segment in a Smart Grid António Grilo, Paulo Rogério Pereira, Mário Serafim Nunes, Augusto Casaca Inesc-ID/Inesc INOV, Instituto Superior Técnico, Universidade de Lisboa, Rua Alves Redol, nº 9, 1000-029 Lisboa, Portugal. e-mails: {antonio.grilo, prbp, mario.nunes, augusto.casaca}@inesc.pt Abstract—This paper presents a survey of technologies for data transmission in an electricity distribution network between the controllers at the electrical secondary substations and the home equipment. The selected technologies can be used for implementation of advanced monitoring and control functionalities in the Low Voltage (LV) network of the electricity distribution system within the smart grid paradigm. Keywords—Smart Grid, PLC, RF Mesh,Wireless. I. INTRODUCTION support for the Smart Grid functionalities. However, given the dimension, complexity and scenario diversity of the Smart Grid, it is doubtful that the market will converge to a single winner, since all technologies have advantages and disadvantages with respect to this or that evaluation metric or scenario peculiarity. In fact, some published papers consider the possibility of integrating several technologies, from lowrate short-range wireless communications to fiber optic segments capable of aggregating data rates in the order of Mbit/s or Gbit/s spanning distances in the order of many kilometers [1][2][3]. In the recent past, the concept of Smart Grid has gained relevance as a paradigm for the future energy grids. This concept spans all levels of the energy business model, comprising the generation, transport, distribution and consumption of energy. However, this paper only deals with the Low Voltage (LV) distribution segment. The communication network that overlays the LV distribution segment of the Smart Grid is the LV Distribution Network (LVDN). The main components and interfaces related with the LVDN functionality are depicted in Fig. 1. The top level comprises the Energy Management System (EMS), which supervise, manage and control the energy infrastructure based on the gathered metering and energy infrastructure status data. The mid-level corresponds to the Local Controller near the MV/LV power transformer in the secondary substation, which provides concentration of data from LVDN. It is capable of automation, fault detection, event reporting and also quality of supply monitoring. The data that is collected by the Local Controller is typically sent to the EMS through a Wide Area Network (WAN). The lower level comprises the LVDN properly said, which interconnects sensors and actuators attached to LV infrastructure devices, as well as the Energy Meters (EMs) located at the customers’ houses, to the Local Controller. Adding sensors to the LV infrastructure allows new metering, automation and management of the energy network functionalities, as well as location of faults and increased energy efficiency, among other applications. The EM provides metering and contractual functions, and enables micro-generation integration and control. Through a wireless Home Area Network (HAN), the EM can monitor and control energy devices inside a house. The producer/consumer (prosumer) can interact with the EM through a local interface. Several communication technologies have been presented in the literature as candidates to provide the underlying A Internet do futuro Fig. 1. Smart Grid Communication Infrastructure. This paper presents a state-of-the-art of the communication technologies that are relevant for monitoring and intelligent control of the LVDN under the MONITOR-BT project, partially supported by the QREN program. MONITOR-BT aims to sense and monitor utility’s field devices, as well as to control micro-generation equipment at the customer premises, with both of them being located in the LV section of the electricity distribution grid. In terms of the architecture, this corresponds mainly to the LVDN section of the communications infrastructure. Although some of the sensor data is to be remotely monitored by the EMS – which also involves the Wide Area Network (WAN) – the project shall here rely on existing communications infrastructure. This 1 state-of-the-art will thus restrict its scope to the technologies that are considered suitable for LVDN deployment: • • • Power Line Communications (PLC); Infrastructure-based Wireless Networks; Radiofrequency Mesh (RF-Mesh) networks. The reasons why these groups of technologies are more relevant in this case, have mainly to do with the following factors: • Since LVDN is already located at the edge of the Smart Grid, the amount of traffic is much lower in comparison with the WAN, since the latter must aggregate traffic from several LV islands. • For cost-effectiveness reasons, the footprint of the communications network in terms of additional equipment and/or requirement for changes in existing grid equipment must be minimized. Wireless technologies avoid the deployment of cabled infrastructure (RF-Mesh) or employ existing infrastructure from a telecom operator (Public Land Mobile Network – PLMN). On the other hand, PLC also avoids the deployment of cabled infrastructure, since the latter already exists in the electricity grid. This paper presents an analysis of these three groups of candidate technologies, presenting their advantages, disadvantages and constraints. II. ANALYSIS OF TECHNOLOGIES A. Power Line Communications (PLC) Power Line Communications (PLC) technology is used since the 1950s by the electricity distribution companies in order to remotely perform some control functions on electric network equipment [4]. Recently, this technology has earned more relevance because the technology evolution has led to an increase of the achieved data rates, both in medium and low voltage. The advantage of PLC comes from the fact that it uses the same infrastructure for both energy distribution and communications, which greatly reduces the deployment costs. The PLC systems are usually classified according to three different bandwidth classes: Ultra Narrowband (UNB), Narrowband (NB) and Broadband (BB) [5][6]. Although the attained data rates and ranges are highly dependent on the specific characteristics and transient conditions of the network (e.g., the impedance is highly dependent on the number and characteristics of attached electrical devices), some approximate figures shall be provided as a reference to allow a better comparison between the different classes. The UNB-PLC systems operate in the Very Low Frequency (VLF) band, which corresponds to 0.3-3.0 kHz. The attained bit rates are usually in the order of 100 bit/s, with ranges of up to 150 km. The relevant UNB-PLC applications comprise Automatic Meter Reading (AMR), and fault detection in the distribution grid, as well as voltage monitoring. 2 The NB systems operate in the Low Frequency (LF) band, which corresponds to 3-500 kHz. In Europe, the European Committee for Electrotechnical Standardization (CENELEC) has defined four frequency bands for PLC use: CENELEC-A (3-95 kHz), CENELEC-B (95-125 kHz), CENELEC-C (125140 kHz) and CENELEC-D (140-148.5 kHz). CENELEC-A is reserved for exclusive use by energy providers, while CENELEC-B, CENELEC-C and CENELEC-D are open for end user applications. In NB-PLC, the attained data rates span from a few kbit/s to around 800 kbit/s – depending on the technology, bandwidth and channel conditions –, while the range is in the order of some kilometers. Some standards for Building Automation Applications (BAA), such as BacNet (ISO 16484-5) and LonTalk (ISO/IEC 14908-3), employ NBPLC with a single carrier. The IEC 61334 standard for lowspeed reliable power line communications by electricity meters, water meters and SCADA, uses the 60-76 kHz frequency band, being able to achieve 1.2-2.4 kbit/s with Spread Frequency Shift Keying (S-FSK) modulation. Yitran Communications Ltd. and Renesas Technology provide solutions based on Differential Chaos Shift Keying (DCSK) – a form of Direct-Sequence Spread Spectrum (DSSS) –, which are able to achieve bitrates as high as 60 kbit/s in the CENELEC-A band. On the other hand, PoweRline Intelligent Metering Evolution (PRIME)1 and G32 are multi-carrier systems based on Orthogonal Frequency Division Multiplexing (OFDM), which allows them to support higher data rates. PRIME operates within the CENELEC-A frequency band, more specifically in the 42–89 kHz range, and is able to achieve 21-128 kbit/s. G3 may operate in the CENELEC-A and CENELEC-B bands, being able to achieve 2.4-46 kbit/s. The G3-PLC MAC layer is based on the IEEE 802.15.4 MAC. In order to unify the OFDM-based NB-PLC systems, ITU has approved recommendations G.9955 (G.hnem physical layer) [7] and G.9956 (G.hnem data link layer) [8], while IEEE has approved recommendation P1901.2 [9]. BB-PLC systems operate in the High Frequency (HF) and Very High Frequency (VHF) bands, which corresponds to 1.8250 MHz. The achievable data rates may be as high as 500 Mbit/s, but the range is significantly shorter than for NB-PLC. Consequently, BB-PLC is normally used for local connectivity in the HAN or as a broadband access technology. The most recent BB-PLC standards are IEEE P1901 (also designated Broadband Over Power Line – BPL)3 and ITU G.996x (G.hn), which are based on OFDM. The ITU G.9963 recommendation [10] also incorporates some MIMO concepts through the use of multiple cables. Despite the advantages of PLC for Smart Grid applications, namely the reduced costs and easier management of a single infrastructure (i.e. energy distribution plus communications in a single network), PLC faces some obstacles and challenges, which are often similar to the ones faced by RF-Mesh (see below): 1 PoweRline Intelligent Metering Evolution: http://www.prime-alliance.org 2 http://www.maxim-ic.com/products/powerline/g3-plc 3 IEEE P1901 is based on the HomePlug AV system developed by the HomePlug Powerline Alliance. Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 • • The shared medium is subject to significant attenuation and noise, which limit the data rates and ranges that can be effectively achieved. A failure in the energy distribution infrastructure usually means that the communications cannot take place while the malfunction rests unresolved, which may negatively affect some applications. Another consequence of the latter is that a communications failure may be wrongly interpreted as a malfunction in the energy distribution infrastructure. B. Infrastructure-based Wireless Networks The technologies that fall within the Infrastructure-based Wireless Networks category rely on a fixed infrastructure of base stations, together with switching equipment and management systems, in order to provide wide coverage communication service to the end user. Fixed wireless access and mobile cellular networks, both fit into this category. The WiMAX technology is defined in the IEEE 802.16 standard for fixed and mobile broadband wireless access [11], being able to achieve a coverage range in the order of 50 km and data rates in the order of tens or even hundreds of Mbit/s. Despite its advantages, the widespread adoption of Long Term Evolution (LTE) by mobile operators has brought down the initial popularity that WiMax was, for some time, able to enjoy. Moreover, the lack of WiMax networks and operators in Portugal constitute significant obstacles to the adoption of this technology to support Smart Grid functionalities in this country, since the energy provider would have to deploy its own WiMax infrastructure. IEEE 802.16 shall be addressed again in this paper, but in the context of RF-Mesh technologies. The mobile cellular communications technologies divide the covered territory into smaller areas designated cells, each served by a base station. If the base station is equipped with directional antennas, the cell may be further sectorized, which increases the frequency reuse and hence its capacity to support more users. Before a call is established, the mobile user terminal is tracked as it moves between different sectors or cells, allowing the mobile terminal to be paged at any time. Moreover, handover signaling procedures allow the user to move even while a call is taking place. Mobile cellular technologies have already spanned two digital generations starting on the 2nd Generation (2G) and are already in their fourth generation. Examples of 2G technologies available in Europe (and Portugal in particular) are Global System for Mobile Communications / General Packet Radio Service (GSM/GPRS) and Terrestrial Trunked Radio (TETRA). GPRS is the packet switched complement of GSM and supports effective data rates up to 177.6 kbit/s in the downlink and 118.4 kbit/s in the uplink. The effective data rate depends on the required error protection, class of terminal and sharing with other users using the same frequency channel. The TETRA technology is primarily used by security and civilian protection entities, as well as transportation services, due to the support of specific functionalities like direct mode operation and group calls. The supported data rates span from A Internet do futuro 2.4 kbit/s to 28 kbit/s, depending on the required error protection and channel allocation. The 3rd Generation (3G) arrived in the beginning of this century with the Universal Mobile Telecommunications System (UMTS), which offered 2 Mbit/s (shared) in urban areas. UMTS suffered a number of upgrades to increase the supported data rates, namely the High-Speed Downlink Packet Access+ (HSDPA) and HSDPA+ for the downlink, and HighSpeed Uplink Packet Access (HSUPA) for the uplink. HSDPA can support data rates up to 42 Mbit/s, though later releases specify data rates up to 337 Mbit/s with HSDPA+. In the opposite direction, HSUPA may support data rates up to 23 Mbit/s, though existing mobile operators might offer a lower value. CDMA450 is also a 3G technology, based on the adaptation of the American standard CDMA2000 to operate in the 450-470 MHz frequency band. The supported total bitrates depend on the specific mode of operation. For Multicarrier EV-DO, overall bitrates may be as high as 9.3 Mbit/s for downlink and 5.4 Mbit/s for uplink, with average rates per user in the order of 1.8-4.2 Mbit/s for downlink and 1.5-2.4 Mbit/s for uplink. This technology was offered in Portugal by the Zapp operator until 2011, being abandoned afterwards. This means that in order to use CDMA450 as a Smart Grid infrastructure, the utility will have to deploy its own network infrastructure, like for WiMax. Currently, most European mobile operators already offer LTE, including the Portuguese mobile operators. Although marketed as 4G, LTE does not satisfy yet all the 4G requirements defined by 3GPP. LTE employs Orthogonal Frequency Division Multiple Access (OFDMA) in the downlink and Single-Carrier Frequency Division Multiple Access (SC-FDMA) in the uplink. Supported peak data rates are 299.6 Mbit/s for the downlink and 75.4 Mbit/s for the uplink. Given their proven reliability, technology maturity and extensive coverage, mobile cellular networks constitute important candidates to support the Smart Grid communications infrastructure, being used already in applications such as Automatic Meter Reading (AMR). However, these technologies face the following challenges: • The difficulties related with radiofrequency (RF) penetration inside buildings constitute sometimes an obstacle for its use in some Smart Grid applications, namely AMR. • The fact that the mobile cellular network is most of the time managed by an external operator, means that the utility will have to pay the latter for the provisioning of communications services. Alternatively, the utility might deploy its own communications infrastructure (e.g., WiMax or CDMA450), though that would certainly constitute a substantial investment on communication systems. C. Radiofrequency Mesh (RF-Mesh) An RF-Mesh is a network formed by RF capable nodes, which are self-organized in a mesh topology [12][13][14]. 3 This self-organization capability brings several advantages in the context of Smart Grid communications, namely deployment flexibility and automatic connection reestablishment and topology reconfiguration in the presence of link or node failure. This explains why this family of technologies is so popular in the USA, where it is used to support Smart Metering applications. Within the RF-Mesh family, we can distinguish between broadband and narrowband technologies. The most representative broadband technologies are currently WiFi [15] and IEEE 802.16j [16]. Even if the IEEE 802.11s mesh extension is not used, IEEE 802.11 can be configured to operate as a mesh by performing ad-hoc routing at the network layer (e.g., IP layer). These technologies support communication ranges in the order of hundreds (IEEE 802.11) or thousands (IEEE 802.16) of meters, as well as high data rates in the order of Mbit/s, which makes them multimedia capable. Besides physical and Medium Access Control (MAC) aspects, IEEE 802.11s specifies the routing protocol, which is the Hybrid Wireless Mesh Protocol (HWMP). The latter is a hybrid between a tree routing protocol and the Ad-hoc On-Demand Distance Vector (AODV) protocol [17]. In case IEEE 802.11 is used without the mesh extension, a myriad of routing protocols such as AODV, Optimized Link State Routing Protocol (OLSR) [18], or Routing Protocol for Low-Power and Lossy Networks (RPL) [19] can be used at the network layer. As to IEEE 802.16j, it does not specify how the path evaluation and selection is done, there being freedom for manufacturer specific implementations. However, it constrains the topology to be tree based. Although the high bitrates supported by broadband RF-Mesh allow the support of virtually any Smart Grid applications, both real-time and non-real-time, these technologies also have some disadvantages that can hinder their global applicability: • Broadband communications means operating at higher frequencies, which are more vulnerable to path loss and other causes of signal attenuation. • Broadband RF-Mesh transceivers often present higher energy consumption in comparison with narrowband RFMesh. This is made even worse by the need to increase the transmit power in order to compensate for path loss and attenuation. The deployment of a huge number of nodes means that the energy overhead introduced by the Smart Grid communications may start to be nonnegligible. • High bitrates demand a corresponding processing and storage capacity to be available on the network nodes, which will likely be translated into an increase of the unit cost. • The deployment of these technologies by the utility requires the choice of the operating frequency. IEEE 802.11 operates mainly on the unlicensed bands of 2.4 GHz or 5 GHz. The 2.4 GHz band is cluttered, since it is subject to the interference of both private and public WLANs. On the other hand, the 5 GHz band has a reduced range for the same transmit power. IEEE 802.16 4 supports frequency bands between 2 GHz and 66 GHz, both licensed and unlicensed. Besides the problems related with spectrum occupancy, the use of unlicensed bands also raises the problem of communications security. On the other hand, the use of licensed bands usually represents additional costs for the utility. The narrowband RF Mesh technologies correspond to those that belong to the Wireless Sensor Network (WSN) and Internet of Things (IoT) domains. These are usually characterized by simpler hardware and operating systems, leading to a lower unit cost [13]. The lower power consumption that characterizes these technologies allows greater autonomy and effectiveness of energy harvesting techniques, which can feed the network nodes in case they cannot be directly fed by the LV network. In the context of WSNs, the IEEE 802.15.4 standard is nowadays prominent, constituting the basis (PHY and MAC layers) of several protocol stacks such as ZigBee, WirelessHART, ISA100.11a and IoT, which are recommended for industrial and Smart Utility Networks (SUN) applications [14]. The IEEE 802.15.4 MAC protocol is based on Carrier Sense Multiple Access with Collision Avoidance (CSMA/CA), but also includes an optional Time Division Multiple Access (TDMA) operational mode. The latter is reserved for traffic that requires stringent access delay guarantees. While the original IEEE 802.15.4 standard restricted operation to the unlicensed frequency bands of 868870 MHz (Europe), 902-928 MHz (USA) and 2.4 GHz, the IEEE 802.15.4g standard for SUN extends the set of supported Ultra-High Frequency (UHF) bands, adds new transmission modes (e.g., OFDM) and extends the MAC layer functionalities to allow the efficient and fair coexistence of networks using different transmission modes within the same frequency range. IEEE 802.15.14g can achieve a maximum bitrate of 1094 kbit/s and maximum ranges in the order of tens of kilometers. ZigBee is a standard protocol stack brought forth by the ZigBee Alliance consortium, which includes IEEE 802.15.4 at the lower layers, but defining its own network and application support layers. ZigBee, together with its ZigBee Smart Energy application profile, were defined by the National Institute of Standards and Technology (NIST) in USA as standards for communications within the Home Area Network (HAN) domain of the Smart Grid [20]. ZigBee was also selected by many energy companies as the communication technology for smart meters, since it provides a standard platform for data exchange between the latter and HAN devices [21]. The functionalities supported by the Smart Energy profile include load management, AMR, real-time billing and text messaging [22]. The ZigBee Alliance also developed an IP networking specification called ZigBee IP which is based on existing IETF protocols defined for IoT (see below). The ZigBee Smart Energy version 2.0 specifications already make use of ZigBee IP. It is an enhancement of the ZigBee Smart Energy version 1 specifications, adding services for plug-in electric vehicle (PEV) charging, installation, configuration and firmware download, prepaid services, user information and messaging, load control, demand response and common information and application profile interfaces for wired and Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 wireless networks. The application function sets implemented in this release were mapped to the IEC Common Information Model [23]. WirelessHART [24] is another protocol stack, based on a TDMA MAC protocol implemented over IEEE 802.15.4. It was developed as an adaptation of the HART protocol defined for wired industrial networks. While it was initially developed by a private consortium, the stack was standardized by the International Electrotechnical Commission (IEC) as IEC 62591. ISA100.11a is a standard protocol stack developed by the International Society for Automation (ISA), which is functionally very similar to WirelessHART [14]. In the meantime, IETF has defined a protocol stack adapted to the characteristics of the IoT, which is suitable to support Smart Grid applications in a way that is more compatible with the standard Internet protocol stack [25]. The core of the IoT protocol stack is IPv6 over Low power WPAN (6LoWPAN), which specifies how to support the IPv6 protocol over low bitrate wireless technologies, such as IEEE 802.15.4. 6LoWPAN specifies the protocols and procedures needed for address assignment and deconfliction, Ipv6 and higher layer header compression and fragmentation. Energy efficiency lies at the core of 6LoWPAN. Header compression exploits the redundancy between the MAC and IPv6 header fields – namely the addresses –, and/or simplifies the range of IPv6 header field value options in order to achieve higher compression rates. Regarding the routing function, the Routing Over Low power and Lossy networks (ROLL) group in IETF has specified the already mentioned RPL protocol [19]. RPL is based on the formation of routing trees designated Destination Oriented Directed Acyclic Graphs (DODAGs), supporting the overlapping between two or more of these, possibly with different root nodes. RPL is designed to minimize the routing overhead in stable networks, which is done by increasing the routing message period exponentially when there are no topology changes. On the other hand, the protocol keeps its responsiveness to topology changes by restoring the initial routing update period once a topology change is detected. As already seen, ZigBee Smart Energy version 2.0 takes advantage of these IP-oriented functionalities. Besides the standard RF Mesh solutions described above, there are a number of proprietary RF Mesh solutions that were developed in the USA and have been enjoying significant popularity among energy operators. These products usually operate within the ISM frequency band of 902-928 MHz and employ Frequency Hop Spread Spectrum (FHSS) to increase the robustness and security of the links, namely to prevent jamming attacks and interference from other equipment operating in the same ISM band. Offered bitrates range between 9.6 kbit/s and 300 kbit/s, with ranges in the order of 2 km with 1 W of transmit power. An example is the Landis+Gyr’s Gridstream, which employs a proprietary geographical based routing protocol in order to minimize the routing overhead [12]. Another example is the Silver Spring Networks solution [26]. and use of less cluttered ISM frequency bands such as the 900 MHz in the USA and 868 MHz in Europe. The main disadvantage is, of course, the reduced bitrates as compared with broadband RF Mesh solutions. Some additional disadvantages can be identified for RF Mesh solutions in general, which are the following: • Performance is highly dependent on the propagation and interference environment. • Depending on the scenario and inter-node distances, the deployment of additional relay nodes may be needed, which adds to the deployment costs. • Wireless communications propagate through a shared medium, which poses some threats in terms of security. The protocol stack must implement security mechanisms that are able to meet the requirements of the Smart Grid applications. These requirements are often different from application to application. It should be noted that the European Utilities Telecom Council (EUTC) is seeking to reserve 6 MHz in the 450-470 MHz frequency band for use by grid utility operators, together with a frequency band above 1 GHz (e.g., 1.5 GHz band spanning 10 MHz) [27]. In this way, both low rate and high rate applications would be supported. III. COMPARATIVE ANALYSIS AND CONCLUSION The previous section presented the state-of-the-art of communication technologies for the LVDN. Three types of communication technologies were analyzed: PLC, Infrastructure-based Wireless Networks and RF-Mesh. The main characteristics of these technologies are listed in Table I in order to facilitate the comparison. From the table, it can be concluded that narrowband RFMesh and NB-PLC offer the best compromise between bit rate, range and cost, especially if the supported Smart Grid services require only a low bit rate. Mobile cellular solutions are easy to deploy, since mobile cellular coverage is very extensive. However, this communication service must be paid to the operator, which may result into significant operational costs. One possible adequate solution for deployment in the LVDN might be an RF Mesh based on a Narrowband (IEEE 802.15.4g) radio, such as the XbeePro operating on the 869.4869.65 MHz band [28] as it allows 500 mW transmission power, medium range and standard radio. RF Mesh Narrowband does not require hiring the services of an operator (unlike a mobile cellular solution) and it can be designed to be fault tolerant (at least temporarily) to failures in the energy grid (unlike PLC) if nodes are capable of energy storage (through a small battery or supercapacitors). However, RF Mesh may be affected by radio communication problems. Consequently, the integration of different technologies can bring many advantages, increasing the robustness and reliability of the Smart Grid. The advantages of narrowband RF Mesh solutions are mostly related with deployment flexibility, increased range A Internet do futuro 5 TABLE I Type PLC Infrastructurebased Wireless Networks5 COMPARISON OF COMMUNICATION TECHNOLOGIES FOR THE LVDN IN A SMART GRID Subtype CAPEX UNB Low NB Low 2.5G (GPRS) Low 3G (HSDPA, HSUPA) Low 4G (WiMAX, LTE) Low Broadband (IEEE 802.11n/s) Narrowband (Silver Spring RF Mesh Networks) Maximum Bit rate Negligible 100 bit/s 128 kbit/s Negligible (CENELECA) 177.6 kbit/s downlink High 118.4 kbit/s uplink 42 Mbit/s downlink High 5.76 Mbit/s uplink 299.6 Mbit/s downlink High 75.4 Mbit/s uplink OPEX [7] Range4 150 km [8] Several km [9] Coverage dependent [10] Coverage dependent [11] Coverage dependent [12] High Negligible 600 Mbit/s Hundreds of meters High High (if license is required from ANACOM) 100 kbit/s Several km [14] [15] 1094 kbit/s Several km (e.g., XbeePro 868 @ 24 kbit/s) Narrowband (IEEE Medium 802.15.4g) Negligible [13] [16] ACKNOWLEDGEMENT This work was partially supported by national funding from QREN through the “Monitorização e controlo inteligente da rede de Baixa Tensão” (MONITOR BT) project and by FCT – Fundação para a Ciência e a Tecnologia, under project PEst-OE/EEI/LA0021/2013. [17] [18] [19] [20] REFERENCES [1] [2] [3] [4] [5] [6] N. Saputro, K. Akkaya, S. Uludag, “A Survey of Routing Protocols for Smart Grid Communications,” Computer Networks, Elsevier, 56 (2012), pp. 2742–2771, 2012. X. Fang, S. Misra, G. Xue, D. Yang, “Smart Grid – The New and Improved Power Grid: A Survey,” IEEE Communications Surveys & Tutorials (COMST), 14(4): 944-980, IEEE, 4th Quarter 2012. Z. Fan, P. Kulkarni, S. Gormus, C. Efthymiou, G. Kalogridis, M. Sooriyabandara, Z. Zhu, S. Lambotharan, W. Chin, “Smart Grid Communications: Overview of Research Challenges, Solutions, and Standardization Activities,” IEEE Communications Surveys & Tutorials (COMST), 15(1):21-38, IEEE, 1st Quarter 2013. I. H. Cavdar, “A solution to remote detection of illegal electricity usage via power line communications,” IEEE Transactions on Power Delivery, October 2004. M. Nassar, Y. Mortazavi, I. Kim, “Local Utility Powerline Communications in the 3-500 kHz Band: Channel Impairments, Noise, and Standards,” IEEE Signal Processing Magazine, IEEE, July 2012 (to appear.) H. Ferreira, L. Lampe, J. Newbury, and T. Swart. Power line communications: Theory and applications for narrowband and [21] [22] [23] [24] [25] [26] [27] [28] 4 5 Maximum ranges are usually achieved with the lowest bitrates only. It is assumed that the Infrastructure-based Wireless Network Service is hired from an operator. 6 broadband communications over power lines. John Wiley and Sons, 2010. ITU-T G.9955, “Narrowband orthogonal frequency division multiplexing power line communication transceivers – Physical layer specification”, ITU-T, December 2011. ITU-T G.9956, “Narrowband orthogonal frequency division multiplexing power line communication transceivers – Data link layer specification”, ITU-T, November 2011. IEEE P1901.2, “IEEE Draft Standard for Low Frequency (less than 500 kHz) Narrow Band Power Line Communications for Smart Grid Applications”, IEEE, approved Project Authorization Request, March 2010. ITU-T G.9963, “Unified high-speed wireline-based home networking transceivers – Multiple input/multiple output specification”, ITU-T, December 2011. IEEE 802.16-2009, “IEEE Standard for Local and metropolitan area networks Part 16: Air Interface for Broadband Wireless Access Systems”, IEEE, May 2009. B. Lichtensteiger et al, “RF Mesh Systems for Smart Metering: System Architecture and Performance,” IEEE SmartGridComm 2010. V. Gungor, B. Lu, G. Hancke, “Opportunities and Challenges of Wireless Sensor Networks in Smart Grid,” IEEE Transactions on Industrial Electronics, IEEE, vol. 57, no. 10, October 2010. B. Akyol, H. Kirkham, S. Clements, and M. Hadley. “A survey of wireless communications for the electric power system,” Prepared for the U.S. Department of Energy, 2010. IEEE 802.11-2012, “IEEE Standard for Information technology– Telecommunications and information exchange between systems Local and metropolitan area networks–Specific requirements Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications”, IEEE, March 2012. IEEE 802.16j, “IEEE Standard for Local and metropolitan area networks Part 16: Air Interface for Broadband Wireless Access Systems Amendment 1: Multihop Relay Specification”, IEEE, June 2009. C. Perkins et al., “Ad hoc On-Demand Distance Vector (AODV) Routing”, RFC 3561, IETF, July 2003. T. Clausen, P. Jacquet, “Optimized Link State Routing Protocol (OLSR)”, RFC 3626, IETF, October 2003. T. Winter et al., “RPL: Ipv6 Routing Protocol for Low-Power and Lossy Networks”, RFC 6550, IETF, March 2012. National Institute of Standards and Technology. NIST Framework and roadmap for smart grid interoperability standards, release 1.0, http://www.nist.gov/public_affairs/releases/upload/smartgrid_interopera bility_final.pdf, January 2010. H. Farhangi, “The path of the smart grid”, IEEE Power & Energy Magazine, 8(1):18–28, 2010. P. Yi, A. Iwayemi, and C. Zhou, “Developing ZigBee deployment guideline under WiFi interference for smart grid applications”, IEEE Transactions on Smart Grid, 2(1):110–120, 2011. IEC 61970-301, “Energy management system application program interface (EMS-API) – Part 301: Common Information Model (CIM) Base”, IEC, Edition 1.0, November 2003. IEC 62591, “Industrial communication networks – Wireless communication network and communication profiles – WirelessHART™”, IEC, Edition 1.0, April 2010. P. Kulkarni, S. Gormus, Z. Fan, B. Motz, “A Mesh-Radio-Based Solution for Smart Metering Networks,” IEEE Communications Magazine, IEEE, July 2012. Silver Spring Networks, “Smart Grid Standards”, whitepaper, 09/04/2012. EUTC, “Spectrum needs for Utilities”, EUTC position paper, http://eutc.org/system/files/UTC_private_file/EUTC%20Spectrum%20P osition%20Paper-9April2013.pdf, last access 5/09/2013. XBeePro 868, http://www.digi.com/products/wireless-wired-embeddedsolutions/zigbee-rf-modules/point-multipoint-rfmodules/xbee-pro-868, last access 6/09/2013 Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 Performance Analysis and Comparison between Legacy-PSM and U-APSD Adriano Vinhas∗ , Vitor Bernardo∗ , Marilia Curado∗ , Torsten Braun† ∗ Center for Informatics and Systems, University of Coimbra, Coimbra, Portugal {avinhas,vmbern,marilia}@dei.uc.pt † Institute for Computer Science and Applied Mathematics, University of Bern, Bern, Switzerland [email protected] Abstract—This paper evaluates the performance of the most popular power saving mechanisms defined in the IEEE 802.11 standard, namely the Power Save Mode (Legacy-PSM) and the Unscheduled Automatic Power Save Delivery (U-APSD). The assessment comprises a detailed study concerning energy efficiency and capability to guarantee the required Quality of Service (QoS) for a certain application. The results, obtained in the OMNeT++ simulator, showed that U-APSD is more energy efficient than Legacy-PSM without compromising the end-toend delay. Both U-APSD and Legacy-PSM revealed capability to guarantee the application QoS requirements in all the studied scenarios. However, unlike U-APSD, when Legacy-PSM is used in the presence of QoS demanding applications, all the stations connected to the network through the same access point will consume noticeable additional energy. Index Terms—IEEE 802.11, Energy Efficiency, Power Save Mode, U-APSD I. I NTRODUCTION The usage of Wireless Local Area Networks (WLANs) has become more and more popular worldwide, since they have low maintenance and deployment costs while offering a good performance (e.g., throughput and coverage) to the end-users. The IEEE 802.11 [1] family is the most used WLAN technology. The actual IEEE 802.11 public and private infrastructure is well disseminated, leading mobile phone vendors’ to include this technology in almost all devices. The IEEE 802.11 proliferation, together with the more developed cellular networks available, has contributed to the growth of traffic generated by mobile devices [2]. However, the increasing growth of this kind of traffic revealed that mobile phones with IEEE 802.11 capabilities require a higher device’s energy consumption [3], prooving that the use of WLAN capabilities in a mobile device has direct impact on its battery lifetime. This limitation is mainly due to the original design and goals of the IEEE 802.11 standard, where the energy constraints were not fully taken into account. The usage of IEEE 802.11 in battery powered devices raises new challenges regarding energy consumption. Aiming at solving these issues, the IEEE 802.11 standard [1] specifies a Power Save Mode (referred as Legacy-PSM in this paper) which allows the device to commute between active and doze states. In the former, the device is able to send and receive data, while in the latter it can not communicate with the A Internet do futuro network. When operating in active state, the device consumes more energy than in sleep state. In fact, the values of energy consumption in sleep state are almost negligible [4]. The Legacy-PSM can perform well for non real-time applications, but several limitations were identified using realtime applications, namely Video Streaming and Voice over IP (VoIP), which are the most popular applications among mobile end-users [2]. The Legacy-PSM specified in IEEE 802.11 is not able to guarantee the Quality of Service (QoS) required by these applications. Later, with the introduction of QoS support in the standard (IEEE 802.11e [5]), a new mechanism that uses power saving techniques while guaranteeing the QoS requirements was proposed. This mechanism was named Unscheduled Automatic Power Save Delivery (U-APSD) and must be used within the QoS-aware IEEE 802.11 MAC layer, the Enhanced Distributed Channel Access (EDCA). This work aims to study IEEE 802.11 power saving mechanisms performance by comparing the most popular power save schemes, namely Legacy-PSM and U-APSD. Additionally, this assessment takes also into consideration the application QoS requirements, evaluating the feasibility of employing power save mechanisms in scenarios where QoS guarantees are required. The studied power saving algorithms were implemented in the OMNeT++ simulator, and the performance comparison between them includes the study of Quality of Service related metrics (e.g., end-to-end delay) and energy consumption. The analysis includes scenarios with multiple parameters, ranging from the network level (e.g., distinct packet sizes) to algorithm specific parameters variation, such as wake up period. The remaining of this paper is organized as follows. Section II describes the IEEE 802.11 power saving mechanisms in study, followed by the related work discussion in Section III. Section IV depicts the performance evaluation scenario and conditions, and discusses obtained results. Finally, Section V concludes the paper. II. IEEE 802.11 P OWER S AVING M ECHANISMS This section describes the IEEE 802.11 Legacy Power Save Mode (Legacy-PSM) and Unscheduled Automatic Power Save Delivery (U-APSD) power saving schemes. 7 A. IEEE 802.11 Legacy-PSM This subsection describes the IEEE 802.11 Legacy Power Save Mode (Legacy-PSM) algorithm. When communicating using the IEEE 802.11 standard, an Access Point (AP) periodically broadcasts Beacon Frames. Apart from other control related information, the Beacon Frames also contain specific information related with the power saving operations. In Legacy-PSM a Station (STA) can be in two main different states: Continuous Aware Mode (CAM) or Power Saving Mode (PSM), which is also known as sleep mode. When a Station (STA) is in sleep mode, the AP handles the frames addressed to it by buffering them locally. All the STAs operating the Legacy-PSM must wake up regularly to receive the Beacon Frames. Therefore, the STA can recognize whether the AP has buffered frames addressed to it by analyzing the Traffic Indicator Map (TIM) field of the Beacon Frame. Once a STA wakes up to receive the Beacon Frame, it might goes back into sleep mode if there are no queued frames in the AP to be received. The AP should always be informed about power saving mode changes. If the STA recognizes that there are frames buffered for it in the AP, it sends back a request to receive those frames by transmitting a PS-Poll frame to the AP. When the AP receives such frame, it must reply with an Acknowledgment (ACK) or directly with a queued data frame. If the AP has more than one frame to send for a certain STA, it sets the MoreData flag, forcing the STA to be awake to receive all the pending frames. If the frames stay buffered for too long, the AP might use an aging function to delete these frames. Due to this dependency with the Beacon Frame, a STA operating in Legacy-PSM is characterized as reactive. B. IEEE 802.11 U-APSD This subsection describes the U-APSD power saving mode. Unlike Legacy-PSM, the U-APSD does not relay on Beacon Frames to control the stations power management. When operating in U-APSD, a STA does not need to wake up periodically to receive the Beacon Frames. Instead, the STA has a proactive behavior, meaning that it can wake up whenever desired. To inform the AP about its power state, the STA sends a trigger frame (QoS data or QoS Null messages) to it. These trigger frames can be sent to the AP anytime and do not need to be sent after receiving a Beacon Frame. Upon receiving a trigger frame, if there are pending data to the STA, the AP allocates a Service Period (SP) to the STA. The transmission starts and the AP can send all the pending frames, limited by the maximum service period time length, following the Transmission Opportunity rules (TXOP). When the service period is over, the AP informs the STA about the Service Period (EOSP) using the Power Management bits within the Frame Control field of transmitted frames. If the EOSP bit is not set, the station remains awake and waits for the other incoming frames. Once the EOSP bit is set, the station go back into sleep. Concerning the Quality of Service support, the usage of the novel Enhanced Distributed Channel Access (EDCA) MAC 8 layer (mandatory to use the U-APSD protocol), also introduces important changes in order to support the applications QoS demands. The EDCA defines four access categories which can be used to classify the traffic, as described in Table I. TABLE I EDCA ACCESS C ATEGORIES Name Description Example Apps AC BK Background Access Category File transfer (e.g., FTP) AC BE Best Effort Access Category Browsing (e.g., HTTP) AC VI Video Access Category Video streaming AC VO Voice Access Category VoIP applications Each category has a different priority (the first category has the lowest priority and the last category has the highest priority) which allows the traffic to be treated in a different way according with the above categories. III. R ELATED W ORK This section describes the most relevant related work concerning the comparison between Legacy-PSM and U-APSD algorithms. In spite of both algorithms having the same approach, they reach the same goal in different ways. Legacy-PSM takes advantage of Beacon Frames to inform associated stations about possible pendent information for them. In order to know if there are buffered frames for a STA, it must wake up in each Beacon Interval to receive the beacon frame. In U-APSD, since the STA has power to decide whether it should wake up, information about buffered data is only given when the STA makes a request and informs the AP about its active state. Perez Costa et al. [6] have studied the main difference between both algorithms and proposed a new U-APSD paradigm, called Static U-APSD. Despite of the analysis of Legacy-PSM and U-APSD, they use only the energy metrics to study the impact of varying the number of stations associated to a single AP. Therefore, they do not study the impact of varying beacon interval in Legacy-PSM or wake up period in U-APSD in the total energy consumption and end-to-end delay. The QoS requirements within power saving algorithms were studied by CampsMur et al. [7], where the authors’ analyze the performance of distinct QoS demanding applications. In this work, the authors have employed VoIP traffic, using G.711 codec, and evaluated the application performance regarding various QoS requirements. Nevertheless, the simulation results presented do not take into account the possibility of a STA running various applications at the same time, but consider only that a STA can just be receiving data belonging to a single Access Category. Others in the literature [8][9][10] have proposed enhancements to standard Legacy-PSM, while suggesting some drawbacks of employing U-APSD due to unfairness or starvation problems. Nevertheless, those works do not perform a proper comparison between their power saving proposals against both Legacy-PSM and U-APSD standards. Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 The next section presents the results obtained from the performance evaluation of Legacy-PSM and U-APSD algorithms. TABLE II OMN E T++ SIMULATION PARAMETERS Parameter Value This section shows the performance evaluation of the power saving mechanisms in study. First, the simulation scenario and configuration parameters are described, followed by the experimental results analysis and discussion. OMNeT++ version 4.3 INET version 2.1.0 Simulation time 300 seconds Repetitions 15 A. Simulation Scenario and Parameters IEEE 802.11 standard “g” and “e” Default regular wake up interval 100 ms Power while transmitting 2000 mW Power while receiving 1500 mW Power while idle 300 mW Power while sleep 20 mW IV. P ERFORMANCE E VALUATION This subsection depicts the simulation scenario used and presents the relevant parameters configured. The study goal is to provide a comparison between Legacy-PSM and U-APSD using energy consumption and end-to-end delay as metrics. The simulations were performed using OMNeT++ 4.3 simulator [11]. OMNeT++ is an open-source simulator that contains several frameworks such as INET [11][12], which implements several protocols and standards, including TPC/IP and wireless networks support. The choice of OMNeT++ as the simulator to carry on the tests was twofold. First, there is an implementation of Legacy-PSM which was previously validated and tested [13]. Second, a multimeter like model implementation is also available for INET framework version 2.1.0 [13]. The U-APSD was implemented also within the INET framework 2.1.0. The simulation scenario used is illustrated in Figure 1. Server beacons. It is possible that a STA does not wake up to receive all the beacons, but in this work we assume that a STA will always wake up to receive all the beacons. When using UAPSD, the regular wake up period is defined by the STA, as already discussed in Section II-B. Additionally, a scenario where power saving mechanism were not employed (i.e., NoPSM scenario) is also discussed. The end-to-end delay (milliseconds) achieved for all the tested scenarios (No-PSM, Legacy-PSM and U-APSD) is depicted in Figure 2, where the x-axis shows the distinct regular wake up periods studied in milliseconds. Access Point Algorithm: No PSM PSM U−APSD 150 Core Network 135 120 IEEE 802.3 Fig. 1. OMNeT++ simulation scenario Table II describes the simulation parameters used, such as power values used [14], IEEE 802.11 standard and Beacon Interval. Although some of the parameters are changed to provide a detailed study (e.g. Beacon Interval), when the parameters are not changed, a base value is used (the value showed in Table II) to guarantee a standard of values in order to provide a comparison between the different tests. All the results depicted in the following sections include 15 runs using different random seed numbers with a confidence interval of 95%. B. Regular wake up period This subsection discusses the impact of regular wake up period in Legacy-PSM and U-APSD algorithms. For the Legacy-PSM, the regular wake up period was studied defining distinct beacon intervals in the access point, since according to the protocol each station must wake up to listen to the A Internet do futuro 105 Delay (milliseconds) Station 90 75 60 45 30 15 0 20 40 60 80 100 120 Regular Wake Up Interval (milliseconds) Fig. 2. End-to-end delay for distinct wake up periods As expected, the No-PSM mechanism is not affected by the regular wake up period (i.e., different beacon interval in this scenario), since the STA is always awake and ready to receive or send information to the network. In Legacy-PSM and U-APSD scenarios, the end-to-end delay is influenced by the regular wake up period. When compared with U-APSD, the Legacy-PSM has a lower average end-to-end delay, but the maximum delay is always higher. This can be explained by the 9 No PSM Legacy PSM U−APSD 119.08 119.06 119.04 119.02 119.00 118.99 118.98 119.10 140 120 68.53 68.51 68.50 68.47 68.45 68.43 68.42 80 68.42 100 60 9.80 9.78 9.74 9.72 9.68 20 9.82 40 9.67 119.11 Algorithm: 9.68 U−APSD 119.52 Legacy PSM 118.84 No PSM 120.22 121.61 140 125.80 Algorithm: This study was made with distinct packet size values and a fixed sending interval of 40ms. An additional scenario with No-PSM mechanism was also studied, referred as No-PSM scenario. The energy consumption results are presented in Figure 4. The y-axis depicts the total energy consumption in Joule and the x-axis shows the different packet sizes tested, in Bytes. Total Energy Consumption (Joule) TXOP concept implemented in EDCA, which gives advantage to U-APSD when sending queued frames to the STA. To keep the end-to-end delay within the acceptable bounds, the Legacy-PSM must change the AP beacon interval. This need represents an extra overhead for all the STAs connected to the AP, since they must wake up to receive more information. Moreover, it also increases the overall network collision probability, because the medium will be busy for longer periods. This behavior can be observed when the regular wake up period is defined with lower values (e.g., 20ms). In this case the Legacy-PSM performance is worst than with UAPSD, which is able to keep the end-to-end delay within the acceptable bounds. The energy consumption for the already presented scenario is illustrated in Figure 3. The y-axis shows the total energy consumption in Joule, while the x-axis shows the different wake up periods tested. 0 100 200 400 600 800 1000 1200 70.01 69.13 70.88 69.46 Fig. 4. Total energy consumption for distinct packet sizes 31.84 60 11.16 11.98 13.25 15.27 19.45 40 20 0 20 40 60 80 100 120 Regular Wake Up Interval (milliseconds) Fig. 3. Energy consumption for distinct wake up periods The No-PSM scenario energy consumption is higher than both Legacy-PSM and U-APSD, showing the need to employ these mechanisms in order to save energy. By analyzing Legacy-PSM and U-APSD, it is possible to observe a lower energy consumption of the U-APSD algorithm in all the cases. The Legacy-PSM needs almost 4 times more energy for scenarios with wake up period ≥ 40ms and roughly 2.5 times more when the wake up period is lower (i.e. wake up period = 20ms). In short, the U-ASPD outperforms the Legacy-PSM, since it is able to reach almost the same performance (i.e., delay) using less energy. The U-APSD has also benefits regarding the network congestion, since the beacon interval does not need to be changed. Moreover, unlike U-APSD, using the LegacyPSM all the STAs must have the same wake up period. C. Study of Packet Size This subsection studies the impact of varying the packet size for both Legacy-PSM and U-APSD power saving mechanisms. 10 100 Packet Size (B) 72.65 80 50 76.04 Total Energy Consumption (Joule) 120 With the Legacy-PSM it is possible to see that energy consumption in No-PSM scenario is higher than both LegacyPSM and U-APSD, showing the need to employ the power saving mechanisms of the IEEE 802.11 technology. Regarding the Legacy-PSM and U-APSD power saving mechanisms, UAPSD saves more energy than Legacy-PSM for each one of the packet size values used. Legacy-PSM performs the tests needing approximately 4 times more energy than U-APSD. By analysing these results, it is possible to observe that packet size has a minor impact on the STA overall energy consumption, following the results shown in a testbed analysis performed by Bernardo et al. [4]. Aiming to evaluate the energy cost of receiving information from the AP, the results of energy consumption per byte are illustrated in Figure 5. The y-axis shows the energy required to receive each byte in Joule, while the x-axis depicts the packet sizes variation. The results also show that lower packet sizes require more energy per byte than higher packet sizes. This observation encourages the employment of aggregation techniques on the IEEE 802.11 technology, in order to reduce the energy consumption per byte. The usage of MAC layer aggregation techniques allows to transmit several frames in a single MAC frame. As the packet size only slightly influences the STA energy consumption, this technique allows to reduce the total energy consumption while contributing to reduce the medium overhead and collisions [15]. Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 Algorithm: No PSM Legacy PSM 150 U−APSD 140 10.0 130 9.5 9.0 120 110 8.0 100 7.5 Delay (miliseconds) Energy Consumption per Byte (Joule) 8.5 7.0 6.5 6.0 5.5 5.0 4.5 4.0 90 80 70 60 50 3.5 40 3.0 30 2.5 2.0 20 1.5 10 1.0 0.5 0 0.0 50 100 200 400 600 800 1000 PSM with Wake Up interval = 20ms 1200 Packet Size (B) D. Study of QoS requirements guarantees This subsection studies the QoS requirements guarantees for both Legacy-PSM and U-APSD by emulating the main characteristics of the G.711 voice codec [16]. Regarding the end-to-end delay metrics studied, this codec has a maximum acceptable end-to-end delay of 150ms defined by the ITU-T Y.1541 recommendation [17]. In order to emulate a more realistic scenario, three other applications were used to create background traffic. Each application was used in a distinct Access Category, different from the one to be used for the VoIP service. This scenario creates a more realistic network, since the Access Point must deal with different applications priorities. The end-to-end delay (milliseconds) achieved for both Legacy-PSM and U-APSD is depicted in Figure 6. The x-axis shows the different access mechanisms used with the power saving mode referred in the graphic subtitle. As Legacy-PSM does not support traffic prioritization, it is only possible to classify traffic in a single class. In the U-APSD case, it does support traffic prioritization as it operates together with EDCA mechanism, explaining the reason why it appears the box plot related with access category used by the VoIP application in the Figure 6. Three different scenarios were taken into account to make this study. The first one is the employment of Legacy-PSM with the default Beacon Interval indicated on Table II. The second one is also a Legacy-PSM scenario with a Beacon Interval value of 20ms. Lastly, an U-APSD scenario was analysed, with a regular wake up period of 20ms. The Legacy-PSM scenario with beacon interval value of 100ms has higher delay values when compared within the other two scenarios, showing the need to change the beacon interval in order to keep end-to-end delay values within the acceptable bounds. The other Legacy-PSM scenario is a consequence of this conclusion since the end-to-end delay is lower in this sce- A Internet do futuro U−APSD with Wake Up interval = 20ms Algorithm Fig. 6. QoS requirements guarantees on PSM and U-APSD end-to-end delay nario. However, reducing the beacon interval introduces more overhead in the network since the STA is trying to listen for a number of beacons 5 times higher than the Legacy-PSM scenario with beacon interval value of 100ms. The results show that all scenarios guarantee a good operation of the VoIP application since the end-to-end delay does not reach the maximum end-to-end delay acceptable for applications which use the G.711 voice codec. However, the Legacy-PSM scenario with a beacon interval value of 100ms almost reaches this limit since it obtains higher end-to-end delay values when compared with the others. The energy consumption for the scenarios described is illustrated on Figure 7. The y-axis shows the total energy consumption in Joule, while the x-axis indicates the different scenarios studied. 80 75 74.76 73.00 70 65 Total Energy Consumption (Joule) Fig. 5. Energy Consumption per byte for distinct packet sizes PSM with Wake Up interval = 100ms 60 55 50 45 40 35 30 25 22.13 20 15 10 5 0 PSM with Wake Up interval = 20ms PSM with Wake Up interval = 100ms U−APSD with Wake Up interval = 20ms Algorithm Fig. 7. Impact of running a VoIP application in PSM and U-APSD Energy Consumption 11 It is possible to see the consequence of sending more beacons. Besides introducing more overhead in the network, the Legacy-PSM scenario with a Beacon Interval value of 20ms also causes the STA to be in sleep mode for less time. That is why energy consumption values are lower for the Legacy-PSM scenario with Beacon Interval value of 100ms. Concerning the U-APSD scenario, it presents the lowest energy consumption values as in all the previous studies. V. C ONCLUSIONS The constant growth of traffic generated by mobile devices in the last years, together with the increasing number devices using IEEE 802.11 capabilities, created new challenges regarding the standard power saving protocols. Apart from avoid the devices’ batteries from running out in a short time, these protocols must also be able to guarantee certain Quality of Server for a range of applications, particularly for the realtime ones. This paper evaluates the performance of two power saving mechanisms defined in IEEE 802.11 standard (LegacyPSM and U-APSD) in order to fulfill those challenges. The obtained results comparing Legacy-PSM and U-APSD showed that U-APSD is more energy efficient, while keeping better application performance. When analyzing the energy consumption, the results revealed that Legacy-PSM needs roughly 4 times more energy than U-APSD for scenarios with wake up period ≥ 40ms and roughly 2.5 times more when the wake up period is equal to 20ms. Concerning the QoS requirements, U-APSD revealed the capability to guarantee Quality of Service for the studied realtime applications, as the obtained end-to-end delay is lower than the maximum acceptable end-to-end delay allowed in ITU-T Y.1541 recommendation. ACKNOWLEDGMENTS This work was partially supported by the COST framework, under Actions IC0804 and IC0906, as well as by the iCIS project (CENTRO-07-ST24-FEDER-002003), co-financed by QREN, in the scope of the Mais Centro Program and European Union’s FEDER, and by industrial partners (ISA, OneSource) and COMPETE program in the scope of SI I&DT sMeter project (“Integrated Platform for Energy Efficiency and Smart Metering”, contract n. 21588, QREN FCOMP-01-02) The second author was also supported by the Portuguese National Foundation for Science and Technology (FCT) through a Doctoral Grant (SFRH/BD/66181/2009). [4] V. Bernardo, M. Curado, T. Staub, and T. Braun, “Towards energy consumption measurement in a cloud computing wireless testbed,” in Network Cloud Computing and Applications (NCCA), 2011 First International Symposium on, pp. 91–98, 2011. [5] “Ieee standard for information technology - telecommunications and information exchange between systems - local and metropolitan area networks - specific requirements part 11: Wireless lan medium access control (mac) and physical layer (phy) specifications amendment 8: Medium access control (mac) quality of service enhancements,” IEEE Std 802.11e-2005 (Amendment to IEEE Std 802.11, 1999 Edition (Reaff 2003), pp. 0 1–189, 2005. [6] X. P. Costa, D. Camps-Mur, and A. Vidal, “On distributed power saving mechanisms of wireless lans 802.11e u-apsd vs 802.11 power save mode.,” Computer Networks, vol. 51, no. 9, pp. 2326–2344, 2007. [7] X. Perez-Costa and D. Camps-Mur, “Ieee 802.11e qos and power saving features overview and analysis of combined performance [accepted from open call],” Wireless Communications, IEEE, vol. 17, no. 4, pp. 88–96, 2010. [8] Y. He, R. Yuan, X. Ma, J. Li, and C. Wang, “Scheduled psm for minimizing energy in wireless lans,” in Network Protocols, 2007. ICNP 2007. IEEE International Conference on, pp. 154–163, 2007. [9] E. Rozner, V. Navda, R. Ramjee, and S. Rayanchu, “Napman: networkassisted power management for wifi devices,” in Proceedings of the 8th international conference on Mobile systems, applications, and services, MobiSys ’10, (New York, NY, USA), pp. 91–106, ACM, 2010. [10] A. J. Pyles, Z. Ren, G. Zhou, and X. Liu, “Sifi: exploiting voip silence for wifi energy savings insmart phones,” in Proceedings of the 13th international conference on Ubiquitous computing, UbiComp ’11, (New York, NY, USA), pp. 325–334, ACM, 2011. [11] A. Varga and R. Hornig, “An overview of the omnet++ simulation environment,” in Proceedings of the 1st international conference on Simulation tools and techniques for communications, networks and systems & workshops, Simutools ’08, (ICST, Brussels, Belgium, Belgium), pp. 60:1–60:10, ICST (Institute for Computer Sciences, SocialInformatics and Telecommunications Engineering), 2008. [12] “INET framework main page.” http://www.inet.omnetpp.org/. [13] V. Bernardo, M. Curado, and T. Braun, “Enhancing ieee 802.11 energy efficiency for continuous media applications,” in EE-LSDS 2013, Energy Efficiency in Large Scale Distributed Systems conference, vol. 8046, (n/a), pp. 1–15, Lecture Notes in Computer Science, Vol. 8046, April 2013. [14] D. Camps-Mur, M. D. Gomony, X. P. Costa, and S. S. Ribes, “Leveraging 802.11n frame aggregation to enhance qos and power consumption in wi-fi networks,” Computer Networks, vol. 56, no. 12, pp. 2896–2911, 2012. [15] D. Skordoulis, Q. Ni, H.-H. Chen, A. Stephens, C. Liu, and A. Jamalipour, “IEEE 802.11n MAC frame aggregation mechanisms for nextgeneration high-throughput WLANs,” Wireless Communications, IEEE, vol. 15, pp. 40–47, Feb. 2008. [16] I. T. Recommendation, “ITU-T recommendation G.711. Pulse code modulation (PCM) of voice frequencies,” Nov. 1988. [17] I. T. Recommendation, “ITU-T recommendation Y.1541: Network Performance Objectives for IP-Based Services,” tech. rep., International Telecommunication Union, 2003. R EFERENCES [1] “Ieee standard for information technology–telecommunications and information exchange between systems local and metropolitan area networks–specific requirements part 11: Wireless lan medium access control (mac) and physical layer (phy) specifications,” IEEE Std 802.112012 (Revision of IEEE Std 802.11-2007), pp. 1–2793, 2012. [2] Cisco, “Cisco Visual Networking Index: Global Mobile Data Traffic Forecast Update, 2012–2017.” http://www.cisco.com/en/US/solutions/collateral/ns341/ns525/ns537/ns7 05/ns827/white paper c11-520862.html, February 2013. [3] G. Li, Z. Xu, C. Xiong, C. Yang, S. Zhang, Y. Chen, and S. Xu, “Energyefficient wireless communications: tutorial, survey, and open issues,” Wireless Communications, IEEE, vol. 18, no. 6, pp. 28–35, 2011. 12 Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 Gestão de Cargas numa Micro Grid Utilizando Algoritmos Genéticos Jorge Eduardo Pedro Cardoso Jânio M. Monteiro Instituto Superior de Engenharia Universidade do Algarve Faro, Portugal 8005-139 Email: [email protected] Instituto Superior de Engenharia Universidade do Algarve Faro, Portugal 8005-139 Email: [email protected] Instituto Superior de Engenharia Universidade do Algarve Faro, Portugal 8005-139 Email: [email protected] Resumo—O sistema de produção de energia elétrica tem até hoje caraterizado-se por um esquema de geração centralizado, unidirecional e contendo medidas de incentivo e controlo sobre a procura de consumo. Com o recente desenvolvimento de novos equipamentos de geração e controlo verifica-se uma mudança gradual deste modelo para outro denominado de Smart Grid, em que a geração de eletricidade distribuı́da, geralmente de baixa potência, começa a integrar-se de uma forma eficaz com a rede já existente e não apenas com a entrega da eletricidade produzida. Uma das medidas que pode ser implementada para que se promova um ajuste no lado do consumo por forma a que este se nivele a uma potência produzida que varia em função de fatores ambientais, baseia-se na implementação de tarifários variáveis. Mas para que tal venha a ser possı́vel é necessário desenvolver uma série de equipamentos que consigam comunicar entre si e com a rede de distribuição, utilizando protocolos normalizados, gerindo os consumos de uma forma otimizada em função dos tarifários previstos e refletindo as preferências dos utilizadores. Neste âmbito, o objetivo deste artigo é o de definir e avaliar uma solução de otimização aplicada à gestão de cargas em Smart Grids baseada em algoritmos genéticos, que em função de restrições impostas pelo utilizador defina o escalonamento de funcionamento de diversas cargas. Palavras-chaves: Smart Grids, Home Grids, Micro Grids, Algoritmos Genéticos. I. I NTRODUÇ ÃO Nas redes de produção e distribuição de energia elétrica encontramos atualmente um dinamismo bastante diferente daquele que encontrávamos há uns anos atrás, resultante em grande parte da crescente introdução de fontes de energia renováveis. Ao contrário da distribuição elétrica clássica, na produção obtida a partir de energias renováveis, os fatores ambientais de que elas dependem causam variações na geração difı́ceis de controlar, que por sua vez, são a causa de ineficiências e desadaptações de diversa ordem. Diversas soluções têm sido apontadas neste âmbito. Algumas propostas apontam para que se promova um ajuste no lado do consumo por forma a que este se nivele à potência produzida. Outras soluções apontam para que se armazene a energia produzida em excesso em determinado momento, recorrendo entre outros, às baterias dos automóveis elétricos. Há ainda soluções que optam por tarifar a produção para autoconsumo privado, de sistemas ligados à rede energética, numa tentativa de limitar a generalização destes equipamentos A Internet do futuro e reduzir os riscos de desestabilização, tal como aconteceu recentemente em Espanha [1]. Se por um lado a produção desregulada pode ser vista como um risco, o ajuste do consumo em momentos de pico é visto como algo desejável por parte dos operadores de eletricidade. Assim, a primeira versão do protocolo Open Automated Demand Response (openADR) [2] surgiu como uma das medidas que poderia minimizar os apagões verificados na crise energética vivida no ano 2000, no estado da Califórnia. Em termos de tarifários de eletricidade, existe uma clara desadaptação entre os preços dos tarifários dos utilizadores e os custos marginais de produção [3]. Uma solução que poderia resolver este problema passa pela introdução de tarifários dinâmicos, que estão neste momento a ser testados e implementados em várias regiões dos Estados Unidos da América, a par da instalação de 27 milhões de contadores inteligentes já efetuada [4]. Assim, pretende-se comunicar aos equipamentos e pessoas o tarifário em vigor para que estas decidam em consonância. Neste contexto, as tecnologias associadas às Smart Grids surgem como a solução que a médio/longo prazo permitirão a gestão eficiente das redes energéticas equipadas de geração renovável, através de equipamentos que combinem as redes de distribuição elétrica, as redes de comunicação, as redes de sensores e as tecnologias de informação, criando uma plataforma de configuração fácil e acesso ubı́quo. Neste sentido, o objetivo de criação de um sistema de gestão de energia é o de implementar um conjunto de equipamentos que comuniquem entre si, chamados objetos inteligentes [5], que atuando num sistema de controlo otimizado suportado no conceito da Internet of Things (IoT), permitam um melhor aproveitamento da energia produzida pelas energias renováveis e a melhoria da gestão energética de edifı́cios. No âmbito dos protocolos que podem ser utilizados para gestão energética salientam-se as recentes especificações das arquiteturas protocolares Smart Energy Profile – versão 2 (SEP 2.0) [6], IEEE 1888 [7] e do protocolo OpenADR 2.0 [8]. Qualquer arquitetura protocolar que venha a ser implementada não pode por isso ser criada sem ter em conta essas soluções. A um nı́vel mais baixo salientam-se também o conjunto de protocolos IPv6 e 6LoWPAN que cada vez mais assumem importância em redes com elevado número de objetos inteligentes 13 capazes de comunicar entre si, sobre redes com ou sem fios. Por fim, suportando-se nas tecnologias de informação, o sistema deverá fazer do utilizador o elemento chave da solução final. Para tal, deverá ser criada uma interface que lhe permita de uma forma fácil aceder, configurar e modificar sempre que seja necessário as suas preferências. Por exemplo cabe ao utilizador especificar que a temperatura da água quente não deve baixar dos 30 graus, ou que o programa da máquina de lavar a louça deve terminar antes das 19:00. Ao utilizador cabe a definição das restrições a que o sistema deverá responder, sendo o primeiro liberto da gestão do sistema. Essa gestão deverá ser feita utilizando algoritmos de otimização que, tendo em conta os tarifários e comunicando com os diversos objetos inteligentes de uma Home/Micro Grid decidam que cargas devem entrar em funcionamento e em que alturas o devem fazer. É este o âmbito deste artigo. O resto do artigo tem a seguinte estrutura. A secção II apresenta o conjunto de protocolos de comunicação atualmente em definição para Smart Grids. A secção III apresenta os algoritmos de otimização considerados neste artigo, nomeadamente os algoritmos genéticos. A secção IV faz a descrição e formulação do problema do controlo de cargas. A secção V descreve os testes e ensaios efetuados. Por fim, a secção VI conclui o artigo apontando possı́veis desenvolvimentos futuros. II. P ROTOCOLOS DE C OMUNICAÇ ÃO EM S MART G RIDS A possibilidade de os utilizadores gerirem os seus consumos de energia em função da produção é uma caracterı́stica crı́tica das Smart Grids sendo a base de inovação, novos produtos e serviços. Por forma a suportar esta capacidade, a comunicação entre os diversos dispositivos, tais como contadores, eletrodomésticos, veı́culos elétricos, sistemas de gestão de energia e recursos energéticos distribuı́dos (incluindo energias renováveis e armazenamento) deve ocorrer utilizando procedimentos abertos, seguros e normalizados. Neste âmbito, foram recentemente definidos vários protocolos. Um desses protocolos, o Smart Energy Profile resulta da colaboração entre low-power ZigBee, o Wi-Fi e a Home Plug power-line technologies, construindo uma arquitetura de gestão de energia para Micro Grids, suportada em redes IP. Assim, ao contrário do SEP 1.0 que considerava apenas o ZigBee como forma de interligação entre objetos inteligentes, nesta última versão as comunicações já incluem ligações Wi-Fi e PLC. O Smart Energy Profile foi desenhado para implementar uma arquitetura REST, tendo como base as ações do GET, HEAD, PUT, POST e DELETE, complementadas com um mecanismos de subscrição leve. Apesar do SEP se poder suportar em qualquer protocolo que implemente uma comunicação REST (por exemplo o Constrained Application Protocol (CoAP) [9]) o HTTP é considerado a base para a interoperabilidade das aplicações. Em março de 2011, o Institute of Electrical and Electronics Engineers (IEEE), a maior associação profissional do Mundo anunciou a aprovação e publicação da norma Standard for Ubiquitous Green Community Control Network Protocol (IEEE 1888TM ), no âmbito da Ubiquitous Green Community Control Network Protocol (UGCCNet). Com origem na China, a norma 14 IEEE 1888 assume-se como uma norma global no âmbito da IoT que tem como objetivo a eficiência energética, através da gestão das energias renováveis (dita green energy), através da comunicação utilizando protocolos Internet e as Tecnologias de Informação e Comunicação. Como fundamento da especificação das normas, está a intenção de criar um novo sistema de controlo fácil de utilizar, largamente divulgado e inteligente, incluindo: a fácil monitorização do consumo, análise dos desperdı́cios energéticos e sugestões de melhoria, controlo automático de ı́ndices de conforto (CI), ajuste produção-consumo, entre outros. Várias sub-normas IEEE 1888 estão atualmente em definição, identificadas como IEEE 1888.x, com x a variar entre 1 e 4. O protocolo de aplicação Open Automated Demand Response (OpenADR) versão 2.0 [8], é uma evolução e extensão da primeira versão desenvolvida pela Demand Response Research Center no Lawrence Berkeley National Laboratory. OpenADR 2.0 é suportado pela aliança industrial OpenADR, tendo sido desenvolvida como parte da norma OASIS Energy Interoperation 1.0 publicada em Fevereiro de 2012. Uma caracterı́stica que diferencia o OpenADR de outras arquiteturas que implementam o Demand Response (DR) automatizado é a de que os pedidos não contêm informação que especifique os dispositivos ou operações que devem ser alteradas ou paradas. O OpenADR apenas notifica os dispositivos para que estes reduzam o consumo – quer utilizando pedidos especı́ficos ou através de um aumento no preço da eletricidade. As respostas dos equipamentos dependem sempre das preferências diretas ou indiretas do utilizador. Para além disso, as mensagens OpenADR permitem aos utilizadores individualmente responderem aos pedidos de Demand Response com um sinal de “opt out”, o que aumenta ainda mais a flexibilidade dada às opções dos utilizadores. O resultado é um sistema que promove a DR automatizada, enquanto maximiza a flexibilidade local em resposta aos pedidos. O núcleo da norma OpenADR 2.0 é constituı́do por um conjunto de modelos de dados e padrões de troca que definem os sinais de DR e as interfaces entre: mercados de energia (no sentido de suportarem uma informação de preço dinâmico), Independent System Operators (ISO), Distributed Energy Resources (DER) e consumidores de energia (industriais/residenciais). Se por um lado os protocolos que permitem a comunicação entre os diversos equipamentos de uma Micro Grid estão a ser definidos, há ainda que definir os procedimentos de controlo de cargas otimizados que permitam o ajuste DR. Esse é o âmbito das próximas secções. III. A LGORITMOS DE OTIMIZAÇ ÃO Em matemática, o termo otimização, refere-se ao estudo de problemas em que se busca minimizar ou maximizar uma função através da escolha sistemática dos valores de variáveis reais ou inteiras dentro de um conjunto viável. Para a resolução destes problemas, além de possı́veis métodos especı́ficos, existem métodos genéricos de Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 otimização, usualmente designados de meta-heurı́sticas, que podem aproximar as soluções dos problema que se consigam modelar de acordo com estruturas de dados adequadas. Exemplos são os Algoritmos Genéticos (AG) [10], os algoritmos baseados em colónias de formigas (Ant colony Optimization) [11] ou os algoritmos Particle Swarm Optimization [12]. Em particular neste artigo dedicaremos a nossa atenção aos AGs. O processo evolutivo dos AG começa por uma população (ou geração) inicial, formada por um conjunto de indivı́duos que representam soluções do problema a otimizar. Em geral, a população inicial é definida aleatoriamente, usando heurı́sticas, ou soluções conhecidas. As gerações seguintes são obtidas iterando sobre os passos que se seguem até se verificar o critério de paragem especificado. Começa-se por avaliar os indivı́duos da geração de forma a definir a sua “qualidade” dentro da população. No passo seguinte alguns dos indivı́duos são selecionados de acordo com as suas aptidões, i.e., quanto melhores forem os indivı́duos mais chances terão de serem escolhidos para o efetuarem o cruzamento. Na fase do cruzamento são criados novos indivı́duos, os filhos, que combinam as caraterı́sticas dos pais. A alguns desses novos indivı́duos são aplicadas mutações de modo a evitar a estagnação da população e consequente convergência prematura. Os indivı́duos obtidos são agora colocados numa nova população com tamanho igual ao da população original. O processo pode ser resumido de acordo com o Algoritmo 1. Algoritmo 1 Algoritmo genético 1: Gerar a população inicial. 2: Enquanto critério de paragem não for satisfeito faça 3: Avaliar cada indivı́duo da população. 4: Seleccionar os indivı́duos mais aptos. 5: Criar novos indivı́duos aplicando os operadores: cruzamento e mutação. 6: Armazenar os novos indivı́duos numa nova população. 7: Fim Enquanto 8: Devolve a melhor solução encontrada Na seção seguinte iremos apresentar uma formulação para problema da gestão eficiente de energia e discutir a solução implementada. IV. D ESCRIÇ ÃO E FORMULAÇ ÃO DO P ROBLEMA A. Formulação do Problema O objetivo de um sistema de controlo de cargas é o de minimizar os custos do consumo de eletricidade de diversos aparelhos deslocando-os no tempo (ou ajustando a potência consumida). O sistema deverá procurar minimizar o custo em função do tarifário em vigor. Para além disso, o sistema deve impedir em cada momento que o consumo exceda a potência contratada. Deste modo são vários os objetivos, dos quais podemos destacar: minimizar o custo dos consumos de diversos equipamentos; não exceder a potência contratada; evitar exceder em consumo a potência produzida por fontes renováveis, quando existentes; utilizar tanto quanto possı́vel as tarifas económicas; A Internet do futuro ter em conta as restrições temporais impostas pelo utilizador para cada um dos equipamentos. B. Descrição do Simulador O sistema que se pretende implementar pode ser visto como um sistema em que cada objeto (contadores, geradores e consumidores) é um agente dentro do Sistema Multi-Agente (SMA)[13]. Nesse sentido, o simulador foi implementado como um sistema semidistribuı́do, em que o processo de otimização é controlado por um agente central que comunica e decide os perı́odos de funcionamento dos outros agentes usando um algoritmo genético. Como benefı́cio, o sistema distribuı́do pode fornecer redundância, flexibilidade e adaptabilidade. No nosso caso, trata-se de um sistema bastante flexı́vel quando consideramos a adição ou remoção de novos objetos produtores ou consumidores, que é feita de forma transparente. Salientamos que foi ponderado um processo de otimização distribuı́do, usando processos de negociação de perı́odos de funcionamento entre agentes, mas que nesta fase foi deixado para trabalho futuro. Utilizando o sistema hı́brido que esboçamos, consegue-se tirar partido das caracterı́sticas dos sistemas centralizados que permitem exercer um controlo mais rı́gido sobre os objetos, pois exige que todas as comunicações e decisões passem por um único objeto centralizador, não perdendo a flexibilidade associada à volatilidade dos restantes agentes. Como referido, neste trabalho foi implementado um sistema semidistribuı́do em que todos os agentes consumidores respondem ao sincronismo de um agente central, o gestor de cargas. Este agente coordena a actividade dos restantes e contabiliza os custos. Cada um dos outros agentes está encarregue de guardar o seu histórico de utilização e informar o centralizador das suas potências. Relativamente ao simulador este foi implementado sobre a plataforma SPADE (Smart Python Multi-Agent Development Environment) [14], [15]. O SPADE foi constuı́do à volta da framework de comunicação XMPP/Jabber. Desenvolvido em Python, trata-se de um sistema particularmente útil na implementação de SMA, suportando os conceitos de agente e servidores, a comunicação entre agentes desenvolvidos em múltiplas linguagens de programação, processamento de comportamentos e o protocolo de comunicação extensı́vel baseado em XML. O SPADE segue ainda as especificações FIPA para SMA [16]. Quanta à implementação do simulador foi considerada a sequência de passos que a seguir descrevemos. O processo começa com o gestor de cargas (GC) a enviar uma mensagem em broadcast para todos os equipamentos de consumo, com a requisição dos pedidos de funcionamento dos equipamentos, horário de inı́cio pretendido, limite para terminar o programa, além do seu registo de consumo previstos ao longo do tempo. Para efeitos de simulação, foi estipulado que esta requisição é enviada às 7h00. O GC aguarda pelas respostas dos agentes e após as ter recebido com os dados requisitados, efetua o escalonamento dos horários de inı́cio de funcionamento das máquinas. Como já referimos, neste escalonamento é aplicado um AG. A informação do escalonamento (horários de ı́nicio) é depois enviada a cada um dos consumidores. 15 Figura 1. Diagrama da sequência de mensagens entre o gestor de cargas e os consumidores. Cada equipamento consumidor guarda o horário de inı́cio de funcionamento e envia mensagem de Acknowledgement para o gestor de cargas. A partir daı́ o gestor de cargas passa a enviar apenas mensagem de sincronismo. Quando o equipamento consumidor atinge o horário de inı́cio de funcionamento passa a enviar os seus dados de consumo até terminar o perı́odo de operação. Relativamente ao AG foi usado a framework PyEvolve [17] com os indivı́duos codificados como listas de inteiros correspondentes ao inı́cio do programa da máquina consumidora. A configuração usada inclui o método de seleção uniforme, o operador de cruzamento de ponto único e os operadores de mutação swap e Gaussiano inteiro. Na Figura 1 está resumida sequência que acabámos de descrever. V. T ESTES E E NSAIOS Por forma a confirmar a fiabilidade do simulador desenvolvido fez-se uma análise gradual de testes com o objetivo de verificar o procedimento de cálculo do custo e o correcto posicionamento das cargas. Admitindo uma potência contratada de 3.3 kVA, foi considerado um valor unitário para o factor de potência (PF), resultando na potência ativa de 3.3 kW. Admitindo que numa habitação ou empresa existirão cargas que não são controláveis, o sistema de controlo de carga irá ajustar a soma das potências das cargas controláveis para que esta não ultrapasse uma percentagem da potência contratada 16 (por exemplo 0.80), evitando assim o deslatre dos circuitos quando as cargas não controláveis aumentem de potência. Para efeitos de testes foi considerado um tarifário com três tarifas: • P1 (“horas de vazio”) – 0.1 euros por kWh entre as 22h00 e as 22h30; • P2 (“horas de cheia”) – 0.1486 euros por kWh entre as 22h30 e as 10h30 (do dia seguinte); e • P3 (“horas de ponta”) – 0.1865 euros por kWh entre as 10h30 e as 22h00. Tendo em conta este tarifário e admitindo cargas de potência constante durante perı́odos de 1 hora, a expectativa é que o inı́cio de funcionamento das cargas fique próximo do inı́cio do perı́odo das “horas vazias”. Assim, por exemplo, admitindo 3 cargas de 1kW com uma duração de 1 hora, os tarifários anteriores e uma potência máxima controlável de 2.64 kW (admitindo uma rácio entre potência controlada e potência contratada de 0.8), espera-se que duas cargas tenham inı́cio aproximado às 22h00 e que uma das cargas seja obrigada a deslocar-se para o tarifário P2. Consideremos outro exemplo, admitindo quatro cargas em que uma das cargas tem 2.5 kW constantes durante uma hora e as outras três cargas consomem 1 kW durante uma hora, a carga de 2.5 kW deverá ocupar o horário da tarifa mais baixa e as restantes três cargas ficarão na tarifa intermédia, pois é essa a solução que minimiza o custo. De seguida apresentamos resultados experimentais considerando um cenário de cargas constantes ao longo do seu Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 sidências, obtidas utilizando o Analisador de Qualidade de Energia Fluke 435. Entre os registos disponı́veis, não foram considerados controláveis cargas como arcas frigorı́ficas, iluminação ou aparelhos AVAC. Os quatro equipamentos considerados controláveis foram: a máquina de lavar a roupa, a máquina de secar roupa, o termoacumulador e bomba de piscina. Os resultados destes ensaios não têm uma análise tão balizada, em que se perceba de antemão qual é o resultado final do posicionamento de cada uma das cargas de consumo porque estas poderão ser “encaixadas” nas tarifas mais baixas sem ultrapassar os 80% da potência contratada. O algoritmo deverá garantir que o inı́cio de funcionamento das máquinas não conduza a que a soma das potências ultrapasse os 80% da potência contratada. Na Figura 3 apresenta-se a potência consumida ao longo do tempo por: a) Bomba de Piscina; b) Máquina de Lavar Roupa; c) Máquina de Secar Roupa; d) Termoacumulador. Figura 2. Consumo das cargas de acordo com o escalonamento e tarifários para 4 equipamentos perı́odo de funcionamento e posteriormente os ensaios considerarão curvas de carga de equipamentos reais. A. Resultados para uma máquina 2.5 kW e três máquinas de 1 kW com três tarifários Nestes testes foram quantificados os custos resultantes do escalonamento temporal dos diversos equipamentos, comparando a introdução do algoritmo genérico com uma seleção aleatória da hora de entrada em funcionamento das máquinas. Consideraram-se quatro equipamentos: um consumindo uma potência de 2.5 kW durante 1 hora e três consumindo uma potência de 1 kW durante 1 hora. Para limitar as opções dos testes, a tarifa mais baixa apenas esteve disponı́vel entre as 22:00 e as 22:30 (de acordo com o tarifário apresentado na secção anterior). Os equipamentos foram definidos para funcionar numa janela temporal de 24h, entre as 7h do primeiro dia e as 7h do dia seguinte. As simulações foram repetidas vinte vezes, tendo-se posteriormente calculado a média e desvio padrão de custos para ambas as situações (escalonamento aleatório e escalonamento com o AG). A média de custos diária para a entrada em funcionamento aleatória dos equipamentos foi de 0.9177 Euros, com um desvio padrão de 0.0691 Euros. Já no caso da introdução do AG alcançou-se um custo médio de 0.7561 Euros com desvio padrão igual a 0.0026. Estes resultados traduzem uma redução média de custos de 17.6%. A Figura 2 apresenta um dos resultados do algoritmo genético. Como se pode constatar, a carga que consome maior potência ficou escalonada para iniciar o funcionamento às 22:00 e as outras cargas ficaram escalonadas para funcionar no perı́odo do tarifário com custo intermédio (P2), o que traduz o custo mais baixo possı́vel. B. Resultados para quatro equipamentos (reais) com três tarifas Nos testes seguintes foram consideradas curvas de potência consumida de diversos equipamentos existentes em re- A Internet do futuro Também neste caso o simulador foi executado vinte vezes. Das simulações obteve-se uma média de 0,5028 Euros (desvio padrão igual 0.0309 Euros) para a entrada em funcionamento dos equipamentos num instante aleatório. Já no caso da introdução do AG alcançou-se um custo médio de 0.4232 Euros com desvio padrão igual a 0.003. Estes resultados traduzem uma redução média de custos de 16%, confirmando os resultados obtidos previamente. VI. C ONCLUS ÕES E T RABALHO FUTURO Neste artigo foi apresentado um método para efetuar o escalonamento de cargas ao longo de um dia com o objetivo de minimizar os custos associados aos consumos. Essa minimização tem em conta os tarifários conhecidos à priori. O processo foi simulado na plataforma multi-agentes SPADE, tendo sido apresentado os valores obtidos para dois cenários. Conclui-se que no cenário de teste o AG obteve uma melhoria de cerca de 17%, enquanto que no cenário com leituras de máquinas reais essa melhoria foi de cerca de 16%. Como trabalho futuro, pretende-se considerar a produção de energia através de fontes renováveis, otimizando de acordo com as estimativas de produção ao longo do dia, aplicar cargas não controláveis, estudar processos de otimização distribuı́dos incluindo processos de negociação entre agentes. AGRADECIMENTOS Este trabalho foi parcialmente suportado pelo projeto Manage the Intelligence QREN I&DT, n.o 30260. R EFER ÊNCIAS [1] “Propuesta de real decreto por el que se establece la regulación de las condiciones administrativas, técnicas y economicas de las modalidades de suministro de energı́a eléctrica con autoconsumo y de producción com autoconsumo,” Online: http://www.suelosolar.es/newsolares/newsol.asp?id=8479, Julho 2013. [2] M. A. Piette, G. Ghatikar, S. Kiliccote, E. Koch, D. Hennage, P. Palensky, and C. McParland, Open automated demand response communications specification (Version 1.0), California Energy Commission, PIER. CEC-500-2009-063, 2009. [3] P. L. Joskow and C. D. Wolfram, “Dynamic pricing of electricity,” The American Economic Review, vol. 102, no. 3, pp. 381–385, 2012. 17 Figura 3. Potência consumida ao longo do tempo pelos equipamentos: a) Bomba de Piscina; b) Máquina de Lavar Roupa; c) Máquina de Secar Roupa; d) Termoacumulador [4] Utility-Scale Smart Meter Deployments, Plans & Proposals, Institute for Electric Efficiency, Setembro 2011. [5] J.-P. Vasseur and A. Dunkels, Interconnecting smart objects with ip: The next internet. Morgan Kaufmann, 2010. [6] Smart Energy Profile 2, Application Protocol Standard, Zigbee public document 13-0200-00 ed., ZigBee Alliance, abril 2013. [7] IEEE Standard for Ubiquitous Green Community Control Network Protocol, IEEE Std 1888 Std., abril 2011. [Online]. Available: http://standards.ieee.org/findstds/standard/1888-2011.html [8] OpenADR 2.0. Profile Specification. A Profile, OpenADR Alliance, 2012. [9] Z. Shelby, K. Hartke, and C. Bormann, Constrained Application Protocol (CoAP), Draft: draft-ietf-core-coap-18, Internet Engineering Task Force (IETF) Std., junho 2013. [10] A. E. Eiben and J. E. Smith, Introduction to evolutionary computing. Springer Berlin, 2010, vol. 2. [11] M. Dorigo and T. Stützle, Ant Colony Optimization. MIT Press, 2004. [12] R. Poli, J. Kennedy, and T. Blackwell, “Particle swarm optimization,” Swarm intelligence, vol. 1, no. 1, pp. 33–57, 2007. [13] Y. Shoham and K. Leyton-Brown, Multiagent systems: Algorithmic, game-theoretic, and logical foundations. Cambridge University Press, 2009. [14] E. Argente, J. Palanca, G. Aranda, V. Julian, V. Botti, A. GarciaFornes, and A. Espinosa, “Supporting agent organizations,” in MultiAgent Systems and Applications V. Springer, 2007, pp. 236–245. [15] M. E. Gregori, J. P. Cámara, and G. A. Bada, “A jabber-based multiagent system platform,” in Proceedings of the fifth international joint conference on Autonomous agents and multiagent systems. ACM, 2006, pp. 1282–1284. [16] “Fipa specifications,” online: http://www.fipa.org/, 2013. [17] “Pyevolve,” online: http://pyevolve.sourceforge.net/, 2013. 18 Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 SDN Framework for Connectivity Services Rafael Gouveia#, JoãoAparício#, João Soares*#, Bruno Parreira*, Susana Sargento#, Jorge Carapinha* # Instituto de Telecomunicações, Universidade de Aveiro * PT Inovação Campus Universitário de Santiago,3810-134 Aveiro, Portugal Abstract—Considering the advantages of the SDN to the management of the operators’ network, it becomes important to have autonomous and automatic frameworks available. In this paper we propose and evaluate the performance of a SDN framework oriented for connectivity services upon a real Openflow network. This evaluation encompasses the analyses of the framework for three different scenarios: service activation, link loss and reaction to a new link. Keywords— Openflow; dynamic networking; SDN; cloud computing; connectivity services; network testbed. I. INTRODUCTION AND MOTIVATION The explosion of connected devices and applications in the last years triggered a series of problems and limitations in the development and management of new services in the network. On the end-user side, due to the fact that large part of these devices is mobile and there are well inherent challenges to keep these devices permanently connected. On the other side, due to the dynamicity that new paradigms such as cloud computing are bringing to the network. In the latter case there is the clear need of a more scalable and flexible network architecture, starting within data centre domains [1][2]. Cloud environments have continuous allocation and re-optimization processes of virtual resources in the network, which requires constant configurations in the network. However, the impact is not limited to data centre networks as the transport network also plays a fundamental role, from connecting data centres, to the actual delivery of these services to the end-user. Thereby, the complexity of network management increases exponentially both inside and outside data centres, i.e. on the operator network. Taking into account the abovementioned factors, it is not feasible to have a static network (as today) that does not have dynamic capacity. The network architecture needs to evolve to be able to provide current and next generation networking services, both from a performance and implementation point of view. In other words, it needs to be more service oriented. Software-Defined Networking (SDN) is an emergent paradigm that proposes a change in current network architecture, based on the separation of the data plane and control plane. From a logical point of view, this separation allows the placement of the network intelligence into a higher layer, reducing the current complexity of network elements (forwarding elements, switches and routers) and making the network more programmable. Therefore, network elements A Internet do futuro just need to ensure connectivity services as the intelligence is now at an upper layer [3][4]. The operation method is based on the exchange of messages between the control plane and network elements (data plane), instead of statically programming those elements. This allows the network to become more dynamic and for resources to be more efficiently used, leading to a better management of Quality of Service (QoS) [3]. The most widely accepted protocol to perform the communication between the two layers is Openflow. SDN, with Openflow, offers other advantages to the operator, among which: the ability, from a control perspective, to be agnostic to the hardware, which reduces vendor lock-in; the displacement of network intelligence allows for a higher layer of abstraction from a lower layer, i.e., an abstraction layer to the individual elements in the network. Having a logically centralized management entity also enables faster deployments of new services. Although the application of SDN has been mostly linked to data center networks, there are network operators already experimenting it beyond data centers, such as NTT [5]. Apart from the known advantages of SDN, currently there is no framework that contains the complete SDN architecture. Ideally, with a complete framework, the network should be seen from a service perspective, leaving the work of provisioning and managing the network connectivity to the framework itself. The latter should have monitoring and management mechanisms that guarantee the normal operation of the network and non-optimal data paths. In this paper we present a service-oriented SDN framework that enables the automatic provisioning of connectivity services over an Openflow network. Moreover, we undertake the management and maintenance of the same, by presenting a set of self-management mechanisms to ensure the optimal functioning of the network. This framework allowed to study the potential of SDN as a solution for the future Internet. A thorough evaluation of the framework is performed, presenting encouraging results towards a possible future deployment. The remainder of this paper is organized as follows. Section II briefly presents related work, and Section III presents the architecture of the SDN framework with a thorough description of its internal modules. Section IV presents the implementation aspects of those modules, while Section V describes the developed testbed, the exploited scenarios and the experimental results. Finally, Section VI presents conclusions and points out future work. 19 II. BACKGROUND AND RELATED WORK SDN has been widely explored both on the industrial side as well as on the academic side. On the industrial side the Open Networking Foundation (ONF) [6] is a well-known initiative currently focused on the analysis of SDN requirements and the evolvement of the OpenFlow standard. Another strong initiative is the OpenDayLight project [7], which intends to create a common and open SDN platform enabling network control and programmability. Its ultimate goal is to provide a complete SDN framework based on OpenFlow. Although far from being completed, this initiative is most probably the one closest to the focus of our work. In the academia there are several works that tackle SDN and Openflow related topics. P. Sharma [8] proposes a network management and control system framework that allows network operators to run their networks in a hybrid mode, i.e. composed by the legacy network protocols and a controller with Openflow. With this they automate and simplify network management while increasing the dynamic control of individual flows, regarding QoS requirements. Although an improvement, this architecture is still hindered by legacy management tools and protocols, limiting the potential of a complete SDN management solution. Furthermore, H. Egilmez [9] proposes a different approach of QoS architectures for rerouting capability, using non-shortest paths for lossless and lossy QoS flows. In a latter work [10], the author proposes a framework for dynamic rerouting of QoS flows to stream scalable coded videos, consisting of a base and one or more enhancement layers. This work aims to resolve the optimization problem of the flows, concerning the QoS requirements, in an Openflow network, but does not focus on their initial configuration and activations of the flows in the Openflow network. On the other hand, B. Sonkoly [11] proposes an integrated Openflow virtualization framework capable of running with different Openflow versions simultaneously, running and configuring full controllers that manage virtual networks, and configuring QoS in the network. This tackles the virtualization problem associated with the Openflow network, also focusing on the QoS requirements of the flows. Yang Yu [12] proposes a framework that uses the OpenFlow to handle the transient link failure. This still uses the legacy routing protocols, shifting for the Openflow to tackle the problem until the system is recovered. Ofelia is a European project which aims at creating an unique experimental infrastructure that allows researchers to, not only experiment on a test network, but also control and extend it dynamically and accurately. It consists of autonomous OpenFlow enabled islands where each will serve as a nucleus for an OpenFlow enabled campus network at their local organization and site [16]. In order to support and enable more efficiently ICN [17] management, it arises coCONET [18], tested in Ofelia, consisting of a platform that integrates a set of features that enable it to respond to the content-centric request/reply 20 paradigm for data distribution, effected route-by-name operations and allocated in cache of network. Moreover, [13] proposes a data plane abstraction for application service providers focused on expressing and enforcing application traffic management policies and application delivery constrains. This abstraction is an extension of OpenFlow and SDN concepts. Most of the current work focuses on specificities of SDN (OpenFlow, interfaces, programming platforms), and only a very small set look into SDN from a full stack perspective. Although the former are essential, also the latter perspective needs to be taken into account. In this sense, our work focuses on a complete framework targeted to services with modular characteristics. III. SDN FRAMEWORK ARCHITECTURE In this section the proposed SDN framework is presented. This SDN framework allows the creation and management of network connectivity services over an Openflow based network. Moreover, it assures the integrity of these services (fault-management), as well as the optimal usage of the infrastructure (run-time management). In the framework, a network connectivity service is defined by four parameters: communication type, endpoints, service type and rule type. The first defines the communication type, for example, Multicast or Full-Mesh communication. The second defines the type of network service, for example, TCP, UDP, ICMP and ARP communication. The third defines a set of endpoints that are part of the service, which are identified using MAC and/or IP addresses. Moreover, single ports (i.e. switch interfaces) are also an option. The last parameter, rule type, defines the type of rule that is applied in the network, i.e. if apart from the service type, also IP and/or MAC are taken into account. The framework’s architecture, presented in Figure 1, is composed of five modules. Figure 1 – SDN Framework Architecture The control grid of the framework is composed by four modules: Flow Handler, Activator, Monitoring and Controller. It is responsible for the connection between the data plane, Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 Figure 2 shows the interaction between the modules in its various functionalities: system startup; service activation; event detection; fault detection; and re-optimization process. Throughout the iteration between modules, there is a continuous communication between Monitoring and Controller and also between the Controller and the OpenFlow network. When the system starts, the Flow Handler module subscribes to the services provided by the Monitoring. Simultaneously, the Monitoring collects network information A Internet do futuro from the Controller (network element list and capabilities), which will then be used to build the network topology and associated information to be transmitted to the Flow Handler. After this, the platform is available to receive and activate connectivity services. On the activation of a service, the user communicates to the Service Handler which service he wants to activate on the network. This module validates the request (i.e. verifies if parameters are consistent with what the platform has to offer) and stores it in a database. The Flow Handler is in continuous communication with the database looking for new flows to activate. When this module finds new flows in the database, it retrieves its description to later associate them a path that will be mapped on the network. Finally, it transmits all necessary information to the Activator module to insert these flows in the network. The activation flows are updated on the table of flows of the network elements, via the Controller. USER Service Handler Database Flow Handler System Startup Subscription Response Monitoring Service Activation Activator Controller OF Network Network Information Request Response Openflow protocol Notification Response Save Request Get Flows Description Response Network Information Request Response Flows Activation Response Update Flows Event /Fault Detection Monitoring Monitoring Openflow protocol Service Request Reoptimization Process where the forwarding elements are, and the applications plane, where the fifth module is – Service Handler. Moreover, it is also responsible for assuring the optimal functioning of the network. The individual functions of the different modules are described below. Service Handler – module with the vision of connectivity services and flows. This module is responsible for receiving requests and checking their consistency. Furthermore, it translates service requests into flows that are then sent to the Flow Handler. Finally, it makes available state information of the services to upper layers (e.g. active, failed, provisioning). The interaction between the Service Handler and the Flow Handler represents the bridge between the application plane and the control plane of the SDN standard architecture. Flow Handler – module with the vision of flows and rules. In an initial moment, this module subscribes to the services provided by the Monitoring in order to gather the information of the network elements (topology) and problems (alarms/changes in the topology) that are felt there. Then, it is responsible to decide the links (path) that the flows traverse in the network. Besides the activation of flows via Activator, this module also reacts to events detected in the substrate with the objective of optimizing, in case there is an increment of network elements, or to maintain the normal functioning of services and network, in case there is a loss of network elements. Activator – module responsible to decode the received path of a rule type by the Flow Handler, in order to gather the information of the network elements that will be affected. Then, it updates the flow tables of those elements, belonging in the data plane, via Controller. All the information concerning the rules (flows, path and state) implemented in the substrate is saved in an internal data structure. At last, it makes available the information of the rules present in the network. Monitoring – module responsible to identify, monitor, save and provide information regarding the network elements. This module uses the Controller to gather the information and saves it in an internal data structure. It provides all the relevant information concerning the network elements for the superior modules, in this case for the Flow Handler. It operates through a subscription service to provide the information about the topology and problems of the network. Controller – module responsible for the communications between the control plane and the data plane. This module uses the Openflow protocol to configure and to manage the operations on the flow tables of the network elements. Openflow protocol Flows Check-up Response Openflow protocol Notification Get Flows Description Rule Update Response Network Information Request Response Event /Fault Detection Response Flows Reoptimization Flows Activation Response Rule Update Response Update Flows Openflow protocol Flows Check-up Response Figure 2 – Modules’ interaction (System Startup, Service Activation and Reoptimization Process) The reoptimization process starts when the Flow Handler, after receiving an event from the Monitoring module, detects a change in the network by comparing the new and the previous topology. In case there are new links, the Flow Handler will search for possible optimization of active services. For this purpose, the module executes the flow allocation algorithm (Dijkstra) for every flow stored in the database in an attempt of finding shorter paths. In case some links have been removed, the module will search for possible failures in active services - Fault Detection functionality previously mentioned. In this case, all data paths of active flows are analysed and, in case the failure affects a flow, the flow allocation algorithm is applied in order to reallocate the flow. 21 IV. IMPLEMENTATION This Section describes the internal characteristics and options made in the development of the modules. The Controller chosen to operate with the Openflow protocol is the Floodlight with the version 0.9. This controller is open source, uses the RESTful web API principles, and has an active mailing list. All those characteristics make the Floodlight suitable to use in our framework. The rest of the modules use the version 2.7 of the Python language. This architecture is designed to be modular, autonomous, automatic and easily scalable. From a logical point of view, the modules Service Handler and Flow Handler are separated, but from an implementation point of view they are united in the same server. On the other hand, the modules Activator and Monitoring have independent servers. All modules use a RESTful web API and HTTP principles to make the exchange of data from and to the servers, with JSON to serialize data. The Service Handler allows two types of services: Fullmesh that creates bidirectional connections between the list of elements; and Multicast that creates unidirectional connections between an element labelled as source and the elements labelled as destiny. The communication between this module and the Flow Handler is performed through a database. The Flow Handler is in continuous access with the database to detect if there are flows uncompleted (flows without a path associated), or if there are flows completed but not actives. This module uses the Dijsktra algorithm to discover the shortest path in the network. Moreover, this last module will perform management actions concerning the modifications felted in the substrate network. The Monitoring is in continuous communication with the Controller in order to gather all the relevant information of the network elements. This module produces adjacency matrixes with the information of the network topology, link bandwidth and places of problems felt in the network. The modules that want to receive this information need to perform a previous registration (subscription), and after that moment the Monitoring knows the addresses of where to send the information. Every time that the network topology changes, this module remakes the adjacency matrixes and sends that information to the subscribed addresses. Figure 3 – Network elements scheme The Open VSwitch is used to emulate the switches in the nodes. The Open VSwitch is an open source application that emulates the behaviour of a real switch that supports the Openflow protocol. The control grid is configured to allow the access to the machines where the Open VSwitch are installed, in order to obtain the results of the simulations. The characteristics of the nodes are below in the Table I. B. Scenarios In the scope of the evaluation, it is analysed three different scenarios. These scenarios allow the exhibition of the features developed for the SDN framework. 1) Service Activation – the connectivity service is received by the framework and its consistency is evaluated. After that initial step, the framework translates the service in its correspondent number of individually flows considering the type of work chosen, and stores them in the database. Afterwards, a path finding algorithm is executed to complete the flows. After this point, the flows are considered completed and ready to be activated. At last, the framework activates all the flows and updates the state of the service. 2) Loss of a link – the framework detects that a link was removed from the network. After this process, the new adjacency matrix of the network topology is made. Finally, all the flows activated are analysed, in order to identify and modify the flows that are directly affected with this loss. This re-optimization process aims to maintain the services active. 3) Addition of a link – the framework detects that a link was added in the network. As the previous scenario, the new adjacency matrix representing the network topology is made. After that, every flow is optimized according with the new state of the network. This is a complete re-optimization process. V. EVALUATION This section evaluates the proposed SDN framework. First, the testbed used for the evaluation is described. Furthermore, the different scenarios studied are presented. Finally, the experimental results are obtained and analysed. A. Testbed The testbed built to evaluate the performance of the SDN framework is shown in the Figure 3. The Controller and the servers are placed in the node C, and that same node connects the testbed with the Internet. 22 Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 Node CPU Model A Intel PentiumD 950 B Intel Core 2 Duo E6400 C Intel Core 2 Duo E6400 D Intel PentiumD 950 TABLE I – TESTBED SPECIFICATION CPU CPU CPU HDD RAM Freq. Cores Threads Memory Amount 3.40 2 4 40 GB 6 GB GHz 2.13 GHz 2 2 145 GB 4 GB 2.13 GHz 2 2 145 GB 4 GB 3.40 GHz 2 4 40 GB 6 GB RAM Freq, 667 MHz DDR2 533 MHz DDR2 533 MHz DDR2 667 MHz DDR2 C. Performance Results This sub-section presents the performance analysis in the 3 previously defined scenarios. Relatively to the first scenario, Figure 4, it is activated a connectivity service of the type UDP with the operation mode Multicast, in which the host source will be always placed at the node A. The targets will be placed: 1 at node D (service with 2 elements in which it will be translated into 1 flow); 2 at node B and 2 at node D (service with 5 elements which will be translated into 4 flows); and 3 at node A, 4 at node B and 12 at node D (service with 20 elements which will be translated into 19 flows). Additionally to the individual analyses of the modules Service Handler and Flow Handler, the activation time presents also a linear behaviour. It takes approximately 140 ms to activate each flow. The service that is translated in one flow takes approximately 460 ms to be received, treated and activated. In the case that the service results in four flows, it takes approximately 1260 ms from the first moment until it is completely active. For the last service, which is translated into 19 flows, it takes approximately 5800 ms to be activated. These times will be affected by the size of the substrate network. This is related with the policy used for finding the path for the flows (Dijkstra that gives the shortest path). The results of the second and third scenarios are presented in Figure 5. For both cases, the initial step is the perception that there was a change in the substrate network by the Monitoring. The other step is the re-optimization process. It is noticed a large time difference between the reaction for the loss of a link, approximately 100 ms, and the reaction to the addition of a link, approximately 3000 ms. For the first case, the re-optimization time will be directly proportional to the flows affected, because it is needed to find another path to allocate them and activate again. For the second case, it is performed a path finding attempt for every flow. In our experiments, the time for both cases is almost the same, because the number of flows that get affected with the loss of a link is the same than the one that afterwards get a shorter path with the addition of that same link. In addition, we noticed in our experiments that the search for the flows affected when there is a loss of a link consume more time than a path finding try for the entire flows present in the database. A Internet do futuro However, when the number of nodes in the network is larger, it is expected that the re-optimization process due to the addition of elements will have longer time consumption than the cases when there is a loss of elements, because of the complexity of the Dijkstra algorithm. Figure 4 – Service activation The difference of performance for both cases is in the identification that the substrate network has changed, that is quicker for the loss of a link than for the addition of a link. In the addition of a link, the switch interface needs to perform an internal reconfiguration, informing the internal Open VSwitch, and only after that, the controller is notified. On the contrary, the loss of a link does not need reconfiguration and the controller is notified right away. Figure 5 – Loss of a link and addition of a link VI. CONCLUSION The goal of this paper is to overcome the lack of a full stack of layers in a single framework, from the data plane to the application plane, which offers connectivity services to the users in a simple, autonomous and automatic form. This paper proposed a complete SDN framework that enables the configuration and management of connectivity services upon a real Openflow network. Two different operation forms are made available to perform the configuration of those services. The management of those services encompasses a re-optimization process when there is 23 addition of network elements, or a maintenance process of the services when there is a loss of network elements. The performance of the SDN framework is evaluated in a real environment, which gives insight on the times that it takes to perform the configuration and management of connections upon a real Openflow network. It takes approximately 245 ms and 290 ms, per flow, to receive, manage and activate services for the Full-mesh and Multicast operation forms correspondently. As future work, we plan to incorporate this SDN framework with cloud computing mapping algorithms, being this framework responsible to perform the enforcement of the mapping decisions, related with the links, in the operator network. [18] International Conference on emerging Networking EXperiments and Technologies (CoNEXT), 2009 Veltri, L., Morabito, G., Salsano, S., Blefari-Melazzi, N., & Detti, A:“Supporting information-centric functionality in software defined networks”. In Communications (ICC), 2012 IEEE International Conference on (pp. 6645-6650). IEEE. June,2012. REFERENCES [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] 24 Open Networking Foundation: “Enabled Hybrid Cloud Services Connect Enterprise and Service Provider Data Centers”, white paper, November, 2012. Open Networking Foundation: “Software-Defined Networking: The New Norm for Networks”, white paper, April, 2012. M. Mendonca, B. Nunes, X.Nguyen, K. Obraczka and T.Turletti: “A Survey of Software-Defined Networking: Past, Present and Future of Programmable Networks”, May, 2013. W. Stallings: “Software-Defined Networks and Openflow”, in The Internet Protocol Journal, Cisco, Volume 16, Issue 1, pp. 2-14, March, 2013. H. Nagasono: “NTT DATA’s Efforts for Openflow/SDN”, in NTT Technical Review, Volume 10, Number 11, November, 2012. Open Networking Foundation: “Openflow Switch Specification”, August, 2013. OpenDaylight: “An Open Source Community and Meritocracy for Software-Defined Networking”, April, 2013. P. Sharma, S. Banerjee, S. Tandel, R. Aguiar, R. Amorim and D. Pinheiro: “Enhancing Network Management Frameworks with SDNlike Control”, Integrated Network Management (IM 2013), 2013 IFIP/IEEE International Symposium on , pp.688,691, 27-31 May, 2013. H. Egilmez, B. Gorkemli, A. Tekalp and S. Civanlar: "Scalable video streaming over OpenFlow networks: An optimization framework for QoS routing", Image Processing (ICIP), 2011 18th IEEE International Conference on, pp.2241-2244, 11-14 September, 2011. H. Egilmez, S. Civanlar and A. Tekalp: "An Optimization Framework for QoS-Enabled Adaptive Video Streaming Over OpenFlow Networks", Multimedia, IEEE Transactions on, vol.15, no.3, pp.710715, April, 2013. B. Sonkoly, A. Gulyas, F. Nemeth, J. Czentye, K. Kurucz, B. Novak and G. Vaszkun: "OpenFlow Virtualization Framework with Advanced Capabilities", Software Defined Networking (EWSDN), 2012 European Workshop, pp.18-23, 25-26 October, 2012. Y. Yu, C. Shanzhi, L. Xin and W. Yan: "A framework of using OpenFlow to handle transient link failure", Transportation, Mechanical, and Electrical Engineering (TMEE), 2011 International Conference on , pp.2050-2053, 16-18 December, 2011. S. Paul and R. Jain: "OpenADN: Mobile apps on global clouds using OpenFlow and Software Defined Networking", Globecom Workshops (GC Wkshps), 2012 IEEE , pp.719-723, 3-7 December, 2012. J. Aparício, “Integração da Cloud com a rede do Operador ”, Master Thesys, Department Electronic Telecommunication and Informatics, University of Aveiro, Aveiro, Portugal, 2013. R. Gouveia, “Demonstrador de uma rede Openflow”, Master Thesys, Department Electronic Telecommunication and Informatics, University of Aveiro, Aveiro, Portugal, 2013. A. Köpsel and H. Woesner: “Test Facility for OpenFlow Experimentation”, In EICT GmbH, Berlin. November, 2011 V. Jacobson, D. K. Smetters, J. D. Thornton, M.F. Plass, N.H. Briggs, and R. L. Braynard, “Networking Named Content”, Fifth ACM Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 Framework e Cliente WebRTC Vasco Amaral† ∗ , Solange Rito Lima∗ Telma Mota† Paulo Chainho† † Portugal Telecom Inovação, SA, 3810-106 Aveiro, Portugal ∗ Centro Algoritmi, Departamento de Informática, Universidade do Minho Campus de Gualtar, 4710-057 Braga, Portugal Resumo—WebRTC é uma tecnologia normalizada, que permite a comunicação em tempo real entre browsers, sem a necessidade de instalar plugins adicionais. Desta forma é possı́vel a qualquer dispositivo (computadores, smartphones, etc.) que tenha instalado um browser, realizar comunicações em tempo real peer-to-peer, de uma forma nativa. Exemplo disso são as comunicações de voz, vı́deo e também a possibilidade de falar por chat, partilhar ficheiros e partilhar ecrã. É uma tecnologia relativamente recente mas tem vindo a crescer exponencialmente, tanto a nı́vel de soluções implementadas, como também a nı́vel de compatibilidade de web browsers. Desta forma WebRTC torna-se uma tecnologia em forte crescimento e evolutiva, onde poderão surgir cada vez mais soluções de serviços. Atendendo a que ainda não está definida uma implementação normalizada para a comunicação entre endpoints WebRTC, este artigo apresenta um projeto que consiste numa abordagem à tecnologia WebRTC, de forma a identificar as potencialidades desta tecnologia e de que forma podem ter impacto no mundo das telecomunicações. No decorrer do estudo realizado, e para o fundamentar, foi desenvolvida uma framework que tem como objetivo tornar mais fácil a criação e implementação de serviços WebRTC, que servirá como uma solução de comunicação entre vários clientes. Este é o foco deste artigo, em que se apresenta um estudo realizado à tecnologia WebRTC de forma a determinar a sua maturidade e a sua evolução. Pretende-se, adicionalmente, mostrar os principais aspectos envolvidos no desenvolvimento de uma framework que irá permitir, a utilizadores ou entidades externas, criar serviços ou aplicações WebRTC de uma forma simples e a um alto nı́vel. Vários serviços alvo são testados como prova de conceito no âmbito do desenvolvimento da framework. O artigo está organizado da seguinte forma: na Secção II são apresentados os conceitos associados à tecnologia WebRTC, nomeadamente a arquitetura e as Application Programming Interface (APIs) que a constituem; na Secção III aborda-se o trabalho relacionado com WebRTC, como as soluções já existentes em termos de sinalização e também em termos de tecnologia; na Secção IV são apresentados os serviços que se pretendem desenvolver no âmbito da framework e a solução arquitetural apresentada para os suportar; na Secção V incluem-se as principais conclusões do trabalho desenvolvido. II. C ONCEITOS I. I NTRODUÇ ÃO Cada vez mais as telecomunicações estão presentes no nosso dia-a-dia. São criados mais serviços, cada vez mais baratos, que se tornaram indispensáveis no nosso quotidiano. Exemplo disso, são as chamadas áudio, as videochamadas, as mensagens, etc. Tal como estes serviços, a Web tem evoluı́do de uma forma bastante significativa, tornando-se um meio indispensável e onde circula uma grande quantidade de informação diariamente. Começaram a ser criadas as Single-Page Aplications (SPA) [22] que permitem redesenhar uma parte da interface de utilizador, sem necessidade de realizar sempre pedidos ao servidor, fazendo uma divisão mais equilibrada de carga entre o servidor e o cliente. Com esta evolução começaram a surgir novas tecnologias que permitem a criação de soluções inovadoras, como a tecnologia WebRTC. Esta tecnologia vem dinamizar o mundo das telecomunicações permitindo a criação de novas soluções de serviços. WebRTC é uma tecnologia recente que tem estado em constante evolução e traz grandes desafios. No mundo empresarial os maiores desafios passam pelos serviços que podem ser desenvolvidos com esta tecnologia. Para isso, é necessário fazer um estudo à tecnologia e implementar uma solução que permita facilitar o desenvolvimento de diferentes serviços de telecomunicações (e.g., presença, lista de contactos, chamadas áudio e vı́deo, etc). A Internet do futuro Nesta secção são apresentados os principais conceitos inerentes à tecnologia WebRTC, tais como a sua arquitetura, as Application Programming Interface (API) que a constituem e de que forma funcionam. A. Arquitetura WebRTC A arquitetura WebRTC apresenta dois nı́veis distintos: WebRTC C++ API e Web API, consoante ilustrado na Figura 1. A WebRTC C++ API destina-se principalmente aos programadores de Web browsers, permitindo criar Web browsers que suportem as funcionalidades da WebRTC [3]. Para quem desenvolve aplicações Web, o uso da Web API é fundamental. Permite tirar proveito das funcionalidades WebRTC que os Web browsers suportam, a partir de programação JavaScript [3]. B. WebRTC API A API de WebRTC está a ser desenvolvida sobre três conceitos essenciais: PeerConnection, MediaStreams e DataChannel [1]. 1) PeerConnection: PeerConnection permite que dois utilizadores comuniquem diretamente, browser-to-browser. Para estabelecer esta ligação e haver uma sinalização de negociação, é necessário que haja um canal de sinalização. Este é fornecido por um script implementado num servidor Web, utilizando 25 C. WebSockets Figura 1. O WebSocket Protocol é um protocolo que fornece uma comunicação bidirecional, baseado em sockets e usa HTTP como camada de transporte. Desta forma é possı́vel usar WebSockets com soluções web já existentes, visto que pode trabalhar sob portas HTTP como 80 e 443, o que facilita a integração deste protocolo com as soluções já existentes. Para além disso, este protocolo não está apenas limitado ao HTTP, o que permite fazer um handshake simples sob uma porta sem reinventar o protocolo [4], [5]. Na Figura 2 estão representados dois tipos de ligações: polling (HTTP) e WebSockets. Numa ligação polling o browser necessita de estar sempre a fazer pedidos, pois o servidor só responde no caso de receber esses pedidos. No caso do WebSocket o browser faz apenas um pedido e o servidor envia toda a informação em vários pacotes de dados, sem ter que receber qualquer pedido adicional por parte do browser. Esta ligação entre o servidor e o browser é designada como uma ligação persistente, pois sempre que um deles precisar de enviar qualquer informação podem fazê-lo a qualquer momento. Arquitetura WebRTC [3]. WebSockets ou XMLHttpRequest. Este mecanismo usa o protocolo Interactive Connectivity Establishment (ICE) juntamente com Session Traversal Utilities for NAT (STUN) e Traversal Using Relays arround NAT (TURN) para permitir ajudar as streams de media a passarem por Network Address Translation (NAT) e firewalls [1], [25], [2]. 2) MediaStreams: MediaStream é uma forma abstrata de representar uma stream de dados áudio e/ou vı́deo. Este tipo de aplicações pode ser usada para mostrar, gravar ou enviar o seu conteúdo para um peer remoto. Existem dois tipos de stream: Local MediaStream ou Remote MediaStream. Local MediaStream é a stream capturada no próprio sistema (webcam e microfone) enquanto que Remote MediaStream é a stream recebida de outro peer. Para ter acesso à media dos componentes do terminal é necessário executar a função getUserMedia(), onde podem ser definidos alguns parâmetros, dependendo do que o utilizador do terminal queira reproduzir. Para a transmissão das streams são usados protocolos como Secure Real-time Transport Protocol (SRTP), Realtime Transport Protocol (RTP) e Real-time Transport Control Protocol (RTCP) para monitorização de transmissão de media. O Protocolo Datagram Transport Layer Security (DTLS) é usado como uma chave de SRTP e para gestão de associações [1], [25], [2]. 3) DataChannel: RTCDataChannel é um canal de dados bidirecional em ligações peer-to-peer. É possı́vel serem transferidos dados que não sejam media e é necessário usar outro protocolo, como SCTP encapsulado em DTLS. Desta forma existe uma solução para NAT com confidencialidade, autenticação da fonte e integridade dos dados que sejam necessários transferir. O SCTP permite a entrega, fiável e não fiável, de dados e permite que as aplicações abram várias streams independentes. Para a criação de um DataChannel é necessário executar a função CreateDataChannel() numa instância da PeerConnection [1], [25], [2]. 26 Figura 2. Comparação de latência entre polling e aplicações Websockets [6]. D. Sinalização Ao contrário do que acontece com uma infraestutura completamente pensada para estabelecer uma ligação ou até mesmo controlar todo o media, o mesmo não acontece quando se fala da sinalização. Para estabelecer uma chamada entre os utilizadores, é necessário haver uma negociação de parâmetros da sessão, descritos via Session Description Protocol (SDP). A definição do método a utilizar fica a cargo da camada aplicacional, ou seja, a pessoa que está a desenvolver uma aplicação pode definir o método que quer para a sinalização. Apesar disso existem alguns protocolos que definem como deve ser feita a sinalização. Por exemplo, o JavaScript Session Establishment Protocol define de que forma as aplicações JavaScript interagem com as funções Real Time Communication (RTC). Este protocolo é responsável pela forma como os clientes podem recolher informação sobre o tipo de media que suportam e que codecs usam, o que fica definido num objeto Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 SDP RTCSessionDescription. O JSEP fornece mecanismos de criação de offers e answers, como também de que forma podem ser aplicadas numa sessão [9]. Este protocolo não define de que forma essa informação é trocada, ou seja, não é definido como essa informação é enviada ou recolhida do servidor web, ficando isso a cargo do programador. Package Manager (npm) [10]. O npm, para além de servir para instalar os módulos, permite também tratar da gestão de versões e gestão de dependências. Um dos módulos que permite desenvolver aplicações que atuem em tempo real e que utilizem uma API tipo WebSockets, é o socket.io. Este permite que WebSockets e tempo real estejam presentes em qualquer browser, para além disso ainda fornece multiplexing, escalabilidade horizontal e codificação e descodificação em JSON [10]. B. Vertx.io Figura 3. Modelo JSEP [9]. A figura 3 mostra o modelo utilizado pelo JSEP, onde as mensagens entre o browser e a aplicação são objetos SDP, e o protocolo que é usado para transmitir essa informação é especificado na camada aplicacional. III. S OLUÇ ÕES W EB RTC Com a evolução da tecnologia WebRTC nestes últimos anos, o número de aplicações e/ou soluções WebRTC têm vindo a aumentar. Existem soluções para realizar conferências entre duas ou mais pessoas (Conversat.io), partilha de ecrã, partilha de ficheiros, falar por chat, partilha de conteúdos peer-to-peer, com o objetivo de não sobrecarregar os servidores (peerCDN), e ainda usar jogos multiplayer que utilizam RTCDataChannel (BananaBread). Existem ainda soluções SIP HTML5 que usam a Web API, para que haja uma interoperabilidade entre sistemas SIP nativos e sistemas WebRTC (sipML5). Estes são exemplos de aplicações Web funcionais. WebSockets é uma tecnologia que também se encontra em desenvolvimento e ainda não é suportável em todos os browsers. Existem várias aplicações que permitem o desenvolvimento de soluções Websockets num servidor, as duas mais relevantes para este artigo são: Node.js e Vertx.io. A. Node.js É uma plataforma orientada a eventos, do lado do servidor, que permite a criação de aplicações web escaláveis. Os programas que são desenvolvidos com esta plataforma são escritos em JavaScript e são assı́ncronos, o que permite diminuir o overhead e aumentar a escalabilidade [11]. Contém uma biblioteca de servidor HTTP, que permite correr aplicações web sem usar um servidor tı́pico HTTP (e.g. Apache). Esta plataforma permite a criação de aplicações que tenham por objetivo funcionar completamente em tempo real, como por exemplo, streaming de voz ou vı́deo, ou então serviços de chat e partilha de ficheiros [11]. Implementa um repositório de módulos, onde cada um tem uma funcionalidade diferente. Cada um destes módulos pode ser instalado a partir de Node A Internet do futuro É uma framework da próxima geração, que corre em Java Virtual Machine (JVM), é orientada a eventos e assı́ncrona. Implementa um modelo de concorrência assı́ncrono que permite a criação de aplicações facilmente escaláveis, de uma forma simples. No que diz respeito às linguagens de programação que podem ser usadas, é uma framework poliglota, suportando desenvolvimento em: Java, JavaScript, Groovy, Ruby, Python e Scala. Para além das caracterı́sticas apresentadas anteriormente, esta framework aborda alguns conceitos que são importantes para o desenvolvimento de aplicações [15], [14], nomeadamente: • Verticle: Um verticle é definido por ter uma função principal (main), que corre um script especı́fico. Um verticle pode conter mais verticles, desde que sejam referenciados na função main. • EventLoops: São threads que estão sempre a correr e estão sempre à escuta, de forma a verificar se existem operações a executar ou dados a tratar. A gestão destas threads é feita por uma instância do Vert.x, que aloca um número especı́fico de threads a cada núcleo do servidor. • Work Verticle: Este tipo de verticle não é atribuı́do a uma thread event loop do Vert.x, em vez disso, é executado a partir de uma thread que se encontra numa pool de threads internas, à qual se chama background pool. • EventBus: Esta é uma caracterı́stica do Vert.x bastante importante que permite a comunicação entre vários verticles ou módulos do Vert.x. Para além disso, é possı́vel haver uma comunicação não só entre verticles mas entre entidades que registem handlers num servidor (ex. clientes). Desta forma é possı́vel a partilha de informação entre as várias entidades que constituam um sistema, chamada de Message Passing. Pode-se verificar na figura 4 uma arquitetura especı́fica do Vert.x. • Modules: É possı́vel a criação de módulos individuais, que executem diferentes funções. Isto permite uma melhor organização de código e uma maior escalabilidade de aplicações. A comunicação entre os módulos é feita a partir de um eventbus. Existe ainda um repositório onde existem módulos previamente criados, que podem ser usados para facilitar a construção de aplicações. No que diz respeito a frameworks, bibliotecas ou repositórios não se verificam muitos desenvolvimentos. Foram desenvolvidas algumas soluções que permitem criar soluções WebRTC de uma forma mais simples e mais dinâmica, a um mais alto nı́vel. No que diz respeito a bibliotecas e 27 deteção de presença (orientado a eventos onde é verificado quando um utlizador entra ou sai, sem vários estados de presença). Esta biblioteca usa firebase por defeito, que é uma tecnologia com uma base de dados na cloud e que permite desenvolver aplicações em tempo real. Tem uma estrutura de dados partilhada e sincronizada, desta forma sempre que os dados são mudados ou atualizados é possı́vel atualizar essa informação em todos os clientes que estão ligados [18]. Para além disso, é possı́vel implementar uma solução que use socket.io ou WebSockets. 2) DataChannel.js: É uma biblioteca JavaScript que foi desenhada para ajudar a desenvolver aplicações para partilha de dados. Estes dados podem ser ficheiros ou simples mensagens de texto. Tal como a RTCMultiConnection.js simplifica o desenvolvimento de aplicações. Esta biblioteca implementa as seguintes funcionalidades [19]: • mensagens de texto directas entre utilizadores; • banir ou rejeitar qualquer utilizador; • sair de uma sessão ou encerrar uma sessão completa; • tamanho de ficheiros ilimitado; • quantidade de dados ilimitada; • detecção de presença (orientado a eventos onde é verificado quando um utlizador entra ou sai, sem vários estados de presença). Como indicado na biblioteca RTCMultiConnection.js, usa por defeito e como backend o firebase, mas também pode usar socket.io ou Websockets para sinalização. 3) RecordRTC.js: Esta biblioteca foi desenvolvida para permitir aos utilizadores guardarem áudio, vı́deo ou até mesmo imagens animadas. A stream de áudio é gravada no formato .wav, a stream de vı́deo é guardada em formato WebM e as imagens animadas em .GIF. Estes formatos podem ser gravados no disco de forma a ser possı́vel retornar o URL desse ficheiro, para aceder posteriormente a essa informação. Fica a cargo de quem está a desenvolver a aplicação dizer se quer como retorno o URL, DataURL ou o objeto Blob [17]. Esta biblioteca pode ser útil para gravar chamadas entre clientes, ou até mesmo gravar uma mensagem de videomail ou voicemail. 4) RTCCall.js: Esta biblioteca foi desenvolvida para ter apenas uma funcionalidade. Esta funcionalidade passa por um administrador de um sistema poder falar com os seus clientes/visitantes. Como exemplo, um administrador de um sitio online, onde são oferecidos serviços, poderá ter um botão em que os seus clientes clicam e telefonam para si. Desta forma é possı́vel tirar dúvidas sobre produtos ou até mesmo reportar problemas encontrados. Assim há uma maior interatividade entre administradores e clientes [20]. • Figura 4. Funcionamento geral da aplicação Vert.x [13]. Tabela I P ERFIXOS DAS INTERFACES NOS DIFERENTES browsers [12]. W3C Standard getUserMedia RTCPeerConnection RTCSessionDescription RTCIceCandidate Google Chrome Não Suporta Não Suporta Não Suporta Não Suporta Mozilla Suporta Suporta Suporta Suporta Firefox >v17 >v22 >v22 >v22 repositórios destacam-se: Adapter.js, WebRTC-Experiment e SimpleWebRTC, que a seguir se descrevem. C. Adapter.js As chamadas ao sistema de cada Web browser são feitas de forma diferente, ou seja, é necessário executar funções diferentes na mesma aplicação caso se queira que a aplicação funcione em dois ou mais browsers diferentes. A Tabela I representa que tipo de funções são usadas para desenvolver uma solução WebRTC em diferentes browsers. A biblioteca Adapter.js vem unificar estas funções, isto é, ao carregar esta biblioteca para uma aplicação é possı́vel usar funções W3C Standard que podem ser usadas tanto no Chrome como no Firefox. D. WebRTC Experiment É um repositório de bibliotecas JavaScript que implementa demos WebRTC e que tem por objetivo ajudar no desenvolvimento de aplicações deste tipo. Existem quatro bibliotecas diferentes neste repositório: RTCMultiConnection.js, DataChannels.js, RecordRTC.js e RTCall.js [16]. 1) RCMultiConnection.js: Com esta biblioteca é possı́vel desenvolver alguns serviços avançados de uma forma mais simples, como [18]: • conferências Áudio/Vı́deo; • partilha de dados ou de ficheiros; • partilha de ecrã; • renegociação de streams múltiplas e remoção de streams individuais; • fazer mute ou unmute às várias streams (áudio e vı́deo); • banir utilizadores; 28 E. SimpleWebRTC É uma biblioteca Javascript que permite desenvolver aplicações de comunicações em tempo real em ambientes Web (WebRTC). É possı́vel configurar variáveis, para simplificar a implementação das soluções que se pretendem desenvolver, como saber quais os objetos HTML5 aos quais se devem alocar as streams, se o pedido para permissão de uso de câmara e microfone deve ser feito automaticamente ou não. Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 Para além disso, é uma biblioteca orientada a eventos, que permite saber se o utilizador está pronto e se está à espera que alguém se junte à sessão [21]. É necessário usar um servidor socket.io, que servirá como servidor de sinalização, que está implementado num servidor Web fornecido pelos criadores deste repositório [21]. Como a tecnologia Vert.x permite uma separação por módulos, foi decidido desenvolver uma arquitetura modular em que cada módulo tem funções diferentes, separando assim o funcionamento dos serviços por módulos. A figura 5, ilustra de que forma foi definida a arquitetura para a framework e de que forma o cliente poderá interagir com o servidor. IV. F RAMEWORK DESENVOLVIDA Esta secção apresenta a solução proposta para o desenvolvimento de uma framework que tem por objetivo permitir, a utilizadores ou entidades externas, criar serviços ou aplicações WebRTC de uma forma simples e a um alto nı́vel. Foram definidas algumas especificações inicialmente para o desenvolvimento desta solução. Houve uma análise inicial às tecnologias e bibliotecas existentes. Analisaram-se os potenciais de cada uma delas, desde o seu desempenho em várias situações e quais é que forneciam mais vantagens neste projeto. A. Tecnologias Foram analisadas várias tecnologias no que diz respeito a WebSockets. Depois da pesquisa de alguns estudos relativos ao Vertx.io e Node.js, foram analisados dois estudos realizados externamente [23], [24]. No primeiro estudo [23], são realizados dois testes distintos. O primeiro teste consistia em medir o desempenho da tecnologia Vert.x e da Node.js, em que o servidor respondia com uma mensagem simples (200OK), a cada pedido realizado a esse servidor. Vert.x conseguiu responder a mais de 300000 pedidos (servidor programado em Java), enquanto Node.js ultrapassou um pouco os 100000 pedidos. Num segundo teste o servidor fornecia um ficheiro estático de 72 bytes a cada pedido. Verificou-se que o Vert.x atingiu mais de 100000 pedidos por segundo enquanto o Node.js não ultrapassou os 30000 pedidos. No segundo estudo analisado [24], foi realizado apenas um teste com um servidor pub/sub que os clientes subscrevem e a partir desse momento recebem atualizações sobre o stock e notificações de pedidos realizados. Neste teste a tecnologia Vert.x foi escalável até às 25000 ligações, fazendo com que o servidor ficasse sem memória. No que diz respeito ao Node.js, foi escalável até as 24000 ligações, tornando-se lento a partir desse momento. Concluiu-se que a tecnologia Vertx.io era mais rápida, mais escalável e apresentava melhor desempenho. Juntando estas conclusões às suas caracterı́sticas e ao facto de ser poliglota, decidiu-se usar esta tecnologia para o desenvolvimento da parte do servidor. B. Arquitetura Para definir uma arquitetura para esta framework, foi necessário definir alguns dos serviços que se pretendem ver desenvolvidos: • chamada / Conferência áudio e vı́deo; • presença e Lista de contactos; • chat / Mensagens instantâneas; • partilha de ficheiros; • gravação voz e vı́deo. A Internet do futuro Figura 5. Arquitetura da framework. Como ilustrado, existe o lado do cliente e do servidor. Os módulos existentes estão registados na parte do servidor. Assim, o cliente, a partir do EventBus, poderá comunicar diretamente com cada um dos módulos para executar as funções necessárias. 1) Módulo Servidor Web: O módulo Web Server consegue criar um servidor Web onde são facilmente fornecidos ficheiros que se encontrem nesse servidor. Tem uma configuração bastante completa, onde são indicados os campos mais importantes. Desta forma é possı́vel ter um servidor Web completo, que responda aos pedidos de cada cliente, a partir de um endereço especı́fico. Cada pedido de um cliente, ou até mesmo de um módulo no servidor, deve ser direcionado para esse endereço, para que o servidor Web possa retornar uma resposta. 2) Módulo Base de Dados Mongo: No que diz respeito à base de dados optou-se por utilizar uma base de dados não relacional, Mongo DB. Tal deve-se ao facto de existir um módulo desenvolvido pela comunidade Vert.x, que permite uma gestão dinâmica e simples da base de dados. Este módulo permite operações como: • save: salva documentos nas collections existentes; • update: atualiza informação de um documento e de uma collection; • find: encontra um ou mais documentos nas collections associadas; • find one: encontra apenas um documento na collection associada; • count: conta o número de documentos numa collection; • delete: apaga todos os documentos associados. Todas estas operações são executadas apenas pelos módulos do servidor, isto é, toda a atividade executada pelos clientes é enviada primeiro para os módulos como: Módulo de Presença, Notificação, Histórico de Chamadas, etc. Estes módulos são 29 responsáveis por atualizar toda a informação da base de dados, que lhe esteja relacionada. 3) Módulo de Presença: O módulo de presença permite a implementação do serviço de presença e de lista de contactos. É o módulo que está responsável por adicionar e remover pessoas da lista de contactos, atualizar o estado de presença de cada pessoa (Online, Offline, Ausente, Ocupado). Cada cliente, para além do seu perfil de utilizador, onde se encontram informações como: nome de utilizador, e-mail, password e histórico de chamadas, tem ainda o que se chama grupo de perfil de utilizador. Este grupo permite ao utilizador guardar todos os dados relacionados com os pedidos de subscrição por parte de outros utilizadores. Estes pedidos são guardados numa lista que se chama presence authorization pendent, onde estão todos os pedidos de subscrição que ainda não foram tratados. Os pedidos rejeitados são guardados numa lista denied presence e os que são aceites na lista authorised presence. É nesta última lista que estão guardados todos os contactos de um cliente. A partir do momento que um cliente executa a autenticação no sistema, será enviada uma mensagem tipo ”find” para o módulo de presença que ficará encarregue de procurar e carregar todos os contactos desse cliente, como também o estado de presença de cada um (Online, Offline, Ausente, Ocupado). Para além disso, é enviada outra mensagem para o mesmo módulo, de forma a que se possa atualizar a informação da sessão desse utilizador. Cada utilizador tem um endereço registado para cada pessoa da sua lista de contactos, isto é, cada cliente tem registado um endereço especı́fico (presence.<nome do contacto >), por cada contacto que tenha na sua lista. Sempre que um cliente atualize o seu estado, irá enviar uma mensagem ”publish” de forma a que todos os seus subscribers possam receber essa mensagem, como ilustrado na Figura 6. momento que é aceite esse pedido, o módulo encarregar-se-à de atualizar a informação referente a esses dois utilizadores, colocando ambos na lista authorised presence de cada um e irá notificar a pessoa que enviou o pedido. No caso do pedido ser rejeitado, ambos serão colocados na lista denied presence de cada um, notificando o cliente que realizou o pedido de que foi rejeitado. 4) Módulo de Notificação: O módulo de notificações trata as mensagens de notificação referentes às chamadas. Sempre que um utilizador é convidado para uma sessão de chamada/conferência é enviada uma notificação para esse utilizador, de que um cliente o quer contactar. Assim, este cliente pode escolher se quer rejeitar ou não a sessão. Existem notificações que estão associadas a outros módulos, logo não passam por este. Exemplo disso são as notificações do módulo de presença, sempre que é adicionado um novo cliente à lista de contactos, a notificação é tratada no módulo de presença. O mesmo acontece quando um cliente muda o seu estado de presença. 5) Módulo de Histórico de Chamadas: O módulo histórico de chamadas guarda informação referente às conferências ou chamadas efetuadas dos utilizadores. Sempre que é iniciada uma sessão de chamada/conferência é guardada a hora inicial da chamada, juntamente com a data e quem iniciou a chamada. Conforme forem entrando pessoas nessa sessão a informação vai sendo atualizada, existindo a possibilidade de saber todas as pessoas que participaram nessa sessão. Quando a sessão termina é enviada uma mensagem do tipo ”registcall”, para este módulo para que a informação relativa a essa sessão possa ser guardada na base de dados. Desta forma a informação está sempre atualizada e sempre que um utilizador fizer autenticação no sistema, poderá visualizar o histórico das chamadas realizadas e recebidas. As informações guardadas na base de dados referente a cada chamada realizada são: • • • • • Figura 6. Notificação de mudança de estado. Desta forma é possı́vel manter a informação sobre o estado de presença dos contactos atualizada. Para adicionar uma pessoa à lista de contactos é enviada uma mensagem do tipo ”subscribe” para este módulo, o cliente adicionado será notificado de que alguém o quer adicionar. A partir do 30 initiator - pessoa que iniciou a chamada/conferência; hour - hora de inicio da chamada/conferência; date - data da chamada/conferência; duration - duração da chamada/conferência; participants - pessoas que participaram na chamada/conferência. 6) Módulo Gestor de Chamadas: O módulo gestor de chamadas permite ter um maior controlo no que diz respeito às chamadas/conferências. O cliente poderá escolher que tipo de sessão quer iniciar, isto é, se quer realizar uma chamada áudio e vı́deo, ou se apenas quer falar por mensagens com um determinado utilizador. É possı́vel escolher vários serviços para uma sessão de chamada, desde: chat, partilha de ficheiros, partilha de ecrã, chamada/conferência áudio, chamada/conferência vı́deo, e também todos estes serviços numa sessão. Quando um cliente quer iniciar uma sessão de chamada/conferência, envia uma mensagem para o servidor com todas as caracterı́sticas da sessão. Desta forma, este módulo irá tratar a mensagem para que seja enviada uma notificação para cada cliente, que esteja convidado para entrar na sessão. Assim, é possı́vel informar cada um dos clientes de qual é o tipo de sessão e que serviços são necessários para a iniciar. Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 7) Módulo Gestor de Sessões: O módulo gestor de sessões permite uma gestão mais completa das sessões que são iniciadas. Existem dois tipos de sessões: sessões de utilizadores e sessões de chamadas. As sessões de utilizadores são iniciadas sempre que um cliente se autentica no sistema, sendo guardados dados como: nome do utilizador, estado, identificador da sessão e os endereços correspondentes aos serviços. Quando o utilizador sai do sistema, a sessão que lhe está associada é apagada. As sessões de chamadas são iniciadas sempre que é realizada uma chamada/conferência entre utilizadores. Desta forma é possı́vel ter um controlo total da chamada, como a hora a que se iniciou, há quanto tempo está a decorrer a chamada, quais os participantes e qual o estado atual da chamada. Com esta informação é possı́vel voltar ao estado atual de uma chamada mesmo que algum erro ocorra durante a mesma. C. Aplicação Cliente Como referido anteriormente, foi desenvolvida uma aplicação cliente com o objetivo de demonstrar as funcionalidades da framework. Esta aplicação foi delineada recorrendo a tecnologias como HTML5, JavaScript e Websockets, que permitem o desenvolvimento de aplicações single page totalmente web e que tiram partido da Web API da WebRTC. Dos casos de uso definidos para a arquitetura, implementaram-se e testaramse os seguintes casos: chamadas/conferência áudio e vı́deo; presença e lista de contactos; chat/mensagens instantâneas; partilha de ficheiros; partilha de ecrã e histórico de chamadas. Toda a parte da sinalização usa a tecnologia socket.io, que permite a criação de namespaces entre peers, garantindo que a negociação de sinalização seja feita apenas entre dois peers. Quanto aos serviços de presença, lista de contactos e histórico de chamadas, foram desencadeados à parte da tecnologia WebRTC, utilizando o Vert.x para troca de mensagens entre peers e o servidor. Estes módulos interagem mais frequentemente com o servidor, pois é necessário que mantenham toda a informação actualizada em runtime. Todo o processo de validação e teste de serviços foi contı́nuo, acompanhando dos módulos de suporte. Desta forma foi possı́vel verificar e validar as funcionalidades, de forma a poder avançar para o desenvolvimento de outros módulos. Foi feita uma validação final, onde foram testadas todas as funcionalidades implementadas na aplicação cliente. tecnologia WebRTC e o protocolo WebSockets. Como trabalho futuro pretende-se enriquecer a framework com mais serviços, como Voice Activity Detection (VAD) e quadro interativo. Para além disso, pretende-se resolver eventuais problemas que surjam e melhorar a framework no que diz respeito a desempenho e interoperabilidade entre browsers. R EFER ÊNCIAS [1] Salvatore Loreto and Simon Pietro Romano. Real-Time Communications in the Web Issues, Achievements, and Ongoing Standardization Efforts. IEE Computer Society, 16(5):68-73, September/October 2012. [2] HTML5 Rocks: Getting Started with WebRTC, http://www.html5rocks. com/en/tutorials/webrtc/basics/, 23 07 2012. [3] WebRTC: General Overview, http://www.webrtc.org/reference/ architecture, 2011. [4] The Websocket Protocol, http://tools.ietf.org/html/rfc6455, 2011. [5] Introducing websockets: Bringing sockets to the web, http://www. html5rocks.com/en/tutorials/websockets/basics/, 2010-2012. [6] Html5 web sockets: A quantum leap in scalability for the web., http: //www.websocket.org/quantum.html, 2013. [7] The WebSocket Protocol as a Transport for the Session Initiation Protocol (SIP)., http://tools.ietf.org/html/draft-ietf-sipcore-sip-websocket-09, 2013. [8] Real-Time Web Communication by using XMPP Jingle., http://tools.ietf. org/html/draft-suzuki-web-jingle-00, 2012. [9] Javascript Session Establishment Protocol (JSEP)., http://tools.ietf.org/ html/draft-ietf-rtcweb-jsep-03, 2012. [10] Node packaged modules., https://npmjs.org/, 2012. [11] Nodejs., http://nodejs.org/, 2012. [12] Interop Notes., http://www.webrtc.org/interop, 2012. [13] OSGi case study: a modular vert.x., http://www.javacodegeeks.com/ 2012/07/osgi-case-study-modular-vertx.html, 2012. [14] Vert.x., http://vertx.io/, 2012 [15] Vert.x - main manual., http://vertx.io/manual.html, 2012 [16] Realtime/Working WebRTC Experiments., https://github.com/ muaz-khan/WebRTC-Experiment, 2012 [17] RecordRTC: WebRTC audio/video recording / Demo., https://github. com/muaz-khan/WebRTC-Experiment/tree/master/RecordRTC, 2012 [18] RTCMultiConnection Documentation., https://github.com/muaz-khan/ WebRTC-Experiment/tree/master/RTCMultiConnection, 2012 [19] DataChannel.js : A JavaScript wrapper library for RTCDataChannel APIs., https://github.com/muaz-khan/WebRTC-Experiment/tree/master/ DataChannel, 2012 [20] RTCall.js — A library for Browser-to-Browser audio-only calling., https: //github.com/muaz-khan/WebRTC-Experiment/tree/master/RTCall, 2012 [21] simpleWebRTC., http://simplewebrtc.com/, 2012 [22] Single page apps in depth., http://singlepageappbook.com/, 2012 [23] Vert.x vs node.js simple HTTP benchmarks., http://vertxproject. wordpress.com/2012/05/09/vert-x-vs-node-js-simple-http-benchmarks/, 2012 [24] Comparing server side Websockets using Atmosphere, Netty, node.js and vertx.io. , http://weblog.plexobject.com/?p=1698, 2012 [25] Alan Johnston and Daniel Burnett WebRTC: APIs and Rtcweb Protocols of the Html5 Real-Time Web, USA: Digital Codex LLC, 1 ed., 2012. V. C ONCLUS ÃO E T RABALHO F UTURO A tecnologia WebRTC tem vindo a crescer, assim como a sua comunidade. Existem cada vez mais soluções, tanto a nı́vel de aplicações, como a nı́vel de bibliotecas. No que diz respeito aos browsers, cada vez mais suportam diferentes funcionalidades das APIs desta tecnologia. Tem sido feito um bom trabalho nesse sentido. No que diz respeito a serviços, consoante evidenciado neste trabalho, é possı́vel desenvolver uma framework que permita a criação de serviços a um mais alto nı́vel. Foi possı́vel desenvolver serviços como: presença, lista de contactos, chamada / conferência áudio e vı́deo, chat, partilha de ficheiros e partilha de ecrã. Todos estes serviços foram desenvolvidos utilizando a A Internet do futuro 31 32 Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 Testing Performance of MLP Neural Networks for Intrusion Detection with MATLAB José Quevedo, Rui L. Aguiar Universidade de Aveiro, Instituto de Telecomunicações, Portugal. Abstract—The increase of security threats in computer networks requires the implementation of several lines of defense capable to effectively preserve the confidentiality, integrity and availability of the information. In the present work multilayer perceptron (MLP) artificial neural networks are trained to be used for monitoring events and identifying possible attempts to compromise the network resources. The 1999 DARPA dataset was taken as source of traffic packets. Specific packet information including some relevant features of the application layer and of the TCP/IP protocols headers were selected for training and testing these neural networks. As a result, several neural networks were tested and their optimal design parameters were derived to ensure an efficient detection of anomalies in the network traffic. The feasibility of using MLP networks for intrusion detection was confirmed in such a realistic case. Keywords—Intrusion Detection, Neural Networks, Multilayer Perceptron. I. I NTRODUCTION In recent years, network security has received critical attention from both academia and industry. As data networks become more pervasive with larger scales, network intrusion and attack have become severe threats to network users. Several security methods are used to prevent and overcome the negative effects and the consequent monetary losses associated with security incidents. Intrusion Detection Systems (IDS) are one of the most widely used mechanisms [1]. Intrusion detection techniques generally fall into two main categories, misuse detection, where intrusions are detected by looking for activities that correspond to known signatures of intrusions or vulnerabilities, and anomaly detection, that detect intrusions by searching for abnormal network traffic. Misuse detection based IDS rely on sets of predefined rules that unfortunately require frequent updates to remain current, they are usually unable to detect an attack if the sequence of events is slightly different from the predefined profile. Such IDS have low false positive rate, but they cannot detect new types of attacks. Moreover, there are attacks that cannot be defined by rules. Anomaly detection based IDS can detect unknown attacks but the false positive rate is high and the occurrence of false negatives has been also reported [2]. The drawbacks associated to misuse detection IDS have increased the interest in achieving high detection performance using anomaly detection IDS. To improve the detection efficiency of IDS, Artificial Intelligence (AI) technologies such as Artificial Neural Network (ANN), genetic algorithms [3], [4], fuzzy logic [4], [5], [6] and theory of immunity [7] have been applied to intrusion detection system research. In particular, ANN has become a A Internet do futuro promising AI approach for designing IDS due to their ability in classifying patterns. Different ANN technologies such as multilayer perceptron (MLP), Radial Basis Function [8], [9] and Self-Organizing Maps (SOM) [10], [11] have been applied to the intrusion detection problem. Several researchers have addressed the application of various AI technologies to improve the detection efficiency of IDS [12], [13]. Some of them have combined MLP networks with other neural networks technologies, such as SOM, Recirculation Neural Networks (RNN) and Grey Neural Networks (GNN), in a hierarchical model for obtaining better performance [14], [15], [16], [17]. Considerable amount of work dealing with classifiers purely based on MLP neural networks have been developed using different structures to achieve better performances. The general structure of these ANN can be described as composed of consecutive interconnected layers. Each layer contains a certain number of processing element (neurons) with the same characteristics (transfer function, learning rate, etc). MLP architecture often consists of one input layer, one or more hidden layers and one output layer. During the learning process the best set of connection coefficients (weights) are found. MLP structures with two layers have been reported to have an overall detection rate of 94% [18] while for structures with three layers this rate has reached 93.43% [19] and a maximum of 98% has been reported, but considering only four specific type of attacks [20]. Hardware based solutions have been also designed and implemented in FPGA and they have shown to be able to detect attack at high speed and with acceptable accuracy [21]. The main objective of the present study is to obtain high performance intrusion detection classifiers using MLP neural networks. To this purpose, several structures of MLP networks are implemented using MATLAB Neural Network Toolbox and evaluated applying the 1999 DARPA Intrusion Detection Dataset as source of traffic information. The behavior of the detection capabilities of the MLP networks is studied using different normalization methods, training algorithms and network structures. MLP training processes become more problematical and require higher computational resources for more complex MLP structures. Neural networks consume more memory and longer operational time is involved as a new hidden layer is added. Furthermore, the resulting neural network is more complex and less memory efficient [19]. To take this into account, a secondary objective of the present study is to evaluate the 33 possibility of achieving the same results using simpler neural network structures. A comparison among the efficiency of 2 layers and 3 layers MLP is provided. MLP networks structures exhibiting the best combination of effectiveness and efficiency are determined. The rest of the paper is organized as follows. The main components of the IDS studied in the present work are sketched in Section II. Section III deals with the basis for the establishment of an appropriate dataset for training and evaluating IDS. Section IV describes the conducted experiments, particularly the sets of tests used for evaluating the performance of the MLP network structures in each of the two testing phases. Results and discussion subsections are included to ensure the coherence of the given information. Section V concludes the paper with an overall discussion of the results. Finally, Section VI recommends actions for further develop this study. Information Source Preprocessing Unit Input Data Generator Live Network Stream Offline Traffic Source Output Data Generator System Manager Event Manager Anomaly Detection Module Alarm Trigger MLP weights Log Manager Evaluator Log File Expected Output Other Network Entities Report Generator The architecture and main components of the MLP-based anomaly IDS studied in the present work are shown in Figure 1. The system design includes two modes of operation, training and testing the MLP networks, which is the focus of this work, and using the already trained networks as traffic classifier. The Information Source is able to provide two different inputs to the system, an offline dataset of audit data, which will be used for training and testing purposes and a live network stream, that will be checked for intrusions during real world deployments. Once the raw packets (tcpdump formatted) have been obtained, they need to be processed at the Preprocessing Unit to generate the data vector to be supplied to the MLP-based Anomaly Detection Module. During the training and testing processes, the Preprocessing Unit will also be responsible for providing the expected output of the system. This information will be used by the Evaluator, during the testing phase, for determining the detection rate statistics of the classifier. The Anomaly Detection Module uses the input data either for training and testing the MLP network or for analyzing and detecting intrusions/attacks using the already trained MLP network. This module is responsible for analyzing the data vector and generating an output that classifies the packet into “normal” or “attack”. Such classification is given to the Event Manager for recording events in the system log file, for generating the corresponding report and for triggering the alarm in case an attack is detected. The System Manager interacts and coordinate with other components based on the command and parameters delivered from the operator. This module is also responsible for developing the adequate actions, which may vary from simple packet discarding to forcing firewall reconfiguration in order to block the source of an attack, notifications to administrators, etc. III. I NTRUSION D ETECTION DATASET There are two main approaches to the establishment of a dataset for training and evaluating IDS. The first approach is based on creating the necessary data within a local network [22]. Some existing attack tools can be used to generate attack traffic within a local network. This traffic as well as samples Normalizer ANN Input Vector Feature Extractor II. S YSTEM A RCHITECTURE 34 “tcpdump” Packet Train MLP Test MLP MLP Classifier Classifier Output (Normal/Attack) Figure 1. MLP-based anomaly IDS architecture. of usual traffic of the network, can be capture to conform the required dataset. The second approach is based on the use of available Intrusion Detection Datasets, such as DARPA [23], or some others derived from DARPA, as KDD-99 [24] and NSL-KDD [25]. The 1999 DARPA Intrusion Detection Dataset is used in the present work. It contains more than 200 instances of 58 attack types launched against victim UNIX and Windows NT hosts arranged in three weeks of training data and two weeks of testing data [26]. DARPA dataset has been widely used for training and testing ANN-based anomaly IDS. This fact facilitates the comparison of the results of the present research with those obtained by other researchers. From all the information contained in a packet only specific part of it, showing specific features, was selected to feed the MLP network. Selected features included the following: • • • • • • General information: Time delta from previous received packet. IP header fields: Type of service, Total length, Flags, Time to live, Protocol, Fragment offset. ICMP header fields: Type, Code. TCP header fields: Source port, Destination port, Sequence number, Acknowledgment number, Flags, Window size. UDP header fields: Source port, Destination port, Length. Higher layer information: First 400 bytes of data. The original 1999 DARPA dataset is based on raw tcpdump log files. The selected features were extracted from the tcpdump files and exported into numerical vectors by a parser developed using MATLAB. Based on the information provided by DARPA, each vector (processed packet) was classified into “normal” or “attack”, and a numerical value “0” or “1” was respectively assigned to that vector. Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 IV. E VALUATION P ROCESS D ESCRIPTION This section describes the set of tests used to evaluate the performance of several MLP network structures and identifies those design parameters leading to optimal intrusion detection performance. Tests also assess the effectiveness of various training algorithms and normalization methods. B. First Testing Phase 1) Design Considerations: MLP networks with only one hidden layer were used during this first testing phase. The training functions and normalization methods provided by MATLAB neural network toolbox were considered. For all possible combinations of such mechanisms, the number of neurons in the hidden layer was incremented from 5 to 50 with a 5 neurons step. The trainings were conducted using 300 epochs and the goal error was set to 1 × 10−10 . The remaining training parameters were set to the default values of each algorithm, these values can be found in [27]. 2) Results: During this testing phase a total amount of 400 MLP networks were trained. The training algorithms trainlm and trainbfg were not analyzed because they require a lot of memory to run [27] and are therefore considered to have only low significance for the deployment of IDS, where systems may be memory limited. The 65 best performance results for the trained networks using different normalization methods are shown in Figure 2 in terms of the cumulative distribution function (CDF) of their overall detection rates. 3) Further Evaluations: Taking into account that the best results of this first testing phase refer to the use of mapstd normalization method, it was considered appropriate to continue using it to further evaluations involving: • 3 layers MLP networks (two hidden layers of neurons), using all training algorithms to train the network structures resulting from varying the number of neurons in each of the two layers from 5 to 30, with a 5 neurons step. A Internet do futuro mapstd mapminmax [−1.1] mapminmax [0.1] processpca CDF for different normalization methods 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 50 55 60 65 70 75 80 Overall detection rates (%) 85 90 95 Figure 2. Best overall detection rates for 2 layers MLP networks using different normalization methods. 2 layers MLP, using all training algorithms to train the network structures resulting from varying the number of neurons in the hidden layer from 5 to 50 with a 5 neurons step, but this time the higher layer information features were not submitted to the MLP network. The 65 best performance results are shown in Figure 3 in terms of the CDF of the overall detection rates for the MLP networks, where “2 layers” refers to the results of the previous subsection when using mapstd normalization method, “3 layers” refers to the results for the networks with two hidden layer evaluated in this subsection and “2 layers*” refers to the results of the networks for which the higher layer information was not submitted to the MLP network. • 1 2 layers 3 layers 2 layers * 0.9 CDF for different network structures A. Initial Design Considerations The input layer of the MLP networks used in the present work consists of 419 neurons. The number of neurons corresponds to the 19 selected features from the TCP/IP protocols header and the first 400 bytes of the payload. Each byte taken from the payload is used as raw binary data and is considered as an individual feature. For packets with less than 400 bytes in the payload the corresponding empty inputs are filled with zeros. The number of neurons in the hidden layers is variable. The dimension of the output layer is given by the number of sorts used by the classifier. In this case two possible outputs are considered (“normal” and “attack”) and therefore only one output neuron is required. The logsig function was selected as transfer function because it is bounded between 0 and 1 and is continuous within the whole interval. The detection threshold was defined to be 0.5 so that an output value within the interval [0, 0.5) is considered to be normal and one within the interval [0.5, 1] is considered to be an attack. The performance of the trained networks was evaluated based on the detection percentages of normal and attack packets. 1 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 72 74 76 78 80 82 84 86 Overall detection rates (%) 88 90 92 Figure 3. Best overall detection rates for different network structures using mapstd normalization method. 4) Discussion: The analysis of the stability of the overall detection rates of MLP networks for different normalization methods indicates, as shown in Figure 2, that the best performance was obtained when using mapstd as normalization method. 35 C. Second Testing Phase Based on the results of the first testing phase, pointing to mapstd as the normalization method showing better performance, a second testing phase was designed to further evaluate the behavior of different structured MLP networks using mapstd as normalization method. 1) Design Considerations: Only 2 layers MLP networks were evaluated during the second training phase. Mapstd function was used as normalization method. As training algorithms were used traingda, traingdx, traincgf, traincgp, traincgb and trainscg, because they led to acceptable overall detection rates during the first training phase (more than 85%). In order to ensure the better accuracy in the results, the number of epochs was increased up to 1000 while the number of neurons in the hidden layer was varied from 1 to 100 with one neuron step. 2) Results: During this second testing phase a total amount of 600 MLP networks were trained. Obtained results have indicated an overall improvement in 2 layers MLP networks performance, characterized by a greater number of networks with higher overall detection rate. Twelve MLP network reached overall detection rates above 96%, as it is shown in Table I. Table I B EST 12 OVERALL DETECTION RATES FOR THE SECOND TESTING Training Algorithm Neurons in Hidden Layer traingda traingdx traingda traingdx traingdx trainscg traingda trainscg traingdx trainscg traingdx traingdx 45 63 20 94 44 88 71 24 40 27 74 97 Attack 98,36 96,5 97,37 95,86 97,1 96,2 96,95 96,37 96,06 96,43 95,59 95,73 PHASE Detection Rate (%) Normal Overall 94,92 96.64 96,44 96.47 95,39 96.38 96,9 96.38 95,35 96.22 96,12 96.16 95,27 96.11 95,83 96.10 96,04 96.05 95,59 96.01 96,43 96.01 96,29 96.01 0.9 0.8 0.7 0.6 0.5 0.4 0.3 traincgb traincgf traincgp traingda traingdx trainscg 0.2 0.1 0 93 93.5 94 94.5 95 95.5 Overall detection rates (%) 96 96.5 97 Figure 4. Best overall detection rates for 2 layers MLP networks using different training algorithms. According to the results shown in Figure 4, training process using algorithms traingda, traingdx and trainscg have resulted in better performance of the MLP networks. From Table I it can be concluded that the two MLP networks with the better combination of effectiveness and efficiency were the ones trained with traingda and having respectively 45 and 20 neurons in the hidden layer. However, no clear relationship among the number of neurons in the hidden layer and the performance of the MLP networks could be established. D. Comparison with other works Several representative results, ours included, are listed in Table II. They basically refer to the use of different MLP structures taking the DARPA dataset, or already processed versions of it, as source of traffic packets. Although the reported results represent what could be expected from the MLP based IDS solutions in terms of detection rates, they have been achieved using different criteria (e.g., structure, training algorithm, transfer function). In consequence, no clear conclusion can be derived from Table II on which MLP network design parameters lead to a better performance. The comparison of the results indicates that our system is greatly competitive, as the one with higher detection rate is restricted to the analysis of only four specific types of attacks. V. C ONCLUSIONS The detailed results derived from the application of the different training algorithms are shown in Figure 4 in terms of the CDF of the overall detection rates for the 163 trained networks which values exceeded 93%. 3) Discussion: The results of this second testing phase indicate that the further refinement in the 2 layers MLP designs have led to a significant increase of the overall detection rate if compared with the results from the previous phase. 36 1 CDF for different training algorithms Additional tests to evaluate the behavior of different structured MLP networks have indicated, as shown in Figure 3, that when using mapstd as normalization method the 2 layers MLP networks exhibited better performance than 3 layers MLP networks. In addition, the use of 3 layers MLP is not recommendable as including a second hidden layer increases the complexity of the ANN and consequently requires more computational resources. The obtained results also indicate that when applying 2 layers MLP networks, the exclusion of higher layer information features is not recommendable. The rise of shared networks and Internet usage demand an increased attention to information systems security, particularly on the improvement and development of intrusion detection systems. The use of mapstd as normalization method for MLP networks has led to the best performances with overall detection rates exceeding 96%, which are comparable with the results reported by others authors. Using mapstd as normalization method 3 layers MLP networks showed lower performance than 2 layers MLP networks. The obtained results have confirmed the feasibility of using MLP networks as classifiers for anomaly detection based IDS. Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 Table II C OMPARISON OF PERCENTAGES OF SUCCESSFUL CLASSIFICATION FOR ANN- BASED IDS Reference Moradi, M. et al., 2004 [28] Moradi, M. et al., 2004[28] Siddiqui, M., 2004 [29] Sammany, M. et al., 2007 [30] Barapatre, P. et al., 2008 [31] Ahmad, I. et al.,2009 [20] Haddadi, F. et al., 2010[18] Norouzian, M.R. et al.,2011 [19] Present work MLP Structure 2-layers 3-layers 2-layers 3-layers 2-layers 3-layers 2-layers 3-layers 2-layers Detection Rate (%) 87 91 81.37 93.43 81.96 98* 94 90.78 96.64 * Limited to the analysis of only four specific type of attacks VI. F UTURE W ORK From the practical point of view, the experimental results imply that there is more to do in the field of ANN-based IDS. Future development of the present study should be aimed at seeking for higher processing speed of the networks through the establishment of new methods for reducing the number of features to be extracted from the packet information. Possible combinations of multiple neural networks should be considered as a way to improve the performance of the MLP networks. Assessing the performance of MLP networks using specially created datasets should be explored. VII. ACKNOWLEDGMENTS Special thanks should be expressed to Walter Baluja García from the Polytechnic University of Havana, Cuba, for his valuable comments and contributions to this work. R EFERENCES [1] R. Richardson, “2010/2011 computer crime and security survey,” Computer Security Institute (CSI), Tech. Rep., 2010. [2] P. García-Teodoro, J. Díaz-Verdejo, G. Maciá-Fernández, and E. Vázquez, “Anomaly-based network intrusion detection: Techniques, systems and challenges,” Computers & Security, vol. 28, no. 1-2, pp. 18 – 28, 2009. [3] W. Li, “Using genetic algorithm for network intrusion detection,” Proceedings of the United States Department of Energy Cyber Security Group, pp. 1–8, 2004. [4] S. M. Bridges and R. B. Vaughn, “Fuzzy data mining and genetic algorithms applied to intrusion detection,” in Proceedings twenty third National Information Security Conference, 2000. [5] J. Dickerson and J. Dickerson, “Fuzzy network profiling for intrusion detection,” in Fuzzy Information Processing Society, 2000. NAFIPS. 19th International Conference of the North American, 2000, pp. 301–306. [6] J. Gomez and D. Dasgupta, “Evolving fuzzy classifiers for intrusion detection,” in Proceedings of the 2002 IEEE Workshop on Information Assurance, vol. 6, no. 3. New York: IEEE Computer Press, 2002, pp. 321–323. [7] J. Kim, P. J. Bentley, U. Aickelin, J. Greensmith, G. Tedesco, and J. Twycross, “Immune system approaches to intrusion detection - a review,” Natural Computing, vol. 6, no. 4, pp. 413–466, 2007. [8] A. Rapaka, A. Novokhodko, and D. Wunsch, “Intrusion detection using radial basis function network on sequences of system calls,” in Neural Networks, 2003. Proceedings of the International Joint Conference on, vol. 3, 2003, pp. 1820–1825 vol.3. [9] A. Hofmann and B. Sick, “Evolutionary optimization of radial basis function networks for intrusion detection,” in Neural Networks, 2003. Proceedings of the International Joint Conference on, vol. 1, 2003, pp. 415–420 vol.1. [10] H. G. Kayacik, A. N. Zincir-Heywood, and M. I. Heywood, “A hierarchical som-based intrusion detection system,” Engineering Applications of Artificial Intelligence, vol. 20, no. 4, pp. 439 – 451, 2007. A Internet do futuro [11] Á. Grediaga, F. Ibarra, F. García, B. Ledesma, and F. Brotóns, “Application of neural networks in network control and information security,” in Advances in Neural Networks-ISNN 2006. Springer, 2006, pp. 208–213. [12] F. Yanwei, Z. Yingying, and Y. Haiyang, “Study of neural network technologies in intrusion detection systems,” in Wireless Communications, Networking and Mobile Computing, 2009. WiCom ’09. 5th International Conference on, sept. 2009, pp. 1 –4. [13] C. Modi, D. Patel, B. Borisaniya, H. Patel, A. Patel, and M. Rajarajan, “A survey of intrusion detection techniques in cloud,” Journal of Network and Computer Applications, vol. 36, no. 1, pp. 42 – 57, 2013. [14] C. Jirapummin, N. Wattanapongsakorn, and P. Kanthamanon, “Hybrid neural networks for intrusion detection system,” in Proc. of ITC–CSCC, 2002, pp. 928–931. [15] V. Golovko, L. Vaitsekhovich, P. Kochurko, and U. Rubanau, “Dimensionality reduction and attack recognition using neural network approaches,” in Neural Networks, 2007. IJCNN 2007. International Joint Conference on, aug. 2007, pp. 2734 –2739. [16] V. Golovko, P. Kachurka, and L. Vaitsekhovich, “Neural network ensembles for intrusion detection,” in Intelligent Data Acquisition and Advanced Computing Systems: Technology and Applications, 2007. IDAACS 2007. 4th IEEE Workshop on, sept. 2007, pp. 578 –583. [17] D.-X. Xia, S.-H. Yang, and C.-G. Li, “Intrusion detection system based on principal component analysis and grey neural networks,” in Networks Security Wireless Communications and Trusted Computing (NSWCTC), 2010 Second International Conference on, vol. 2, april 2010, pp. 142 –145. [18] F. Haddadi, S. Khanchi, M. Shetabi, and V. Derhami, “Intrusion detection and attack classification using feed-forward neural network,” in Computer and Network Technology (ICCNT), 2010 Second International Conference on, april 2010, pp. 262 –266. [19] M. Norouzian and S. Merati, “Classifying attacks in a network intrusion detection system based on artificial neural networks,” in Advanced Communication Technology (ICACT), 2011 13th International Conference on, feb. 2011, pp. 868 –873. [20] I. Ahmad, A. Abdullah, and A. Alghamdi, “Application of artificial neural network in detection of probing attacks,” in Industrial Electronics Applications, 2009. ISIEA 2009. IEEE Symposium on, vol. 2, oct. 2009, pp. 557 –562. [21] A. Hassan, A. Elnakib, and M. Abo-Elsoud, “Fpga-based neuroarchitecture intrusion detection system,” in Computer Engineering Systems, 2008. ICCES 2008. International Conference on, nov. 2008, pp. 268 –273. [22] M. Amini, R. Jalili, and H. R. Shahriari, “Rt-unnid: A practical solution to real-time network-based intrusion detection using unsupervised neural networks,” Computers & Security, vol. 25, no. 6, pp. 459 – 468, 2006. [23] “Darpa intrusion detection data sets,” 1999. [Online]. Available: http:// www.ll.mit.edu/mission/communications/cyber/CSTcorpora/ideval/data/ [24] “Kdd cup 1999 data,” 1999. [Online]. Available: http://kdd.ics.uci.edu/ databases/kddcup99/kddcup99.html [25] M. Tavallaee, E. Bagheri, W. Lu, and A. Ghorbani, “A detailed analysis of the kdd cup 99 data set,” in Proceedings of the Second IEEE Symposium on Computational Intelligence for Security and Defence Applications 2009, 2009. [26] R. Lippmann, J. W. Haines, D. J. Fried, J. Korba, and K. Das, “The 1999 darpa off-line intrusion detection evaluation,” Computer Networks, vol. 34, no. 4, pp. 579 – 595, 2000. [27] “Matlab r2012b neural network toolbox documentation,” 2012. [Online]. Available: http://www.mathworks.com/help/nnet/index.html [28] M. Moradi and M. Zulkernine, “A neural network based system for intrusion detection and classification of attacks,” in Proceedings of 2004 IEEE International Conference on Advances in Intelligent Systems Theory and Applications, Luxembourg Kirchberg, Luxembourg, 2004. [29] M. Siddiqui, “High performance data mining techniques for intrusion detection,” Ph.D. dissertation, University of Central Florida Orlando, Florida, 2004. [30] M. Sammany, M. Sharawi, M. El-Beltagy, and I. Saroit, “Artificial neural networks architecture for intrusion detection systems and classification of attacks,” in fifth international conference-INFO, 2007, pp. 24–26. [31] P. Barapatre, N. Tarapore, S. Pukale, and M. Dhore, “Training mlp neural network to reduce false alerts in ids,” in Computing, Communication and Networking, 2008. ICCCn 2008. International Conference on, dec. 2008, pp. 1 –7. 37 38 Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 Configuração Dinâmica em Redes sem Fios Daniel Alexander Lopes Fuentes António Manuel de Jesus Pereira ESTG, Instituto Politécnico de Leiria INOV INESC Inovação, Delegação de Leiria Centro de Investigação em Informática e Comunicações, IPLeiria ESTG, Instituto Politécnico de Leiria INOV INESC Inovação, Delegação de Leiria Centro de Investigação em Informática e Comunicações, IPLeiria Abstract - A evolução das tecnologias de informação e comunicação tem levado os operadores de comunicações a investir na sua infraestrutura e a adaptarem-se à realidade atual. O problema é que este investimento apenas acontece nos grandes centros populacionais e não nas zonas rurais e dispersas, visto estas não proporcionarem o retorno financeiro desejado. Esta situação levou ao aparecimento de projetos de redes sem fios como alternativa aos operadores de comunicações, providenciando serviços multimédia, nomeadamente o acesso à Internet. No entanto estes projetos têm-se revelado muito difíceis de manter devido ao investimento financeiro necessário. Neste artigo é proposto um sistema que tem como objetivo tornar as soluções de redes locais sem fios de larga escala sustentáveis, autónomas e inteligentes, reduzindo assim os custos associados com a implementação e manutenção das mesmas, tornando-as sustentáveis. Desta forma evitam-se intervenções por parte dos administradores ou técnicos especializados, minimizando assim os problemas associados à dispersão dos equipamentos em ambientes rurais. Os testes efetuados ao sistema, em laboratório e em cenário real, mostram a rapidez e autonomia na execução das tarefas da solução apresentada. Palavras-chave: Configuração Dinâmica, Sistemas Inteligentes, Sistemas Autónomos, Ambientes Rurais, Redes Sem Fios de Larga Escala. I. INTRODUÇÃO A crescente procura por um acesso à Internet tem levado os operadores de comunicações a apostarem forte nas suas infraestruturas. O problema é que essas mesmas estruturas apenas estão a ser otimizadas onde existe uma grande concentração de população. As zonais rurais e dispersas, visto terem pouca população, não são um bom retorno financeiro para os operadores, o que os leva a não investir nas infraestruturas localizadas nestas zonas [1]. Por vezes até existem localizações onde nem sequer há um acesso mínimo à Internet, o que levou algumas freguesias a implementar redes sem fios para colmatar esta necessidade [2]. O problema neste tipo de redes é que têm que abranger bastantes populações dispersas numa vasta área geográfica [3], o que levanta muitos problemas em termos de custo de instalação e manutenção, tornando-as uma solução não sustentável. Este tipo de redes, denominadas de redes locais sem fios de larga escala (Large-Scale WLAN1) [4], é composto por vários pontos de distribuição espalhados geograficamente e que se 1 encontram interligados entre si através de ligações sem fios. A configuração desses pontos de distribuição tem de ser feita, no início, aquando a instalação da rede para que se consiga obter ligação entre os vários pontos da mesma. A própria instalação e configuração da infraestrutura da rede por vezes é dificultada, visto que pode existir algum problema de configuração em algum equipamento, o qual tem de ser reconfigurado no local. Os problemas não existem apenas quando se constrói a infraestrutura, eles também se manifestam durante o funcionamento da mesma, nomeadamente desconfigurações de equipamentos e alterações obrigatórias na topologia de rede. Isto tudo leva a que haja custos demasiado elevados na manutenção de uma rede local sem fios de larga escala [5]. Os factos supracitados associados à localização rural deste tipo de redes leva a que o seu custo de manutenção seja agravado pela distância a que as equipas especializadas se encontram. De forma a minimizar esses entraves são implementados sistemas de monitorização e gestão remota da rede que ajudam a reduzir os custos de manutenção. Isto consegue-se através de uma gestão centralizada de toda a rede, na qual são monitorizados todos os equipamentos presentes na mesma [6]. A limitação destes sistemas de monitorização encontra-se no facto destes necessitarem de ter todos os equipamentos alcançáveis na rede para poderem funcionar corretamente. A evolução das redes de comunicação tem levado a vários estudos na área das redes do futuro, nomeadamente nas características que uma rede deve ter para ser considerada como tal [7]. Duas dessas caraterísticas são a autossustentabilidade e a capacidade da rede ser autónoma, as quais são necessidades encontradas em redes locais sem fios de larga escala. No trabalho apresentado neste artigo pretende-se não só colmatar as falhas presentes no sistema de monitorização, mas também tornar este tipo de redes sem fios inteligentes, autónomas e acima de tudo sustentáveis, direcionando-as para o futuro. Para além da presente secção, o artigo encontra-se estruturado da seguinte forma: a secção II apresenta o trabalho relacionado com projetos de configuração dinâmica em redes sem fios; A secção III apresenta a arquitetura do sistema; Na secção IV apresenta-se o cenário de testes, quais os objetivos dos mesmos e os resultados dos diferentes tipos de testes; Na do inglês Wireless Local Area Network A Internet do futuro 39 secção V encontram-se as conclusões sobre todo o trabalho elaborado. II. REVISÃO DA LITERATURA A automatização em redes de comunicação desde cedo que desperta grande interesse por parte dos investigadores agregados à área, fator que se deve ao crescimento exponencial, tanto no tamanho das redes como na área que abrangem e nos serviços associados às mesmas [8][9]. Este facto suscitou a necessidade do estudo de novos conceitos e tecnologias que fossem de encontro à resolução da problemática da autoconfiguração dos equipamentos e otimização das redes de comunicação [10][11]. A investigação realizada neste âmbito, agregada à crescente exigência por parte dos gestores de rede, levou ao aparecimento de diversos estudos relacionadas com esta matéria, nomeadamente a nível de paradigmas a serem adotados na criação de redes sem fios autoconfiguráveis e das abordagens a ter na disposição dos pontos de acesso na rede [12][13]. A informação inerente aos processos descritos anteriormente agregada à necessidade, cada vez mais premente, do processamento de grandes quantidades de dados por parte destes equipamentos, levou ao aparecimento do conceito de arquiteturas distribuídas [14][15][16], cujo objetivo é descentralizar o tratamento desta informação distribuindo-a por todos os equipamentos presentes na rede. A evolução destes sistemas autónomos levou a que os investigadores aplicassem os conhecimentos de outras áreas neste tipo de redes, nomeadamente inteligência artificial, criando assim sistemas baseados em arquiteturas multiagentes, cuja função principal é dotar os dispositivos de uma inteligência própria que os permita ser autónomos [17][18] [19]. A configuração dinâmica de equipamentos em redes locais sem fios (WLAN) já deu alguns passos, nomeadamente em redes domésticas / pequenos escritórios (SOHO2). Esta funcionalidade é utilizada por alguns fabricantes para permitir que equipamentos como computadores, telemóveis ou mesmo tablets se liguem à rede sem fios de uma forma fácil. Desta forma é extremamente simples conseguir aceder a uma rede protegida com poucos conhecimentos, ou mesmo nenhuns, de redes sem fios. O Wi-Fi Protected Setup (WPS) [20] providencia dois mecanismos de configuração de redes SOHO, um através de um Personal Identification Number (PIN) e outro via Push Button Configuration (PBC). Estes permitem que utilizadores com poucos conhecimentos em configuração de redes sem fios consigam adicionar novos equipamentos à rede de forma segura. O AirStation One-Touch Secure System (AOSS) [21] funciona de maneira similar ao WPS mas apenas fornece o mecanismo de PBC. Este sistema foi desenvolvido pela Bufallo Technology e está presente em quase todos os seus equipamentos de redes sem fios SOHO. 2 40 do inglês Small Office / Home Office Tendo em vista os objetivos a que nos propomos com esta solução e tendo em conta os trabalhos encontrados na área, propomos um sistema autónomo, distribuído e inteligente que: visa a autoconfiguração de equipamentos presentes numa infraestrutura de rede local sem fios de larga escala em ambientes rurais, proporcionando a redução de custos na implementação e manutenção da mesma; minimiza a necessidade de intervenção de equipas especializadas no terreno; reduz os problemas inerentes à dispersão geográfica dos equipamentos e à sua acessibilidade; não impõe limitações em termos de escalabilidade da infraestrutura. III. ARQUITETURA DO SISTEMA A infraestrutura de uma rede local sem fios de larga escala é composta, nomeadamente, por clientes, pontos de distribuição, servidores e gateways. Os clientes são os equipamentos instalados em casa dos utilizadores finais, como o próprio nome indica. Os pontos de distribuição são os equipamentos distribuídos pela área a abranger, estão interligados entre si através de ligações sem fios e fornecem um ponto de ligação aos clientes. Os servidores são os equipamentos que fornecem os mais variados serviços aos utilizadores da rede e encontram-se normalmente localizados no ponto central da mesma. Os gateways são os equipamentos responsáveis por interligar a rede interna ao mundo exterior, fornecendo o acesso à Internet aos utilizadores da rede. O Dynamic Wireless Configuration System (DWCS) implementa uma arquitetura distribuída e multiagente que permite subdividir as tarefas pelos vários equipamentos na rede, os quais têm incorporado agentes que se encarregam de cumprir essas mesmas tarefas. Estes agentes podem ter várias funções, consoante a sua finalidade. Um agente é uma entidade baseada em software que, neste caso, consegue aceder às informações do equipamento onde se encontra, efetuando as operações necessárias no mesmo. Estes agentes interligam-se entre si para fornecer uma solução distribuída, providenciando assim divisão de tarefas entre equipamentos. Os agentes são também responsáveis por manter o correto funcionamento dos dispositivos e, para tal, têm de garantir a comunicação entre equipamentos. Figura 1 - Arquitetura do sistema Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 Na Figura 1 podemos visualizar a arquitetura definida e onde se encontram os respetivos agentes localizados. O agente Cliente, o agente Distribuição, o agente Servidor e a rede de configuração, apresentada mais à frente, formam este sistema, sendo cada um destes imprescindíveis para o correto funcionamento da rede e do sistema. A. Agentes O agente Cliente, apresentado na Figura 2, encontra-se presente no equipamento que está em casa do utilizador final. É este dispositivo que faz a ligação do cliente ao core da rede sem fios. Este é responsável pelas configurações do equipamento, nomeadamente por iniciar o dispositivo em modo configuração ou standard, e está periodicamente a monitorizar o dispositivo, para verificar a ligação à rede e a existência de novas configurações para o mesmo. Os equipamentos podem iniciar em dois modos de operação: no modo de configuração o equipamento inicia num estado em que tenta adquirir as suas configurações de rede; no modo standard o equipamento inicia normalmente já com as configurações obtidas no modo de configuração. O agente Cliente liga-se ao agente Distribuição para poder estabelecer comunicação com o agente Servidor. Desta forma estes conseguem adquirir as suas configurações dinamicamente, sem ser necessária qualquer intervenção dos administradores de rede. O agente Distribuição, exemplificado na Figura 3, é a ponte de ligação entre o agente Cliente e o agente Servidor. O agente Servidor, responsável por manter a funcionalidade da rede, guardar toda a informação inerente à configuração e permitir a gestão do sistema por parte do administrador, agrega também uma componente de web services, como constatado na Figura 4. Esta componente disponibiliza as configurações necessárias aos outros agentes presentes na infraestrutura, possibilitando deste modo a sua configuração. BASE DE DADOS FICHEIROS DE CONFIGURAÇÃO SOFTWARE DE GESTÃO WEB SERVICES AGENTE SERVIDOR Figura 4 - Agente Servidor Figura 2 - Agente Cliente O agente Distribuição está presente nos dispositivos de core e tem o objetivo de permitir a comunicação entre os vários dispositivos (clientes, core e servidores) para que estes se consigam configurar dinamicamente. Nestes equipamentos existem várias redes definidas, desde ligações ponto-a-ponto a redes de distribuição, em que se destaca a rede de configuração DWCS, à qual todos os equipamentos, que estejam em modo configuração, se ligam. O DWCS interage diretamente com o sistema de monitorização da rede, como se pode ver na Figura 5. Esta interação permite que os equipamentos sejam automaticamente adicionados ao sistema de monitorização sem ser necessária qualquer intervenção por parte do administrador da rede. Isso torna possível também que o DWCS consiga obter dados do estado dos equipamentos da rede diretamente do sistema de monitorização. Desta forma consegue-se gerir o sistema de monitorização da rede através do servidor de DWCS e da respetiva plataforma de gestão, evitando a redundância de operações por parte do administrador. Servidor DWCS Rede Sistema de monitorização Adicionar, editar ou remover equipamentos Consultar o estado dos equipamentos Figura 5 - Comunicação entre sistemas B. Figura 3 - Agente Distribuição A Internet do futuro Rede de configuração Um dos pontos fulcrais neste sistema é a rede de configuração. É através desta rede que os dispositivos conseguem estabelecer comunicação com o servidor e adquirir as suas configurações. Sem esta rede de configuração não é possível configurar e recuperar os equipamentos automaticamente, porque de outra forma estes não teriam qualquer meio para poder comunicar com o servidor central. 41 Uma das maiores preocupações encontradas é a segurança do sistema, visto querer-se evitar ao máximo falhas na mesma. No sentido de solucionar esta problemática, a rede encontra-se protegida com encriptação Wi-Fi Protected Access II (WPA2) [20] utilizando passwords com 128 bits, garantindo assim que apenas os equipamentos que possuam o sistema DWCS conseguem aceder à mesma. Para uma proteção superior são também utilizadas as respetivas firewalls nos equipamentos de distribuição, devidamente configuradas, para que a rede de configuração apenas permita tráfego de configuração na mesma, nomeadamente acesso exclusivamente ao servidor de DWCS. A rede de configuração pode ser criada de duas formas: através de um rádio Wi-Fi adicional, sendo uma rede independente, ou através da configuração de um Ponto de Acesso Virtual (Virtual AP). Os “Virtual AP” podem ser criados utilizando para tal um rádio que esteja a desempenhar funções de ponto de acesso. Neste caso, visto que todos os nós do core da rede contêm uma rede de distribuição, para os clientes se ligarem, esta poderá ser utilizada para esse mesmo efeito. C. Funcionamento do sistema Para que seja possível implementar o sistema DWCS, o agente Distribuição tem de disponibilizar a rede de configuração para que os clientes e outros nós secundários possam efetuar a sua configuração dinamicamente. Esta rede é disponibilizada pelo agente Distribuição presente nos equipamentos de core, podendo ser uma rede real ou virtualizada. É neste core que são encontrados dois tipos de nós, o principal, que é o ponto central da rede que está ligado aos servidores e ao gateway, e os secundários, que são todos os outros. No primeiro tipo temos a Distribuição Principal (DP), apresentada na Figura 6, que é o nó central da rede. Este encontra-se ligado diretamente, através da rede cablada, à rede do servidor de DWCS. Neste nó o dispositivo utiliza a “Config LAN” para se ligar ao servidor e adquirir automaticamente as suas configurações, isto quando se encontra em modo de configuração. A “Config LAN” é a porta de rede da Distribuição Principal que está diretamente ligada à rede do servidor de DWCS. Desta forma o agente distribuição consegue aceder ao servidor para adquirir as configurações do equipamento. Figura 6 - Tipos de distribuição No segundo tipo temos as Distribuições Secundárias (DS), exemplificadas também na Figura 6,que são aquelas que estão distribuídas, geograficamente, pela área englobada pela rede de larga escala. De salientar que este tipo de nós pode não ter rede de distribuição associado, visto existirem pontos na rede 42 que podem servir apenas como ponte entre várias localidade, isto devido à falta de linha de vista entre os nós ou distâncias excessivas. Este nó, quando em modo de configuração, utiliza o “Config Radio” para se ligar à rede de configuração mais próxima. O “Config Radio” é o primeiro rádio disponível no equipamento e é aquele que está direcionado para o nó mais próximo do servidor. Isto é necessário pelo facto de um nó poder ter vários rádios, o que não pode ser um fator que impeça o sistema de funcionar corretamente. O funcionamento do sistema de DWCS é um conjunto de processos simples, o que o torna eficaz. Numa fase inicial todos os equipamentos na rede (core e clientes) encontram-se em modo de configuração. O agente presente na Distribuição Principal, que está ligada diretamente à rede do servidor de DWCS através da “Config LAN”, acede ao servidor, descarrega os ficheiros de configuração, aplica-os e reinicia o equipamento. Após a DP reiniciar, esta encontra-se configurada e pronta a fornecer, aos outros nós, acesso ao servidor de DWCS. Uma Distribuição Secundária liga-se à rede de DWCS da DP, através do “Config Radio”, e configura-se automaticamente. De seguida uma segunda DS liga-se ao próximo nó, presente no caminho de acesso ao servidor, através da rede DWCS deste e adquire as suas configurações para poder iniciar normalmente. Neste ponto já todo o core da rede se encontra configurado e os equipamentos cliente começam a ligar-se ao sistema de DWCS do mesmo para que os seus agentes comecem a adquirir as configurações dos equipamentos. No final destes processos toda a rede se encontra configurada (Figura 7) dinamicamente sem ser necessária a intervenção do administrador da mesma. Figura 7 - Processo de configuração D. Algoritmo De forma a se conseguir elaborar um sistema genérico de configuração dinâmica, elaborou-se um algoritmo de configuração que pode ser utilizado nos agentes Cliente e Distribuição. A Figura 8 apresenta esse mesmo algoritmo. O equipamento ao iniciar verifica se arrancou em modo configuração ou não. Em caso positivo, o dispositivo verifica se tem conectividade ao servidor de DWCS e se tem alguma configuração disponível no mesmo. Se tiver este é descarregado, aplicado e o dispositivo reinicia configurado. Se não tiver conectividade ou não houver configuração disponível, o sistema aguarda pela próxima iteração. Estas iterações acontecem periodicamente, consoante o tempo prédefinido pelo administrador, isto para não aumentar o processamento dos equipamentos desnecessariamente. Caso não esteja, o equipamento verifica o sinal wireless, se estiver inativo este verifica se a rede de configuração está alcançável Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 pelo sistema. Se estiver alcançável o dispositivo aguarda pela próxima iteração até voltar a fazer nova verificação. OpenWRT [23], um firmware baseado em Linux muito utilizado em dispositivos de rede. Figura 9 - Cenário de testes Devido a este sistema ser open-source torna-se uma vantagem para este projeto, sendo possível alterar o software dos equipamentos para os tornar autónomos e inteligentes, o que normalmente não seria possível de efetuar em equipamentos com firmware proprietário. Figura 8 - Algoritmo de configuração Se não estiver alcançável, o equipamento verifica há quanto tempo a ligação sem fios está desligada, se for há mais tempo que o pré-definido o dispositivo reinicia em modo configuração, visto poder haver algum problema com a ligação que foi obtida do servidor, senão aguarda até fazer nova verificação da conetividade. Caso esteja, o equipamento verifica a ligação ao servidor e questiona o mesmo se este tem novas configurações. Caso não haja resposta ou novas configurações o dispositivo aguarda até fazer nova verificação. Ao obter novas configurações o equipamento aplica-as e reinicia. Este algoritmo, na forma como foi idealizado, permite ser adaptado para os diferentes equipamentos, de fabricantes diferentes, que se possam utilizar na rede. Desta forma conseguem-se obter resultados semelhantes em plataformas diferentes. IV. TESTES E RESULTADOS Nesta secção são descritos pormenorizadamente todos os testes que foram efetuados ao sistema DWCS, tal como testes de configuração e recuperação do equipamento. Também aqui são apresentados os resultados de todos os testes efetuados. A. Cenário de testes Para efetuar todos os testes necessários implementou-se um pequeno cenário laboratorial composto por uma DP, uma DS e um cliente, o qual é apresentado na Figura 9. Este cenário é a réplica, em parte, de um ramo de uma rede local sem fios de larga escala existente, a rede Memória Online, que é uma rede presente na freguesia da Memória. Esta rede está localizada numa região rural composta por montes e vales no distrito de Leiria em Portugal. Uma das características encontradas nesta rede é o facto de os equipamentos utilizados funcionarem com base no sistema A Internet do futuro B. Objetivo dos testes Os testes tiveram como objetivo verificar o bom funcionamento e detetar possíveis falhas que existissem. Para tal dividiram-se os testes em quatro grupos: Testes de instalação; Testes de configuração; Testes de recuperação; Testes em cenário real. C. Testes de instalação Os testes de instalação são feitos para observar o tempo necessário para que os equipamentos estejam devidamente instalados na rede. Na TABELA 1 temos as três etapas percorridas pelos dispositivos: Arranque do dispositivo, que ilustra o tempo que o equipamento demora a iniciar; Obtenção da configuração, que mostra o tempo que o equipamento demora a obter a sua configuração; Equipamento configurado, que indica o tempo necessário para o dispositivo estrar completamente configurado e funcional. TABELA 1 – TEMPOS MÉDIOS NA INSTALAÇÃO Cliente Distribuição Arranque do dispositivo 52 segundos 50 segundos Nova configuração 104 segundos 120 segundos Dispositivo instalado 158 segundos 171 segundos Tendo em conta o tempo necessário para uma configuração manual de um equipamento deste tipo, os resultados obtidos durante estes testes comprovam que este sistema agiliza o processo de instalação de dispositivos na rede. D. Testes de configuração Os testes de configuração são feitos para observar o tempo necessário para que os equipamentos se reconfigurem com 43 novas configurações disponíveis no servidor. Na TABELA 2 estão presentes as duas etapas percorridas pelos dispositivos: Obtenção de nova configuração, que ilustra o tempo necessário para o equipamento obter a nova configuração; Equipamento configurado, que mostra o tempo necessário para o dispositivo estar novamente pronto a funcionar. TABELA 2 - TEMPOS MÉDIOS NA RECONFIGURAÇÃO Cliente Distribuição Nova configuração 12 segundos 38 segundos Dispositivo configurado 49 segundos 83 segundos Sendo que o processo de atualização dos equipamentos numa rede é moroso, nos resultados obtidos durante estes testes visualiza-se uma vantagem clara do sistema proposto a propagar uma atualização de configuração pela rede. E. Testes de recuperação Os testes de recuperação são efetuados para observar quanto tempo é necessário para os equipamentos se reconfigurarem, a partir do momento em que o equipamento tem configurações erradas, ou quando existe um erro na configuração existente no servidor. Na TABELA 3 estão apresentadas as etapas percorridas pelos dispositivos: Configuração inválida, que mostra o tempo que o dispositivo demora até se aperceber que existe algum problema com a sua configuração; Arrancar em modo configuração, que ilustra o tempo que o dispositivo demora até iniciar em modo de configuração para adquirir novas configurações; Obtenção de nova configuração, que indica o tempo necessário para o dispositivo adquirir as novas configurações após a falha; Equipamento configurado, que mostra o tempo necessário para o dispositivo voltar a estar operacional após ter detetado uma falha na configuração. TABELA 3 - TEMPOS MÉDIOS NA RECUPERAÇÃO Cliente Distribuição Configuração inválida 25 segundos 26 segundos Iniciar em modo config. 143 segundos 232 segundos Nova configuração 160 segundos 262 segundos Dispositivo configurado 209 segundos 295 segundos F. Testes em cenário real Os testes efetuados em cenário real são baseados nos testes efetuados em laboratório e para tal definiram-se os seguintes: Testes de instalação; Testes de configuração; Testes de recuperação; Testes de convergência. Estes testes, em cenário real, foram executados na rede local sem fios de larga escala intitulada de Memória Online, mais precisamente na ramificação Lar, Santa Margarida e Farraposa. A zona da rede que serve como cenário de testes real é composta por uma Distribuição Principal, duas Distribuições Secundária e três Clientes. O servidor de DWCS encontra-se situado no ponto central da rede, juntamente com os diversos servidores da mesma. Os testes de instalação são apresentados na TABELA 4 que indica o tempo que os equipamentos demoraram até ficarem operacionais. TABELA 4 - TESTES DE INSTALAÇÃO EM CENÁRIO REAL Dispositivo configurado Cliente Distribuição 163 segundos 175 segundos Os testes de configuração são apresentados na TABELA 5 e indica o tempo que os equipamentos demoraram até ficarem completamente configurados. TABELA 5 - TESTES DE CONFIGURAÇÃO EM CENÁRIO REAL Dispositivo configurado Cliente Distribuição 52 segundos 87 segundos Os testes de recuperação são apresentados na TABELA 6 e indica o tempo que os equipamentos demoraram a recuperar de uma configuração incorreta. TABELA 6 - TESTES DE RECUPERAÇÃO EM CENÁRIO REAL Cliente Distribuição Dispositivo 215 segundos 302 segundos configurado Os testes de convergência foram efetuados parcialmente, devido a limitações impostas pela administração da rede. De qualquer das formas os resultados dos testes foram bastante satisfatórios e muito parecidos aos obtidos em laboratório como se pode constatar na TABELA 7. TABELA 7 - TESTES DE CONVERGÊNCIA EM CENÁRIO REAL Tempo Os resultados obtidos nesta secção validam o objetivo deste projeto de proporcionar um sistema munido de ferramentas de recuperação de erros automatizada, eliminando a necessidade de intervenções técnicas, que por vezes podem ser demasiado morosas e dispendiosas. Distribuição Principal 184 segundos Distribuição Secundária (1) 397 segundos Distribuição Secundária (2) 568 segundos Cliente 649 segundos Como se pode verificar, mesmo devido ao fato de existir uma DS adicional neste cenário, os tempos apresentados não 44 Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 sofreram grandes alterações, quando em comparação com os testes laboratoriais. G. Resultados Através dos resultados obtidos nos testes expostos anteriormente pode-se concluir que o sistema DWCS fornece aos administradores de uma rede local sem fios de larga escala, ferramentas de gestão autónoma de equipamentos. Os tempos obtidos na configuração, reconfiguração e recuperação dos dispositivos foram de encontro aos resultados esperados. V. CONCLUSÕES E TRABALHO FUTURO Neste artigo foi proposto um sistema de configuração dinâmica de equipamentos para redes locais sem fios de larga escala. Este sistema tem como objetivo automatizar a configuração de equipamentos, sejam eles de clientes ou da própria infraestrutura, de uma forma dinâmica e rápida, tornando a rede inteligente, autónoma e sustentável. As vantagens que o DWCS traz às redes locais sem fios de larga escala são, nomeadamente, a redução de custos, tanto a nível de instalação como de manutenção, o automatismo facultado à rede e a inteligência proporcionada aos equipamentos. Os resultados dos testes efetuados em laboratório, através do uso de uma réplica do cenário real (Memória Online), demonstraram a rapidez do sistema e a autonomia do mesmo. Além disso também foram efetuados testes na rede real e os resultados foram de encontro aos encontrados em laboratório. O próximo passo na evolução desta solução, o qual já se encontra em execução, deverá ser o alargamento do leque de equipamentos suportados, nomeadamente dispositivos cujo sistema operativo não seja baseado em OpenWRT. [8] J. Strassner. “Autonomic Networking – Theory and Practice”. IEEE Tutorial. 2004. [9] C. Prehofer, C. Bettstetter. “Self-Organization in Communication Networks: Principles and Paradigms”. IEEE Comunication Magazine. 2005. [10] N. Agoulmine, S. Balasubramaniam, D. Botvitch, J. Strassner, E. Lehetihet, W. Donnelly. “Challenges for autonomic network management”. First Conference on Modelling Autonomic Communication Environment. 2006, [11] E. Lehtihet, H.Derbel, N. Agoulmine, Y. Ghamri-Doudane, Sven van der Meer. “Initial approach toward self-configuration and selfoptimization in IP networks”. Management of multimedia network and services. 2005. [12] F.J. Mullany, et al. “Self-Deployment, Self-Configuration: Critical Future Paradigms for Wireless Access Networks”. WAC 2005. 2004. [13] K. Zimmerman. “An Autonomic Approach for Self-Organising Access Points”. Diploma Thesis, University of Ulm – Germany. 2004. [14] M.H. Fazel Zarandi, P. Ahmadpour. “Fuzzy agent-based expert system for steel making process”. Expert Systems With Applications 36(5). 2008. [15] U. Manzoor, K. Ijaz, A. Shahid. “Distributed dependable enterprise business system – DDEBS”. Proceeding of springer communications in computer and information science, vol.19. 2008 [16] Sergio Ilarria, Eduardo Menaa, Arantza Illarramendib. “Using cooperative mobile agents to monitor distributed and dynamic environments”. Information Sciences, 178. 2007. [17] J.O. Kephart, W.E. Walsh. “An artificial intelligence perspective in autonomic computing policies”. Proceedings of POLICY’04. 2004. [18] D. Gavalas, D. Greenwood, M. Ghanbari, M. O’Mahony. “Hierarchical network management: A scalable and dynamic mobile agent-based approach”. Computer Networks, 38(6). 2002. [19] G. Weiss. “Multiagent systems a modern approach to distributed artificial intelligence”. The MIT Press Crambridge. 1999. [20] Wi-Fi Alliance. “Wi-Fi CERTIFIED Wi-Fi Protected Setup”. 2010. [21] Buffalo Technology. “AirStaion One-Touch Secure System”. 2004. [22] Wi-Fi Alliance. The State of Wi-Fi Security. 2012. [23] OpenWRT, [http://openwrt.org], Acedido em Julho de 2013. AGRADECIMENTOS Todo o trabalho desenvolvido neste artigo foi parcialmente suportado pela Rede de Inovação da Região Centro (RICE) e pelo INOV - INESC Inovação, apoiado pelo Centro de Investigação em Informática e Comunicações do Instituto Politécnico de Leiria e pelo projeto Memória Online. REFERÊNCIAS [1] S. Mishra, J. Hwang, D. Filippini, R. Moazzami, L. Subramanian, T. Du. “Economic analysis of networking technologies for rural developing regions”. Internet and Network Economics. Springer Berlin Heidelberg. 2005 [2] M. Ranga, Mamello Thinyane, Alfredo Terzoli. “Exploring CostEffective Reinforcements for Rural Telecommunication Networks: Dwesa Case Study”. SATNAC. 2010. [3] Rodrigo Selada. “Redes Wireless de Banda Larga”. Universidade de Trás-os-Montes e Alto Douro. 2008. [4] Alex Hills. “Large-Scale Wireless LAN Design”. IEEE Communications Magazine. 2001. [5] S. Surana, R. Patra, E. Brewer. “Simplifying fault diagnosis in locally managed rural WiFi networks”. Proceedings of the 2007 workshop on Networked systems for developing regios. ACM. 2007. [6] Luís Frazão, Silvana Meire, Carlos Rabadão, António Pereira. “Modelo de Gestão de Rede Wireless de Banda Larga em Ambientes Rurais”. Sistemas e Tecnologias de Informação – CISTI. 2013. [7] International Telecommunication Union. “Future Networks: Objectives and design goals”. ITU-T Y.3001. 2001. A Internet do futuro 45 46 Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 Encaminhamento com QoS para Redes Ad Hoc com rotas estáveis Tiago Coelho António Costa Joaquim Macedo M. João Nicolau Centro Algoritmi Univ. Minho, Portugal [email protected] Centro Algoritmi & DI Univ. Minho, Portugal [email protected] Centro Algoritmi & DI Univ. Minho, Portugal [email protected] Centro Algoritmi & DSI Univ. Minho, Portugal [email protected] Resumo—Devido às características próprias das redes móveis ad hoc (Mobile Ad hoc Network - MANET), dotar este tipo de redes de garantias de qualidade de serviço (QoS) no tráfego fim a fim torna-se um desafio. Este artigo apresenta um protocolo de encaminhamento com QoS para redes ad hoc, que se designa por Ad hoc QoS Multipath Routing with Route Stability (QMRS), que tem como objectivo suportar aplicações com requisitos de qualidade de serviço, nomeadamente requisitos no atraso fim a fim. Este protocolo tem a possibilidade de encontrar até três rotas de nós disjuntos que cumpram o requisito de QoS. Adicionalmente e com o objectivo de garantir a estabilidade do processo de encaminhamento, usa a potência de sinal das ligações entre nós vizinhos para eleger a rota mais estável, rota essa que passa a ser usada para o reenvio do tráfego. Quando se verifica a existência de rotas com uma estabilidade idêntica, dá-se preferência à rota com menor atraso fim a fim. O protocolo detém também um mecanismo de manutenção, recuperação e verificação de incumprimento do requisito de QoS nos caminhos encontrados. Os resultados obtidos na simulação realizada permitem verificar, que o protocolo QMRS implementado, reduz o atraso fim a fim e aumenta a taxa de entrega de pacotes no destino, comparativamente com protocolo Ad hoc On-Demand Distance Vector (AODV). Palavras-chave—Ad hoc; QoS; Encaminhamento com QoS; Encaminhamento Ad hoc I. INTRODUÇÃO As redes móveis ad hoc são compostas por nós móveis que têm a capacidade de autonomamente, criar uma rede de comunicações entre eles sem assistência de um ponto de acesso, contrariamente às redes de infra-estrutura. A comunicação é sem fios e ocorre directamente entre os nós vizinhos localizados no mesmo raio de alcance. Os nós da rede são simultaneamente sistemas terminais e encaminhadores já que participam no processo de encaminhamento (multi-hop) para que os pacotes possam ser transmitidos desde a fonte até ao destino, passando por vários nós intermédios. O aumento da diversidade e capacidade dos dispositivos móveis sem fios e simultaneamente a evolução das aplicações multimédia, criou a necessidade de propor e avaliar formas deste tipo de redes oferecer garantias de Qualidade de Serviço (QoS) ao tráfego fim a fim, de forma a cumprir os requisitos de QoS solicitados por este tipo de aplicações (largura de banda, atraso fim a fim, variação do atraso, etc). Devido à mobilidade dos nós, a topologia de rede é dinâmica e imprevisível, ocorrendo frequentes quebras nas rotas. Além disso, o meio de comunicações sem fios é partilhado entre os nós vizinhos. Estes factores levam a que o encaminhamento de tráfego com requisitos de QoS constitua um desafio ainda maior do que fazê-lo nas redes fixas. II. TRABALHO RELACIONADO Os protocolos de encaminhamento são normalmente classificados em duas categorias: proactivos (table-driven) ou reactivos (on-demand). Os protocolos de encaminhamento proactivos (p.e. Optimized link state routing protocol – OLSR [2]) têm como objectivo, manter a informação actualizada das tabelas de encaminhamento. Estes protocolos têm baixa latência, mas necessitam de trocar mensagens de controlo constantemente para actualizar todas as rotas entre os nós pertencentes à rede, mesmo sem que algum nó pretenda transmitir. Com a mobilidade dos nós e as limitações ao nível da energia típica dos dispositivos que utilizam este tipo de redes, estas características são vistas como possíveis limitações. Nos protocolos reactivos (p.e. Ad hoc on demand distance vector – AODV [1]) as rotas são obtidas a pedido do nó fonte, ou seja, apenas quando um nó pretende transmitir para determinado destino e não contém uma rota válida na sua tabela de encaminhamento é que se inicia o processo de descoberta de rota. Desta forma há menos tráfego de controlo a transitar na rede, permitindo assim, aos dispositivos que utilizam a rede, poupar recursos de processamento e essencialmente energia. Entre os protocolos de encaminhamento reactivos, o protocolo AODV é normalmente o mais referenciado, no entanto durante o processo de descoberta de rota apenas permite encontrar uma única rota para o destino, ou seja, quando ocorre uma quebra de ligação entre nós pertencentes a essa rota, é necessário iniciar novamente o processo de descoberta de rotas. Para colmatar este problema, de forma a diminuir a frequente necessidade de descobrir novamente uma rota para o destino, foram implementados alguns protocolos de múltiplos caminhos, por exemplo o protocolo Ad hoc on-demand multipath distance vector - AOMDV [3]. No entanto, nesta variante do protocolo AODV, as diferentes rotas alternativas que são descobertas não oferecem nenhuma garantia de qualidade de serviço. Este trabalho é financiado por Fundos FEDER através do Programa Operacional Fatores de Competitividade – COMPETE e por Fundos Nacionais através da FCT – Fundação para a Ciência e Tecnologia no âmbito do Projeto: FCOMP-01-0124-FEDER-022674. A Internet do futuro 47 Em contrapartida, existem várias propostas de protocolos de encaminhamento para fornecer garantias de QoS em redes móveis ad hoc. Y Hwang and P varshney propõem o protocolo designado por An Adaptive QoS Routing Protocol with Dispersity for Adhoc Networks (ADQR) [4], que consiste num algoritmo de descoberta de rotas que permite encontrar vários caminhos disjuntos. Com base nas informações da largura de banda obtidas durante a descoberta de rotas este protocolo procede à reserva de recursos nestes caminhos. A transmissão de dados é efectuada em todos os caminhos reservados. O protocolo ADQR monitoriza a rede na tentativa de detectar mudanças na topologia e com o objectivo de actualizar as rotas antes que as mesmas fiquem indisponíveis. Com os processos de descoberta e manutenção de rotas utilizados no protocolo, o ADQR procura melhorar significativamente o desempenho da rede e dar suporte de QoS fim a fim em redes ad-hoc. A principal desvantagem encontrada é o facto de não resolver o problema da reordenação dos pacotes, inerente ao balanceamento do tráfego pelos vários caminhos. Além disso, para processar o pedido de rota, o mecanismo de encaminhamento proposto, necessita de armazenar em cada nó as informações de estado da topologia da rede. Por outro lado, a monitorização proactiva necessária para o seu funcionamento dá origem a uma sobrecarga de pacotes de controlo na rede, que pode ser excessiva. Qi Xue e Aura Ganz propõem o protocolo AQOR [7]. É um protocolo de encaminhamento com QoS baseado no AODV com reserva de recursos. O protocolo para fornecer QoS incorpora as seguintes características: estimativa da largura de banda disponível e medição do atraso fim-a-fim, reserva da largura de banda e recuperação de rota. Para não ter que lidar com a libertação dos recursos reservados em cada nó da rede quando ocorre uma quebra de ligação, a reserva dos recursos é efectuada apenas temporariamente. O processo de recuperação de rota inclui, a detecção de quebra de ligações, verificação de incumprimento de QoS e recuperação de rota no destino. Nityananda Sarma e Sukumar Nandi [6] propõem o protocolo SMQR para redes ad hoc. Este protocolo possibilita encontrar múltiplas rotas de nós disjuntos com maior estabilidade. Permite obter rotas que cumpram os requisitos de atraso fim a fim máximo e taxa de transferência efectiva mínima, para dar suporte de QoS a aplicações de tempo real nas redes móveis ad hoc. Segundo os autores, os resultados obtidos na simulação, indicaram melhorias comparativamente ao protocolo AODV em termos de taxa de entrega de pacotes, atraso médio fim-a-fim, variação no atraso máximo e taxa de transferência efectiva. pretende desta forma reduzir o atraso fim a fim e atender aos requisitos de serviço de aplicações multimédia em tempo real. III. AD HOC QOS ON-DEMAND MULTIPATH ROUTING WITH ROUTE STABILITY Nesta secção, descreve-se o protocolo Ad hoc QoS OnDemand Multipath Routing with Route Stability (QMRS) proposto. Este protocolo é um protocolo de encaminhamento reactivo. Inicialmente foi baseado no protocolo AODV, onde foram implementadas as alterações necessárias para o modificar de forma a torna-lo um protocolo de encaminhamento de múltiplos caminhos, tendo-se depois procedido à implementação final do protocolo proposto, de forma a atender aos requisitos de QoS sem comprometer a estabilidade do processo de encaminhamento. O protocolo QMRS possibilita a descoberta de até três rotas de nós disjuntos que cumpram o requisito de atraso fim a fim. Entre as rotas encontradas é seleccionada a rota mais estável para iniciar a transmissão no nó fonte para o destino, ficando as restantes como rotas alternativas, desta forma pretende-se diminuir a possibilidade de uma quebra de rota durante a transmissão. Apenas no caso de serem encontradas rotas com uma estabilidade idêntica é seleccionada a rota com menor atraso fim a fim. A descoberta de múltiplas rotas de nós disjuntos alternativas permite que, quando se verifica uma falha na rota principal devido à movimentação de algum nó pertencente a esta, o nó fonte reaja à notificação dessa quebra, procedendo à comutação para uma rota alternativa. A probabilidade de existir uma rota alternativa válida é elevada graças ao algoritmo utilizado para a descoberta de rotas. Este algoritmo considera como rotas alternativas apenas aquelas em que entre a fonte e o destino não existe um mesmo nó intermédio. Se os caminhos encontrados fossem de ligações não disjuntas, com a movimentação de apenas um nó poder-se-iam quebrar logo todas as rotas alternativas entre a fonte e o destino, tendo o nó fonte que iniciar novamente o processo de descoberta de rota. Neste sentido, com a solução proposta, diminui-se o tráfego de controlo na rede e verifica-se um menor atraso fim a fim, durante a transmissão do fluxo de dados. A Figura 1 ilustra o conceito de rotas disjuntas. Com a topologia apresentada, durante o processo de descoberta de rotas, seria possível obter três caminhos de nós disjuntos (fonte-A-D-destino; fonte-Bdestino; fonte-C-E-destino), ou seja, o mesmo nó intermédio só poderá pertencer a um dos caminhos entre a fonte e o destino, nunca poderá pertencer a outro dos caminhos encontrados e armazenados na tabela de encaminhamento. Shun Liu e Jian Liu propõem o protocolo DMSR [8]. É um protocolo de encaminhamento de múltiplos caminhos, que utiliza o atraso fim a fim para fornecer suporte de QoS a aplicações multimédia de tempo real em redes ad hoc. O protocolo obtém a informação local e realiza o cálculo do atraso verificado no nó, utilizando-o como métrica para selecção do caminho. A métrica tem em conta o número de nós vizinhos dos nós de encaminhamento, o tempo de contenção e o número de pacotes na fila de espera. O protocolo DMSR Figura 1 - Caminhos de nós disjuntos 48 Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 Uma vez descobertas as rotas de nós disjuntos entre a fonte e o destino que cumpram o requisito de QoS, o QMRS utiliza, a potência de sinal recebido para determinar a rota mais estável e o atraso fim a fim em caso de empate, para seleccionar a melhor rota para transmissão. Sobre todos caminhos encontrados entre o nó fonte e o destino, é realizado o mecanismo de manutenção de rotas, que verifica periodicamente se o cumprimento de QoS se mantém, assim como, efectua uma actualização da potência do sinal mínima do caminho e do atraso fim a fim. Com base na actualização das métricas, poderá ocorrer uma comutação de rota. Com os mecanismos utilizados o protocolo proposto possibilita assim efectuar uma transmissão de dados eficiente oferecendo garantias de QoS. A. Manutenção da informação de estado entre vizinhos Entre os nós da rede localizados dentro do alcance de transmissão, ocorrem trocas periódicas de mensagens “Hello” que indicam que os vizinhos estão disponíveis e acessíveis (no seu raio de alcance), informação essa que é necessária para o procedimento de descoberta e manutenção das rotas. Para além da acessibilidade, através das mensagens “Hello” é mantida a informação para cada vizinho da potência do sinal recebido e do atraso ocorrido (desde que o pacote é colocado na fila de espera do vizinho até que chega ao respectivo nó e que inclui o tempo gasto na fila de espera, o tempo de contenção no acesso ao meio, o tempo de transmissão e o tempo de propagação). Isto é necessário para manter os valores das métricas actualizadas e dar possibilidade aos nós intermédios de responder aos pedidos de rota por parte de uma fonte em que o destino é um dos seus vizinhos. A troca das mensagens de “Hello” é periódica e no caso de não ser recebida uma mensagem de um vizinho durante um determinado intervalo de tempo é desencadeado o processo de recuperação de rota. A potência do sinal na recepção é obtida directamente na camada física através de uma interacção cross-layer. B. Descoberta de Rota O processo de descoberta de rotas foi implementado com base no protocolo AODV. Foi necessário efectuar alterações significativas ao algoritmo e introduzir mecanismos adicionais, para permitir a descoberta de múltiplos caminhos de nós disjuntos que cumpram determinado requisito de atraso fim a fim máximo. Além disso para cada caminho encontrado o algoritmo do QMRS determina a potência de sinal (métrica côncava que resulta do cálculo do mínimo valor da potência de sinal recebido nas várias ligações que constituem o caminho), e o atraso fim a fim (métrica aditiva que resulta do somatório de todos os atrasos obtidos nas diferentes ligações e nós que constituem o caminho). Um nó da rede quando pretende transmitir para determinado destino e não contém na sua tabela de encaminhamento uma rota válida para o mesmo, terá de iniciar o processo de descoberta de rotas. Este processo consiste no envio de um pacote Route Request (RREQ) em broadcast para os nós vizinhos, pacote esse que contém a informação do nó fonte (Origin Address, sequence number) e a informação do nó destino (dst Address, dst sequence number). O campo designado por sequence number diz respeito a um número inteiro que vai sendo incrementado, para permitir durante a A Internet do futuro descoberta de rota verificar se a informação relativa a determinado nó contida na tabela de encaminhamento está actualizada ou já está obsoleta, em relação à informação que o nó que fez o envio do pacote detém sobre esse mesmo nó. Os campos mencionados, juntamente com o campo resquest ID e o endereço IP são essenciais para permitir distinguir pedidos sucessivos e evitar ciclos no encaminhamento. A Tabela I e Tabela II apresentam a estrutura dos pacotes RREQ e Route Reply (RREP). TABELA I - RREQ RREQ ID Destination IP Address Destination Sequence Number Originator IP Address Originator Sequence Number hopCount firstHop RxSSPath delayAcc delayPath delayReq TABELA II - RREP Destination IP Address Destination Sequence Number Originator IP Address hopCount firstHop RxSSPath RxSSPathToDst delayPath delayReq Os nós vizinhos ao receberem o RREQ, incrementam o campo do pacote de número de saltos (hopCount) e inserem o seu endereço IP num campo designado de firstHop, este campo é utilizado para verificar se o caminho encontrado é de nós disjuntos. No caso de o nó não conter uma rota para o destino, retransmite o pacote em broadcast. Desta forma sempre que um nó recebe o pacote RREQ pela primeira vez (verificado pelo campo request ID e Origin Address, campos que permitem identificar unicamente o pacote) e não contém informação de rota para o destino, retransmite o pacote que é assim difundido pela rede até chegar ao nó destino, ou então a um nó intermédio que possua uma rota válida para esse destino. A rota só é considerada válida, no caso de o nó intermédio conter na sua tabela de encaminhamento uma rota com um dst sequence number igual ou superior ao contido na mensagem RREQ recebida. No caso de ser um nó intermédio a responder ao pedido do nó fonte, terá de enviar um pacote designado por gratuitous Route Reply para informar o destino da rota para o nó fonte. 49 Os nós intermédios ao receberem um pacote RREQ verificam se o sequence number do nó fonte contido no pacote é superior ou igual ao da tabela de encaminhamento. No caso de ser igual, além de ser verificado se o caminho é de nós disjuntos, também é verificado se o número de rotas contidas na tabela é inferior a três (o protocolo armazena no máximo até três caminhos de nós disjuntos). Após serem executadas estas verificações, é criada ou actualizada a entrada na tabela de encaminhamento referente à rota para o nó fonte. Após a retransmissão do pacote RREQ, o nó intermédio fica um período de tempo à espera de receber uma resposta ao pedido efectuado, ou seja, espera pela recepção de um pacote Route Reply (RREP) para validar a rota para o destino. No caso de o sequence number do nó fonte contido do pacote RREQ ser superior ao da tabela, as rotas para o nó fonte são removidas, e é inserida na tabela de encaminhamento a nova rota encontrada. entrada da tabela de encaminhamento para o nó destino, e retransmitem o pacote RREP para o nó fonte. A informação do atraso fim a fim e da potência do sinal recebido mínima, é também inserida no caminho encontrado e validado nos nós intermédios para o nó destino, desta forma se estes nós receberem algum pedido de rota de outro nó fonte para esse destino, podem verificar se o atraso fim a fim pode ser cumprido, assim como informar da estabilidade deste caminho. Durante a descoberta de rota, é utilizado um mecanismo de controlo de admissão, sempre que se verifique o não cumprimento do atraso fim a fim máximo requisitado pela aplicação (delayReq), ou seja o pacote é descartado, permitindo encontrar outras rotas que cumpram o requisito de QoS. D. Manutenção das Rotas A topologia neste tipo de redes é dinâmica e imprevisível, com a frequente mobilidade dos nós, podem ocorrer a qualquer momento quebras nos caminhos encontrados. Para verificar se o requisito de QoS está a ser cumprido durante a descoberta de rota, um nó ao receber o pacote RREQ, calcula o atraso que ocorre no nó e acrescenta-o ao atraso acumulado até ao momento contido no pacote RREQ (delayAcc), efectua-se depois a comparação entre o atraso acumulado e o atraso fim a fim máximo requisitado, em que o atraso acumulado terá de ser inferior ao atraso requisitado (delayAcc < delayReq). Sempre que não se verifique esta condição de controlo, o pacote é descartado. No caso de o caminho percorrido até ao momento cumprir o requisito de QoS, são colocados no pacote RREQ a informação sobre o atraso acumulado (delayAcc) e a potência do sinal recebido mínima (RxSSPath) do caminho até ao momento. A potência do sinal é uma métrica côncava, obtida directamente da camada física, através de uma interacção cross-layer. O valor obtido da potência do sinal na recepção no nó (RxSSPath) é comparado com o valor contido no pacote RREQ, apenas no caso em que o valor lido seja inferior ao contido no pacote, é que se altera o campo RxSSPath do pacote RREQ por esse valor lido, caso contrário mantém-se o valor previamente existente no pacote RREQ da potência do sinal na recepção mínima do caminho percorrido até ao momento (1). Com a informação das métricas actualizadas o pacote RREQ é retransmitido em broadcast, para continuar a procura de uma rota para o destino. RREQ.RxSSPath = min(RREQ.RxSSPath,RxSSRead) (1) A resposta ao pedido de rota, quer seja feita no nó destino, ou por um nó intermédio que detém uma rota válida para o mesmo, a informação contida no pacote RREQ, actualizada nó a nó durante a sua retransmissão nos nós intermédios no caminho percorrido, contém no final, a informação do atraso fim a fim (delayPath) e a potência do sinal recebido mínima (RxSSPath) do caminho encontrado. Essa informação vai contida na resposta (pacote RREP) directamente em unicast para o nó fonte pelo percurso inverso ao percorrido pelo pacote RREQ recebido. Desta forma, os nós intermédios validam a 50 C. Selecção do caminho Entre os caminhos encontrados de nós disjuntos que cumpriram o requisito do atraso fim a fim, com a informação da estabilidade de cada caminho, baseada na potência do sinal recebido mínima de cada caminho, é eleita a rota mais estável para transmissão. Apenas quando é verificada a existência de caminhos com uma estabilidade idêntica, dá-se preferência ao caminho com menor atraso fim a fim. Após a descoberta de rota desencadeada pelo nó fonte, todos os nós pertencentes a este caminho, armazenam na sua tabela de encaminhamento a respectiva informação das rotas para o nó fonte e destino. Quando um nó intermédio pertencente à rota, verifique que o nó de próximo salto utilizado para atingir o destino já não se encontra no seu alcance de transmissão, ou seja, detecta a quebra de ligação para o nó vizinho, terá de enviar um pacote Route Error (RERR) de forma a notificar o nó fonte, que aquele nó utilizado para atingir determinado destino ficou indisponível. Este pacote percorre os nós intermédios utilizados neste caminho, que fazem a remoção da entrada da tabela de encaminhamento para o destino que utiliza como próximo salto o nó de quem enviou o RERR, e depois retransmite-o para que este possa chegar ao nó fonte. O nó fonte ao receber o pacote RERR remove também da sua tabela de encaminhamento a rota correspondente, e caso esta rota esteja definida como rota principal, caso existam rotas alternativas, procede à comutação para a rota alternativa mais estável entre as existentes. Se não existir nenhuma rota alternativa terá de iniciar o processo de descoberta de rota. Caso a notificação de quebra de ligação seja sobre uma rota alternativa, apenas é realizada a remoção dessa entrada da tabela de encaminhamento, mantendo-se a rota principal para transmissão. Nos caminhos encontrados durante o processo de descoberta de rota, executa-se uma verificação de incumprimento do requisito de QoS. São utilizados os pacotes InspectPath e ReplyInpectPath, transmitidos por esses caminhos, de forma a verificar se o requisito de atraso fim a fim continua a ser cumprido. O procedimento utilizado para esta verificação é semelhante à utilizada no processo de descoberta de rota, em que é verificado se o atraso acumulado é inferior ao atraso fim a fim requisitado durante a retransmissão do pacote nó a nó. Quando é verificado que o requisito de QoS não está a ser cumprido, é enviado um pacote RERR para notificar o nó fonte que aquele caminho não poderá ser utilizado, visto que não cumpre o requisito de atraso fim a fim. Os nós intermédios na recepção do pacote RERR, executam o Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 procedimento anteriormente descrito na recepção deste tipo de pacotes, fazem a remoção da entrada na tabela de encaminhamento para o destino que utilize como próximo salto o nó que enviou o pacote e retransmitem-no. Durante o encaminhamento dos pacotes InspectPath nó a nó ao percorrerem os caminhos encontrados durante a descoberta de rota, é realizada também a actualização das métricas utilizadas para seleccionar a rota principal, do atraso fim a fim e a potência do sinal mínima de cada caminho. IV. SIMULAÇÃO E ANÁLISE DE RESULTADOS Nesta secção, são apresentados os resultados das simulações realizadas ao protocolo QMRS. Foi utilizado o simulador NS-3 [9] para implementação e realização dos testes ao protocolo proposto. Para a realização dos testes e análise do desempenho ao protocolo proposto, utilizou-se o protocolo AODV incluído no simulador, para servir de referência para uma comparação dos resultados obtidos com os mesmos parâmetros de simulação, de forma a verificar o desempenho do protocolo em relação ao atraso fim a fim, taxa de transferência efectiva e a taxa de pacotes entregues no destino. A. Simulação De forma a obter resultados fiáveis, realizaram-se 60 simulações para cada um dos protocolos, sendo apresentados os resultados nos gráficos seguintes (Figura 2,3 e 4) em que se indica para cada velocidade, a média e o intervalo de confiança de 95% correspondente. A simulação efectuada consistiu em dispor 80 nós de forma aleatória e com uma movimentação aleatória, utilizando o modelo de mobilidade random waypoint. Os nós deslocam-se a velocidades máximas entre 0 e 10m/s, num local com uma dimensão de 600m x 1500m. Todos os nós da rede têm um alcance de transmissão de 160m. A Tabela III indica os parâmetros utilizados nas simulações realizadas. de entrega de pacotes no destino e a taxa de transferência efectiva. 1) Atraso fim a fim Relativamente ao atraso médio verificado durante a transmissão dos fluxos de dados entre a fonte e o destino, podese constatar ao analisar a Figura 2, para as velocidades máximas entre 0 e 10m/s apresentadas, o protocolo proposto consegue dar garantias do requisito de atraso fim a fim para os vários fluxos transmitidos, pode-se observar um atraso fim a fim médio entre 0 e 250 milissegundos. Enquanto para o protocolo AODV, verifica-se um atraso médio muito superior durante a transmissão dos pacotes até ao nó destino. Como anteriormente descrito, o protocolo AODV não oferece quaisquer garantias de qualidade de serviço, em que o caminho usado na transmissão poderá estar congestionado, com o acréscimo de ter de iniciar o processo de descoberta de rota sempre que ocorre uma falha numa ligação entre nós pertencentes à rota usada para transmitir, verifica-se desta forma nos resultados obtidos apresentados na Figura2 um atraso significativo nos pacotes até serem entregues no destino. Enquanto com as garantias que o protocolo QMRS oferece, os caminhos encontrados e utilizados na transmissão dos dados, são caminhos pouco congestionados que cumprem o atraso requisitado, com um número menor de quebra de rotas, uma recuperação de rota mais rápida e os mecanismos de manutenção de rotas e verificação de incumprimento de QoS utilizados, permitem obter um atraso fim a fim significativamente inferior ao protocolo AODV. Durante o tempo de simulação de 200s, são transmitidos no total 15 fluxos de dados, em que são seleccionados aleatoriamente o nó fonte e o destino. É usado o protocolo UDP para gerar tráfego Constant Bit Rate (CBR), os pacotes de dados foram definidos com um tamanho de 64bytes e são transmitidos a uma taxa de transferência de 2Kbps. TABELA III - PARÂMETROS DE SIMULAÇÃO Parâmetros Dimensão Número de nós Modelo de Mobilidade Posição dos nós Alcance transmissão Tipo de tráfego Tamanho dos pacotes Número de fluxos Taxa de transmissão Valor 600m x 1500m 80 Random Waypoint Aleatório 160m Constant Bit Rate (CBR) 64 bytes 15 2Kbps IEEE 802.11b, freq. 2.4Ghz Especificações Wifi Taxa de transf. até 2Mbps Tempo de simulação (s) 200 B. Análise dos resultados Para verificar o desempenho dos protocolos, são utilizadas como meio de comparação as métricas de atraso fim a fim, taxa A Internet do futuro Figura 2 - Atraso fim a fim 2) Taxa de Entrega de Pacotes e Taxa de Transferência Pode-se observar na Figura 3, durante as simulações realizadas para as diferentes velocidades máximas entre 0 e 10 m/s que a taxa de entrega de pacotes no destino no protocolo QMRS mantém-se entre os 70% e 80%, verificando-se para o protocolo AODV taxas de entrega de pacotes muito inferiores, entre os 10% e 20%. Relativamente à taxa de transferência efectiva, pode-se observar na Figura 4 quanto aos resultados obtidos nas simulações realizadas, que a média da quantidade de dados transferidos entre a fonte e o destino, para o protocolo QMRS para as velocidades máximas entre 0 e 10m/s apresentadas, mantém-se nos 2Kbps, enquanto para o protocolo AODV verificam-se valores inferiores a 1Kbps. 51 O protocolo proposto, que tem por objectivo garantir a estabilidade do processo de encaminhamento, na selecção que faz da rota para transmissão com ligações estáveis entre os nós, e com o mecanismo de descoberta de rota utilizado, que verifica o cumprimento do requisito de atraso fim a fim, os nós que constituírem o caminho durante a transmissão, serão nós da rede com filas de espera pouco congestionadas. O inverso é verificado no protocolo AODV, como apenas possibilita a descoberta de uma rota, não sendo realizada qualquer verificação durante a sua descoberta ou manutenção, o caminho utilizado poderá conter ligações de tal forma congestionadas, que os nós não conseguem ter acesso ao meio e encaminhar os pacotes todos, ocorrendo congestão nas filas de espera, que ao atingir a capacidade máxima, grande parte dos pacotes acabam por ser descartados, originando os resultados observados na Figura 2 para as diferentes velocidades máximas entre 0 e 10 m/s, de taxas de entrega no destino entre 10% e 20%, e na Figura 3 de taxas de transferência efectiva inferiores a 1Kbps. rota rápida, que efectua a comutação para uma rota alternativa sempre que se verifique o incumprimento do requisito de QoS, ou sempre que é detectada uma quebra no caminho principal. O protocolo proposto consegue obter, segundo os resultados apresentados, um desempenho superior comparativamente ao protocolo AODV e oferecer garantias de QoS. V. CONCLUSÃO O protocolo proposto, Ad hoc QoS Multipath Routing with Route Stability (QMRS) tenta dar suporte a aplicações com requisitos de qualidade de serviço nas redes móveis ad hoc, nomeadamente requisitos no atraso fim a fim. Este protocolo possibilita encontrar múltiplos caminhos de nós disjuntos que cumpram o requisito de QoS, durante o processo de descoberta de rota e durante o mecanismo de manutenção das rotas, que verifica a estabilidade de cada caminho, e ao seleccionar para transmissão o caminho mais estável entre os existentes, permite assim, reduzir o numero de falhas nas rotas principais usadas para transmissão, e no caso de se verificar que o caminho principal deixe de ser exequível, permite efectuar uma rápida recuperação de rota, através da comutação para um caminho alternativo, não sendo necessário iniciar novamente o processo de descoberta de rota. O protocolo QMRS com os mecanismos existentes de descoberta, manutenção, recuperação de rotas e verificação de incumprimento do requisito de QoS nos caminhos encontrados, segundo as simulações realizadas, permitem ao protocolo proposto, obter resultados com melhorias significativas, comparativamente ao protocolo Ad hoc On-Demand Distance Vector (AODV), no que diz respeito ao atraso fim a fim, taxa de entrega de pacotes no destino e taxa de transferência efectiva. Figura 3 - Taxa de entrega de pacotes no destino REFERÊNCIAS [1] [2] [3] [4] [5] Figura 4 - Taxa de transferência efectiva [6] 3) Conclusão da Analise dos resultados O protocolo QMRS, com os mecanismos existentes de descoberta, manutenção, recuperação de rotas e verificação de incumprimento do requisito de QoS nos caminhos encontrados. Permite aumentar a probabilidade de seleccionar rotas para transmissão que se prolonguem por mais tempo disponíveis. Com a selecção da rota mais estável e que cumpra o requisito do atraso fim a fim, o caminho utilizado para transmissão conterá nós da rede com as suas filas de espera e ligações menos congestionadas. Com o mecanismo de recuperação de 52 [7] [8] [9] Perkins, Charles, E. Belding-Royer, and Samir Das. "Ad hoc on demand distance vector (AODV) routing (RFC 3561)." IETF MANET Working Group (August. 2003) (2003). Clausen, Thomas, et al. "Optimized link state routing protocol (OLSR)." (2003). Marina, Mahesh K., and Samir R. Das. "Ad hoc on-demand multipath distance vector routing." ACM SIGMOBILE Mobile Computing and Communications Review 6.3 (2002). Y Hwang and P varshney, An Adaptive QoS Routing Protocol with Dispersity for Ad-hoc Networks, proc of the 36th Hawaii International Conference on System Sciences (HICSS'03), 2003 X. Li and L. Cuthbert, " Multipath QoS routing of supporting Diffserv in Mobile Ad hoc Networks," Proc. of SNPD/SAWN.'05,2005. N. Sarma, S. Nandi, "A Route Stability based Multipath QoS Routing (SMQR) in MANETs," First International Conference on Emerging Trends in Engineering and Technology, 2008 Qi Xue, Aura Ganz, Ad hoc QoS on-demand routing (AQOR) in mobile ad hoc networks, Journal of Parallel and Distributed Computing, Volume 63, Issue 2, February 2003 Liu, Shun, and Jian Liu. "Delay-aware multipath source routing protocol to providing QoS support for wireless ad hoc networks." Communication Technology (ICCT), 2010 12th IEEE International Conference on. IEEE, 2010. NS-3, http://www.nsnam.org/ Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 Performance Evaluation of IEEE 802.11 Underwater Wireless Networks Filipe Teixeira, Rui Campos, Manuel Ricardo José Quevedo INESC TEC, Faculdade de Engenharia, Universidade do Porto Porto, Portugal Email: {fbt, rcampos, mricardo}@inescporto.pt Instituto de Telecomunicações Aveiro, Portugal Email: [email protected] Abstract—The use of autonomous vehicles for surveillance and maintenance of underwater facilities, together with the development of new sensors for underwater monitoring, is bringing up the need for new, fast, and cheap underwater communications solutions. Current solutions are based on acoustic communications which, despite their range, offer very low bitrates. Although Radio Frequency (RF) communications show very high attenuations in underwater environments, IEEE 802.11 networks can still be useful in the monitoring, surveillance and maintenance applications due to the high speed and low cost devices. This paper evaluates the performance of an IEEE 802.11g network in fresh water using ns-3. The results show that high bitrate communications are possible up to 1.4 m. For scenarios involving point-to-multipoint communications, simulation results show the need to enable the RTS/CTS mechanism. I. I NTRODUCTION Underwater communications are getting an increasing interest over the past years, not only in research but also for commercial applications. New autonomous underwater vehicles (AUVs) for surveillance and maintenance of underwater facilities are being deployed mainly for water quality control and inspection [1]. Also, new sensors able, for instance, to monitor the pressure and temperature of a oil pipeline are being developed [2]. However, these applications require proper communications solutions to exchange the data collected from AUVs and sensors to the surface without the energy cost of going to the surface or the expensive underwater cable coupling of AUVs. Current communications solutions are based on acoustic systems [3], which despite the long range (up to several kilometers) have many limitations. They provide very low bitrate, in the order of few kbit/s, thus limiting the capability of real time video and fast data transmissions [3]. Besides, they are affected by turbidity and perform poorly in shallow waters [4]. Moreover, the usage of acoustic waves can have great impact on marine life [5]. Wireless optical communications can be a solution for high bitrate communications, but they require line-of-sight and proper alignment of the nodes, which may not be possible in some scenarios [3]. Although RF waves suffer high attenuation underwater, they are unaffected by turbidity, do not require line-of-sight, are immune to acoustic noise, and can enable high bitrates for short-range communications [3] [6] [7] [8] [9] [10]. IEEE 802.11g is a widely used RF communications technology. It operates at 2.4 GHz ISM band and is capable of A Internet do futuro creating a Basic Service Set (BSS), which consists of one Access Point (AP) and one or more stations (STA) connected via wireless media. The usage of IEEE 802.11 networks in underwater scenarios can represent a low-cost solution for short-range high bitrate underwater communications. So, it is worth it to study such possibilities and scenarios. The main contributions of this article are two-fold: (1) a simulation-based performance evaluation of IEEE 802.11g networks in fresh water scenarios using ns-3 [11] and (2) a new model for ns-3 specifically developed to cope with the propagation characteristics of RF waves in fresh water. The simulation results show the feasibility of IEEE 802.11g networks for high bitrate communications up to 1.4 m, with low delay and low packet loss. The rest of the paper is organized as follows. Section 2 presents the propagation models for underwater communications. Section 3 presents the performance evaluation using ns3 simulator. The simulation results are shown in Section 4. Finally, conclusions and future work are presented in Section 5. II. P ROPAGATION M ODELS Radio frequency waves propagate differently in the water and in the air; in the water, RF waves propagate slower. The propagation speed in underwater scenarios is directly proportional to the frequency [3] [8] and given by Equation 1. r vRF = f× 107 m/s σ (1) Where for fresh water the value of the water conductivity (σ) is 0.01 S/m [12]. However, the propagation speed is limited to the speed of light in the medium; in water, this is given by the speed of light in vacuum (c) divided by the refractive coefficient of the water n (1.33 at 20◦ C. [13]), as shown in Equation 2. The resulting maximum propagation speed is 2.26 × 108 m/s. vlightU W = c 3.0 × 108 = = 2.26 × 108 m/s n 1.33 (2) Table I compares the propagation speed of RF waves in free space and in fresh water with the propagation speed of acoustic 53 TABLE I: Propagation speed for RF waves (Free Space, Fresh Water) and Acoustic waves (Fresh Water) Propagation Speed (m/s) Free Space (RF) Fresh Water (RF) Acoustic 1 kHz 3.00 × 108 1.00 × 106 1.50 × 103 10 kHz 3.00 × 108 3.16 × 106 1.50 × 103 100 kHz 3.00 × 108 1.00 × 107 1.50 × 103 1 MHz 3.00 × 108 3.16 × 107 1.50 × 103 10 MHz 3.00 × 108 1.00 × 108 1.50 × 103 100 MHz 3.00 × 108 2.26 × 108 1.50 × 103 1 GHz 3.00 × 108 2.26 × 108 1.50 × 103 2.412 GHz 3.00 × 108 2.26 × 108 1.50 × 103 10 GHz 3.00 × 108 2.26 × 108 1.50 × 103 TABLE II: Attenuation of RF waves underwater (Fresh Water) Frequency Attenuation (dB/m) 1 kHz 0.05 10 kHz 0.17 100 kHz 0.55 1 MHz 1.73 waves commonly used for underwater communications. The comparison is performed for frequencies from 1 kHz to 10 GHz. Acoustic waves propagate much slower than RF signals, even at low frequencies [3]. Lower propagation speed of acoustic waves causes higher communications delay. For IEEE 802.11g networks, if Channel 1 is considered (2.412 GHz), the maximum value for the propagation speed (2.26 × 108 ) can be achieved. This value is in the same order of magnitude of c (3.00 × 108 ), which should not have significant changes in the Wi-Fi models for the short distances that can be achieved. This is valid for every channel of IEEE 802.11g networks. Signal power attenuation is another significant difference between over-the-air and underwater communications [6]; underwater communications suffer from higher attenuation. In fresh water, the attenuation in dB/m is given by Equation 3 [8] [12]. Lf resh water = p 0.0173 f × σ dB/m 100 MHz 17.30 1 GHz 54.71 2.412 GHz 84.96 10 GHz 173 1) AP-STA: Figure 1(a) represents the test scenario with only one STA, where the distance d between the STA and the AP is gradually increased until no connectivity exists. The STA is sending information to the access point. Underwater and over-the-air (free space) models are tested, considering distances up to 2 m for underwater and up to 4000 m for over-the air communications. 2) STA-AP-STA: Figure 1(b) shows a scenario with two STAs. Two stations are generating at the same time two different traffic flows to the Access Point. Both over-the-air (free space) and underwater model are tested, considering the distances between each STA and the AP defined for the scenario of Figure 1(a). IEEE 802.11 CSMA/CA is used as the medium access control mechanism. As the distance between the STAs and the AP increases, the hidden node problem (3) Table II shows the attenuation of RF waves in fresh water for different frequencies. We can observe from the table that for IEEE 802.11 Channel 1, the attenuation is 84.96 dB/m. After adding this value to the free space path loss, which is around 40 dB if we consider the distance of 1 m at 2.412 GHz, we end up with a total path loss of almost 125 dB. This shows the reduced range of underwater RF communications. III. 10 MHz 5.47 (a) One STA scenario P ERFORMANCE E VALUATION We evaluate the performance of IEEE 802.11g communications at 2.4 GHz in fresh water. Ns-3, version 3.17, was used for simulation purpose. This section presents the scenarios addressed, the required model changes in the ns-3 and the performance tests. A. Scenarios As a basis for our evaluation scenarios we considered the 802.11 Basic Service Set (BSS), which consists of an access point (AP) and one or more stations (STA) in its radio range, using CSMA/CA as the medium access control mechanism. In our case, we consider two scenarios: 1) BSS formed by one AP and one STA, in order to test point-to-point communications; 2) BSS formed by one AP and two STAs so that we could evaluate point-to-multipoint communications. Each scenario is detailed below and illustrated in Figure 1. 54 (b) Two STA scenario Fig. 1: Tested Scenarios Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 may occur, as the distance between STAs is greater than the carrier sense distance. The hidden node problem may have significant impact on the network performance due to the induced collisions. In this work, the carrier sense threshold CcaMode1Threshold of YansWifiPhy model of ns-3 - was kept with the default level of -99 dBm, 3 dB higher than the -96 dBm of the EnergyDetectionThreshold, which is the minimum energy for the PHY layer to detect the signal. B. ns-3 Propagation Models Adaptation The ns-3 simulator does not include models for RF underwater communications. Therefore, adaptations to the current propagation models were performed to include the lower propagation velocity and higher attenuations associated with underwater communications. The speed attribute of ns3::ConstantSpeedPropagationDelayModel was changed to the formula in Equation (1). Also, the ns3::FriisPropagationLossModel::SetFrequecy was changed in order to reflect the new wavelength for the lower propagation speed. The attenuation coefficient in ns3::FriisPropagationLossModel::DoCalcRxPower was changed according to Equation (3). C. Performance tests The tests aimed at evaluating the performance of underwater IEEE 802.11 communications in terms of throughput, packet loss ratio, delay and jitter. Measurements were performed for different distances to the gateway in order to infer the maximum achievable range with a transmission power of 20 dBm and 0 dBi gain antenna both at the transmitter and receiver nodes. The packet generators in each STA are not synchronized and follow a Poisson arrival process. Each test is repeated 10 times with different seeds and the 95% confidence intervals are calculated using a t-student distribution due to the small number of degrees of freedom. 1) AP-STA scenario - TCP and UDP Throughput: This test aims to measure the maximum achievable throughput from one STA to the AP in underwater and over-the-air scenarios. The ns-3 BulkSendApplication is the packet generator used for sending TCP packets. This application was set to send packets with 1450 bytes each, during 10 seconds, simulating the transfer of a big file. Once the lower layer buffer is full, the application waits until space is free to send more data. The throughput is measured at the AP. The distances considered are from 0.2 m to 2 m in underwater scenario with 0.1 m steps, and from 1 to 4000 m in 500 m steps in the over-theair scenario. This test was repeated using UDP packets with 1470 bytes each with the ns-3 OnOffApplication, which sends a 25 Mbit/s constant bitrate traffic for 10 seconds to infer the maximum bitrate at the receiver (the off state is not used). 2) AP-STA scenario - Delay, Jitter, and Packet Loss: The main goal of this test is to evaluate the impact of the propagation speed difference associated to the underwater RF communications. Results will be used for a further comparison with the acoustic wave approach. The average delay and jitter for each distance of the AP-STA scenario was calculated using the timestamps of 4000 UDP packets sent from STA to AP. Since in ns-3 simulator the nodes’ clock are synchronized, we can use the timestamps of the packets to perform the A Internet do futuro calculations. The packet loss was also calculated according to the number of packets received at the AP. 3) STA-AP-STA scenario - TCP and UDP Throughput: The test with two stations with TCP is a more demanding scenario. Now two STAs are competing for the medium with a TCP data flow. The same BulkSendApplication was used in both STA. The throughput is measured at the AP for each flow in the same set of distances as the AP-STA scenario. Tests were repeated using 1470 byte UDP packets with the OnOffApplication. IV. R ESULTS A. AP-STA scenario - TCP and UDP Throughput Figure 2(a) shows that the maximum TCP throughput from STA to AP in underwater scenario exceeds 20 Mbit/s and is kept almost constant until 1 m. After that, the throughput decreases very quickly until 1.4 m, where the connection is not possible anymore. The maximum achieved UDP throughput is about 25 Mbit/s and follows the same curve of the TCP test, showing a quick throughput decrease from 1 m to 1.3 m. In the over-the-air scenario, represented in Figure 2(b) the throughput is over 20 Mbit/s for TCP traffic and over 24 Mbit/s for UDP traffic at 1 m and it gradually decreases until 4000 m. The difference between TCP and UDP throughput can be explained by the TCP ACK that use the medium and are not accounted as throughput. B. AP-STA scenario - Delay, Jitter and Packet Loss Figure 3(a) and Figure 3(b) show the average delay in underwater and over-the-air scenarios. We can see that the delay follow the same shape in both scenarios and is kept below 1 ms in most cases. Using an acoustic communications solution, with a propagation delay of 0.67 s/km (inverse of the propagation speed 1.50 × 103 - see Table I), the expected delay would be about 1 ms for 1.4 m, showing that for the considered distances, both solutions provide a low delay communication. Jitter is kept under 25 ms in both cases, even at the edge of the coverage, which is acceptable for most applications. Packet loss is also kept under 0.05% in the tests performed, which is neglectable. C. STA-AP-STA scenario - TCP and UDP Throughput The graph of Figure 2(c) shows that both STAs can fairly share the medium in the underwater communication until 1 m, with an average of 6 Mbit/s for each STA and a confidence interval of around 2 Mbit/s. At a distance of 1 m to the access point, the direct distance between the 2 STA exceeds 1.4 m, which means that the STA are not aware of each other - the carrier sense threshold is exceeded. The hidden node problem justifies the sharp decrease in throughput observed from 0.9 m to 1 m, being the combined throughput much lower than the observed in the single station scenario. Therefore, RTS/CTS mechanism should be enabled by default in underwater scenarios, where the hidden node problem is more severe due to the higher attenuation. We can also observe that the TCP window mechanism does not cope well with underwater scenarios; the results show big confidence intervals. In the over-the-air scenario shown in the graph of Figure 2(d), the fairness is kept at all distances. The throughput achieved 55 (a) underwater (b) over-the-air (c) underwater (d) over-the-air (e) underwater (f) over-the-air Fig. 2: Single Station (AP-STA) TCP and UDP throughput tests (a) (b), STA-AP-STA TCP throughput tests (c) (d), STA-AP-STA UDP throughput tests (e) (f) 56 Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 (a) underwater (b) over-the-air Fig. 3: AP-STA delay test for each STA is identical, starting at 6 Mbit/s for 1 m and gradually decreasing until 4000 m. The UDP underwater results of Figure 2(e) show an average throughput above 10 Mbit/s up to 1 m underwater and illustrate the hidden node problem after 1 m; the combined throughput is much lower than in the scenario with one station only. In the over-the-air scenario, depicted in Figure 2(f), we can see that the curves follow the curves of the TCP test of the Figure 2(d), showing that the nodes can fairly share the medium and no abrupt changes in throughput occur. V. C ONCLUSIONS The current need for sensing and monitoring in underwater scenarios requires more and more underwater devices to communicate with each other. In this regard, the use of cables may not be a suitable solution for some scenarios, making the underwater wireless communications a relevant research topic. Although current solutions are based mainly on acoustic waves, RF communications can potentially achieve much higher throughputs for short distances. In the present work, ns-3 was used to conduct a performance evaluation of IEEE 802.11g underwater networks in fresh water. Specific ns-3 models were adapted to the propagation characteristics of underwater environments, where the propagation speed is lower and the attenuation is much higher when compared with overthe-air models. Simulation results show that standard IEEE 802.11g equipment, running at 2.412 GHz, may be able to communicate up to a distance of 1.4 m in fresh water. The achieved throughput is suitable for live video transmission from multiple stations sharing the same medium. However, the hidden node problem is more severe underwater when compared with over-the-air scenarios at the test frequencies. Therefore, RTS/CTS should be enable by default in these kind of networks. Based on the obtained results, as a future work we will develop a prototype for conducting experiments in real underwater environments and validate the simulation results presented A Internet do futuro herein. We also expect to extend this research to scenarios considering lower frequencies for higher range. Finally, we expect to study the changes required at the MAC level to mitigate the hidden node problem and in this way, reduce the number of retransmissions and increase the fairness among connected nodes. ACKNOWLEDGMENT This work is part of the project BEST CASE. Project BEST CASE is co-financed by the North Portugal Regional Operational Programme (ON.2 O Novo Norte), under the National Strategic Reference Framework (NSRF), through the European Regional Development Fund (ERDF). R EFERENCES [1] [2] [3] [4] [5] [6] [7] [8] N. A. Cruz, A. C. Matos, R. M. Almeida, and B. M. Ferreira, “Trimares - a hybrid auv/rov for dam inspection,” in OCEANS 2011, 19-22 September 2011. S. Mitchell, “A sensor network for non-intrusive and efficient leak detection in long pipelines,” in Wireless Days, 10-12 October 2011. X. Che, I. Wells, G. Dickers, P. Kear, and X. Gong, “Re-evaluation of rf electromagnetic communication in underwater sensor networks,” IEEE Communications Magazine, vol. 48, no. 12, pp. 143–151, December 2010. X. Lurton, An Introduction to Underwater Acoustics - Principles and Applications. Springer, 2010. W. Au, P. Nachtigall, and J. Pawloski, “Acoustic effects of the atoc signal (75 hz, 195 db) on dolphins and whales,” Journal of the Acoustical Society of America, vol. 101, pp. 2973–77, May 1977. S. Jiang and S. Georgakopoulos, “Electromagnetic wave propagation into fresh water,” Electromagnetic Analysis and Applications, vol. 3, pp. 261–266, July 2011. R. Somaraju and J. Trumpf, “Frequency, temperature and salinity variation of the permttivity of seawater,” IEEE Transactions on Antennas and Propagation, vol. 54, no. 11, pp. 3441–3448, November 2006. A. Elrashidi, A. Elleithy, M. Albogame, and K. Elleithy, “Underwater wireless sensor netowrk communication using electromagnetic waves at resonance frequency 2.4 ghz,” in 15th Communications and Networking Simulation Symposium (CNS’12), no. 13, 26-29 March 2012. 57 [9] S. Sendra, J. Lloret, J. J. P. C. Rodrigues, and J. M. Aguiar, “Underwater wireless communications in freshwater at 2.4 ghz,” IEEE Communications Letters, vol. 17, no. 9, pp. 1794–1797, September 2013. [10] J. Lloret, S. Sendra, M. Ardid, and J. J. P. C. Rodrigues, “Underwater wireless sensor communications in the 2.4 ghz ism frequency band,” Sensors, vol. 12, no. 4, pp. 4237–4264, March 2012. [11] “ns-3 discrete-event network simulator, version 3.17.” [Online]. Available: www.nsnam.org 58 [12] B. Benson, Y. Li, R. Kastner, and B. Faunce, “Design of a lowcost underwater acoustic modem for short-range sensor networks,” in OCEANS 2010, 24-27 May 2010. [13] S. Mitchell, Electromagnetic Wave Propagation - Theory and Application to Bathymetric Lidar Simulation. University of Colorado at Boulder, December 2008. Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 SILOS - a SImple LOcation Service for Vehicular Ad-hoc Networks André Camões Teresa Vazão INESC-ID/IST Email:[email protected] INESC-ID/IST Email:[email protected] Abstract—Given the constant development in Vehicular Networks, this area has gained increasingly maturity, with new proposals to address the new challenges brought by this type of networks, in particular questions concerning about routing processes, different vehicular environments and high node mobility problematic. Associated with this development is the ever growing commitment by automobile manufacturers to equip their vehicles with communication units, in addition to the already common widespread GPS devices. It is of interest, then, to develop efforts towards the making of networks that take full advantage of the features present in this vehicular environment. In this work will be implemented a location service, that takes advantage of the physical infrastructure on the roads and evaluate its feasability comparing with another location service, used in tradicional mobile ad-hoc networks. Keywords—Vehicular Networks, Location Service, Positionbased Routing, Vehicle Prediction I. I NTRODUCTION The evolution in communication systems lead to an emergent research area - Vehicular Ad-hoc NETworks (VANETs) where the major goal is to improve road safety by extending the communication range and disseminate relevant information to remote areas. A VANET may be considered a sub-set of Mobile Ad-hoc NETworks (MANETs), with specific characteristics associated with node properties, road environment and vehicle’s dynamics. Such networks also has a very specific purpose as intended better experience of drivers and passengers through the provision of vehicle to vehicle communications (V2V) and vehicle to infrastructure (V2I). This new area lead to the development of specific applications, leveraging the low cost of wireless technology that is widespread. Typically these applications aim to increase road safety and transportation efficiency, as well as to reduce the impact of transportation on the environment [1]. These features enable new opportunities that are financially exploited by investors which see in this area a great source of profit and profitability of its infrastructure. It is notorious that effort by consortia which have been created to stimulate the growth of this area, including the automotive industry, the road operators, tolling agencies and other service providers [2]. In spite of the broad range of services that might be offered by VANETs, the specific requirements of the environment create significant challenges that had been addressed by the research community. One of these challenges is related with routing: the difficulties of coping with the network dynamics, where a wide variable density of nodes, moving at very A Internet do futuro different speeds and having different mobility patterns [3] introduces additional difficulties in the process of finding a route to a destination or locating a node. A wide variety of routing protocols have been proposed either topology or position-based, as surveys in [4], [5]. When comparing both approaches, several performance studies have shown that position-based routing are more adequate for VANETs than other solutions [6]. Nevertheless, usually the comparisons rely on the use of an omniscient location service [7], hiding the overhead related with the discovery of the destination node’s location. Unlike topology-based routing, position-based relies on the use of a location service to find the position of the destination node. Different location services have been proposed in the literature, using basically two main approaches: flooding or rendezvous based, as surveyed in [8]. These approaches use different strategies to locate the nodes, but none of them take into account the context. We claim that a simpler and efficient location-service can be designed, if the characteristics of the physical infra-structure is taken into account. In this paper we propose a new location service, the Simple Location Service (SILOS), fully aware of the vehicular environment that can take advantage of this knowledge to offer a better performance. In order to assess if position-based routing outperforms topology-based we compare our solution, coupled with the most well-known position-based protocol, the Greedy Perimeter Stateless Routing (GPSR) with a typical topology-based protocol. In the next section, we describe most relevant works that lead to our proposal. After that, we present our algorithm and the performance studies that have been realised to assess it. At the end, we identify future research opportunities and conclude by summarizing our findings. II. S TATE OF THE A RT A. Location Services Location Services can be divided into two major approaches: Flooding and Rendezvous-based. The most relevant proposals of each one of these groups are described next. 1) Flooding-based location service: Flooding-based location services floods the network whenever it is necessary to find a destination node, using two different operation modes: proactive and reactive. In the proactive mode each destination node periodically floods its location to other nodes in the network, in order to 59 maintain an updated location table in every node. Proactive location service is used by Distance Routing Effect Algorithm for Mobility (DREAM) [9]. In DREAM, each node disseminates its position information with a frequency that depends on its own mobility: nodes moving faster must broadcast their location information more often, whilst nodes that are stopped do not exchange such type of information. In a reactive mode, there is no periodical exchange of control information, since the location discovery is triggered upon request, only when the location of the destination node is unknown. Under this circumstances, the network is flooded with control messages. The Reactive Location Service (RLS) [10] is based on this operation mode. When a node does not have a valid location for a given destination, starts a discovery process by sending a location request message to its neighbourhood. A neighbour node may reply with the location information, if it is available in its location-table, or may trigger a flooding process, if it does not know the required position. In order to reach the destination node directly, the header of the location request message contains the full path that will be used to send back the reply message. 2) Rendezvous-based location service: in the Rendezvousbased location services, all the nodes (potential senders or receivers) in the network agree upon a mapping that associates each node unique identifier to one or more other nodes in the network. To perform such mapping different strategies might be used: quorum-based or hierarchical-based. In the quorum-based approach, each nodes sends the location update message to an explicit defined subset (update quorum) of available nodes and a location query for that node is sent to a potentially different subset (query quorum). In [11], the authors propose a a scalable quorum-based location service based on a localized approach, where multiple location servers replicated on several geographical positions to form a quorum. In quorum, location updates are propagated in south and north direction until they reach the boundaries of the network and location queries are propagated in east and west direct until the network boundaries. The search packet is bound to obtain the required location from a rendezvous node between a pair of column and row quorums. In the hierarchical-based mechanism, location servers are chosen via a hashing function, either in the node identifier space or in the location space. The Grid Location Service (GLS) [12] is built upon a set of location servers distributed throughout the network, with information that is kept up-to-date to cope with nodes’ mobility. This network is formed by an hierarchical grid, with squares of increasing size, represented by orders. The smaller squares represent order-1 squares. Four order-1 squares represents one order-2 square, four order-2 squares represent one order-3 square and so on. Each node as a unique identifier, randomly selected by applying a strong hash function to the node’s unique name. A node chooses its location servers by selecting a set of nodes with IDs close to its own ID. To start sending data to an unknown destination, a location query request is sent through the grid according to the orders and the destination ID, being the answer sent back through the same way. The Hierarchical Location Service (HLS) [13] is somehow 60 similar to GLS. The HLS covers the entire area network via a scheme of hierarchy of regions, where the lowest level is called cell. For each node, one specific cell of each level of the hierarchy is selected, by means of an hash function. As the node changes its position it transmits position updates to these responsible cells. The same hash function is to identify the node and determine the cells that may hold information about its position. The node starting the location discovery process, proceeds to query the nodes in these cells in the order of the hierarchy, until it receives a reply containing the current position of destination node. 3) Comparison and Discussion of the Location Services: As mentioned in previous sections, existing protocols for location services fall into two categories: flooding-based and rendezvous-based. Flooding-based location services offer a simple location solution, which do not scale well with the network size, as stated by [14]. When comparing the proactive and reactive approaches, the first one introduces much overhead with useless information, whilst the second one increases the latency of the location discovery. Therefore, none of them seem adequate for VANETs. The rendezvous-based location services offers also two type of solutions: quorum-based and hashing-based. From a comparative viewpoint, authors in [15] argue that the quorumbased protocols are unsuitable for large size VANET, due to lack of network expandability, caused by the trade-off between the number of quorums and the robustness of the location service. Concerning the hierarchical-based approach, it provides a scalable solution with the network size, but the drawback here is related with the overhead needed to deal with mobility and the increasing probability of unsuccessful location caused by update/lookup failures in highly mobile environments. By taking into account the physical environment context, one can provide a much simpler and yet efficient location service, where Road-Side Units (RSUs) may be used to convey queries and replies, increasing the range and the reliability of the service, while providing low latency to the location discovery process. III. A RCHITECTURE A. Characterization of Vehicular Network Architecture The design of a simple location service would benefit if such service may take into account the properties of the sorrowing environment. Then, the first step is the characterization of the most important VANET scenarios: highway and urban. Usually, in an highway environment there is an advanced communications infrastructure used by tolls and traffic management and surveillance systems. This infrastructure is typically composed of an optical backbone that interconnects different systems, such as video surveillance cameras, sensors, emergency warning and toll systems. Remote communication is usually performed at the entrances and exists, but may also exist in some intermediate locations. In this scenario, deploying RSUs is not a major issue, since equipment is already disposed along the highways [16]. The urban scenario is much more complex, due to the properties of the physical map, environment and mobility patterns. Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 However, one can easily state that, specially in large cities, fleet transportation systems are already equipped with interesting networking facilities, since information of bus schedules is available, near real-time, at the bus stops. Therefore, enhancing these systems with adequate RSUs is feasible. D. Location Service Protocol At the level of protocol that will sustain the location service, it mainly consists in three phases: The RegistryEntry Phase, the PositionQuery Phase and the RemoveEntry Phase. Regarding the vehicles, manufacturers are increasingly making efforts to ensure that vehicles have embedded on-board units (OBU) in order to enable communication among them. In the meanwhile, such communication may be also performed through smartphones or tablets. These RSUs may be integrated into the location service with advantages. In the simplest scenario, they might be used to host local location servers, providing location information to a broad range of vehicles, due to their higher coverage range. In a more advanced scenario, they can provide context information, such as indication of speed limit signals, curves and so on, to improve the accuracy of the movement prediction. B. Location Service Requirements The new location service must be designed to support the following requirements: • Simplicity - the location service must be as simple as possible, in order to allow a fast adaptation to environment dynamics without using a significant amount of resources or realizing complex operations. • Context-aware - the service must take into account the operational characteristics of the environment, such as the existence of RSUs that might be used to extend the coverage area; their relative location regarding the physical topology properties, such as the existence of curves, speed bumps, intersections or other things that might affect the prediction of the vehicles position. • Accuracy - since the position is a key feature for position-based routing protocols an accurate prediction scheme must be used in order to cope with the vehicles mobility. Hence, context and historical information might be used to improve the accuracy of prediction. • Performance - the location service must offers a good performance, meaning that both overhead and latency of location discovery must be small. C. Location Service Overview The SILOS location service is characterized by the use of the physical infrastructure present in the vehicular environment, in order to assist in the process of obtaining the vehicles positions. In this way, vehicles equipped with OBUs are aware of the presence of a physical communications infrastructure, which record their positions whenever they are within range of a RSU. Thus, whenever there is the need to get the position of a destination node, vehicles can simple obtain it by the triggering of a location request to the infrastructure, which will respond with a prediction of the nodes location, based on the context information delegated by the vehicles. In figure 1 and figure 2, it was presented the operation model of the two components (OBU and RSU), enlightening their behavior. A Internet do futuro Fig. 1. OBU Operation Model Fig. 2. RSU Operation Model In the RegistryEntry phase, nodes first announce their presence to its neighborhod with GPSR periodic hello messages with the following fields: Node ID and Position. Whenever a RSU or a OBU receive one of this GPSR hello messages, it updates its Position and Location Tables with this information. If this message has been received by a RSU, additionally a location hello message is sent, enunciating itself and querying about vehicles’s speed. When the vehicle receives this message, it will return a location update message inform about is more updated position and is current speed, as requested. From this moment, this RSU has full knowledge of the node and is ready to receive location requests. The PositionQuery phase will be triggered whenever a vehicle need to know the location of a destination node. For that, first it queries the location service module about its knowledge of the desired position. If it has a valid position, it is returned, otherwise it is triggered a location query to the nearest RSU. When the RSU receives this query, two situations can occur: Or RSU have knowledge about the request position, or not. If it has the vehicle’s position, a location request is sent immediately containing a prediction of its position. For 61 that it will use a combination of the last known position of the vehicle allied to the speed provided in that temporal instant. If the RSU is unaware about the desired position, it is triggered a RSU Query, interrogating the other on this information. The RemoveEntry phase will always take place when the lifetime of the location table entry expires. In case this happens, the whole process of obtaining the position of a destination node is again executed. This is because since there is a great mobility of the nodes, their positions have to be continuously updated. E. Location Service Protocol Example accelerate until they reach 33 m/s, which matches the high-way speed limit. This speed is constant across the simulation. Parameter Simulator SimulationTime Number of Nodes Node Spacing Transmission Rate Transmission OBU Range Transmission RSU Range Packet Size Hello Rate Location Entry LifeTime Position Entry LifeTime Propagation Loss Model TABLE I. In order to illustrate the behaviour of the SILOS Protocol, an application example is presented on figure 3. Value NS-3.12 100s 20 nodes 100 m 8192 bps 300m 1000m 512B 1pkt/s 5s 5s Two Ray Ground + Nakagami S IMULATION PARAMETERS B. Evaluation Metrics In order to evaluate the performance of proposed location service and assess whether the requirements can be guaranteed, it was made a comparison between SILOS and RLS according the establishment of the following evaluation metrics: Location Overhead (1), Location Accuracy (2) and Time to obtain a position (3). These metrics are computed as follows: LocationM essages LocationM essages+RoutingM essages+DataM essages LocationOverhead(%) = (1) PN LocQueries LocationAccuracy(m) = i=1 ( CurrentP ositioni −P redictedP ositioni ) T otalLocationQueries (2) PN LocQueries T imeObtainP osition(ms) = i=1 ( T imeLocationQueryi −T imeLocationReplyi ) T otalLocationQueries (3) Besides that, it was also performed a general comparison between a position-based protocol coupled with a location service and topology-based protocols. Packet Delivery Rate (4), Routing Overhead (5) and Throughput (6) are the metrics that were used to assess the protocols.These metrics are computed as follows: Fig. 3. Diagram of the SILOS Protocol T otalN umberP acketsT x T otalN umberP acketsRx (4) T otalM essages−DataM essages T otalM essages (5) N umberP acketsRx∗DataP acketLenght T otalT imeSimulation (6) P acketDeliveryRate(%) = IV. T ESTS A. Test Scenario RoutingOverhead(%) = In order to validate the concept proposed by SILOS, it was implemented a prototype in the NS-3 simulator. For this purpose, it was extended the GPSR protocol, implemented in [3], stripping it of the omniscient location service and adding to it the SILOS. To test the reliability of this location service, it was set up a test scenario where a client node on the network send data to a server node via a UDP connection between both. The parameters of this connection are specified in table 1. In terms of mobility, a mobility scenario was developed in which nodes representing the RSUs were placed on specific fixed coordinates and the cars were programmed according to a Car Following Model. On this model, all the vehicles depart from a fixed position, one behind the other, leaving a 100 meter gap between them. Regarding the speed, cars starts from 0 m/s and 62 T hroughput(kbps) = C. Results 1) Location Service Overhead: Concerning the location service overhead required for the location nodes process, two distinctive behaviours are identifiable between SILOS and RLS. As can be observed in figure 4, RLS, in a situation of reduced multi-hop transmission, achieves a low overhead due to the smaller number of messages exchanged through the network. For a situation in which the number of hops increases, this value starts to rise almost exponentially, congesting the Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 lost during multi-hop forwarding, required for the message to travel between the transmitter-receiver pair. In SILOS, this message does not has to travel the nodes between this pair, but instead, just reach the RSU incumbent for the service. This RSU will respond directly in single hop given the range from RSUs antennas, improving the overall position obtaining time. Fig. 4. Location Service Overhead versus Distance network. This congestion is harmful to the routing information, lowering the packet’s delivery. Regarding SILOS, given the procedure of registration and discovery is always the same, regardless the number of nodes in the network and the distance between them, there is a constant overhead rate. This enables higher rates of package delivery in the most demanding situations, especially when the destination node is relatively far. 2) Location Accuracy: Regarding the precision of the node location, figure 5 shows an elevated amount of errors associated with the RLS in relation to SILOS. This happens due to the way RLS discovers the node’s position, reaching out to the neighbour nodes when the emitting node does not have the required position and repeating this same process through out all the neighbour nodes until the position is known. This modus operandi makes RLS naturally weaker when the destination node is further from the emitting node. The SILOS delegates the discovery process to the infrastructure, benefiting from its global node information. For this level of precision, the prediction scheme is also fundamental. Fig. 5. Fig. 6. Time to obtain a position versus Distance 4) Packet Delivery Rate: In terms of Packet Delivery Rate, a more wider comparison between AODV and GPSR coupled various location services was taken under consideration. As a result it is possible to analyse the impact that the location service leads in the subsequent packet routing. Based on figure 7, the first conclusion that can be taken is the lack of viability of the topology-based protocols in dynamic multi-hop scenarios, in contrast with position-based protocols. Another conclusion that can be taken is the impact that the choice of location service has in the subsequent routing of packets. Based on the behaviour of RLS, the higher the distance to the destination, more broadcast queries are made, making the whole process of obtaining position very difficult; this clearly has an impact on the routing process. SILOS coupled with GPSR is able to provide an acceptable delivery rate, almost reaching the limit that is provided by GPSR coupled with GOD Location Service. Location Accuracy versus Distance 3) Time to obtain position: Figure 6 show us a comparison about the time it takes to obtain a position, between SILOS and RLS protocol. Both were tested, with the common routing protocol GPSR. As can be seen, RLS has a progressive increase of the time it takes to obtain a position as the distance increases, while SILOS remains constant regardless of distance. This progressive increase is explained by the time A Internet do futuro Fig. 7. Packet Delivery Rate vs Distance 5) Routing Overhead: In what concerns the Routing Overhead metrics, it contemplates both routing and location service overhead. In this way, it is verifiable the real overhead needed for the position-based protocols operationalization. As can be observed in figure 8, the GPSR with SILOS coupled overhead 63 values are constant because the routing overhead is the same regardless of distance. This consists in the periodic Hello send-outs and the location’s overhead is, almost fully, the required overhead for the location management. The AODV protocol’s overhead is much higher given the unawareness of the destination’s node position. Due to this situation, there are control packets which circulate the network even if the destination node is in front or behind itself. This is harmful to the overhead values and, consequently, to the bandwidth usage. The result of these tests concluded that indeed there are real gains with this infrastructure exploitation and position-based protocols coupled with a specific location service to vehicular environment have performances definitely more favorable than traditional topology-based protocols. As future work it is intended to evaluate some more meaningful metrics, to attest the viability of the proposed location service, such as Location Query Sucess Rate and its Robustness to high levels of network load. It is also intent to transpose this service for the urban environment. ACKNOWLEDGMENT This work was partially supported by national funds through FCT Fundação para a Ciência e a Tecnologia, under project PEst-OE/EEI/LA0021/2013. R EFERENCES [1] [2] Fig. 8. [3] Routing Overhead vs Distance 6) Throughput: Even though the Packet Delivery Rate’s metrics express in a clear way the level of packet delivery, it matters to figure out through a bandwidth point of view, how much the volume of packets transfer per second is. As it can be seen in figure 9, as the distance increases, the AODV protocol’s throughput diminishes due to the overhead routing values but, mostly, to a destination vehicle agnostic forwarding. The GPSR with SILOS coupled offers a reasonable overhead value, a more efficient forwarding which contributes to a higher throughput value. [4] [5] [6] [7] [8] [9] [10] [11] [12] Fig. 9. Throughput vs Distance V. [13] C ONCLUSION In this work, it was proceeded the development of a location service that takes advantage of the communications infrastructure present in the vehicular environment in order to achieve an efficient localization of vehicles position and thus help to increase the performance of routing vehicle. In order to assess this location service, it was implemented a prototype in NS-3 simulator and then comparison tests were performed with the intention of attest its feasibility. 64 [14] [15] [16] Toor, Y.; Muhlethaler, P.; Laouiti, A., ”Vehicle Ad Hoc networks: applications and related technical issues,” Communications Surveys Tutorials, IEEE , vol.10, no.3, pp.74,88, Third Quarter 2008 Hartenstein, H.; Laberteaux, K.P., ”A tutorial survey on vehicular ad hoc networks,” Communications Magazine, IEEE , vol.46, no.6, pp.164,171, June 2008 Fonseca, António and Camões, André and Vazão, Teresa, Geographical routing implementation in NS3, Proceedings of the Fifth International Conference on Simulation Tools and Techniques, 2012 Lee Kevin C. and Lee, Uichin and Gerla, Mario, Survey of Routing Protocols in Vehicular Ad Hoc Networks, 2010 Jagadeesh Kakarla, S Siva Sathya, B Govinda Laxmi, Ramesh Babu B.: A Survey on Routing Protocols and its issues in VANET, 2011 Fonseca, A., Vazao, T.: Applicability of position-based routing for vanet in highways and urban environment. Journal of Networks and Computer Applications (2012) B. Karp and H. T. Kung. GPSR: Greedy Perimeter Stateless Routing for Wireless Networks. In Proceedings of the Sixth Annual ACM/IEEE International Conference on Mobile Computing and Networking (Mobicom 2000), Boston, MA, August 2000 Ayaida, Marwane and Fouchal, Hacène and Afilal, Lissan and Ghamridoudane, Yacine, A Comparison of Reactive , Grid and Hierarchical Location-based Services for VANETs, 2012 Basagni, Stefano and Chlamtac, Imrich and Syrotiuk, Violet R. and Woodward, Barry A. A Distance Routing Effect Algorithm for Mobility (DREAM) 1998 M. Kasemann, H. Hartenstein, and M. Mauve, A reactive location service for mobile ad hoc networks, Department of Computer Science University of Mannheim Tech Rep TR02014, 2002 Dandan Liu and Stojmenovic, I. and Xiaohua Jia, Mobile Adhoc and Sensor Systems (MASS), 2006 IEEE International Conference on, A Scalable Quorum Based Location Service in Ad Hoc and Sensor Networks, 2006 Li, J., Jannoti, J., De Couto, D.S.J., Karger, D.R., Morris, R.: A scalable location service for geografic ad hoc routing. Proceedings of the 6th annual internacional conference on Mobile computing and networking MobiCom ’00 pp.120-130 (2000) Kieß, Wolfgang and Fü, Holger and Widmer, Jörg and Mauve, Martin, Hierarchical location service for mobile ad-hoc networks, SIGMOBILE Mob. Comput. Commun. Rev., October 2004 Das, Saumiua M and Hu, Y Charlie and Lafayette, West, Performance Comparison of Scalable Location Services for Geographic Ad Hoc Routing, 2005 Woo, H., Lee, M.: Vehicle Location Service Scheme using the Vehicle Trajectory for VANETS ppp.1256-1261(2012) Jacqueline Jardim, Teresa Vazão, Jorge Lopes: Simulação do uso de redes veiculares em situações de emergência numa auto-estrada Portuguesa, CRC 2012 Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 Solução Aberta para uma Rede de Sondas de QoS na RCTS Pedro Queirós M. João Nicolau Alexandre Santos Centro Algoritmi Univ. Minho, Portugal [email protected] Centro Algoritmi & DSI Univ. Minho, Portugal [email protected] Centro Algoritmi & DI Univ. Minho, Portugal [email protected] Resumo—A RCTS tem em operação, desde há vários anos, um conjunto de sondas do tipo appliance destinadas a aferir de forma contínua a qualidade da rede, tanto em IPv4 como IPv6. Normalmente, pelo facto de serem appliances, consequentemente “fechadas”, cria-se uma dependêndia de hardware e software. Apesar das appliances possuírem algumas características únicas ao nível de hardware, podem desenvolver-se soluções abertas (open source) equiparadas. Na realidade, vários sistemas de aferição de desempenho de redes, desenvolvidos em open source, tanto na GÉANT (rede académica europeia) como na Internet2 (rede académica americana), atingiram uma notoriedade que permite considerá-los como alternativas credíveis para as atuais sondas, se se provar a sua maturidade e estabilidade. Neste trabalho apresenta-se o desenvolvimento e teste de uma especificação de uma nova sonda para a RCTS, baseada em soluções open source. Index Terms—Sondas de QoS, Sincronização Temporal, One Way Delay, RCTS I. I NTRODUÇÃO O aumento da largura de banda possibilitou o surgimento de novos serviços, como o video-on-demand, e de uma nova cultura - always-online - onde o modelo best-effort da Internet já não se adequa. É necessário agora oferecer aos utilizadores uma experiência de utilização melhorada, que permita a utilização destes novos serviços na sua plenitude. Para isso, é também necessário medir constantemente a qualidade de serviço (em inglês: QoS) da rede. É do interesse de um fornecedor de serviço de rede ter conhecimento dos problemas muito antes dos seus clientes os reportarem, tornando-se vital uma monitorização constante das ligações, de forma a detetar atempadamente avarias na rede, bem como conter os estragos que estas possam causar na mesma. Utilizando técnicas de monitorização do tráfego na rede, é possível estimar o comportamento da rede, saber se existem estrangulamentos na mesma, e mesmo detetar ataques a esta. II. E STADO DA ARTE Para efetuar esta monitorização, utilizam-se normalmente dois métodos de medição do tráfego: medição ativa e medição passiva. A. Medição ativa A medição ativa consiste na introdução de tráfego na rede que permita a medição fim-a-fim de parâmetros como o atraso, A Internet do futuro a perda de pacotes, a variação do atraso entre pacotes sucessivos de dados (jitter), a largura de banda disponível, entre outros. As medições ativas são feitas recorrendo a software específico, o qual permite construir pacotes que são transmitidos através da rede e posteriormente permitem a análise e cálculo de alguns dos parâmetros referidos anteriormente. Uma destas ferramentas, e provavelmente a mais conhecida, é a ferramenta ping [1]. Fazendo uso do protocolo ICMP, é enviada uma mensagem echo request e o echo reply permite calcular o tempo RTT (Round Trip Time) e também informação sobre a perda de pacotes. Outra ferramenta que utiliza o protocolo ICMP é o traceroute [2]. Esta ferramenta permite determinar o caminho percorrido por uma mensagem na rede e o tempo de ida e volta para cada salto até ao destino. Ainda hoje, mais de duas décadas após o seu aparecimento, estas continuam a ser das ferramentas mais usadas para diagnosticar falhas de rede. Em 1997 foi criado um grupo de trabalho na IETF, denominado por IPPM [3], que se propôs a desenvolver métricas padrão para avaliar a qualidade, desempenho e confiança dos serviços de transporte de dados da Internet, em termos quantitativos. Este grupo de trabalho lançou documentos que especificam métricas e procedimentos para as determinar, como one-way delay ou one-way loss, obtidas a partir do OWAMP [4]. Estas medições efetuadas só num sentido permitem ao operador perceber em que sentido da ligação é que se encontra um problema, mas necessitam que os terminais de rede se encontrem sincronizados com alta precisão, p.ex. através de fontes externas de relógio como o GPS ou CDMA. Foram encontradas três ferramentas que implementam o protocolo OWAMP: OWAMP [5] (tem o mesmo nome do protocolo), desenvolvida pela Internet2, QoSMet [6] (é baseada num draft do protocolo) e J-OWAMP [7], uma implementação em Java desenvolvida pelo Instituto de Telecomunicações de Aveiro. Em [8], os autores desenvolveram uma solução em hardware que gera informação de sincronização de relógio extremamente precisa para os pacotes de teste OWAMP, tanto no emissor como no receptor. Outras métricas especificadas pelo IPPM dizem respeito à capacidade de uma ligação (largura de banda disponível quando não existe tráfego), largura de banda disponível (quando existe tráfego concorrente) e capacidade de transferência em bloco (bulk transfer capacity). Iperf [9], nuttcp 65 [10] e thrulay [11] são algumas das ferramentas que permitem calcular a largura de banda de uma ligação, usando UDP ou TCP, bem como outras métricas, tal como o atraso e a perda de pacotes. B. Medição passiva A medição passiva, por sua vez, não interfere com o tráfego na rede, consistindo apenas na análise do mesmo. O tráfego é capturado numa localização específica da rede, sendo armazenado e posteriormente processado, de forma a elaborar estatísticas sobre o mesmo. Esta análise do tráfego pode ser feita com vários níveis de granularidade, visto que os pacotes podem ser capturados ao nível da ligação (camada 2 da pilha OSI). A medição passiva pode ainda ser distinguida, conforme se utilizem métodos baseados em hardware ou software. Os métodos baseados em software passam, na sua maioria, pela modificação dos sistemas operativos e drivers dos dispositivos de rede, de forma a possibilitar a captura do tráfego. As ferramentas mais referidas na literatura para efetuar a captura do tráfego e respetiva análise são o tcpdump/libpcap, tcptrace e Wireshark. Em [12], os autores referem algumas limitações na utilização deste tipo de soluções em hardware convencional para analisar tráfego em ligações de alto débito (10 Gbps ou mais). Os métodos baseados em hardware são desenhados para possibilitar a réplica dos dados que atravessam o canal de transmissão, de forma a duplicar os mesmos, permitindo assim que o tráfego seja dividido e processado de igual forma pela interface de rede e pelo hardware específico de monitorização. As diferenças entre os métodos baseados em software e hardware refletem-se essencialmente em custo e precisão dos resultados. Os dispositivos de rede comuns não são desenhados com a monitorização dos pacotes em mente, pelo que não manifestam bom desempenho quando é necessário efetuar a captura dos pacotes. Foi com esta limitação em mente que os autores em [13] desenvolveram hardware específico para a captura de tráfego em redes de alta velocidade. Desde então, as placas de captura e processamento de tráfego Endace DAG [14] são hoje usadas em muitos projetos que requerem alta fiabilidade e sincronismo dos dados, garantindo 100% de captura de tráfego, mesmo em redes de alto débito (10 Gbps). No entanto, mesmo utilizando métodos baseados em hardware específico para a captura do tráfego, é necessário garantir o armazenamento e processamento do tráfego capturado. Se esta captura for feita em troços de alto débito - 10 Gbps, p.ex. - a uma velocidade constante, podem obter-se 4.5 Terabytes de dados em apenas uma hora de captura (10 Gbps × 3600 segundos ' 4.5 Terabytes). Além do armazenamento, o processamento desta quantidade de dados também não é trivial. O processamento pode ser feito em tempo real, se for crítico, ou mais tarde, permitindo a correlação do tráfego capturado dentro de uma determinada janela de tempo. Os autores em [15] sugerem um sistema com uma arquitetura que distribui as várias fases dos processos de captura e 66 análise do tráfego, executando-as paralelamente em hardware convencional, tornando-se assim escalável e possibilitando a captura de tráfego em interfaces de alto débito. A filtragem de pacotes permite observar apenas uma parte do tráfego, recorrendo a regras que permitem filtrar o tipo de tráfego a recolher (p.ex., todos os pacotes TCP), limitando o tamanho da informação a analisar ao considerar apenas os primeiros N bytes de dados do pacote, ignorando os restantes. Um fluxo é uma sequência de pacotes que são trocados entre duas entidades, identificado recorrendo a uma chave, formada por alguns campos dos pacotes, como por exemplo o par <IP orig., IP dest.> ou <porta#orig., porta#dest.>, ou o <protocolo#> de transporte. Assim, todos os pacotes com uma chave idêntica são considerados como pertencentes ao mesmo fluxo, simplificando a análise. Neste contexto, a Cisco desenvolvou o NetFlow [16], que foi a norma de-facto durante muitos anos, antes do IETF organizar um grupo de trabalho denominado de IPFIX, que lançou uma norma de igual nomenclatura (IPFIX) [17], definindo como a informação de um fluxo IP deve ser formatada e transferida. A amostragem dos pacotes passa por recolher apenas alguns dos pacotes que chegam à interface de captura - por exemplo, recolher 5 em cada 100 pacotes. Existem vários métodos de amostragem, tais como aleatório simples, sistemático e estratificado, que são descritos e comparados em detalhe com novos métodos de amostragem em [18]. C. Projetos internacionais Enquanto algumas das ferramentas descritas anteriormente foram derivadas de projetos de métricas de QoS, outras foram diretamente utilizadas em alguns projetos internacionais, que são brevemente referidos de seguida. Surveyor [19] Este projeto visava a medição do desempenho das ligações de uma WAN, utilizando métricas bem definidas. Neste projeto foram usadas as métricas de one-way delay e perda de pacotes para caracterizar as ligações entre as organizações participantes. Em 1999 este projeto contava com medições em 41 locais, maioritariamente Universidades e Centros I&D. RIPE Network Coordination Centre Test Traffic Measurement [20] Um projeto semelhante ao Surveyor, destinado a todos aqueles que desejam testar as suas ligações com outros clientes deste serviço. Disponibiliza um serviço comercial que é gerido pelo RIPE NCC. RIPE Network Coordination Centre Atlas [21] Este trata-se de outro projeto do RIPE NCC, que utiliza sondas próprias (construídas pelo RIPE NCC) para efetuar medições. Estas sondas podem ser compradas e instaladas por qualquer operador, funcionando como um dispositivo plug-and-play. O objetivo desta rede de sondas é elaborar vários mapas a nível mundial (latência, conetividade, etc.) para avaliar o estado da rede que liga as sondas. Depois de devidamente instaladas, estas sondas fazem vários testes com a rede de sondas ativas no projeto Atlas (em Agosto de 2012 existiam já 1750 sondas espalhadas por todo o Mundo): testes de traceroute, DNS, round trip time, entre outros. Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 perfSonar [22] perfSonar é uma arquitetura orientada aos serviços que permite a monitorização do desempenho das redes, facilitando a resolução de problemas em ligações fim a fim que atravessam várias redes. Especifica um conjunto de serviços e define um protocolo de comunicação entre os vários serviços, permitindo a qualquer pessoa interessada implementar os mesmos. Esta ferramenta pode ser vista como middleware, permitindo que várias implementações de serviços diferentes comuniquem entre si, alargando assim o espectro de medições que podem ser efetuadas entre os utilizadores desta arquitetura. O perfSonar foi desenvolvido através de uma colaboração internacional entre a Internet2, ESnet, RNP e a GÉANT. PingER [23] Utilizando a ferramenta ping, este projeto da IEPM visa testar a conetividade das ligações da Internet. Começando por se focar na comunidade HEP, atualmente conta com medições para mais de 700 locais em mais de 160 países e disponibiliza os dados das suas medições online. Etomic [24] Este projeto pretende, à semelhança de outros, criar uma infraestrutura de medições ativas capaz de operar com uma resolução temporal elevada (aproximadamente 10 ns) e globalmente sincronizada. O objetivo destas medições é fornecer uma visão geral de alta resolução das rápidas mudanças do tráfego na rede. Entre os participantes deste projeto encontram-se várias universidades e institutos de investigação europeus. Archipelago [25] A CAIDA [26] trata-se de uma colaboração entre organizações comerciais, governamentais e de investigação, com o objetivo de promover uma maior cooperação no desenvolvimento e manutenção de uma infraestrutura escalável e robusta para a Internet. Muitas das ferramentas desenvolvidas em projetos de investigação são depois usadas em projetos da CAIDA em larga escala. Um desses projetos é o Archipelago (ou Ark), uma infraestrutura de medições ativas que pretende reduzir o esforço necessário ao desenvolvimento e implementação de medições em larga escala. das appliance QoSMetrics (pré-existentes) usando uma instalação personalizada, com sistema operativo CentOS, de baixa complexidade e pouco exigente em termos de recursos. Definese depois uma arquitetura genérica, que pode utilizar tanto a appliance QoSMetrics como hardware genérico, integrando outras ferramentas Open Source, nomeadamente o perfSonar, para estabelecer uma rede de sondas e o respetivo sistema de monitorização de QoS. A. Enquadramento e Análise de Cenários de Reutilização Desde 2006 que a FCCN possui um parque de sondas na RCTS, o qual permite o controlo e medição da qualidade de serviço que a FCCN oferece aos utilizadores desta rede nomeadamente Universidades, Laboratórios de Investigação e Institutos Politécnicos. O parque de sondas é constituído por duas sondas principais, localizadas nos nós centrais da rede (Lisboa e Porto), de maior capacidade, e por várias sondas de menor capacidade localizadas nos pontos de interligação da RCTS com as instituições académicas. No total, 26 sondas espalhadas pelos maiores pólos de Ensino Superior em Portugal - apresentadas na figura 1 - efetuam medições que permitem avaliar o estado das ligações da rede [27]. D. Sumário Apesar de se referirem algumas das ferramentas mais usadas, seria impossível analisar, ou sequer descrever, todas as ferramentas desenvolvidas para a medição, ativa ou passiva, de parâmetros de QoS. A CAIDA fornece uma lista extensa, agrupando as ferramentas conforme a sua função na medição dos parâmetros. Existe atualmente um vasto leque de opções para efetuar medições passivas e ativas. A investigação nesta área é muito rica e produz com frequência novos dados e direções que permitem a evolução das métricas e das ferramentas utilizadas para as obter. III. R EDE DE S ONDAS : S OLUÇÕES O PEN S OURCE Nesta secção apresenta-se a metodologia e resultado dos testes laboratoriais efetuados para determinar a viabilidade da utilização de soluções abertas (Open Source) para uma rede de sondas de QoS na RCTS. Inicialmente, pretendeu-se aferir a viabilidade operacional de reutilização do hardware A Internet do futuro Figura 1: Mapa da distribuição das sondas O hardware da maioria das sondas é composto por chassi de rack, tamanho 1U, com processador a 1.6 GHz, 512 MB RAM. Possui ainda um adaptador de cartões CF para IDE, produto da QoSMetrics, que utiliza um cartão Compact Flash de 2 GB como dispositivo de armazenamento primário. Durante este estudo, foram realizadas com sucesso novas instalações de software aberto, quer ao nível de SO, quer a nível aplicacional, nas sondas / appliance QoSMetrics préexistentes. Foi demonstrado que o hardware atualmente à disposição da FCCN poderia ser reutilizado, por forma a instalar uma nova solução de medição de parâmetros de qualidade de serviço. Foram no entanto identificadas e documentadas limitações relacionadas com a utilização de cartões CF (sem 67 suporte para DMA) como dispositivo de armazenamento primário; recomendar-se-ia a inclusão de um disco SSD e ainda a expansão da memória RAM para o máximo suportado pela placa mãe, 2 GB. Como boa caraterística do hardware da appliance convirá referir a existência de uma boa solução proprietária para a sincronização temporal. Quando lidamos com medições que exigem uma precisão ao nível do nanosegundo ou do microsegundo, não podemos ignorar os fatores de atraso presentes nos métodos de sincronização temporal através de uma rede de pacotes. É um facto que a sincronização temporal absoluta sobre uma rede de pacotes é impossível: existem atrasos não determinísticos que irão sempre influenciar a sincronização. O importante é estar consciente destas limitações e utilizar os métodos que melhor se adequam ao nível de exatidão que pretendemos obter com a sincronização e que são, ao mesmo tempo, economicamente eficientes. Uma exatidão fiável na ordem dos microsegundos requer hardware com um propósito específico, que geralmente inclui uma relação explícita entre o hardware que produz um evento e o relógio que gera o carimbo temporal associado a esse evento. No levantamento de plataformas de metrologia em rede feito em [28], os autores analisam os métodos aqui apresentados e constatam que a maioria das soluções existentes, ou são precisas e eficientes, mas caras e não escaláveis, ou são imprecisas e com fraco desempenho, mas de fácil implementação. Assim, concluem, projetar uma infraestrutura para permitir a medição da qualidade de serviço de uma rede, que seja precisa, pouco dispendiosa e fácil de implementar, utilizando as soluções atualmente existentes, permanece um desafio. Neste contexto, este trabalho pretende explorar uma solução de arquitetura aberta, tanto a nível de hardware como de software, capaz de dar resposta satisfatória à rede de sondas para o sistema de monitorização de QoS da rede académica. B. Arquitetura para Solução Aberta Para a definição de uma arquitetura de medição de parâmetros de QoS, consideraram-se duas premisas: a topologia da rede e a solução atualmente em utilização, ambas referidas em III-A. As várias instituições servidas pela RCTS encontramse, na sua maioria, ligadas diretamente a dois nós principais: Lisboa e Porto. Assim sendo, justifica-se a realização de medições entre os nós principais e a periferia da rede para avaliar o estado das ligações. Esta é também a filosofia empregue pela solução atual, onde as sondas periféricas fazem medições com as sondas de Lisboa e Porto para aferir os parâmetros de QoS das ligações. perfSONAR: Monitorização e software aberto O perfSONAR é uma framework de monitorização desenhada para ambientes de monitorização multi-domínio, que permite a descoberta, cálculo, armazenamento e distribuição de métricas de medição de QoS. O seu desenvolvimento surge de um esforço internacional de cooperação entre várias entidades, nomeadamente a GÉANT [29], ESnet [30], Internet2 [31] e 68 RNP [32]. O objetivo do perfSONAR é diminuir as restrições administrativas existentes no acesso aos dados das medições entre vários domínios, facilitar a resolução de problemas de desempenho fim-a-fim em caminhos de rede que atravessam vários domínios, facilitar a gestão de redes e permitir às aplicações adaptar o seu comportamento ao estado da rede. O desenvolvimento do perfSONAR é da responsabilidade de um consórcio de organizações que procura desenvolver um middleware que seja interoperável entre várias redes e permita uma análise do desempenho intra e inter redes, e é constituído por: • Um protocolo, que assume diferentes tipos de serviços e define uma sintaxe e semântica padrão através dos quais eles comunicam, e permite diferentes implementações de um serviço. Este protocolo é baseado em mensagens SOAP XML e foi desenvolvido pelo OGF NM-WG [33]. • Várias ferramentas (implementações em software dos vários serviços), desenvolvidas por diversos parceiros, que tentam implementar uma framework interoperável de monitorização de desempenho. A arquitetura do perfSONAR é apresentada na Figura 2. Figura 2: Arquitetura de 3 camadas do perfSONAR [22] Os serviços do perfSONAR podem correr em múltiplos domínios, usando mensagens SOAP (transportadas em HTTP), tanto para descrever os dados das medições, como para troca de informação entre serviços. 1) Componentes: O perfSONAR, de natureza open-source e com uma arquitetura modular, permite aos administradores da rede implementar, combinar e personalizar várias ferramentas de acordo com as suas necessidades individuais. Para facilitar a integração das ferramentas, o perfSONAR oferece serviços individuais [34], responsáveis por funcionalidades específicas, como a recolha de dados e a visualização dos mesmos. 2) Pontos de medição: Os pontos de medição (ou MP) recolhem e publicam a informação obtida através das ferramentas de medição. As medições são geralmente efetuadas localmente, a pedido de um cliente, ou automaticamente, com intervalos programados. É também no ponto de medição que é feita a conversão entre o formato de dados que a ferramenta de medição disponibiliza e o formato de dados do perfSONAR. 3) Arquivos de medição: Os arquivos de medição (ou MA) armazenam o resultado das medições numa base de dados (SQL, por exemplo) ou num sistema de ficheiros. Estes dados Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 podem ser lidos pelos clientes, processados ou visualizados. Os arquivos de medição também suportam a agregação de dados. 4) Serviços de pesquisa: Cada domínio que implementa o perfSONAR deve possuir um serviço de pesquisa (ou LS). Todos os serviços disponibilizados dentro de um domínio devem ser registados no serviço de pesquisa, permitindo que os serviços de pesquisa de diferentes domínios possam comunicar entre si e partilhar informação. Assim, um utilizador apenas precisa de saber o URL do serviço de pesquisa para saber que tipo de serviços é disponibilizado por um dado domínio. 5) Ferramentas de visualização: As ferramentas de visualização permitem recolher os dados armazenados nos arquivos de medição e tratar a informação recolhida para a apresentar ao utilizador. O carácter open-source destas ferramentas permite adaptar a apresentação dos dados à necessidade de grupos específicos de utilizadores. 6) Implementações: Existem atualmente duas implementações principais que se comprometeram a interoperar: perfSONAR MDM [35], desenvolvida pelo GÉANT, e perfSONARPS [36], desenvolvida pela Internet2 e ESnet. Ambas utilizam o protocolo aberto desenvolvido pelo OGF para trocar dados, são baseadas em serviços web e partilham os mesmos propósitos: flexibilidade, escalabilidade, abertura e descentralização. Diferem no processo de desenvolvimento, no ciclo de vida dos produtos, na interação com os seus utilizadores e no modelo de implementação e distribuição. O perfSONAR MDM foi desenvolvido como um sistema de monitorização multi-domínio, pensado para servir os parceiros do GÉANT e destinado a fornecer um serviço federado, centralmente monitorizado e coordenado, com suporte total do GÉANT. O perfSONAR-PS tem um modelo de suporte distribuído, com o objetivo de proliferar o número de nós disponíveis na comunidade. Ambas as implementações disponibilizam um GUI de configuração e visualização dos resultados das medições baseado numa interface web. O perfSONAR MDM disponibiliza ainda um cliente baseado em Java para aceder aos dados das medições, designado por perfSONAR-UI [37]. De entre os utilizadores conhecidos destas duas implementações1 , destacam-se os membros das redes LHC OPN [38] e LHC ONE [39]. 7) Ferramentas de medição: As implementações do perfSONAR incluem uma gama de ferramentas que permitem fazer medições e monitorização ao nível da camada IP e acima, desde ferramentas de medição do atraso e da largura de banda disponível, até ferramentas que permitem fazer medições passivas. 8) Medição da taxa de transferência: A medição da taxa de transferência é feita recorrendo ao BWCTL [40] no caso do perfSONAR-PS e ao BWCTL MP, um ponto de medição baseado no BWCTL, no caso do perfSONAR MDM. O BWCTL é de um encapsulador de ferramentas já conhecidas, como o iperf, thrulay ou o nuttcp. 1 Existe ainda uma terceira implementação, denominada de perfSONARNC, desenvolvida pela UNINETT, A Internet do futuro 9) Medição do atraso: As medições do atraso baseiam-se no HADES [34] para o perfSONAR MDM e no OWAMP para o perfSONAR-PS. O HADES permite obter informações sobre o one-way delay [41], delay jitter [42], packet loss rate [43] e rotas alternativas. O OWAMP é uma ferramenta desenvolvida pela Internet2, que implementa o protocolo do mesmo nome. Esta ferramenta é usada para determinar o one-way delay entre dois pontos da rede. 10) Medições passivas: Ferramentas do perfSONAR baseadas na monitorização passiva da rede foram recentemente desenvolvidas (PacketLoss) ou encontram-se em desenvolvimento (ABW2) [34]. Alguns parâmetros e características da rede apenas podem ser obtidos recorrendo a medições passivas, que não influenciam o tráfego da rede. IV. S OLUÇÃO A BERTA : T ESTES E R ESULTADOS Atendendo ao estado de desenvolvimento da implementação, à alargada comunidade de utilizadores, ao feedback existente por parte da FCCN e à estrutura de suporte, optouse pelo perfSONAR-PS, versão 3.2.2, correndo sobre CentOS 5.8. Esta é portanto uma solução aberta a nível de software (aplicacional e SO) e foi implementada e testada com sucesso para a implementação de sondas de QoS em hardware da appliance QoSMetrics, em hardware genérico e também máquinas virtuais. A. Métricas de qualidade de serviço Para avaliar a qualidade de serviço das ligações da RCTS, a FCCN tem utilizado a solução proprietária da QoSMetrics para calcular algumas métricas, incluídas também num relatório mensal disponibilizado às instituições ligadas à RCTS. As métricas coletadas e que se pretendem continuar a obter são as seguintes: • one-way delay mínimo, médio e máximo • jitter mínimo, médio e máximo • pacotes enviados, recebidos, perdidos e duplicados Estas métricas são sempre calculadas de forma independente para os dois sentidos da ligação. Com a adoção desta nova solução baseada no perfSONAR, pretendeu determinar-se estas métricas (tanto em IPv4, como em IPv6) e manter a compatibilidade com o sistema automático de produção de relatórios que a FCCN tem em operação [27], baseado em Cacti [44] e HP Openview Service Desk (entretanto descontinuado pela HP). B. Estabilidade da referência temporal Para determinar as métricas referidas em IV-A, o OWAMP, usado pelo perfSONAR-PS, requer que os pontos entre os quais são feitas as medições estejam corretamente sincronizados com o NTP. Isto é necessário para assegurar que os relógios das máquinas envolvidas nas medições estejam sincronizados, de forma a reduzir o erro dos carimbos temporais atribuídos aos pacotes de medição. Para configurar o NTP, os autores do OWAMP sugerem que sejam configurados como referências temporais pelo menos quatro servidores. Contrariamente, em [45], os autores sugerem que, para manter 69 a estabilidade do NTP, se deve configurar apenas um servidor (próximo e de baixo stratum) como referência temporal. Quando se utiliza apenas um servidor como referência, a variação destes parâmetros torna-se menor, mas em caso de falha desta única referência, o comportamento do NTP irá variar drasticamente [45] [46], produzindo carimbos temporais com flutuações acentuadas que irão interferir nas medições do one-way delay. C. Testes e Resultados A FCCN possui quatro servidores NTP stratum 1, tendo sido utilizados os do Porto e Lisboa, devido à distância dos mesmos às sondas de teste, localizadas na UMinho e em Lisboa. Inicialmente, para facilitar a operacionalização, a sonda da UMinho foi colocada na rede interna da Universidade. As medições iniciais, configuradas com os valores por omissão (enviar 10 pacotes por segundo, de 20 bytes cada), mostraram valores mínimos próximos daqueles obtidos com a solução proprietária da QoSMetrics, mas valores máximos com picos de dezenas e centenas de milisegundos. Mesmo os valores mínimos continham algumas flutuações, e ocasionalmente alguns picos. Estes resultados eram semelhantes nas duas direções, e estão demonstrados nas Figuras 3 e 4. Figura 3: Sonda QoS; valores obtidos para OWD (BragaLisboa) mínimo Figura 4: Sonda QoS; valores obtidos para OWD (BragaLisboa) máximo Após análise cuidada e comparação direta com os resultados das sondas em produção, foi possível detetar algumas das flutuações nos resultados das medições diretamente correlacionadas com alterações da temperatura ambiente da sonda. 70 As alterações da temperatura ambiente influenciam as propriedades do cristal do relógio presente na máquina, criando variações na frequência de oscilação, com influência direta na sincronização NTP e, consequentemente, nas medições do OWAMP, tal como assinalado na Figura 5. Figura 5: Influência da temperatura na determinação de OWD mínimo entre a sonda da UMinho e Lisboa Alterações no ambiente de testes No sentido de melhorar a precisão dos resultados, tentando minimizar a influência de fatores externos, realizaram-se as seguintes alterações: • sonda na UMinho: instalou-se um disco SSD e mais 512 Mbytes de RAM; • a sonda foi realocada no datacenter da UMinho e ligada diretamente à rede do backbone RCTS. Com este ambiente de teste, foi possível efetuar testes na rede RCTS entre Braga e Lisboa, mimetizando, em parte, a configuração da solução proprietária atualmente existente e em utilização pela FCCN para medição dos parâmetros de QoS na rede da RCTS. Os testes de one-way delay foram agora configurados de forma a que fosse enviado um pacote de 1500 bytes a cada segundo. Com esta alteração no ambiente de teste, as medições passaram a apresentar valores mínimos de one-way delay estáveis, como se pode ver na Figura 6. No entanto, os valores máximos continuaram a apresentar picos de várias dezenas de milisegundos, representados na Figura 7. Foi analisada a carga nas sondas, na rede, e a configuração do NTP, mas não foi encontrada nenhuma justificação para os picos apresentados. Após discussão desta ocorrência com o suporte do perfSONAR-PS, a explicação mais provável para os picos apresentados nas medições é de que estes são decorrentes dos atrasos presentes na pilha do software. Em alguns casos, as variações dos atrasos no processo de receber um pacote, gerar uma interrupção, e colocar um carimbo temporal, poderão introduzir falsos atrasos nos pacotes de medição. A carga do CPU das sondas ronda os 10% (estando idle 90% do tempo). Foi dada prioridade aos processos do ntpd e do owampd, através do comando nice, mas tal não produziu diferenças notáveis nos valores obtidos com as medições, como seria de esperar dada a carga das máquinas. O tráfego total gerado pelas sondas ronda os 100 kbps, permitindo concluir que o Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 Figura 6: Amostra do one-way delay mínimo entre a sonda de Lisboa e Braga Figura 7: Amostra do one-way delay máximo entre a sonda de Lisboa e Braga processo de monitorização não tem impacto significativo na operação normal da rede. O NTP das sondas reporta erros de relógio estimados num intervalo de 2 a 35 microsegundos, aproximadamente. No entanto, o próprio NTP estima o one-way delay entre o cliente e o servidor NTP como sendo metade do RTT. Comparando com a solução da QoSMetrics, as medições do perfSONAR-PS apresentam variações entre os 0.2 e os 0.4 milisegundos. Não se considerou a reconfiguração de hardware com placas adicionais, nem a inclusão de outros dispositivos de sincronização externa (como p.ex. GPS) e testaram-se apenas soluções e protocolos abertos (não se considerou nunca a hipótese de usar protocolos de sincronização proprietários, como p.ex. o QTP). Existe portanto espaço para aprofundar a investigação ao nível dos mecanismos de sincronização de relógio que utilizem hardware genérico. Importa referir que os picos apresentados são resultado de apenas um ou dois pacotes com um atraso visivelmente superior à média, num total de 60 pacotes em cada sessão de um minuto. Usando métodos estatísticos, estes outliers podem ser facilmente descartados. V. C ONCLUSÃO Apresentou-se uma arquitetura para a implementação de uma rede de sondas de QoS baseada apenas em soluções Open Source, utilizando unicamente hardware genérico, sem dispositivos (internos ou externos) adicionais. Esta arquitetura foi implementada e testada sobre a infraestrutura de backbone da RCTS e os resultados obtidos foram muito satisfatórios. A Internet do futuro O perfSONAR mostrou ser uma framework consolidada, com duas grandes implementações distintas, mas que, essencialmente, têm o mesmo objetivo. No caso específico do perfSONAR-PS, o suporte oferecido pela comunidade (incluindo programadores e utilizadores) é rápido e eficiente, sendo possível obter respostas a dúvidas e sugestões de instalação para casos específicos. Embora não apresentado neste trabalho, verificou-se ainda que a possibilidade de aceder à base de dados onde são guardados os dados de medição do OWAMP permite uma fácil integração com outras ferramentas (especificamente, foi realizada a integração com a ferramenta de criação de relatórios RCTS). A dependência do OWAMP em relação ao NTP também influencia os resultados das medições, sendo desejável que no futuro seja possível suportar outros métodos de sincronização temporal. No caso da utilização do NTP, é necessário proceder à sua correta configuração (não utilizar a que vem instalada por definição). Idealmente, o NTP deve ser sempre utilizado em conjunto com uma referência externa de relógio precisa e fiável, como um recetor GPS. O preço destes recetores não é, hoje em dia, muito alto, mas, ainda assim, as questões logísticas implícitas na instalação destes continuam a ser um grande entrave à sua utilização. Seria interessante poder realizar testes com outras configurações de hardware e software, para poder aferir com exatidão a causa dos picos nos valores máximos do atraso, e comparar os valores obtidos com diferentes configurações. Infelizmente, por restrições logísticas e temporais, tal não foi possível. VI. AGRADECIMENTOS Este trabalho foi parcialmente financiado por Fundos FEDER, através do Programa Operacional Fatores de Competitividade - COMPETE - e por Fundos Nacionais através da FCT - Fundação para a Ciência e Tecnologia, através do Projecto: FCOMP-01-0124-FEDER-022674. Agradece-se ainda a cooperação da FCCN / FCT na facilitação do acesso à RCTS e aos meios computacionais necessários para a prossecução deste trabalho. Um agradecimento muito especial a João Nuno Ferreira, Carlos Friaças, Emanuel Massano e Ana Pinto, todos da FCCN, por toda a ótima colaboração prestada. R EFERÊNCIAS [1] The Story of the PING program. [Online]. Available: http://ftp.arl.mil/~mike/ping.html (accessed July 2012) [2] Traceroute for Linux. [Online]. Available: http:// traceroute.sourceforge.net (accessed July 2012) [3] IP Performance Metrics. [Online]. Available: http://datatracker.ietf.org/wg/ippm/charter/ (accessed July 2012) [4] A One-way Active Measurement Protocol (OWAMP). [Online]. Available: http://tools.ietf.org/html/rfc4656 (accessed July 2012) 71 [5] An implementation of the One-Way Active Measurement Protocol. [Online]. Available: http://www.internet2.edu/ performance/owamp/index.html (accessed July 2012) [6] QoSMet - Quality of Service Metrology. [Online]. Available: http://fabien.michaut.free.fr/qosmet/ (accessed July 2012) [7] H. Veiga, T. Pinho, J. Oliveira, R. Valadas, P. Salvador, A. Nogueira, “Active traffic monitoring for heterogeneous environments”, 4th International Conference on Networking, ICN’05, April 17-21, 2005 - Reunion Island. [8] Zhang Shu and Katsushi Kobayashi, “HOTS: An OWAMP-Compliant Hardware Packet Timestamper”, 2005 [9] iperf. [Online]. Available: http://sourceforge.net/projects/ iperf/ (accessed July 2012) [10] nuttcp. [Online]. Available: http://www.lcp.nrl.navy.mil/ nuttcp/stable/nuttcp.html (accessed July 2012) [11] thrulay. [Online]. Available: http://sourceforge.net/ projects/thrulay/ (accessed July 2012) [12] S. Ubik, P. Zejdl, “Passive monitoring of 10Gb/s lines with pc hardware”, 2008 [13] John Cleary, Stephen Donnelly, Ian Graham, Anthony McGregor, Murray Pearson, “Design Principles for Accurate Passive Measurement”, 2000 [14] ENDACE DAG CARDS. [Online]. Available: http://www.endace.com/ endace-dag-high-speed-packet-capture-cards.html (accessed July 2012) [15] Se-Hee Han, Myung-Sup Kim, Hong-Taek Ju, James Won-Ki Hong, “The Architecture of NG-MON: a Passive Network Monitoring System for High-Speed IP Networks”, 2002 [16] Cisco IOS Flexible NetFlow Technology White Paper. [Online]. Available: http://www.cisco.com/en/US/prod/ collateral/iosswrel/ps6537/ps6555/ps6601/ps6965/prod_ white_paper0900aecd804be1cc.html (accessed July 2012) [17] Specification of the IP Flow Information Export (IPFIX) Protocol for the Exchange of IP Traffic Flow Information. [Online]. Available: http://tools.ietf.org/html/rfc5101 (accessed July 2012) [18] Nick Duffield, “Sampling for Passive Internet Measurement: A Review”, 2004 [19] Surveyor. [Online]. Available: http://www.isoc.org/ inet99/proceedings/4h/4h_2.htm#surveyor (accessed July 2012) [20] RIPE Test Traffic Measurement Service. [Online]. Available: http://www.ripe.net/data-tools/stats/ttm/ test-traffic-measurement-service (accessed July 2012) [21] RIPE Atlas [Online]. Available: https://atlas.ripe.net (accessed August 2012) [22] perfSonar. [Online]. Available: http://www.perfsonar.net (accessed July 2012) [23] PingER. [Online]. Available: http://www-iepm.slac. stanford.edu/pinger/ (accessed July 2012) [24] Etomic. [Online]. Available: http://www.etomic.org/ (ac- 72 cessed July 2012) [25] Archipelago Measurement Infrastructure. [Online]. Available: http://www.caida.org/projects/ark/ (accessed July 2012) [26] CAIDA. [Online]. Available: http://www.caida.org/ (accessed July 2012) [27] Emanuel Massano, “SONAR - Supervisão da RCTS”, 2008 [28] Anne-Cécile Orgerie, P. Gonçalves, M. Imbert, J. Ridoux, D. Veitch, “Survey of network metrology platforms”, 2012 [29] GÉANT. [Online]. Available: http://www.geant.net/ (accessed June 2013) [30] ESnet. [Online]. Available: http://www.es.net/ (accessed June 2013) [31] Internet2. [Online]. Available: http://www.internet2.edu/ (accessed June 2013) [32] RNP. [Online]. Available: http://www.rnp.br/ (accessed June 2013) [33] Open Grid Forum’s Network Measurement Working Group. [Online]. Available: http://nmwg.internet2.edu (accessed June 2013) [34] D. Vicinanza, “Intercontinental Multi-Domain Monitoring for LHC with perfSONAR”, 2012 [35] perfSONAR Multi Domain Monitoring. [Online]. Available: https://forge.geant.net/forge/display/perfsonar/Home (accessed June 2013) [36] perfSONAR Perl Services. [Online]. Available: http:// psps.perfsonar.net/ (accessed June 2013) [37] perfSONAR User Interface. [Online]. Available: http://www.perfsonar.net/perfsonarUI.html (accessed June 2013) [38] LHC Optical Private Network. [Online]. Available: http: //lhcopn.web.cern.ch/lhcopn/ (accessed June 2013) [39] LHC Open Network Environment. [Online]. Available: http://lhcone.net/ (accessed June 2013) [40] BWCTL. [Online]. Available: http://www.internet2.edu/ performance/bwctl/ (accessed June 2013) [41] One-way Delay. [Online]. Available: http://tools.ietf.org/ html/rfc2679 (accessed June 2013) [42] Jitter Delay. [Online]. Available: http://tools.ietf.org/ html/rfc3393 (accessed June 2013) [43] Packet loss. [Online]. Available: http://tools.ietf.org/html/ rfc2680 (accessed June 2013) [44] Cacti. [Online]. Available: http://www.cacti.net/ (accessed June 2013) [45] Wolfgang John, Sven Tafvelin, Tomas Olovsson, “Passive internet measurement: Overview and guidelines based on experiences”, 2010 [46] OWAMP Details. [Online]. Available: http://www. internet2.edu/performance/owamp/details.html#NTP (accessed June 2013) Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 Using Web10G for Service and Network Diversity Exploitation and Failure Recovery Filipe Carvalho and José Legatheaux Martins CITI and DI-FCT, Universidade Nova de Lisboa, Quinta da Torre, 2829-516 Portugal Emai: [email protected], [email protected] Abstract—Diversity and redundancy are key properties at the heart of the Internet performance and reliability. However, traditional network and transport interfaces prevent upper layers from directly exploiting them. In order to allow an immediate, ready-to-use, exploitation of diversity and redundancy, we introduced a way of supporting multi-path and multi-server logical connections among a client and a service. The proposal is based on a programming pattern and a run-time support implemented using the Web10G Linux kernel patch, which allows user level access to the kernel TCP variables and performance measures characterizing each TCP connection. The resulting framework allows applications to explore network and service diversity for increased performance and fault recovery experiments. I. I NTRODUCTION Diversity and redundancy are key properties at the heart of the Internet performance and reliability. Despite this, in general, the interfaces of the different layers (e.g., IP, TCP, HTTP, ...) prevent upper layers from directly exploiting these properties of the different Internet subsystems. At the network level, choosing alternate paths could be a way to get different qualities of service or using different providers, for example, via client devices with several interfaces and IP addresses, or services connected to different providers and also accessible via different IP addresses. The identity / location separation approaches [1] (e.g., LISP[2]), proposed to enhance the Internet routing and addressing scalability, also call for the use of identity addresses that may be mapped to different locator IP addresses. Some authors, e.g., [3], proposed the generalization of the visibility of addressing alternatives to enhance diversity access. At the transport level, multiple local interfaces and remote IP addresses are already being considered: Multi-Path TCP [4] is a new version of the traditional TCP protocol that leverages the simultaneous usage of different IP addresses for performance enhancement, and SCTP [5], [6] is a transport protocol that also supports the usage of several interfaces and remote IP addresses to support multi-homing and roaming. At higher layers, most critical or popular applications (e.g., DNS, content-distribution, mass communication and collaboration, social networks, . . . ) are implemented using service replication. Many of these systems use automatic redirection of a client to the closest (or preferred) replica. In general, this redirection only takes place at service connection time, using modified DNS servers or HTTP redirections. A Internet do futuro Traditional solutions to support diversity and redundancy are based on control planes completely under control of providers, fully opaque to end-systems: routing control planes and content-distribution networks subsystems used to loadbalance clients. Nevertheless, there are also many success stories were end-systems take control of a significant part of the control plane. The most successful one is the congestion control system of the Internet, mostly based on the endsystems implementation of TCP which dynamically adapts the emission rate to the status of the network. Other prominent examples are the P2P content distribution systems and more recently the distribution of video content by the so-called Dynamic Adaptive Streaming over HTTP (DASH) [7], [8]. We think that there is some room for more experiments allowing applications to explore network and service diversity for increased performance and fault recovery. For this purpose, and by hypothesis, we consider that network and service alternatives may be accessible using different IP addresses (local and remote). Also, instead of considering new transport protocols, we want to experiment and assess the alternative of only using old ones, namely TCP. Finally, we do not want application code to deal with the complexities of having to directly deal with fault detection and network performance comparisons. Since TCP philosophy and implementation rely on an considerable set of performance statistics, we want to base these experiments in those pre-existing performance indicators. To this end, we propose a way of exploring multi-path or multi-server TCP-based logical connections among a client and a server, or a service, via an application-level programming framework, to ease network and service diversity exploitation and fault recovery. This functionality is made available through a Java object that supports a logical connection among a client and a server or a service. This object, we dub NChannelSocket, can exploit alternative pairs of IP addresses to connect a client to a server or a service. Used in conjunction with an easy to understand programming pattern, it facilitates the development of client / server TCP interactions exploiting path diversity between a client and a server, or among a client and several different but idempotent-equivalent servers. The goal is to provide a reasonable general-purpose programming pattern and a supporting framework that can be integrated in client / server applications to leverage interface, network and service diversity. In what concerns performance 73 evaluation and comparison, it relies on parameter estimation that TCP already performs at kernel level. These kernel statistics are ready available in Linux through the Web10G Linux kernel patch [9] and may be easily made available in other operating systems in the future. In the next two sections we present the proposal and its implementation. A certain number of experiments and the analysis of their results are the object of section IV. Related work is discussed in section V. A discussion of the proposal and future work are both treated in section VI. The paper ends by presenting some preliminary conclusions of this experiment in section VII. II. P ROGRAMMING PATTERN AND RUN T IME S UPPORT The goal of this work is to develop and evaluate a programming pattern [10] and a monitoring runtime support, both geared towards building distributed request / reply applications that explore network and service diversity. As already stated, diversity must be available by means of several (local and remote) IP addresses and we also want to leverage TCP statistics already being collected by the kernel. The proposal is built around a kind of logical client / server connection, mainly equivalent to a new type of socket, called NChannelSocket. At initialization, this object receives several local and remote IP addresses, and establishes a TCP connection among the client and a server using one pair of the available addresses.1 Each different remote IP address should represent the same server or a server representing the same replicated service. When several servers are used, it is assumed that the service has an interface based on idempotent operations and that the different servers are semantically equivalent. This property is inherent to many services interfaces supported atop of HTTP, a popular solution these days. During the client / server interaction, if the current TCP connection fails, or a more performant one seems to be available, an alternative TCP connection can be used. Thus, a NChannelSocket represents a logical multi-path connection to a server or a logical multi-path connection to a set of semantically equivalent servers representing the same service. Typical applications of the proposed mechanisms are long client / server interactions, built around a TCP-based request / reply mechanism, to transfer, in several interactions, medium to large volumes of data (e.g., a large file, a stream or a list of related files). The code sketch below is an example of the utilization of the proposed mechanism. NChannelSocket ncs = new NChannelSocket(IP addresses, port, ... ); do { try { Socket s = ncs.getCurrentSocket(); // one or more request / reply interactions writeRequest ( s, request ) ; reply = readReply ( s ) ; processReply ( reply ) ; if( ! ncs.bestSocketBeingUsed() ) { ncs.swithConnection() ; } 1 In fact each connection is characterized also by the ports it uses, however we omit that each IP address has a port associated and, for simplicity, consider the TCP connection only characterized by the local and remote IP addresses. 74 } catch(Network or Server Exception e) { ncs.swithConnection(); } } while( ! done ); The programming style subjacent to the programming pattern corresponds to a series of requests / replies, at the end of each one the client has the choice to follow, or not, a possible connection switching recommendation. See the example in the listing above. To begin with, a NChannelSocket is instantiated. Then a loop performs a series of request / reply transactions each using the currently available connection. At the end of each transaction (or several of them) a call to method bestSocketBeingUsed() (optionally) asks if a better connection seems to be available and if it is the case, a call to the switchConnection() method asks the switch to that better connection. An exception also forces switching the connection (the exception catch and treatment). For the sake of simplicity we do not show the treatment of all other exceptions the object NChannelSocket can rise (e.g., no connections available) or other completion conditions. The NChannelSocket supporting runtime includes mechanisms to compute the past performance of the TCP connections made (we called it ”history”) as well as the performance of the connection currently in use, and also to probe the other available alternatives. Based on these statistics, a recommendation is made available to the application when the bestSocketBeingUsed() method is called.2 The initialization phase as well as the swithConnection() method also relies on these statistics to automatically choose and open an alternative connection. Connection switching is always controlled by the application programmer since it only takes place when it explicitly asks the switch. Therefore, the application programmer has full control over when a potential change of the used server can take place. This may be important for the application and its application logic. Naturally, the application designer also has to define what is a transaction between the client and the service. In most situations where a NChannelSocket presents a suitable solution, the transaction is equivalent to a get of a block or a chunk (of a file, or a stream, . . . ). The size of that block, or set of blocks, must be chosen since it may impact the performance as well as the periodicity with which the method bestSocketBeingUsed() is called. In general, between each two calls of the method the connection in use should have the opportunity to attain a steady state (the implementation refrains from recommending a too early switch). Moreover, for short interactions with a server, it may be unreasonable to switch the connection since this introduces at least one extra round-trip time. In what concerns communications fault recovery, as we will discuss in section IV, the time taken to recover from a broken connection is dependent of the value of the timeout used to limit the time taken to read or write using the current socket. As we rely on TCP, this timeout value can also be controlled 2 In case of a positive switching recommendation, the method also informs the caller of the nature of the recommendation, see the next section. Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 and set by the programmer using the TCP sockets provided methods. III. I MPLEMENTATION We implemented the NChannelSocket abstraction as a Java object encapsulating the runtime framework interface. It relies on a kernel patch (Web10g [9], version 3.0, configured on a Linux system with kernel version 3.0.16) that allows access to kernel-level TCP performance statistics, normally hidden from end users, through a kernel Java Native Interface (JNI) that we also developed. These statistics include Round Trip Time (RTT), Retransmission Timeout (RTO), packets received / sent / lost, transfer performance figures, time passed since the connection started and many other attributes. As previously discussed, we provide support for connection switching from a worst or broken connection to a more viable one. To support this switching we rely on: performance collection, probing and exceptions. Performance collection is continuously performed using the Web10g interface. In every 250 ms the JNI method is called and a new set of measurements is taken out from the kernel. We maintain three working sets of collected data at any given moment. Last set, which represents the last measurements taken; Recent set, which is the aggregated values of the last ten measurements collected; Past set, which represents the updated history of all connections made between any pair of addresses. The later set is saved to a file every 5 seconds (i.e., every 20 samples since 250ms * 20 = 5 seconds). If the values collected are not mean values (e.g., congestion window size) the Recent and Past sets are always updated to show the most recent mean values. If the values are mean values by themselves (e.g., SmothedRTT) the Recent set displays the latest values (they are already a mean for this connection), but in the Past set the values are saved with a weighted mean (e.g., this connection RTT has less weight than all the past RTTs made with this pair of addresses). Probing is done periodically by opening, without any data transfer, the alternative connections and measuring the RTT of the probed path / server. If another better connection seems to be available (based of the measured RTT), that will be reported when a call to bestSocketBeingUsed() runtime method is made. Exceptions rise up to the application when a critical error occurs within the connection, either by a timeout or by a link failure. In this case the use of a new pair of addresses is mandatory and a new connection should be started. Another alternative to switch a connection is when its performance has decayed significantly in correspondence to its past, e.g., an increase in packet loss or a suddenly decrease in throughput. All the switching logic is intertwined in the method bestSocketBeingUsed() that, at each call, checks if the connection is working properly (no loss in performance) and, if not, uses the information from the probing to make a recommendation. Even if the current connection seems to continue to behave properly, inspired from popular P2P systems, we have also implemented a pseudo-random decision method that risks A Internet do futuro changing connections with low probability if we cannot infer for sure if there is a better path, or with higher probability, if it clearly seems that better alternatives are available. The core of the bestSocketBeingUsed() method logic is the following: if (tooRecentlyInvoked() || ! grownUpConnection(currentConn) || ! availableAlternatives(currentConn)) { return 0; // do not switch recommendation } if (senderDependent(currentConn) && isWindowInRecoveryState(currentConn)) { if (highSenderPacketLoss(currentConn,pastCon) || receiverThroughputDecayed(currentConn,pastConn)) { return 1; // recommend switch type 1 } } if ( receiverDependent(currentConn) && senderThroughputDecayed(currentConn,pastConn)) { return 2; // recommend switch type 2 } if (isThereABetterPath(currentConn)) switchProb = HIGHPROB; else switchProb = SMALLPROB; double random = Math.random(); if(random < switchProb){ return 3; // recommend switch type 3 } // otherwise, do not switch recommendation return 0; The currentConn and pastConn parameters represent the current connection in use and it’s past in the Past set, respectively. The method returns a “no change” suggestion if it has been called recently, the current connection is not grown up (i.e., has, in the current implementation, less then 100 RTTs or less then 5 seconds) or there are no available alternatives. If the client is sending more data than receiving (thus the connection is sender dependent), we check if the congestion window is in the recovery state, i.e. if the size is equal or less then 2 ∗ MSS (Maximum Segment Size), and if the sender packet loss (i.e., the client packet loss) or the receiver throughput (i.e., the throughput from the other side of the connection) has recently decayed. Otherwise, if the client is receiving more data than sending (thus the connection is receiver dependent), we check if the sender throughput (i.e., the throughput from the other side of the connection) has recently decayed. Both return types 1 and 2 signals the application that the performance has decreased. Return type 3 is used to signal the application to take a risk, with higher or lower probability, as explained before. When the method switchConnection() is called, the best alternative is selected using Smoothed RTT as the main criterion if past performance is unknown. After the creation of a NChannelSocket, the first connection is chosen randomly or, if history data is available, based on the past performance. In summary, NChannelSockets provide: connection initialization; connection history collection where the past performance of all TCP connections made are saved in a file; probing of connections; choice of initial pair of addresses, through connection history if available, or randomly choosing one pair of the available addresses to start with; and choice of posterior pairs of addresses when the current connection compares unfavorably, or if it broke. Together, these functionalities are used 75 TABLE II JAVA S OCKET, NChannelSocket AND WGet TRANSFERS COMPARISON IN SECONDS . TABLE I C HARACTERISTICS OF THE LINKS USED IN THE FIRST TEST SCENARIO . Link Capacity RTT Packet loss Worst-path Middle-path Best-path 700 Kbps 900 Kbps 1000 Kbps 15 ms 15 ms 5 ms 1% 1% 1% Mean Java Socket NChannelSocket WGet 165.59 ± 0.42 165.83 ± 0.62 165.30 ± 0.82 TABLE III O NE PATH NChannelSocket TRANSFERS COMPARISON IN SECONDS . to test and recommend the switching between connections to maintain the transfer active and as performant as possible. Mean Worst-path Middle-path Best-path 245.41 ± 2.40 195.47 ± 3.36 165.84 ± 0.63 IV. E VALUATION To evaluate the proposal we developed an application that downloads a file, via a sequence of block transfers using HTTP Partial Requests and uses the programming pattern and framework presented above. Fig. 1. First test scenario The first test scenario was configured as follows: a client with one local address and three remote servers with three different addresses (three virtual machines in one server rack) but replicating the same 20 M Byte object. Client and servers are connected to the same switch as shown in Figure 1. With the help of Dummynet [11] we simulated three different paths to the servers (see Table I). The three paths had no significant performance differences since we intended to test the ability of the framework to compare their characteristics and elect the best one. Due to the emulated link capacities chosen, the test scenario is not fully representative of the variations in path performance in the real Internet. This was done to make the test scenario simple. The links that we emulated have characteristics that are no longer common place in the Internet given that, for example, higher throughputs are becoming a more common scenario in home broadband access settings. Our choice rests on the fact that we wanted to emulate a long file transfer, and instead of using files with large sizes, again because of the time resources available, we opted for a smaller file, with slower transfer rates. Control tests were used to devise how the different parameters influenced the switching recommendation mechanism and the total transfer time. For example, we adopted a block size of 512 K Bytes, since increasing it does not decreased the total transfer time, while when decreasing it, performance suffered. With the best-path, this block is transferred in 4 seconds, what 76 corresponds to a not very tight control of the performance but allows better TCP performance estimation. We will return to this point below. We also concluded that using the pattern with one only available path corresponds to almost the same performance we could get with a traditional Java Socket or even while using an optimized Linux utility like wget (allways using the same path), as can be seen in Table II. Thus, with this block size, the pattern and the framework do not penalize a file transfer in the case where no alternatives are available. We also computed the time needed to transfer the file over each of the available paths, i.e., when one only path was available to the NChannelSocket, see Table III. Control tests, as well as all tests presented below were repeated 20 times, giving us a good mean and standard deviation values to support our conclusions. All the tests presented from now on were done using simultaneously all the three paths. In test 1 no previous history was available, while test 2 was made taking in consideration the measured past performance of the paths. These tests were useful to see if our framework starting from a random path eventually changes to the fastest available one (in test 1), or if starting from the better one (test 2) it stayed with that connection, thus testing positively the advantage of using information based on the past performance of the paths. Results for tests 1 and 2 can be seen in Table IV. In test 1 the client always switched to the best path while during test 2 the client always stayed with the best path. Test 3 was made to check if when the best connection available (the one being used) fails persistently, the framework can chose another one, and how long it takes to switch to an alternate path. Test 4 checks if the framework can detect a decrease in the performance of the connection being used, how long it takes to detect it, and how long it takes to switch to another, better, connection. Results for tests 3 and 4 can be seen in Tables V and VI. The “switch at” column represents time after the best-path failure or performance update. These two tests took noticeably more time to transfer the file, because faults and performance problems were introduced. After 20 seconds of starting the transfer, we completely blocked the path in use (Test 3) or decreased it’s performance significantly to 100 Kbps (Test 4). With test 3, when a failure is detected, after a TCP enforced timeout of 1000 milli seconds, the framework immediately provides an alternate connection. In this case, the available paths were worst than the one Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 TABLE IV T ESTS 1 ( NO HISTORY ) AND 2 ( WITH HISTORY ) - T OTAL TRANSFER TIME IN SECONDS . Mean No History With History 171.04 ± 1.36 167.68 ± 0.86 TABLE V T EST 3 ( PERSISTENT FAILURE ) - T OTAL TRANSFER TIME IN SECONDS . Persistent Failure Mean Total time Switch at 202.52 ± 14.55 1.27 ± 0.34 opened over the wireless link. Results can be seen in Table VII. The first column shows the results when only the wireless link was used, the second when only the wired link was used and the third shows a scenario where the transfer started over the wired interface and after the fault of that interface switched to the wireless one. Since the switch to the alternative interface is quick, only the block being transferred while the fault arose was lost, what corresponds in average to a very short period. Recall that the block size is 512 K Bytes and the file had 150 M Bytes, thus each block was transferred in less than 0.5 seconds. The end user would notice almost no difference. TABLE VI T EST 4 ( DECREASE IN PERFORMANCE ) SECONDS . T EST 5 ( WIRED Decrease in performance Mean Total time Switch at 355.65 ± 51.34 178.38 ± 62.36 that failed, hence the increasing in transfer time. Figure 2 represents the throughput in our application for the channel being used at a given moment. This chart shows clearly that, after 20 seconds, the throughput for the best-path dropped to zero, i.e. a link failure occurred. After that failure another path was chosen (middle-path). After a while even another path was chosen (this time the worst-path). This path was chosen because our system relies heavily on Smoothed RTT when no previous transfer performance is available, and the worst-path, despite having worst throughput, was with better measurements of Smoothed RTT at the time. Fig. 2. Test 3 - Transfer Example Test 4, on the other hand, takes longer, since the parameters used to detect when a path decreases its performance revealed hard to fine tune. In fact, in some of the 20 performed tests, the framework took longer to react. Now we turn to a different scenario intended to test a home client with two interfaces (wired and wireless) accessing to a remote server, over the public Internet, to download a file of 150 MBytes. The client started by using the path over the wired link. After 15 seconds this interface was shutdown, an exception arose after the timeout and a new connection was A Internet do futuro TABLE VII - T OTAL TRANSFER TIME IN SECONDS . - T OTAL TRANSFER TIME IN Mean LINK FAILURE ) Wireless (s) Wired (s) Link failure (s) 119.47 ± 2.24 115.93 ± 0.57 117.05 ± 0.34 Although more varied tests with different link characteristics could be performed, the presented ones are significant to highlight the functionality and behavior of our proposed framework. V. R ELATED W ORK Our proposal adheres to a simple evolutionary approach by using several TCP connections and alternatively switching among them. Other evolutionary approaches are possible. Multi-Path TCP [4] leverages path diversity using all paths simultaneously, however it cannot support server diversity and requires the adoption of a new version of TCP. SCTP also supports the usage of several local and remote IP addresses and there is a very active research on leveraging this feature to support transparent handover and multihoming [6], since the original standard only used it to support backup paths. Both transport protocols do not support the notion of a connection between a client and a multi-server service, maintain diversity hidden from application programmers and represent a significant departure from current stacks, something we would like to avoid. Leveraging diversity has been a recent trend that most P2P systems are engaged in. Many techniques have been developed to allow peers to choose, among the several available alternatives, the ones that are most effective. This optimization can be solved by the peers alone or with the help of some extra information, made available directly or indirectly by (network or content) providers. Paper [12] presents a survey of the issues and the solutions. We introduced a general purpose framework to make available at application level the information TCP already collects at the host kernel level. Our search for more generality and application neutrality, as well as the leveraging of the kernel TCP implementation are different, but can be extended if providers provided hints on the quality of their paths. Most critical Internet services (e.g., DNS, CDNs), applications and subsystems use replication techniques to replicate data and to redirect clients to the best available replica. 77 We propose an approach that empowers clients to choose themselves the most suitable server. Using local different addresses closely related to different interfaces is now common place. Visibility of different server IP addresses is not yet widespread. However, the so called ”Identity / Location Separation” approaches are based on the usage of identity addresses, mapped to different location addresses [3], [2]. Location addresses are closely related to network properties and also denote paths, an idea that the work described in [13] took to its limits. An upper level service (e.g., DNS or a LISP mapping server) can provide the extra indirection between a server or a service and the several addresses that may be used to access them. NChannelSockets builds on this eventual address diversity to explore network diversity. VI. D ISCUSSION AND FUTURE WORK Our approach provides the same abstractions and mechanisms to be used in two different scenarios: edge exploitation of network diversity and application exploitation of service diversity. Concrete experiments made to explore both scenarios should be performed. Perhaps, these experiments will recommend the separation of the programming patterns (and the support mechanisms) to be used in these two different contexts. Service diversity exploitation requires more application engagement. For example, it would be challenging to use the proposed approach to implement a video streaming client capable of automatically adapt the video resolution to the available network performance, as current dynamic adaptable streaming over HTTP clients do, but also simultaneously exploiting alternative servers delivering the same video, to find the best one. This kind of application requires a close control of the switching moments and of the transactions between clients and servers as our proposal allows. Nowadays, adaptable streaming is being scaled to millions of costumers, by simultaneously leveraging several content distribution networks. A provider side control plane is already used to direct clients to a specific data center. This control plane could be improved with client side options. Multi-Path TCP and SCTP are both well suited to leverage transparent network diversity exploitation in a stable client server relationship. In this scenario, it seems that both protocols are better alternatives than our proposal. However, they prevent any control of the application over the criteria used to choose paths. Our framework can be easily extended to support other criteria to rank connections. For example, connectivity price can be an extra parameter to be considered when deciding to switch connections. Our proposal should also be extended in this direction. Multi-Path TCP or SCTP seem less suited to support that kind of experiments. Finally, TCP interprets missed acknowledges as originated by congestion episodes, not by path failures, and waits a long period before declaring a TCP connection as broken. 78 Therefore, we use user level timeouts to detect path failures. If we used very short timeouts (e.g., 100 milliseconds), we may wrongly interpret these exceptions as path faults, and introduce path switching instability. Thus, better ways to distinguish path failures from path congestion are needed and should be researched. However, this problem probably stresses the limits of a fully client centric fault detection method. In fact, if the RTT of a connection is significant, the detection by the client that the path broke will take several rounds, and will be impossible in the sub second range. VII. C ONCLUSIONS In his paper we have presented a programming pattern and a support framework whose joint usage empowers a client of a service to explore network and service diversity and mask faults. The programming pattern is very simple and easy to use and it successfully allows the programming of a client of a replicated service, or of a server reachable by different paths, to transparently explore several servers and network paths for performance enhancing and fault masking. The proposal is reasonably application neutral, is based on the Web10G Linux kernel-level patch and interface and provides user processes with means to explore and choose among several alternative TCP connections between the client and a potentially replicated service. No changes of the traditional TCP/IP stack or of upper level protocols were required. R EFERENCES [1] D. Jen, M. Meisel, H. Yan, D. Massey, L. Wang, B. Zhang, and L. Zhang, “Towards A New Internet Routing Architecture: Arguments for Separating Edges from Transit Core,” in Seventh ACM Workshop on Hot Topics in Networks (HotNets-VII), 2008. [2] D. Meyer, “The locator identifier separation protocol (lisp),” The Internet Protocol Journal, vol. 11, no. 1, March 2008. [3] V. Kafle and M. Inoue, “Introducing multi-id and multi-locator into network architecture,” Communications Magazine, IEEE, vol. 50, no. 3, pp. 104 –110, march 2012. [4] A. Ford et al., “Architectural guidelines for multipath TCP development,” Internet Engineering Task Force (IETF) - RFC 6182, March 2011. [5] E. Stewart, R., “Stream control transmission protocol - proposed standard,” Internet Engineering Task Force (IETF) - RFC 4960, September 2007. [6] T. Wallace and A. Shami, “A review of multihoming issues using the stream control transmission protocol,” Communications Surveys Tutorials, IEEE, vol. 14, no. 2, pp. 565 –578, quarter 2012. [7] T. Begen, A. Akgul and M. Baugher, “Watching video over the web: Part 1: Streaming protocols,” Internet Computing, IEEE, vol. 15, no. 2, pp. 54–63, march-april 2011. [8] S. Akhshabi, A. Begen, and C. Dovrolis, “An experimental evaluation of rate-adaptation algorithms in adaptive streaming over http,” ACM MMSys, vol. 11, pp. 157–168, 2011. [9] Web10G Project. http://web10g.org, 2011. [10] E. Gamma, R. Helm, R. E. Johnson, and J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software. Reading, MA: Addison-Wesley, 1995. [11] M. Carbone and L. Rizzo, “Dummynet revisited,” SIGCOMM Comput. Commun. Rev., vol. 40, no. 2, pp. 12–20, Apr. 2010. [12] J. Dai, F. Liu, and B. Li, “The disparity between p2p overlays and isp underlays: issues, existing solutions, and challenges,” Network, IEEE, vol. 24, no. 6, pp. 36 –41, nov-dec 2010. [13] X. Yang, D. Clark, and A. Berger, “Nira: A new inter-domain routing architecture,” IEEE/ACM Transactions on networking, vol. 15, no. 4, pp. 775 –788, aug. 2007. Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 Towards Widespread use of SCTP for the Future Internet Bruno Sousa, Ricardo Santos, Marilia Curado [email protected], [email protected], [email protected] CISUC, University of Coimbra Abstract—The future Internet is becoming a very important researching topic, as the number of devices with multiple network interfaces is greatly increasing. With its multi-homing support, Stream Control Transmission Protocol (SCTP) supports multiple network connections in a single association, which provides resilience support. Fast Recovery Algorithm (FRA) is an algorithm that enhances the resilience support of SCTP by including anomaly-trace and optimeHoming algorithms. Such algorithms are able to detect faulty servers based on multiple criteria. This paper analyses the performance of the usage of FRA in faulty network environments of a distributed file transfer cloud service, comparing to SCTP and TCP. In order to perform this study, a testbed environment was used for evaluating the different solutions. The obtained results show that FRA offers a more resilient solution in faulty scenarios, comparing to the other approaches. Keywords: SCTP, multi-homing, reconfiguration mechanisms, Fast Recovery Algorithm, testbed. I. I NTRODUCTION The future of the Internet is an active research topic, as the existing networking technologies improve, where decentralized and distributed services are a growing trend, which require more secure, scalable and resilient solutions, in order to achieve the demanding performance. As a transport protocol, Stream Control Transport Protocol (SCTP) [1] already provides multi-homing support, a feature that increases resilience by enabling the use of every network interface from each device. However, there is a lack of decision mechanisms suitable for faulty conditions, such as resources unavailability or congestion situations. Therefore, there is a need for the usage of more adaptive and robust solutions that overcome the limitations of SCTP. This paper addresses the usage of Fast Recovery Algorithm (FRA) [2] over SCTP. FRA combines an anomaly-trace algorithm that detects faulty servers, and the optimeHoming algorithm which enables server selection based on multicriteria mechanisms. FRA is compared with existing transport protocols in a testbed environment, namely SCTP and TCP. These approaches are tested in multiple scenarios presented in a cloud file transfer service, where multiple servers are used to provide content to their clients. The tested scenarios include failure situations with network problems, such as delay, packet loss or congestion, and resource unavailability conditions in one of the servers (e.g. server overloading). Given the above, this paper is structured as follows. In Section II, it is presented existing work regarding the covered paper topic. The description of the used reconfiguration A Internet do futuro mechanisms integrating FRA are described in Section III. Section IV shows the architecture of the evaluated system and the description of the different scenarios. The results of the performed tests are discussed in Section V. Finally, Section VI concludes the paper. II. R ELATED W ORK The usage of SCTP has been studied in the past years, as a resilient transport-aware protocol. The existing literature in this topic is focused in improving the behaviour of SCTP, either with new protocol implementations based on specific scenarios or configuring the native fail over mechanisms of SCTP. Authors in [3] analysed the performance of Single Path Transfer and Concurrent Multi-path Transfer, two SCTPbased approaches, when transmitting multimedia data over a network, being recommended a set of SCTP parameters for each of the transferring mechanisms. In [4], the authors studied the tuning of SCTP failover mechanisms in order to reduce deteriorating effects for carrier grade telephone signaling, providing a configuration recommendation for this type of traffic. The mobile Stream Control Transmission Protocol (mSCTP) [5] is a SCTP implementation, focused in mobility network schemes and supporting dynamic address reconfiguration. In [6] authors identified scenarios where mSCTP can enhance handover support through the multihoming mechanism, when comparing to the native SCTP implementation. In [7], a comparison of using SCTP and TCP while transferring Web traffic was studied. Besides multi-homing, the authors explored SCTP’s multiple stream feature when transferring multiple objects from HTTP web pages. A TCP to SCTP shim layer [8] allows the transformation of TCP system calls to SCTP system calls. With such shim layer, TCP applications can communicate through SCTP without modifying applications. The authors demonstrated the utility of this layer using common network applications (e.g. file transfer), improving their responsiveness and network throughput. Authors in [9] also proposed an application-aware transport solution, based in SCTP, focusing in ensuring improved user satisfaction in multi-homed thin client architectures, being leveraged by the use of multiple network interfaces at the same time. 79 TABLE I: Modified SCTP API values Parameter rto min (ms) rto max (ms) max burst path max retrans Value 10 1000 20 1 Parameter hb interval sack timeout (ms) addip enable addip noauth enable Value 5000 100 1 1 III. FAST R ECONFIGURATION A LGORITHM This section describes and details the anomaly-trace and optimeHoming algorithms to improve the resilience support of FRA. A. SCTP Stream Control Transport Protocol (SCTP) [1] is a transport protocol that supports multi-homing, a feature that is lacking in most of the common transport protocols, such as TCP or UDP. With its primary-backup model, it is defined a primary path used for data transfer. The remaining available paths are backup paths that can be used to replace the primary path when a failure occurs (mostly detected through retransmission time outs). That way, SCTP contains resilience mechanisms, along with other configurable options that can be used to improve multi-homing support, such as message delivery options, number of streams, retransmission time outs and number of retransmissions. The used values from the SCTP kernel API are detailed in Table I. Authors in [10] showed that performance improvements can be achieved by defining short SACK timeout and retransmission timeout (RTO) minimum and maximum values. In [3], authors show that configuring the Path Max Retransmissions (PMR) value to a low value (0 or 1) can achieve best throughput in failure or non-failure scenarios. addip_enable and addip_noauth_enable were set to 1 to allow the dynamic configuration of the SCTP primary address. B. Anomaly-trace Algorithm The anomaly-trace algorithm [11] detects anomalies in each of the network nodes, based on real-time collected metrics by sar, an utility from the sysstat [12] Linux package. sysstat contains performance monitoring and log tools for measuring Operating System level metrics, such as CPU utilization, CPU run-queue size, pages in/out used, free memory, packets sent/received, disk blocks read/written and read/write transactions. Using this algorithm, nodes behaving abnormaly can be detected and switch to a faulty free node. The output of this algorithm works as a cost criterion algorithm, where 0 indicates stable condition and 1 corresponds to a faulty/failure situation. C. Multihoming optimization - optimeHoming The optimeHoming algorithm [13] provides an evaluation for each existing server. Based on a list of benefits (security, availability, path capacity and available path capacity) and a list of costs (round trip time, loss, reorder, anomaly trace score, delay and jitter), the algorithm scores and ranks each server, defining the best server that should be used. Its output is a n×2 matrix (being n the number of servers), with the server number 80 Fig. 1: Evaluated system architecture in the first column and its respective score in the second one. Using this algorithm the total file transfer time is expected to be improved. FRA configures the primary path and the server to use of SCTP, according the server score determined by optimeHoming, which relies on the anomaly-trace algorithm. IV. E VALUATION This section details the testbed architecture, the testing scenarios and the evaluated metrics. For each type of testing scenario, tests were made using TCP, SCTP and FRA. A. Architecture The evaluated system corresponds to a file transfer service, hosted in a cloud environment, as per Figure 1. That way, two servers are used, representing a distributed file transfer service, along with a client that receives the files. Each server has two Gigabit Ethernet network connections that the client uses. The client would receive files through one server at time, despite the possibility to have load balancing between servers. Besides client and servers, two computers were also used as traffic generators to emulate a congested network scenario. B. Scenarios The experiments were made through five different scenarios: In a normal without-faults model, with induced delay, packet loss, network congestion and resources failure, respectively. The results of each testing scenario includes results from 12 runs, as with such number of runs results were stable, without significant variations. The experiments consisted in transferring multiple files with two different sizes (≈ 750M b, corresponding to a typical CD image - referred as CD, and ≈ 2000M b, an average size DVD image - named DVD), from the servers to the client. 1) Without faults - normal: This represents both servers and client in a stable environment establishing therefore, a baseline reference for the studied scenarios. Thus, no existing network restrictions exist that can affect the file transfer throughput. Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 2) With delay - delay: The delay scenario consists in a replica of the normal scenario conditions, but inducing delay between one network interface of one server. A networking with these conditions can represent a client trying to access the file transfer service cloud from a mobile device in a poor network signal. This was made using the traffic control tool from Linux tc [14]. Two different tests were made - in the first there was a delay of 50ms with a 20ms variation, following an normal distribution and, in the second, there was a delay of 100ms with a 20ms variation, also following a normal distribution. Figure 2 presents an example of an induced delay in a network interface command using tc. tc qdisc add dev eth0 parent 1:3 handle 31: delay 100ms 20ms distribution normal Total transfer time represents the elapsed time between the first and last received file data chunk. This is calculated by the file transfer client node. Individual sequence transfer time corresponds to the time taken to transfer a file sequence. It is calculated by determining the elapsed time between a previously received chunk and the reception of a new file sequence. Percentage of server utilization after each file transfer run, the number of sequences sent through each server is summed, using the last field of each sequence log line (Figure 5) and the usage percentage is calculated, for each server. • • • 2066945;1368201564434;0 netem Fig. 5: Received sequence log line (sequence number, received time, server number) Fig. 2: Adding network interface delay using tc code 3) With packet loss - loss: The loss scenario consists in inducing packet loss between a network interface of one server. With tc two tests were made, with 5% and 15% loss rate, respectively. In a real production environment, the existence of networks with a consistent packet loss rate could mean existing routing problems or faulty network hardware e.g., which can degrade the performance of the provided services. Figure 3 shows an example of an induced packet loss in a network interface command using tc. V. R ESULTS This section presents the obtained results for the metrics defined in Section IV-C, divided for each scenario. Table II summarizes the results for all the scenarios, regarding server usage ratio and transfer time. A. Without faults - normal scenario 65.74 tc qdisc add dev eth0 parent 1:3 handle 31: netem loss 5% 61.27 60.28 DVD_FRA DVD_SCTP 60 4) With congestion - cong: cong consists in inducing network congestion in one of the network interfaces of one of the servers. Using iperf [15] each traffic generator introduced 350M bps of UDP traffic towards the server’s network interface. This scenario simulates multiple simultaneous file transfers between the servers and clients. Having one of the server’s network interface congested, both client and server’s file transfer behaviour under such condition can be analysed. Figure 4 shows an used iperf script for generating network traffic during 1 hour (3600 seconds). transfer time (s) Fig. 3: Adding network interface packet loss using tc code 40 27.40 Fig. 4: Generating 350M bps of UDP traffic during 3600s with iperf 5) With resources failure - fail: This scenario overloads a server by introducing CPU intensive tasks. This can represent a situation when the server is too busy processing requests or doing multiple system calls at the same time. In order to create the overload, 1000 processes running md5sum were introduced in the server, determining the md5 checksum value of the file used in the DVD tests (≈ 2000M B). C. Metrics For each test executed through the scenarios presented in Section IV-B, the following metrics were collected: A Internet do futuro 24.41 CD_SCTP CD_TCP 20 0 CD_FRA iperf -c 10.161.230.91 -u -b 350m -t 3600 25.28 Test Cases DVD_TCP Fig. 6: Average file transfer time results for normal scenario Figure 6 shows the mean transfer time of CD and DVD in normal scenario, using TCP, SCTP and FRA. The achieved results are used as a reference, acting as a baseline to the remaining tests, made in the different scenarios. It is observable that the average file transfer time in CD is lower when using TCP, comparing to SCTP and FRA. In DVD, SCTP performs better than TCP and FRA. Despise this mean file transfer time comparison, the difference between the obtained values is very small due to the absence of any type of failure in this scenario. As seen in Figure 7, during a testing run with CD, all the three transfer protocols have a linear growth on the individual sequence transfer time, being close to each other. 81 TABLE II: Transfer time and server usage ratio results for the evluated scenarios Transfer Time (s) normal 50ms delay 100ms 5% loss 15% cong fail 22803 64961 769609 1450231 332450 907932 932635 2673856 1865271 5347713 1380724 3592340 3326959 10164635 CD DVD CD DVD CD DVD CD DVD CD DVD CD DVD CD DVD TCP Utilization of server 0 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% Utilization of server 1 0% 0% 0% 0% 0% 0% 0% 0% 0% 0% 0% 0% 0% 0% SCTP Utilization of server 0 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% Transfer Time (s) 24412 59164 38235 95916 58461 117209 38522 101694 43441 95624 241384 509037 5108029 10202490 Utilization of server 1 0% 0% 0% 0% 0% 0% 0% 0% 0% 0% 0% 0% 0% 0% Transfer Time (s) 24981 60159 28095 73257 29282 81527 28122 76955 30469 87046 23288 72494 27303 61934 FRA Utilization of server 0 0% 0% 0% 12.16% 0% 0% 0% 0% 0% 0% 0% 0% 0.01% 0.02% Utilization of server 1 100% 100% 100% 87.84% 100% 100% 100% 100% 100% 100% 100% 100% 99.99% 99.98% Transfer over time proto FRA SCTP 117.21 TCP 95.75 100 81.53 Transfer Time (ms) transfer time (s) 20000 58.46 73.27 38.24 50 10000 29.28 28.10 CD DVD 0 0 0e+00 2e+05 4e+05 Sequence/Time 6e+05 Fdelay1_FRA Fdelay0_FRA Fdelay1_FRA Fdelay0_FRA Fdelay0_SCTP Fdelay0_SCTP Fdelay1_SCTP Fdelay1_SCTP 8e+05 Fig. 8: Average total file transfer time results for delay Fig. 7: Individual sequence transfer time in normal for CD Transfer over time B. With delay proto 82 FRA SCTP TCP 524.288 262.144 131.072 65.536 32.768 16.384 8.192 Transfer Time (s) Figure 8 shows the mean transfer time for CD and DVD in delay cases, with induced 50ms and 100ms delay respectively, both with a 20ms normal variation, having the delay applied in one of the servers network interface. The results are presented for FRA and SCTP. TCP mean file transfer time values were not presented in the figure due to their extremely high values, comparing to FRA and SCTP. Although it is visible the difference of sequence transfer times during a testing run for delay with 100ms and transferring CD in Figure 9, where it is used a logarithmic scale in the transfer time axis, due to the results scale difference. In this scenario, TCP only used the address with delay, since it lacks multi-homing support, which explains the high transfer times. Although SCTP can detect path failure with its native resilience support mechanisms, for this scenario, in the beginning of each test run, the sent packets arrived to the client before the RTO interval expired, which delayed the alternate address retransmission event. This provoked a transfer time 4.096 1.024 0.001 0 2e+05 4e+05 Sequence/Time 6e+05 8e+05 Fig. 9: Individual sequence transfer time in delay with 100ms and CD overhead when comparing to FRA, where the optimeHoming algorithm detected quickly this induced delay failure. Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 150 101.69 72.49 75 23.29 25 100 0 600 transfer time (s) 76.96 36.86 50 509.04 400 241.38 200 0 28.12 30.47 3592.34 3000 CD 0 DVD 1380.72 1000 0 Floss0_FRA Floss1_FRA Floss0_FRA Floss1_FRA Floss1_SCTP Floss0_SCTP Floss0_SCTP Floss1_SCTP Fig. 10: Average total file transfer time results for loss CD_Fcongest FRA Test Cases DVD_Fcongest Fig. 12: Average total file transfer time results for cong Transfer over time Transfer over time proto TCP 2000 proto SCTP 65536 FRA SCTP TCP 1048.576 32768 524.288 16384 262.144 8192 131.072 65.536 4096 32.768 16.384 1024 Transfer Time (s) Transfer Time (ms) SCTP transfer time (s) 87.05 43.44 FRA 50 95.62 8.192 4.096 1.024 0.001 1 0 2e+05 4e+05 Sequence/Time 6e+05 8e+05 Fig. 11: Individual sequence transfer time in loss with 15% and CD C. With packet loss Figure 10 shows the mean transfer time for CD and DVD in loss, evaluating the system with a loss rate of 5% and 15% applied to one of the servers network interface. As in Section V-B, the mean transfer time values for TCP were extremely higher than FRA and SCTP, so only the last two protocols are presented in the figure. With existing packet loss, SCTP performed equally good comparing to FRA. This can be explained due to the used SCTP configurations, where it is set a low Path.Max.Retransmissions value. That way, SCTP quickly detects path failure and quickly starts retransmitting packets through the alternative address, where there is no packet loss. D. With congestion In cong, both TCP and SCTP makes use of the server with the congested network interface. TCP uses the congested address during the entire file transfer, therefore having very A Internet do futuro 0 2e+05 4e+05 Sequence/Time 6e+05 8e+05 Fig. 13: Individual sequence transfer time in cong with CD high file transfer results. In FRA, with all the incoming congestion traffic present in the affected server, the Anomaly-trace algorithm detected the elevated processing rate and quickly switched the used server. That way, FRA mean file transfer times were not affected by the induced network congestion. With that, as seen in Figure 12 and Figure 13, FRA performs better than SCTP and TCP. E. With resources failure In the fail scenario, the induced resources failure in one of the servers quickly reduced its processing capacity, therefore affecting drastically the performance of the file transfer service. Since TCP and SCTP were not using the optimeHoming algorithm, these kind of failures detection was not present during each test, always using the server without available resources. In FRA, this lack of processing power was quickly detected by the anomaly-trace algorithm, which triggered OptiHoming to immediately change the used server, performing the rest of 83 All these approaches were tested in a cloud file transfer service between multiple servers and a client, under different scenarios. Besides the normal service usage, the evaluation was performed in different faulty situations. After performing the results analysis, it was concluded that FRA enhances the resilience support of SCTP in fault scenarios including losses, delay, network congestion and resource failures, compared to TCP and SCTP. 61.93 75 FRA 50 27.30 25 10202.49 7500 5104.98 5000 SCTP transfer time (s) 0 10000 2500 ACKNOWLEDGMENTS 0 10000 This work was partially financed by ISA and OneSource and by the program COMPETE, in the project of SI I&DT sMeter (“Plataforma Integrada para eficiência energética e smart metering”, contract n. 21588, QREN FCOMP-01-02). 10164.64 7500 TCP 5000 4990.44 2500 0 CD R EFERENCES DVD Test Cases Fig. 14: Average total file transfer time results for fail Transfer over time proto FRA SCTP Transfer Time (ms) 1048576 524288 262144 131072 65536 32768 16384 8192 4096 1024 1 0 2e+05 4e+05 Sequence/Time 6e+05 8e+05 Fig. 15: Individual sequence transfer time in fail with CD the file transfer in the server without processing issues. With that, FRA mean file transfer times were several times lower than SCTP and TCP, as presented in Figure 14 and Figure 15. VI. C ONCLUSION With the accelerated technology improvements presented nowadays, the existing number of devices with multiple interfaces has significantly increased. The characteristics of these devices motivates the usage of transport protocols that supports multi-homing, such as the Stream Control Transmission Protocol. In order to improve the usage of those interfaces, there is a need to create resilient-aware adaptive mechanisms over the existing ones. This paper investigated the behaviour of existing transport protocols, TCP and SCTP, and Fast Reconfiguration Algorithm, an algorithm that increases resilience support of SCTP by performing a multi-criteria evaluation of the status of the network and by identifying if a node is behaving properly. 84 [1] R. Stewart, Ed., “Stream Control Transmission Protocol,” IETF Request for Comments: 4960, September 2007. [2] B. M. Sousa, R. Santos, M. Curado, S. Pertet, R. Gandhi, C. Silva, and K. Pentikousis, “Enhancing Reconfiguration in the Cloud,” in IEEE CAMAD 2013, September 2013. [3] Changqiao Xu, Enda Fallon, Yuansong Qiao, Lujie Zhong, Gabriel-Miro Muntean, “Performance Evaluation of Multimedia Content Distribution Over Multi-Homed Wireless Networks,” IEEE TRANSACTIONS ON BROADCASTING, VOL. 57, NO. 2, June 2011. [4] Johan Eklund, Karl-Johan Grinnem, Stephan Baucke, Anna Brunstrom, “Tuning SCTP failover for carrier grade telephony signaling,” Elsevier Computer Networks 54 (2010), 2010. [5] M. Riegel, M. Tuexen, “Mobile SCTP,” Working Draft, Tech. Rep., 2005. [6] A. Brunstrom, K.-J. Grinnemo,1, R. Fracchia, Ł. Budzisz, R. Ferrús, G. Galante, F. Casadevall, “Towards transport-layer mobility: Evolution of SCTP multihoming,” Elsevier Computer Cummunications 31 (2008), 2008. [7] Rajesh Rajamani, Sumit Kumar, Nikhil Gupta, “SCTP versus TCP: Comparing the Performance of Transport Protocols for Web Traffic,” Technical report, University of Wisconsin-Madison, 2002. [8] Ryan W. Bickhart, Paul D. Amer, Randall R. Stewart, “Transparent TCPto-SCTP Translation Shim Layer,” EuroBSDCon, Copenhagen 2007, 2007. [9] Md. Ali-Al-Mamun, Md. Motaharul Islam, Seung-Un Choe, Eui-Nam Huh, “SCTP based Protocol Architecture for Multihomed Thin Client,” International Conference on Ubiquitous Information Management and Communication ’12, 2012. [10] R. Rembarz, S. Baucke, and P. Mahonen, “Enhancing resilience for high availability ip-based signaling transport,” in Personal, Indoor and Mobile Radio Communications, 2005. PIMRC 2005. IEEE 16th International Symposium on, vol. 4, 2005, pp. 2301–2305 Vol. 4. [11] Soila Kavulya, Rajeev Gandhi, Priya Narasimhan, “Gumshoe: Diagnosing Performance Problems in Replicated File-Systems,” SRDS ’08. IEEE Symposium on Reliable Distributed Systems, 2008. [12] Sebastien Godard. (2006) Sysstat utilities home page. [Online]. Available: http://sebastien.godard.pagesperso-orange.fr/ [13] Bruno Sousa, Kostas Pentikousis, Marilia Curado, “Enhancing Path Selection in Multihomed Nodes,” 2013, submitted to 5th International Conference on Mobile Networks and Management, MONAMI 2013. [14] Bert Hubert. (2000) Linux Advanced Routing & Traffic Control HOWTO. [Online]. Available: http://lartc.org/lartc.html [15] National Laboratory for Applied Network Research. (2008) Iperf. [Online]. Available: http://iperf.sourceforge.net/ Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 A comparative analysis of IEEE 802.11 MAC layer mechanisms to handle real-time traffic in open communication environments Robson Costa∗ , Paulo Portugal∗∗ , Francisco Vasques∗ and Ricardo Moraes§ ∗ IDMEC, FEUP, University of Porto – Porto, Portugal TEC, FEUP, University of Porto – Porto, Portugal § Federal University of Santa Catarina – Araranguá, Brazil Email: {robson, pportugal and vasques}@fe.up.pt and [email protected] ∗∗ INESC Abstract—The IEEE 802.11 standard has been evolving over the past decade by introducing new mechanisms with the aim to improve communication’s QoS (Quality of Service). Among them we highlight the MAC layer mechanisms, namely DCF, PCF, EDCA and HCCA. In this paper we perform a comparative analysis between these mechanisms to handle real-time traffic in an open communication environment composed of real-time (RT) and non-RT stations operating in the same frequency channel and coverage area. The target of the paper is to understand the limitations of each mechanism and to provide a comparative assessment between them when supporting RT communication. We show that for most of the situations, including less demanding scenarios, these mechanisms are not adequate to support RT traffic. I. I NTRODUCTION Presently there is a growing interest to support real-time (RT) applications using wireless technologies, particulary in industrial environments. Although wireless solutions are more susceptible to transmission problems than wired ones, it is a fact that most industrial applications can tolerate a few message losses or deadline misses without compromising significantly its performance [1]. In this context, the IEEE 802.11 [2] family of protocols appears as a promising solution to support these applications due to its large acceptance, high performance, easy deployment and low cost. An aspect that must be considered when addressing wireless solutions, is that all the stations share the access to the same radio channel, as the medium is an open communication environment. Thus, any participant can try to access the medium at any instant according to the MAC (Media Access Control) rules and establish its own communication channels. Furthermore, the wireless communication environment is susceptible to interferences from devices using the same frequency band [3], as well as interferences resulting from signal propagation and noise (e.g. fading and electromagnetic interference – EMI). As a consequence, the system load cannot be predicted at system setup time, nor can it be effectively controlled during the system run-time. This is a well known problem that has been addressed in the last years through the proposal of enhanced mechanisms on successive versions/extensions of the standard (e.g. IEEE 802.11e to support QoS stations), or by using upper layer protocols that try to guarantee specific requirements (e.g. latency). However, most of these solutions were developed having in mind non-RT traffic. Even when RT traffic was considered, A Internet do futuro the assumed requirements are generally very different from those found in industrial environments. These scenarios are characterized by control applications that exchange periodic traffic, conveyed in small packets, with stringent deadlines. Small and controlled delays and lower deadline miss ratios are usual traffic requirements. Moreover, the non-compliance with these requirements can lead to unpredictable behavior by control applications, which can result in economic losses or even in danger for the people or the environment. The main contribution of this paper are twofold. First, to perform an assessment, by simulation, of the medium access mechanisms (DCF – Distributed Coordination Function, PCF – Point Coordination Function, EDCA – Enhanced Distributed Channel Access and HCCA – HCF Controlled Channel Access) defined in the IEEE 802.11 standard to handle RT traffic in an open communication environment. By RT traffic we mean small sized packets, generated periodically with well-defined temporal deadlines. Although in the last decade many papers have been published on the evaluation of these mechanisms, most of them focuses on scenarios and metrics usually found in multimedia environments. Only a few of them consider RT traffic commonly found in industrial environments (relevant exceptions are [4] and [5]), and even in these cases only a partial assessment was made. Moreover, the impact of varying network conditions, which is one of the main challenges to ensure QoS support in IEEE 802.11 networks, as identified in [6], are usually not considered. Second, by using the same set of scenarios for the assessment of all mechanisms it is possible to perform a comparative analysis between them. This is also an advantage over previous works, were each mechanism was assessed independently using different parameters, metrics and scenarios. The remainder of this paper is organized as follows: Section II presents the medium access mechanisms defined by the IEEE 802.11 standard. Simulation results are presented in section III. In Section IV a summary and state-of-the-art are drawn. Finally, the paper is concluded in Section V. II. IEEE 802.11 M EDIUM ACCESS M ECHANISMS The main medium access mechanism of the IEEE 802.11 standard is based on a CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance) mechanism, referred as DCF. More accurately, the original IEEE 802.11 MAC sublayer introduces two MAC functions: the mandatory DCF and the 85 At the beginning of the CFP the PC sends a beacon message, which defines the maximum duration of the CFP (CFPmax ). All stations that receive this beacon message set the NAV (Network Allocation Vector) to the value defined into the CFPmax to block the medium access of DCF-based stations. As an additional safe-guard to prevent interference, all contention-free transmissions are separated only by SIFS and PIFS intervals (Fig. 1). As both are shorter than DIFS interval (used by DCF), no DCF-based stations can gain access to the medium before the PCF stations (Fig. 2). Contention-Free Repetition Interval Contention-Free Period Thus, in this specific case, stations keep sensing the medium for this additional random time, after detecting the medium as idle for a DIFS interval. If the medium gets busy due to interference or transmissions while a station is downcounting its backoff counter, the station stops down-counting and defers the medium access until the medium becomes idle for a DIFS interval again. As soon as the backoff counter reaches zero, the station retries its transmission (Fig. 1). A new independent random backoff value is selected for each new transmission attempt, where the CW value is increased by (CW old × 2 + 1), with an upper bound given by CWmax . Fig. 1. DCF and EDCA interframe spaces. The DCF access method imposes an idle interval between consecutive messages, which is called IFS (Interframe Space). Different IFS are defined in order to impose different priorities to multiple message types as follows: the SIFS (Short Interframe Space) is the shortest of the interframe spaces and it is used for acknowledgement (ACK) messages, the PIFS (PCF Interframe Space) is only used by stations operating under the PCF mechanism, the DIFS is used by stations operating under the DCF mechanism and the EIFS (Extended Interframe Space) is used in communication-error conditions. In a different way, the PCF provides a contention-free service. It implements a centralized polling scheme to support synchronous data transmissions, where the PC (Point Coordinator) performs the role of polling master. In this context, the associated stations only can begin a transmission after receiving an authorization message from the PC. Thus, the PCF is restricted to infrastructured networks. The contention-free service is not provided full-time. Periods of contention-free service arbitrated by the PC alternate with the standard DCF-based service. When the PCF is used, the time on the medium is divided in CFP (Contention-Free Period) and CP (Contention Period). Access to the medium in the first case is controlled by the PCF, while access to the medium in the second case is controlled by the DCF. 86 SIFS SIFS SIFS D2 + ack + poll D1 + poll D3 + ack + poll U1 + ack SIFS Contention Period SIFS PIFS CF-End PIFS Beacon optional PCF. DCF is the basic IEEE 802.11 mechanism, where stations perform a so-called backoff procedure before initiating a transmission. That is, when a station wants to transmit, it previously senses the medium; if the medium remains idle during a specific time interval called DIFS (Distributed Interframe Space) it immediately starts the transmission. Otherwise, the station selects a random backoff time. The duration of this random interval is a multiple of the Slot Time (ST), which is a system parameter that depends on the characteristics of the physical layer. The number of slots is an integer in the range of [0, CW], where CW (Contention Window) is initially assigned as CWmin . A backoff counter is used to maintain the current value of the backoff time. D4 + poll U2 + ack U4 + ack SIFS SIFS No response to CF-Poll Reset NAV NAV NAV = Network Allocation Vector Dx = Frames sent by Point Coordinator Ux = Frames sent by polled stations Fig. 2. CFPMaxDuration PCF service. After the PC has taken control of the wireless medium, it polls any associated stations on a polling list for data transmissions. During the CFP, stations may only transmit if the PC requests the transmission with a contention-free polling frame (CF-Poll). Each CF-Poll allows the station to transmit one frame. Multiple frames can be transmitted only if the PC sends multiple poll requests. To ensure that the PC retains control of the medium, it may send a CP-Poll to the next station on its polling list if no response is received after one PIFS interval. Soon after the end of CFP, the CP starts. The CP must have a minimum duration equal to the time required to transmit and acknowledge one MPDU (MAC Protocol Data Unit) with maximum size (i.e. 4095 bytes). The beginning of first transmission in CFP not necessarily matches with the beginning of CFP. Some times it is possible that a DCF-based transmission overrun the end of the CP. When this occurs, the CFP is foreshortened. The transmission of current frame is finished before the transmission of the next beacon frame, which will announce the start of contentionfree operation. The CFP is shortened by the amount of the delay generated by the previously foreshortening. The CFP ends no later than the maximum duration from the next expected beginning point, referred as TBTT (Target Beacon Transmission Time). The PC may also terminate the CFP before the time defined into the beacon frame by transmitting a CF-End frame. It can support this decision based on the polling list size or any other factor that the PC considers important. In order to provide QoS support to IEEE 802.11 networks, an additional function called HCF (Hybrid Coordination Function) was incorporated in 2005. HCF schedules the access to the channel allocating a TXOP (Transmission Opportunities) to each station. A TXOP is defined by a starting time and a maximum duration (i.e. a time interval during which the station keeps the control of the medium). Consequently, multiple messages can be transmitted within an acquired TXOP. The allocation of TXOP to the stations can be made through one of two access mechanisms of the HCF: EDCA and HCCA. The EDCA was designed to enhance the DCF mechanism providing differentiated transmission services with four AC Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 Contention-Free Repetition Interval Contention-Free Period AIF S[AC] = AIF SN[AC] × aSlotT ime + SIF S (1) where the AIF SN[AC] is a positive integer that must be greater than or equal to 2 for all QoS Stations (QSTA), except for the QoS Access Points (QAP), where it shall be greater than or equal to 1. As mentioned before, CWmin and CWmax parameters depends on the characteristics of the physical layer. Similarly to PCF, the HCCA is a centralized and contention free based coordination system that uses a polling mechanism to distribute TXOP to each HCCA station. It contains a logical entity known as HC (Hybrid Coordinator) residing in the AP (Access Point), which includes an ACU (Admission Control Unit) and a scheduler. The ACU decides whether to accept or refuse each requested TXOP, and the scheduler controls the polling according to the decisions of the ACU. The HCCA guarantees the necessary bandwidth through negotiation between HC and the station that wants be polled. In the negotiation process, a station uses the TSPEC (Traffic Specification) field of management frames to convey QoS information. TSPEC is a set of QoS parameters that are used to describe a TS (Traffic Stream1 ). These informations are inserted into an ADDTS (Add Traffic Stream) request message and sent to the HC. Based on these parameters the ACU decides whether or not to admit the station request. The station is informed of the decision by means of an ADDTS response message. If the request was admitted, the scheduler will launch the newly allowed TXOP to the polling routine. The polling routine of the HCCA can operate in two modes: i) using only the CFP; and ii) using both CFP and CP. In the first mode, only HCCA stations will be able to transmit, while in the second mode the CFP is reserved exclusively to HCCA stations, being the CP shared between HCCA and EDCA stations. When a HCCA station is polled during the CP, this time is called CAP (Contention Access Phase). In the beginning of each CFP interval, the HC sends a beacon message specifying the start time and duration of the CFP (Fig. 3). After this, the HC offers a TXOP to HCCA stations by sending CF-Poll messages to them. The stations must reply back within a SIFS interval with a data message or a null message, indicating that the station has no traffic or that the requested message exceeds the allocated TXOP. If no message is received after PIFS interval, the HC polls the next station in the polling list. The CFP ends when the HC sends a CF-End message, or when the CFP duration expires. For further details concerning the description of the IEEE 802.11 protocol, please refer to the standard [2]. 1A Traffic Stream identifies a specific data flow between two stations. A Internet do futuro PIFS Data Ack Data SIFS CF-Poll AIFS Ack . . . Ack Data Different levels of service are provided to each AC, based on three independent mechanisms: the AIFS (Arbitration Interframe Space), the TXOP and the CW size. Similarly to DCF, a station operating under EDCA will wait that the medium remains idle during an AIF S[AC] interval before beginning its transmission. This interval time is given by: Contention Period SIFS SIFS CF-End PIFS CF-Poll PIFS Beacon (Access Categories). Each message arriving at the MAC sublayer with a defined priority will be mapped into one of the four AC, as follows: background (BK), best-effort (BE), video (VI) and voice (VO), that is the highest priority level. SIFS SIFS EDCA TXOP HCCA TXOP (polled) Reset NAV HCCA TXOP polled SIFS Controlled Access Phase Reset NAV NAV NAV = Network Allocation Vector Fig. 3. HCCA service. III. S IMULATION A NALYSIS The proposed scenarios compare the support of RT traffic transmission using DCF, PCF, EDCA and HCCA mechanisms, when operating in an open communication environment. The simulation scenarios were built considering a RT infrastructured network overlapped with a non-RT infrastructured network, both operating in the same coverage area and frequency channel. The RT network is composed of multiple RT stations (clients) and one RT server (SRVRT ) that exchange messages with each other through a real-time Access Point (APRT ). The non-RT network operates based on the EDCA function and it is composed of 10 non-RT stations (clients) and one nonRT server (SRVnon−RT ) that also exchange messages with each other through a non-RT Access Point (APnon−RT ). It is assumed that all stations are within the range of transmission of each other and there is no node mobility nor hidden stations. RT stations only transfer RT traffic. Each RT message has a MSDU size of 73 bytes and has constant generation period (Pi ). In order to simplifying the analysis we have assessed periods of 30 and 60 milliseconds separately. We also consider that each RT message has a deadline equal to its period. RT traffic is transmitted in the voice AC in the EDCA and HCCA mechanisms, that is, using the highest access category (and priority). For the remaining cases (PCF and DCF), it is transmitted in the standard queue. Related to the CFP parameter of PCF and HCCA, in both cases it was defined as 50% of Pi , i.e. Pi/2. Each non-RT station generates 5 types of traffic that are transmitted in 3 different AC. The best-effort AC transmits HTTP, FTP and SMTP/POP traffic according to a Poisson distribution. The MSDU size ranges from 350 bytes (e.g. HTTP request) to MSDU maximum size (i.e. 2304 bytes). The voice AC transmits VoIP traffic using the G.711 codec. In this case messages have a constant MSDU size of 160 bytes and are transmitted with a constant period of 20 milliseconds. Finally, the video AC transmits video-conference traffic using the H.264 codec. This results in a bandwidth consumption of 240 Kbits/s per camera stream that is achieved by the transmission of messages with a variable MSDU size. Since the non-RT traffic is transmitted using the EDCA mechanism, no admission control is used. For the set of nonRT stations, the offered load is classified as Low, Mid and High corresponding to 10%, 30% and 50% of the maximum theoretical throughput, respectively. Each offered load is composed by 15% of voice traffic, 25% of video traffic and 60% of besteffort traffic. In order to avoid transmission synchronizations, both RT and non-RT stations are randomly started. All models were evaluated using the OPNET simulation tool [7]. The physical layer is based on the IEEE 802.11a 87 Upperbound deadline misses 5 0 5 10 15 20 25 30 35 40 DCF PCF EDCA HCCA 15 10 Upperbound deadline misses 5 0 5 10 Number of Real-Time Stations 15 DCF PCF EDCA HCCA 10 Upperbound deadline misses 5 0 10 20 30 40 50 60 70 Number of Real-Time Stations Fig. 5. (a) Network Load = Low Average deadline misses (P = 60ms) 80 20 25 30 35 40 10 Upperbound deadline misses 5 0 5 10 15 10 Upperbound deadline misses 10 20 30 40 50 60 Number of Real-Time Stations (b) Network Load = Mid All the simulation results have been obtained with a 95% confidence interval, with a half-width relative interval less than 5%. The performance metrics used to analyze RT traffic are the usually found in industrial environments, and include the average deadline miss ratio and average delay. The average deadline miss ratio represents the average ratio of RT messages that miss their deadlines either by loss or delayed delivery to the destination. The average delay represents the end-to-end average delay of the successfully delivered messages. A. Results: Average Deadline Miss Ratio The first analysis concerns the assessment of the average deadline miss ratio. A rule-of-thumb usually employed by industrial control applications says that the upper limit should not be over 5%. Figure 4 shows the deadline miss ratio for Pi = 30 milliseconds. When considering the Low network load case (Fig. 4(a)), the DCF can support up to 26 RT stations. EDCA and PCF increase this value up to 30 and 36 RT stations, respectively. It is important to note that the deadline miss ratio in the HCCA mechanism is null, but it can support only 2 RT stations. This is consequence of its pessimistic assumptions used by their admission control mechanism which computes all ADDTS requests based on the MSDU maximum size. Furthermore, the HCCA requires that all its transmissions are performed using the basic transmission rate allowed by the physical layer. When the network load is increased to the Mid level (Fig. 4(b)), the number of supported RT stations is significantly 20 25 30 35 40 (c) Network Load = High 5 0 15 Number of Real-Time Stations DCF PCF EDCA HCCA [8]. Each station operates at OFDM (Orthogonal Frequency Division Multiplexing) physical mode, where control messages are transmitted at a basic rate (6 Mbits/s) while MSDU are transmitted at 54 Mbits/s. We consider an error-prone communication channel based on the model available in OPNET, where the BER (Bit Error Ratio) is dynamically evaluated based on the mean value of SNR (Signal-to-Noise Ratio). For the evaluated scenarios the average BER ranges from 10−4 to 10−3 [1]. 88 20 DCF PCF EDCA HCCA 15 (b) Network Load = Mid Average Deadline Misses (%) Average Deadline Misses (%) 20 15 20 Number of Real-Time Stations (a) Network Load = Low Average deadline misses (P = 30ms) Fig. 4. Average Deadline Misses (%) 10 20 Average Deadline Misses (%) 15 DCF PCF EDCA HCCA Average Deadline Misses (%) Average Deadline Misses (%) 20 70 80 20 DCF PCF EDCA HCCA 15 10 Upperbound deadline misses 5 0 10 20 30 40 50 60 70 80 Number of Real-Time Stations (c) Network Load = High reduced. In the case of DCF, it only can support up to 6 RT stations (a reduction of ≈ 76% when compared with the previous result). EDCA and PCF can support only up to 10 and 20 RT stations, respectively. This represents a reduction of ≈ 67% and ≈ 45% on the EDCA and PCF, respectively. The supported number of RT stations by HCCA mechanism remains equal to 2 stations. For the High network load level (Fig. 4(c)), the DCF is not able to support any RT stations and the EDCA and PCF can support up to 3 and 10 RT stations, respectively. As expected, HCCA was not affected by the increase in the network load. The results presented when the RT stations have a Pi = 60 milliseconds (Fig. 5) is quite similar to the previous one. As expected, the number of RT stations supported by each mechanism increases, as well as the number of the supported RT stations decreases when the network load imposed by nonRT stations increase. In the Low network load level (Fig. 5(a)) the DCF mechanism can support up to 52 RT stations and the EDCA and PCF mechanism can be able to support up to 60 and 70 RT stations, respectively. Although again the HCCA does not miss any deadline, it is penalized by its admission control mechanism that only allows the admission of 4 RT stations. Figure 5(c) also illustrates the impact in the number of supported RT stations when the network load is increased to the level defined as High, supporting up to 10 RT stations in the DCF mechanism, and up to 12 and 15 RT stations, in EDCA and PCF, respectively. B. Results: Average Delay Figures 6 and 7 present the average delay (and the respective standard deviation) for different numbers of RT stations with Pi equal to 30 and 60 milliseconds, respectively. The results show, as expected, that DCF is not adequate to support RT traffic under Mid and High load conditions. In both cases (30 and 60 milliseconds), the average delay and standard deviation significantly increases with the increase in the number of RT stations. The average delay of EDCA can be considered quite good since it is below the message deadline threshold, Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 25 20 15 10 5 0 5 10 15 20 25 30 35 30 25 20 15 10 5 0 40 5 10 Number of Real-Time Stations 60 50 40 20 10 10 20 30 40 50 60 Number of Real-Time Stations Fig. 7. 25 70 DCF PCF EDCA HCCA 30 0 20 (a) Network Load = Low Average delay (P = 60ms) 30 35 30 25 20 15 10 5 0 40 5 10 70 80 50 40 20 10 10 20 30 40 50 60 Number of Real-Time Stations (b) Network Load = Mid 25 70 30 0 20 30 35 40 70 80 (c) Network Load = High DCF PCF EDCA HCCA 60 15 Number of Real-Time Stations (b) Network Load = Mid Average Delay (ms) Average Delay (ms) 70 15 DCF PCF EDCA HCCA 35 Number of Real-Time Stations (a) Network Load = Low Average delay (P = 30ms) Fig. 6. 40 DCF PCF EDCA HCCA 35 Average Delay (ms) 30 40 DCF PCF EDCA HCCA Average Delay (ms) 35 Average Delay (ms) Average Delay (ms) 40 70 80 DCF PCF EDCA HCCA 60 50 40 30 20 10 0 10 20 30 40 50 60 Number of Real-Time Stations (c) Network Load = High even for a reasonable number of RT stations (≈ 30 stations). The trends showed by PCF and HCCA are consequence of transmissions made on the CFP, that are periodically created with the transmission of a beacon message. Within this context, both mechanisms show results around 15 milliseconds (Pi/2). In the case of PCF, it is possible to verify an increase on the average delay when the number of RT stations reaches its limit (Figs. 6(a) and 7(a)). even more reductions (foreshortened). Furthermore, it was also observed the increase of the number of cycles where the CFP was not set. This behavior results from losses of beacon messages (that are transmitted in broadcast). In the case of HCCA, although it can support only a reduced number of RT stations (consequence of rules imposed by its admission control mechanism), it presented the best behavior under High network load. When the network load is increased to the level defined as Mid (Fig. 6(b)) and High (Fig. 6(c)), DCF suffers a considerable increase on its average delay. EDCA, PCF and HCCA follows the same trend of previous results with a minimal increase on the case of EDCA. The same behavior can be observed when Pi = 60 milliseconds. There are many published works addressing the IEEE 802.11 performance, however, most of them consider a closed environment, which is a basic assumption on the wired CSMA networks. The timing behavior can be easily guaranteed through the tight control of every communicating device in these networks. Unfortunately, this approach cannot be enforced in wireless environments, since all stations share the access to the same radio channel. IV. S UMMARY AND S TATE - OF - THE -A RT The performance assessments show that DCF is the most susceptible to suffer with changes on network load and with the increase of the number of RT stations. The main reason is related with the lack of a mechanism able to increase the medium access priority of the RT traffic over non-RT traffic. Another limitation comes from the backoff mechanism, that under high network loads can lead to long deferring periods. The efficiency of a differentiation mechanism can be observed in the EDCA results. By the use of different AC and CWmin and CWmax values, the EDCA can ensure the lowest average delay when compared with the remaining mechanisms. The results presented by PCF and HCCA have quite similar behavior. This is related with the contention-free medium access mechanism used by both. As in this case the CFP were created periodically based on the TBTT (that was defined as the same duration of Pi ), the average delay value tends to Pi/2. The main difference is related with the use of CAP by the HCCA mechanism. The PCF is the mechanism that supports the highest number of RT stations, that is established due to the available size of CFP. Moreover, further analysis shows that with the increase of the network load imposed by the non-RT stations, the starting instant of each CFP suffers A Internet do futuro Numerous attempts were made to analyze the performance of IEEE 802.11 mechanisms. DCF has been studied using analytical modeling method based on Markov chain theory [9], [10], [11]. Bianchi et al [12] developed a two-dimensional Markov chain model for analysis of the saturation throughput of the DCF. However, some important performance metrics such as packet delays or packet drop probabilities were not estimated in this research. In the case of PCF assessment, the same analytical approach can be observed [13]. In [14], [15], [16] several authors also analyze the QoS support of the EDCA mechanism through analytical models. These models derive an average delay estimation for the different traffic priorities. It was observed that, even with the improvements of the EDCA (compared with the DCF), in some cases it can not ensures the strict QoS requirements of real-time services such as voice and video traffic. By simulation analysis [5], [17], [18] confirm this situation. In [5], it was assessed the EDCA when dealing with RT communications considering an open communication environment. It was concluded that in most cases, both the number of message losses and the average delays forecast an unacceptable number of deadline misses 89 for the RT traffic, even for intermediate network load cases. Another limitation of EDCA was described by Cena et al. in [19]. They showed that under high network loads, the EDCA can suffer priority inversions. This occurs as consequence of the architecture implemented in the AP by some hardware companies which, although classifying the messages in four AC, stores all of them in the same buffer. The HCCA mechanism was analyzed by [20], [21], [22]. Specifically in [21], Casetti et al. analyze the inefficiency of HCCA mechanism when it is used to transmit VoIP and a generic TCP traffic. The main limitation observed was the difficulty in defining good parameters to CFP. V. C ONCLUSION This paper presents a comparative assessment of the medium access mechanisms defined by the IEEE 802.11 standard when handling real-time traffic in an open communication environment. The results show that only HCCA preserves RT traffic requirements, as defined in this paper (periodic traffic), even in scenarios where external traffic sources impose a significant network load. However, it is penalized by its admission control mechanism, that reduces drastically the maximum number of RT stations that can be admitted. As a consequence, due to the reduced number of supported stations, this mechanism is also not adequate for realistic scenarios. It was observed that DCF, EDCA and PCF suffer with the increase of network load imposed by non-RT stations and with the increase of the number of RT stations. In what concerns the DCF results, a detailed analysis showed that the main reason of its deadline misses is related with the delivery delay. In the case of EDCA, its average delay can be considered quite good since it is well below the message deadline threshold. However, its main limitation is related with exceeding the retransmission threshold, which results in discarding messages and consequently in a deadline misses. This behavior is mainly caused by the transmission of voice traffic by non-RT stations. An analysis shows that when this traffic is not transmitted by non-RT stations, the ratio of deadline misses suffers a reduction. Another limitation of EDCA is related with using the same buffer to store messages with different priorities. In this case, when the network load increases, RT traffic (transmitted by the voice AC) is dropped, since the buffers of communication devices (mainly the AP) are full. Finally, in the case of PCF, its main limitations are related with the loss of the beacon message (preventing the creation of CFP) and with the increase of foreshortening under high network loads. ACKNOWLEDGMENT This work was partially supported by CNPQ (485803/2011-9) and FCT (SFRH/BD/48301/2008). R EFERENCES [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [1] A. Willig, M. Kubisch, C. Hoene, and A. Wolisz, “Measurements of a wireless link in an industrial environment using an IEEE 802.11compliant physical layer,” IEEE Transactions on Industrial Electronics, vol. 49, no. 6, pp. 1265–1282, December 2002. [2] “IEEE Standard for Information Technology – Telecommunications and Information Exchange Between Systems Local and Metropolitan Area Networks – Specific Requirements Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications,” IEEE Std 802.11–2012 (Revision of IEEE Std 802.11–2007), pp. 1–2793, 2012. 90 [21] [22] D. Miorandi, E. Uhlemann, S. Vitturi, and A. Willig, “Guest Editorial: Special Section on Wireless Technologies in Factory and Industrial Automation, Part I,” IEEE Transactions on Industrial Informatics, vol. 3, no. 2, pp. 95–98, 2007. G. Cena, I. Bertolotti, A. Valenzano, and C. Zunino, “Evaluation of Response Times in Industrial WLANs,” IEEE Transactions on Industrial Informatics, vol. 3, no. 3, pp. 191–201, 2007. R. Moraes, P. Portugal, F. Vasques, and R. F. Custódio, “Assessment of the IEEE 802.11e EDCA Protocol Limitations when Dealing with RealTime Communication,” EURASIP Journal on Wireless Communications and Networking, 2010. N. Ramos, D. Panigrahi, and S. Dey, “Quality of service provisioning in 802.11e networks: challenges, approaches and future directions,” IEEE Network, vol. 19, no. 4, pp. 14–20, 2005. OPNET, “OPNET Technologies Inc.” OPNET Technologies Inc., February 2013. [Online]. Available: http://www.opnet.com “IEEE Standard for Information Technology - Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications: HighSpeed Physical Layer in the 5 GHz Band,” 1999. S. Kumar, N. Shende, C. R. Murthy, and A. Ayyagari, “Throughput Analysis of Primary and Secondary Networks in a Shared IEEE 802.11 System,” IEEE Transactions on Wireless Communications, vol. 12, no. 3, pp. 1006–1017, 2013. G. Tian and Y.-C. Tian, “Markov Modelling of the IEEE 802.11 DCF for Real-Time Applications with Periodic Traffic,” in 12th IEEE International Conference on High Performance Computing and Communications (HPCC), 2010, pp. 419–426. G. Tian, Y.-C. Tian, and C. Fidge, “Performance analysis of IEEE 802.11 DCF based WNCS networks,” in IEEE 35th Conference on Local Computer Networks (LCN), 2010, pp. 496–503. G. Bianchi, “Performance analysis of the IEEE 802.11 distributed coordination function,” IEEE Journal on Selected Areas in Communications, vol. 18, no. 3, pp. 535–547, 2000. B. Sikdar, “An Analytic Model for the Delay in IEEE 802.11 PCF MAC-Based Wireless Networks,” IEEE Transactions on Wireless Communications, vol. 6, no. 4, pp. 1542–1550, 2007. X. Chen, H. Zhai, X. Tian, and Y. Fang, “Supporting QoS in IEEE 802.11e wireless LANs,” IEEE Transactions on Wireless Communications, vol. 5, no. 8, pp. 2217–2227, August 2006. S. Datta and S. Das, “Performance analysis of real-time traffic in Wi-Fi networks: A Markov chain-based approach,” in IEEE Wireless Communications and Networking Conference, 2013, pp. 2102–2107. Y. Zhao, “Performance analysis for VoIP traffic with limited retransmissions in IEEE 802.11-based wireless networks,” in 8th IEEE International Wireless Communications and Mobile Computing Conference (IWCMC), 2012, pp. 962–967. P. Serrano, A. Banchs, P. Patras, and A. Azcorra, “Optimal Configuration of 802.11e EDCA for Real-Time and Data Traffic,” IEEE Transactions on Vehicular Technology, vol. 59, no. 5, pp. 2511–2528, 2010. M. Maadani, S. Motamedi, and M. Noshari, “Delay analysis and improvement of IEEE 802.11e-based Soft-Real-Time Wireless Industrial Networks: Using an open-loop Spatial Multiplexing scheme,” in International Symposium on Computer Networks and Distributed Systems (CNDS), 2011, pp. 17–22. G. Cena, L. Seno, A. Valenzano, and C. Zunino, “On the Performance of IEEE 802.11e Wireless Infrastructures for Soft-Real-Time Industrial Applications,” IEEE Transactions on Industrial Informatics, vol. 6, no. 3, pp. 425–437, 2010. A. Pastrav, E. Puschita, and T. Palade, “HCCA support in IEEE 802.11 networks QoS and QoE performance evaluation,” in 10th International Symposium on Electronics and Telecommunications (ISETC), 2012, pp. 139–142. C. Casetti, C. F. Chiasserini, M. Fiore, and M. Garetto, “Notes on the Inefficiency of 802.11e HCCA,” in 62nd IEEE Vehicular Technology Conference (VTC), vol. 4, 2005, pp. 2513–2517. R. Costa, P. Portugal, F. Vasques, and R. Moraes, “Comparing RT-WiFi and HCCA approaches to handle real-time traffic in open communication environments,” in IEEE 17th Conference on Emerging Technologies Factory Automation (ETFA), 2012, pp. 1–8. Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 Bayesian based selfish aware routing on Delay Tolerant Networks Ricardo Oliveira∗ , António Duarte Costa† , Maria João Nicolau‡ and Joaquim Macedo§ Centro Algoritmi, Universidade do Minho, 4710-057 Braga, Portugal [email protected]∗ , [email protected]† , [email protected]‡ , [email protected]§ Abstract—Delay Tolerant Networks (DTNs) aim to increase messages delivery ratio in environments where it is not possible to establish an end-to-end connection. Although the research of new DTN routing protocols has been gaining some relevance, those protocols usually assume that nodes in a network will collaborate. Nodes can behave selfishly, leading to the inappropriate use of resources, following up the malfunction of the network environment. This paper presents an extension based on bayesian game theory to existing routing protocols. Each node tries to figure others node’s type using the Naive Bayes classifier and behaves appropriately in order to achieve optimal results across the cooperative nodes. The regarded data through the exchangeable events between nodes can also be used to calculate each node’s selfishness, assigning the acceptance and respective delivery probability of a message to its destination. The filter extension improved the delivery ratio of the cooperative nodes on selfish networks. Index Terms—DTN; Selfish Routing Protocols; Selfish Aware Routing; Bayes Classifier. I. I NTRODUCTION Over the past decade, the Internet’s impact on the society has been increasing to the point of becoming an essential need for everyone’s day-a-day. With the growing availability of mobile devices, the costs to maintain and install faster and broader centralized networks are also increasing [1]. On the other hand, rural areas, developing countries, military networks, or even in underwater or interplanetary networks lack the network infrastructure needed to offer continuous connectivity [2]. The connection between devices is made through the TCP/IP protocol which heavily relies in end-to-end and low delay connections. Those conditions are not always met. The lack of connectivity, commonly referred as disruption, may occur due to intermittent connectivity, long or variable propagation delays, low data rates and high error rates [3]. The high demand and the increasing cost of network structures led to increased interest on Delay Tolerant Networks (DTNs). These networks main goal is to offer data communication where it was not possible before, but it also improves communication on centralized networks by diminishing the infrastructures data load. Originally called InterPlaNetary (IPN) Internet, DTNs aimed to improve the interplanetary communication; however, it was late discovered it is also adaptable to terrestrial networks. A Internet do futuro Fig. 1: Representation of the store-carry-forward technique on DTNs As referred in multiple sources, [2], [3], DTNs consist in overlays, known as bundle layer, which operates above any of the communication protocols. Its mode of operation allows nodes with different underlying protocols and technologies to connect with each other. The bundle layer takes advantage of ad-hoc connections between several devices exchanging message between nodes with the store-carry-forward technique. In this method, messages are recursively stored and forwarded on intermediary nodes until eventually reach their destination as illustrated in Figure 1. DTNs are a recent case of study and offer several opportunities for research such as more efficient routing protocols, security and fairness techniques, and data partitioning. Several sources, [2], [3], [4], group routing protocols in two large categories: replica based protocols, and knowledge based protocols. The former ones make several copies of existing messages and forwards them to reachable nodes, i.e. flooding protocols. Those protocols are resource demanding which may lead to several problems. On the other hand, with the knowledge based protocols the movement of the networked nodes is predictable or even known, hence the exchanging of data only to the best known path. To perform the routing, those protocols require some knowledge of the network topology. The majority of the routing protocols consider that every node in a network will behave as expected, but there are always deviations from users which will try to take advantage of the protocol and give priority on their messages. Those nodes can have a selfish or a malicious behavior, leading to the inappropriate use of energy, memory and network bandwidth, which gives an unfair advantage to the rest of the nodes [5], [6], [7]. This incorrect execution of those nodes translates as a 91 • • The usage-biased subdomains approach assigns a threshold for a given sender based on how many cumulative buffer space it used in the past. The penalty box approach identifies and blocks potential greedy node from the same domain until the buffer becomes uncongested. It assumes cooperative/trusted nodes can be verified and authenticated by assigned authorities. Trusted nodes do not change their behavior. Fig. 2: Representation of selfish nodes on DTNs B. Evolutionary forwarding games [7] forced drop-page of unimportant received messages for them or the broadcast of too many messages to the rest of the nodes. Those nodes will not relay as expected and will drastically reduce the delivery ratio of the messages. This behavior is exemplified in the Figure 2. This behavior can be controlled with incentive based routing protocols. In this paper, we propose a new extension based on bayesian games theory for existent routing protocols. No information is shared or considered between nodes other than the known interactions done between them. This paper is structured as follows. Section II discusses the several available routing protocols and techniques to increase the delivery ratio on selfish network environments. Section III describes relevant considerations used on the design of the proposed routing protocol as well as the proposed algorithm. Section IV discusses results and compares routing protocols. Section V concludes the paper and discusses future work. Defines the nodes forwarding policies according to the evolutionary game theory. Its main objective is to make a lower number of players with variable strategies not as successful as the rest of the nodes which maintain their strategy. The decision of the strategy to use with each node is made at the contact time. There are two modules responsible to calculate the utility of each one of the nodes: the activation control (AC), and the live time control (LTC). • • With the AC, during a local interaction between two nodes, each node can have two different strategies: to forward or not to forward its message to the destination. The utility of the nodes which have a forwarding strategy is calculated in conjunction with the estimation of energy cost of each message. Nodes with no forwarding strategy will not be considered. LTC prioritizes nodes which will keep the messages for the most of their time to live value. II. R ELATED W ORK Selfish nodes can be treated as a requirement, or as a deviation of the expected typical behavior of the routing protocol. There are several works which consider the presence of selfish nodes on DTNs [8], [9], [10], [11]. Nevertheless the following techniques and routing protocols are the most relevant for this work. A. Coarse-Grained priority classes [5] The goal of this technique is to minimize the effects of resource hogs originated by greedy nodes. The used approach only requires local information available within a DTN node. The buffer management is structured around the concept of domains, prioritizing domain members to use its buffer space. A principal is a node or a set of nodes from the same domain. All messages coming from other nodes are classified as coming from a different domain. If the buffer has enough free space it allocates the message, if not, it drops the message and then rejects them in order to free space. The technique was further expanded in order to diminish resources consumption of greedy nodes from the same domain. Three different methods were tested: • The equal subdomains approach counts the number of distinct senders, whose messages currently occupy the buffer and then assigns a separate dynamic subdomain for each of them with a threshold. 92 C. RELICS [12] This module assigns a rank to each one of the known nodes. It considers that every node behaves selfishly, trying to spend as less energy as possible but maintaining an acceptable delivery ratio. As a node relays more messages, its rank gets higher, and consequently, its messages priority increases on other nodes. The rank gets lower every time a node creates a new message. All the nodes involved in the relay of a message are rewarded. The more messages a node wants to deliver, the more messages it needs to relay, consequently, the more resources it needs to spend. In order to solve this issue, each node is allowed to set a delivery ratio threshold which is used to activate its power saving features. A node’s radio is enabled or disabled if its delivery ratio is higher than the threshold or not. D. Discussion The assumption of trusted information and trusting authorities is unrealistic under the consideration of heavily occupied and varying scenarios. We propose a new extension which only considers the node’s observable information about the networks taxonomy and behaves accordingly with its made classifications. Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 III. ROUTING P ROTOCOL The developed extension is based on game theory mixed with Naive Bayes classifiers. There is a two tier classification system. First, it classifies the scenario and then the nodes. In this section, we start by describing what kind of information can be considered as trustworthy, following the formulation of the bayesian game, the classifiers algorithm, and how buffers and connections are prioritized. A. Trustworthy Information Most knowledge based DTN routing protocols rely on shared information between nodes. On selfish environments, unless the information is given by a trustworthy node, that information should not be considered. With this proposed extension, we assume that the privacy and integrity of a message is assured by end-to-end encryption (by both the message’s creator and its destination). Since neighboring nodes may only have access to the source address and destination, they can not modify the content of the sent messages; otherwise the destination node can not validate the incoming message and will discard it. This assumes nodes must share its public keys on a previously made contact with other ones to be able to exchange messages with them. With these considerations, it is then possible to share some statistically events based on the history of other nodes with both messages’ creator and destination. Despite these limitations, there is a considerable number of variables and events which can effect our knowledge of the network’s cooperation. Considered outgoing events can be defined as: • the number of contacts made by both Host and its neighbor • the transmission of a Host’s own message/ACK • the retransmission of another node’s message/ACK • the direct delivery of a message/ACK from the Host to the neighbor • the number of aborted transmissions • the number of rejected receptions and their respective cause (the recipient was busy, the message is old, the message TTL (Time To Live) has expired, the recipient has low resources, denied based on a policy, and the recipient has no free space). Similar data can be gathered regarding the incoming events but, the Host needs to consider every previously events to calculate how believable that data is. A message and an ACK contain information about the node for whom the message creator sent the message to and the relay node who sent the message to the destination. The first is immediately before the transmission of the message. The second is in the ACK before being transmitted. A fully cooperative node can provide information about all its known nodes. Due to the size that this information can reach, the number of requests made in an interval of time must be limited. The information provided by undefined, cooperative or fully cooperative nodes is always taken into consideration. Information given by fully cooperative nodes A Internet do futuro will be more valuable than the information given by cooperative or undefined nodes. B. Bayesian games formulation Cooperation can be stimulated, and disruptive nodes can be avoided with the application of the Game-Theory. Game theoretic applications consider every interaction a player can make, being necessary to specify a set of rules for each one of the participants, as well as its outcome. There are a wide number of Game Theory types, and it is necessary to formulate them carefully for each case, but the common goal is to achieve fairness according to decision-makers actions. Those decision-makers, or players, are admittedly rational and noncooperative, that is, players perform actions which assure the best outcome for themselves. Those actions are essentially dependent of the available information from other players previous actions and its consequences. This set of information represents a player’s strategy. The player strategies describe actions made at each stage of the game or associate probabilities to already known actions based on previous actions. [7], [13], [14] Nodes are classified according to the player’s gathered information. Non-cooperative nodes can give erratic information about their moves; hence the concept of Bayesian games is the most indicated for this work. Bayesian games considers the existence of imperfect information. In this case, the imperfect information is related to the node behavior. In order to know if a node is cooperative or noncooperative, we must assign it a type depending of the regarded information. This type is given probabilistically by an additional player called Nature (Ω). The rest of the problem is formulated as a normal game. 1) Strategies: In this Bayesian routing algorithm, rational nodes try to maximize their rank, and therefore, maximize the number of relayed messages across the network. In order to do this, the host will need to choose one of the four different strategies at every contact: • S1: receive node Ni (Node i) message and send Host’s message; • S2: receive node Ni message and do not send Host’s message; • S3: do not receive Ni ’s message and send Host’s message; • S4: do not receive Ni ’s message and do not send Host’s message. 2) Delivery probability and classification assignment: The Nature (Ω) of the Hosts game with Ni is given by the computation of the Cooperation Probability for Ni . In the very first contact with Ni , this value is 0.5 by default, hence the undefined classification. This value will increase and decrease as the Host, and Ni classification is changed along the game. Given that the proposed protocol attempts to improve efficiency in routing messages on selfish networks, it is also necessary to take into consideration the quality of information provided by other network nodes and the information that each node can infer about the other. Thus, in this protocol a node only uses the network information provided by other nodes when they are considered fully cooperative. The delivery 93 probability and the node classification of the remaining nodes are deduced with the exchange of messages. Some actions contribute positively, whereas others have a negative effect on both probabilities and classifications. The information that contributes positively to the calculation of the delivery probability is deduced by: • The number of messages relayed or delivered; • The number of confirmation messages relayed or delivered. The information that negatively contributes to calculate the delivery probability is deduced by: • The number of aborted or denied messages; • The number of messages sent. However, the number of sent and rejected messages will only effect the nodes classification if they are higher than the threshold defined by the current scenario. The bayesian game utility function is based on the following formulations: P C newi = P C oldi − (P C oldi ) ∗ Pi ter (1) P C newi = P C oldi + (1 − P C oldi ) ∗ Pi ter (2) Where P C newi is the new cooperation predictability of node Ni and P C oldi is node Ni old cooperation predictability. Pi ter is a static value used to calculate new probabilities. The lower it is, the slower it converges into the correct type, but the more reliable it is. Ranges between 0.0 and 1.0. • Fully Cooperative nodes accept most of the sent messages, generally deliver messages to the Host and have a low drop probability. Their classification is attributed only after a long set of positive classifications. The classifiers take into consideration every type of event occurred in the exchange of data between nodes and consider the number of historic classifications. Routing protocols where each message receives a delivery confirmation benefit for having a more assertive node’s classification, but there is a bigger exchange of messages which decreases the buffer’s capability. D. Extended Buffer management The messages stored in the buffer commonly have a FIFO order, which leads to the removal of the older messages when a new one is received. However, in this extension, the messages order is affected by both protocol ordering algorithm and the owner classification. The Epidemic, Spray and Wait [16], and Prophet [17] routing protocols are common examples where messages are ordered in the same order as they are received. With our approach, messages are prioritized upwardly by a custom TTL assigned by the function: Cooperation Index ∗ M essage0 s T T L. (3) C. Classifiers E. Extended connection list As previously mentioned, the proposed algorithm uses two different Naive Bayes classifiers, more precisely, the Updateable Naive Bayes Classifier [15]. This specific version of the classifier enables the continuously change/increase of the classifiers training set, which makes the training set moldable with varying scenarios. The host performs an action depending on the type associated to each one of the known nodes. When a new node is discovered, it is assigned the undefined type. This classification is maintained for a previously defined number of outgoing and incoming events (e.g. When the number of outgoing events or the number of incoming events is bigger than 30). Thereafter, a node’s classification is recalculated at every new operation performed with a node. A node can be classified as malicious, noncooperative, undefined, cooperative and fully cooperative: • Malicious nodes are statically defined as identities who may drop, reject, or abort around 90% of the received messages, and broadcast all of it is messages. • Noncooperative nodes are statically defined as identities who may drop, reject, or abort around 75% of the received messages. • Undefined nodes are nodes which have around 50% of aborting messages. This could be caused by interference on the transmission of messages. • Cooperative nodes accept around 75% of the sent messages and generally deliver messages to the Host. The list of outgoing messages are commonly ordered according to the specific routing protocol mechanics. In this extension, the sender’s cooperation probability affects the message’s order. By default, messages are sent to every connection in the same order we have made a contact. This is the case of the Epidemic, and the Spray and Wait routing protocol. The list of connections is sorted with our extension, giving priority to the most cooperative routing protocols over the least. Prophet sorts the connection list by delivery probability. Our sorting algorithm multiplies the delivery probability with the assigned Cooperation Index. 94 IV. S IMULATION AND RESULTS We have implemented and tested the extension on the well known Prophet routing protocol. To test and evaluate this technique, we have carried several simulations with The ONE [18] simulator. The ONE is a complete, and commonly used framework to implement and evaluate DTN protocols. It is an open source Java solution, easily extensive, that supports mobility, event generation and message exchange. It includes DTN routing and application protocols and a basic notion of energy consumption. Visualization and analysis interfaces are also provided for importing and exporting mobility traces, events, and even entire messages. Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 Fig. 3: Delivery probability in a 12 hours simulation A. Scenario description The proposed extension was evaluated in a scenario with similar specifications with the default one. It has a total number of 150 nodes (both cooperative and selfish). While selfish nodes only accept the reception of packets created by other selfish nodes, dismissing and dropping the reception and forwarding from cooperative nodes, cooperative nodes send and receive packets from any node. The cooperative nodes use the proposed extension which classifies the nodes and decreases the priority in receiving and sending packets originally sent by selfish nodes. Messages from selfish also have a lower TTL. Both type of nodes moved randomly through the default paths of the The ONE’s default scenario. Each simulation was executed with 30 different seeds. For each simulation i, there are 150 − 15i cooperative nodes and 15i selfish nodes. The first simulation started with 150 cooperative nodes and 0 selfish nodes, whereas the last one had 0 cooperative nodes and 150 selfish. Each scenary simulated the interaction of nodes for 6, 12, and 18 hours. B. Evaluation The delivery probability refers to the probability of a message being delivered from a certain kind of nodes. Although selfish nodes always maintain a higher probability of delivery in comparison to the cooperative nodes, using the strategy proposed, the benefit of the selfish nodes is not as evident. However, it is apparent that the probability of delivering by cooperative nodes (with and without strategy) decreases with the increasing of the quantity of selfish nodes in the network. This is because the number of nodes ready to relay cooperative messages becomes lower. A Internet do futuro As can be seen, when the number of selfish nodes is 0, the probability of message delivery from this type of nodes is approximately 40%, while when the number of selfish nodes is about half of the total number of existing nodes in the network, the probability delivery is also about 20%. Since selfish nodes only receive packets from other selfish nodes, as the number of selfish nodes increase, the number of delivery messages tends to resemble the number of messages delivered by the cooperative nodes when the number of selfish nodes is 0. These results are expected because selfish nodes treat selfish said messages in the same way that we deal with cooperative messages from other nodes. Node type SE S CE C 6 hours 0.4 0.43 0.18 0.11 12 hours 0.5 0.52 0.22 0.11 18 hours 0.53 0.55 0.25 0.11 TABLE I: Delivery probabilities with and without extension filter Table I represents the delivery probabilities of 75 Selfish, and 75 Cooperative nodes with and without the filter extension. SE and S stand for Selfish with Extension nodes and Selfish nodes, whereas CE and C stand for Cooperative with Extension nodes and Cooperative nodes. As it can be easily noticed, Cooperative nodes in presence of Selfish nodes maintain a delivery probability of 11% as the time goes one, because they don’t have any way to distinguish or filter the good from the bad behaving nodes, whereas Cooperative nodes with the Filter Extension begin to distinguish the type nodes, and start to prioritize their messages accordingly. 95 V. D ISCUSSION Cooperative nodes which used the filter extension improved their delivery ratio, but the selfish nodes maintained their dominance. We expect to test the proposed filter on other routing protocols and to increase the aggressiveness of the extension so that selfish node’s delivery ratio starts decreasing. Furthermore, for constantly varying scenarios we plan to propose a new classifier which classifies a scenario according to previously similar history of events with similar delivery, contact and proximity ratios. At the beginning of the simulation, the set of scenario classifiers is empty, but, every n minutes, the current scenario information is recorded as well as the nodes classifications, making a new node’s training set associated with the newly created scenario training set. After the creation of a training set, when the next scenario starts, it uses the previously used classifier for 5 minutes (static defined variable), and then it finds the best match of the scenario it’s associated node’s training set. The finding would be made based on the information saved in the scenario’s training phase. A PPENDIX A N OTATION Follows the notation and the meaning of the symbols used through the paper. A. Players • • Host : The node which is choosing the strategy. Ni : The i node contacted in the network. B. Bayesian Game symbols • • • • • • • Ω: Nature of the game. N payof fi j: Ni s payoff for doing j strategy. Hpayof fj : Hosts payoff for doing j strategy. P C defi : Ni s default cooperation predictability. P C newi : Ni s new cooperation predictability. P C oldi : Ni s old cooperation predictability. Pi ter: Static value used to calculate new probabilities. The lower it is, the slower it converges into the correct type, but the more reliable it is. Ranges between 0.0 and 1.0. [3] F. Warthman, V. Cerf, S. Burleigh, A. Hooke, L. Torgerson, R. Durst, K. Scott, K. Fall, H. Weiss, D.-t. N. Architecture, and et al., “Delaytolerant networks ( dtns ),” Networks, no. March, 2003. [4] S. Ali, J. Qadir, and A. Baig, “Routing protocols in delay tolerant networks – a survey,” Knowledge Creation Diffusion Utilization, pp. 70–75, 2010. [5] J. Solis, N. Asokan, K. Kostiainen, P. Ginzboorg, and J. Ott, “Controlling resource hogs in mobile delay-tolerant networks,” Computer Communications, vol. 33, no. 1, pp. 2–10, 2010. [6] Q. Li, S. Zhu, and G. Cao, “Routing in socially selfish delay tolerant networks,” 2010 Proceedings IEEE INFOCOM, pp. 1–9, 2010. [7] R. El-azouzi, F. D. Pellegrini, and V. Kamble, Evolutionary forwarding games in Delay Tolerant Networks. IEEE, 2010, pp. 76–84. [8] A. J. Mashhadi, S. B. Mokhtar, and L. Capra, “Habit: Leveraging human mobility and social network for efficient content dissemination in delay tolerant networks,” Building, pp. 1–6, 2009. [9] L. Yin, H.-m. Lu, Y.-d. Cao, and J.-m. Gao, “Cooperation in delay tolerant networks,” Signal Processing Systems ICSPS 2010 2nd International Conference on, vol. 1, p. V1–202, 2010. [10] U. Shevade and Y. Zhang, “Incentive-aware routing in dtns,” 2008 IEEE International Conference on Network Protocols, pp. 238–247, 2008. [11] R. L. R. Lu, X. L. X. Lin, H. Z. H. Zhu, X. S. X. Shen, and B. Preiss, “Pi: A practical incentive protocol for delay tolerant networks,” pp. 1483– 1493, 2010. [12] Y. S. Uddin, B. Godfrey, and T. Abdelzaher, “Relics : In-network realization of incentives to combat selfishness in dtns,” 2010 18th IEEE International Conference on Network Protocols ICNP, pp. 203–212, 2010. [13] S. Keshav, “Mathematical foundations of computer networking,” Society, pp. 177–202, 2005. [14] S. Heap and Y. Varoufakis, Game Theory: A Critical Introduction. Routledge, 1995. [15] G. H. John and P. Langley, “Estimating continuous distributions in bayesian classifiers,” in Eleventh Conference on Uncertainty in Artificial Intelligence. San Mateo: Morgan Kaufmann, 1995, pp. 338–345. [16] T. Spyropoulos, K. Psounis, and C. S. Raghavendra, “Spray and wait: an efficient routing scheme for intermittently connected mobile networks,” in Proceedings of the 2005 ACM SIGCOMM workshop on Delaytolerant networking, ser. WDTN ’05. ACM, 2005, pp. 252–259. [17] A. Lindgren, A. Doria, and O. Schelén, “Probabilistic routing in intermittently connected networks,” SIGMOBILE Mob. Comput. Commun. Rev., vol. 7, no. 3, pp. 19–20, Jul. 2003. [18] A. Keränen, J. Ott, and T. Kärkkäinen, “The ONE simulator for DTN protocol evaluation,” Proceedings of the Second International ICST Conference on Simulation Tools and Techniques, 2009. ACKNOWLEDGMENT This work is partially funded by FEDER Funds through the Programa Operacional Fatores de Competitividade – COMPETE and by National Funds through the FCT - Fundação para a Ciência e a Tecnologia (Portuguese Foundation for Science and Technology) within project FCOMP-01-0124FEDER-022674 R EFERENCES [1] G. Trecarichi, V. Rizzi, L. Vaccari, M. Marchese, and P. Besana, “Openknowledge at work: exploring centralized and decentralized information gathering in emergency contexts,” Crisis, no. January, 2009. [2] V. Venkataraman, H. B. Acharya, H. Shah, and S. Lam, “Delay tolerant networking - a tutorial,” SciencesNew York, 2009. 96 Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 Recolha e Análise de Dados de Contactos Físicos e Sociais numa Rede Tolerante a Atrasos João Antunes*, António Costa+, Joaquim Macedo^ Centro Algoritmi Universidade do Minho Braga, Portugal 4710-057 * Email: [email protected] + Email: [email protected] ^ Email: [email protected] Resumo—As redes tolerantes a atrasos surgiram com o propósito de abordar o problema de comunicação em redes onde a ligação é intermitente e feita através de contactos oportunistas. Um caso particular destas redes são aquelas em que os nós são dispositivos transportados por pessoas, as Pocket Switch Networks. A relação social entre os nós tem sido recentemente explorada na decisão de encaminhamento neste tipo de redes. Neste trabalho, foi concebido um sistema de recolha de dados dos contactos físicos e sociais numa RTA com o objetivo de avaliar uma nova métrica social a ser usada na decisão de encaminhamento. Palavras-chave— Redes Tolerantes a Atrasos, Sistema de Recolha, Datasets, Pocket Switch Networks, Redes Sociais. I. INTRODUÇÃO O enorme sucesso da Internet nas últimas três décadas deve-se ao uso de protocolos denominados TCP/IP, pois estes garantem a flexibilidade, eficiência e robustez, que lhe permitem suportar diversas aplicações em diferentes cenários. No entanto, em cenários com longos atrasos e conexões intermitentes, os protocolos TCP/IP não funcionam e é necessário a criação de novos protocolos. Redes com estas características específicas são denominadas Redes Tolerantes a Atrasos (RTAs), e um dos seus principais desafios é o encaminhamento, pois é necessário determinar rotas sem o conhecimento da existência de um caminho fim-a-fim[1]. Para contornar os problemas de atrasos longos e conexões intermitentes, as RTAs usam técnicas de troca de mensagens e armazenamento de dados. Quando uma mensagem precisa de ser enviada, ela é armazenada e encaminhada nó a nó desde a origem até o destino, ou seja, são redes do tipo store-andforward: a mensagem é recebida integralmente e armazenada, para depois ser enviada ao próximo nó, que pode ou não ser o nó destino[2]. Um dos tipos de RTAs mais usuais são as chamadas Pocket Switched Networks (PSNs), que consistem em contactos oportunistas entre os nós da rede. Estes nós encontram-se em constante movimento e nem sempre estão conectados à rede, Este trabalho é financiado por Fundos FEDER através do Programa Operacional Fatores de Competitividade – COMPETE e por Fundos Nacionais através da FCT – Fundação para a Ciência e Tecnologia no âmbito do Projeto: FCOMP-01-0124-FEDER-022674 . A Internet do futuro visto serem controlados diretamente por seres humanos, através de smartphones, computadores portáteis, etc.[3]. Tendo em conta que os nós das redes dependem de fatores humanos, os protocolos de encaminhamento para este tipo de redes podem basear-se em dois campos: o campo físico, que consiste no histórico de contactos1 entre os nós da rede; e o campo social que consiste na relação social entre os mesmos. Existem atualmente alguns estudos sobre a relação entre o grafo social e o grafo de contactos físicos[4],[5], no entanto, o propósito final deste trabalho científico é verificar a validade da inclusão na decisão de encaminhamento de uma métrica que relaciona o campo social e o histórico de contactos físicos. Para obter a relação social entre os nós, podemos utilizar as redes sociais existentes na Internet, como o Facebook, o Twitter ou o MySpace. Estas redes são utilizadas regularmente por milhões de pessoas em todo o mundo e permitem obter dados da vida social de cada um. Este trabalho propõe um sistema baseado no conceito Cliente-Servidor para criação de uma RTA através da qual se pretende obter os dados do histórico de contactos entre os nós e a relação social entre eles, para posterior construção e análise de um grafo que relacione estes dados. Para isso, o trabalho irá consistir em três partes distintas: uma aplicação em Android instalada em cada nó da RTA, responsável pela obtenção do histórico dos contactos físicos entre os nós e de um perfil social de cada nó enviando a informação obtida para o servidor; um servidor responsável por receber dados dos nós da rede e pela construção de um grafo que relacione o histórico de contactos entre os nós e a relação social entre eles; um sistema de análise do grafo construído no servidor que permita obter resultados acerca do relacionamento entre o histórico de contactos e os dados sociais entre os nós numa RTA. 1 Um contacto é o encontro entre dois nós da rede, ou seja, quando um nó se encontra ao alcance de outro nó de modo a que estes possam comunicar 97 II. ESTADO DA ARTE III. SISTEMA DE RECOLHA E ANÁLISE DE DADOS Podemos dividir os protocolos em RTAs em dois tipos distintos: protocolos baseados em redes onde existem infraestruturas e protocolos baseados em redes puramente móveis. Este último tipo de redes pode também ser dividido em dois tipos: protocolos dissemination-based e context-based. A diferença entre estes dois tipos consiste na falta de informação de contexto no encaminhamento de mensagens entre os nós da rede nos protocolos dissemination-based, enquanto que os protocolos context-based baseiam a decisão de encaminhamento de dados numa informação de contexto que pode incluir dados relativos ao histórico de contactos entre os nós ou da relação social entre eles, ou mesmo uma junção entre estes dois campos. Nos protocolos dissemination-based podemos incluir o Epidemic Routing[6]. Este protocolo consiste na distribuição das mensagens pela rede de uma forma epidémica, isto é, a cada novo contato entre dois nós da rede existe uma troca de informações entre os nós de modo a que cada nó receba as mensagens que ainda não tenha guardado. Desta forma, as mensagens são rapidamente distribuídas entre duas porções de rede que estejam próximas uma da outra contando para isso com a mobilidade dos nós. Este protocolo garante uma probabilidade elevada na entrega de mensagens, contudo, sobrecarrega a rede devido à falta de informação de contexto e consome demasiados recursos aos nós da rede. Para contrariar a sobrecarga da rede e dos nós, posteriores versões deste protocolo incluíram um número limite de saltos e de cópias das mensagens presentes na rede. Dentro dos protocolos context-based incluem-se o PROPHET[7], o SimBet[8], o FairRouting[9], o BubbleRap[10] e o PeopleRank[11]. Cada um destes protocolos utiliza uma informação de contexto na decisão de encaminhamento de mensagens entre os nós da rede, sendo que a diferença entre eles está na natureza dessa informação. O PROPHET baseia-se unicamente no histórico de contactos entre os nós e na transitividade na decisão de encaminhamento, isto é, se dois nós se encontrarem regularmente, têm maior probabilidade de entregar uma mensagem um ao outro do que dois nós que raramente se encontrem. O SimBet inclui na sua informação de contexto a centralidade do nó da rede, a similaridade dos nós e a força das ligações entre eles. A informação de contexto no FairRouting inclui a força de interação e o grau de assortativeness (pessoas com os mesmos interesses tendem a encontrar-se mais vezes). Já o BubbleRap utiliza a divisão dos nós em comunidades e a centralidade de cada um deles na decisão de encaminhamento. Por fim, o PeopleRank utiliza a relação social entre os nós da rede como informação de contexto. Em relação á comunicação entre os nós existe um consenso em torno de um protocolo experimental que é usado na troca de mensagens numa rede RTA, o Bundle Protocol RFC 5050[12] que pode ser usado como suporte em todos os protocolos de encaminhamento. Este protocolo foi elaborado pelo IRTF´s Delay Tolerant Networking Research Group (DTNRG), e divide blocos de dados em pacotes, transmitindo-os, usando um mecanismo de store-and-forward. No sistema desenvolvido foi necessário definir algumas questões como a forma de comunicação entre os nós da rede, o tipo de base de dados utilizada pelo servidor para construir o grafo e a forma de criar o perfil social de cada nó. 98 A. Comunicação entre os nós da rede No que concerne a comunicação entre os nós da rede, foram estudadas algumas hipóteses: Bluetooth, infravermelhos, redes ad-hoc Wi-Fi, redes Wi-Fi e redes celulares. Destas cinco possíveis formas de comunicação, três delas foram automaticamente excluídas por razões distintas. Os infravermelhos foram rejeitados por serem uma tecnologia em decadência, visto já não existirem na maioria dos dispositivos tecnológicos. As redes celulares GSM ou UMTS por terem um custo associado na troca de mensagens não foram consideradas. E por fim, as redes Wi-Fi foram excluídas devido à necessidade de usarem pontos de acesso, o que não permite a possibilidade de comunicação a qualquer momento, um aspeto crucial na rede criada. Restam duas tecnologias: o Bluetooth e as redes ad-hoc WiFi. A escolha recaiu sobre o Bluetooth, visto que esta tecnologia requer um consumo de energia menor que a utilização do Wi-Fi[13] em dispositivos móveis. Por outro lado a tecnologia ad-hoc Wi-Fi só está acessível em versões mais recentes do sistema operativo Android. Independentemente da tecnologia utilizada como forma de comunicação entre os nós deve ser possível retirar informação acerca de cada contacto entre dois nós. Todos os dados interessantes passíveis de serem retirados de um contato físico entre dois nós são: a identificação dos sujeitos (endereço MAC); a duração do contacto; o instante de início do contacto; a localização geográfica de onde ocorreu o contacto; e o nível de energia e de memória de cada nó; Depois de analisados estes pontos, concluiu-se que alguns campos poderiam ser dispensados. Entre eles, a localização geográfica de onde ocorreu o contacto, que é desnecessário pois requer o uso de tecnologias que iriam consumir mais recursos aos nós da rede. Também, o nível de energia e de memória de cada nó considera-se dispensável, pois não acrescenta informação quanto à força da ligação entre os nós, sendo que estes valores só são importantes quando tratamos de RTA com nós egoístas. B. Registo do Histórico de Interações Para o desenvolvimento deste projeto, é necessária a construção de uma base de dados pelo servidor de forma a guardar os dados de contactos físicos entre os nós da rede e o perfil social desses mesmos nós. Para esse efeito, foi necessário escolher um tipo de base de dados, sendo que essa escolha poderia recorrer sobre uma base de dados relacional (SQL) ou uma base de dados não relacional (NoSQL). Visto que, para este projeto, o que se pretende guardar são dados obtidos de uma rede, o tipo de base de dados mais indicado seria uma base de dados não relacional, ou seja, a base de dados NoSQL. Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 O termo NoSQL (Not only SQL) refere-se a uma classe de base de dados não relacional, acabando, desta forma, com o uso exclusivo de bases de dados relacionais. A principal razão do aparecimento deste tipo de base de dados deve-se à necessidade crescente de obter maior escalabilidade no armazenamento de dados. As bases de dados relacionais também promovem escalabilidade, no entanto, quanto maior for o tamanho dos dados, mais custosa se torna a escalabilidade, seja pelo custo de novas máquinas ou pela manutenção de especialistas no local onde se encontram as bases de dados. Por esta razão, foram criadas as bases de dados não relacionais NoSQL, que permitem uma escalabilidade mais barata e menos trabalhosa, visto não necessitarem de máquinas muito poderosas e a sua manutenção ser simples, permitindo assim reduzir o número de profissionais necessários. Existem alguns tipos de bases de dados não relacionais: bases de dados chave/valor, bases de dados orientados a documentos e bases de dados de grafos. Enquanto o primeiro e segundo tipo não são indicados para usar com grafos, o último tipo de bases de dados é bastante compatível com o nosso caso já que estamos a tratar de redes que, por sua vez, podem ser representadas por grafos[14]. A ideia deste modelo é representar os dados como grafos dirigidos. Este tipo de modelo funciona melhor quando se pretende dar mais relevância à conectividade ou à topologia dos dados que aos dados propriamente ditos. É constituído por três elementos básicos: os nós (vértices do grafo), as relações (as arestas) e as propriedades dos nós e das relações. Algumas das bases de dados que utilizam o modelo de grafos são: Neo4j, Infinite Graph, InforGrid, HyperGraphDB, etc. No âmbito deste projeto, vai ser utilizada a base de dados Neo4j que está desenhada para ser usada na linguagem de programação Java. Esta base de dados foi criada pela Neo Technology e o seu uso é bastante fácil e intuitivo, proporcionando uma forma eficaz de representar bases de dados por grafos e dando a possibilidade de atribuir, de uma forma simples, atributos tanto aos nós do grafo, como às ligações entre eles. C. Obtenção do Perfil Social Uma premissa para a realização deste trabalho foi recolher o perfil social de um grupo de pessoas (os utilizadores da aplicação) para posteriormente construir um grafo social. De forma a recolher estes dados, decidiu-se utilizar as redes sociais, visto estarem muito em voga na atualidade. Entre elas, as mais conhecidas e as mais utilizadas são: o Facebook, o Twitter, o MySpace e o Linkedin. O Facebook é a rede social online mais utilizada no mundo inteiro, por ser gratuita, de interesse generalizado e simples de usar. Nesta rede social, cada utilizador tem um perfil com a sua informação pessoal, lista de interesses, fotos e uma lista de amigos. Os utilizadores podem trocar mensagens privadas e públicas entre si. Cada pessoa tem um mural onde os seus amigos podem colocar publicações (frases, fotografias, vídeos, etc.) e que pode ser acedido por todos os utilizadores da rede, ou não, dependendo da privacidade definida pelo próprio utilizador. Este tem, também, a possibilidade de criar ou aderir a grupos restritos, identificar amigos em publicações ou fotos, criar publicações no seu próprio mural e “gostar” de A Internet do futuro publicações. A página principal do Facebook é o feed de notícias onde o utilizador pode ver a atividade recente dos seus amigos e notícias dos seus grupos e das páginas de que gosta. Como já foi referido antes, retirou-se o perfil social dos nós da rede através do Facebook, visto ser a rede social online com mais utilizadores [15]. Como a aplicação está feita em programação Android, utilizou-se a ferramenta Facebook SDK integrada no eclipse. Esta ferramenta permite aceder de uma forma simples ao Graph API do Facebook através do qual podemos ler e escrever dados. Todos os dados relevantes passíveis de serem retirados do Facebook são: identificação do utilizador (nome e id); lista de amigos; lista de interesses; lista de familiares; localização; número de identificações em fotos/posts de amigos; número de feeds/mensagens trocadas com amigos. Tendo em conta que o Facebook SDK tem algumas limitações na recolha de dados, e visto que se pretende preservar a máxima privacidade possível do utilizador, decidiuse prescindir de obter os dois últimos campos, ou seja, o número de identificações em fotos/posts de amigos e o número de feeds/mensagens trocadas com amigos. IV. ARQUITETURA O sistema construído para a recolha de dados e construção de grafos sociais e de contactos físicos numa rede RTA, dividese em dois componentes: os nós da rede e o servidor. Os nós da rede serão responsáveis por recolher os dados de contactos físicos entre eles e de obter o seu perfil social, enviando a informação obtida para o servidor. O servidor é responsável por receber os dados dos nós e construir um grafo que relacione o histórico de contactos entre os nós e o seu perfil social. Os nós da rede serão simulados por utilizadores que terão instalado nos seus dispositivos móveis uma aplicação com as seguintes responsabilidades: definir um protocolo de comunicação para verificar a existência de contactos entre utilizadores; guardar em cache o histórico de contactos até obter acesso ao servidor; enviar o histórico de contactos ao servidor; obter o perfil social do utilizador; enviar o perfil social do utilizador para o servidor; e oferecer segurança na troca de dados. O servidor é uma aplicação desenvolvida em Java que deve estar registada na internet para poder comunicar com os clientes. O servidor tem a responsabilidade de: permitir a ligação dos nós da rede através da internet; receber o perfil social e o histórico de contactos dos nós da rede; permitir adicionar e remover novos nós; construir um grafo que relacione o histórico de contactos entre os nós e a sua relação social. Na figura 1, podemos ver a arquitetura global do sistema. Na figura 2 podemos observar os módulos da aplicação e as interações entre estes. A. Nó da rede Para a realização deste projeto é necessário obter autorização de um grupo de pessoas para ter acesso ao seu perfil social e ao histórico dos contactos físicos existentes entre eles. Para conseguir essa autorização, decidiu-se criar um incentivo para que as pessoas aceitassem entregar os seus 99 dados - o acesso gratuito a uma aplicação denominada de SocialConnector. A aplicação está disponível para telemóveis com o sistema operativo Android e funcionará como um nó da rede RTA. Depois de um estudo que visou a escolha de uma aplicação que fizesse com que várias pessoas instalassem a aplicação, decidiu-se que a SocialConnector iria consistir no seguinte: uma aplicação que nos mostra os interesses das pessoas que estão ao nosso lado, e que tenham a aplicação instalada, em qualquer local onde nos encontremos. A aplicação funciona à base de avisos, ou seja, quando descobrir alguém na mesma zona que tenha a aplicação instalada, notifica o utilizador da descoberta dessa pessoa, bem como do seu perfil social. Os interesses dos utilizadores são obtidos através do Facebook e são atualizados regularmente. A comunicação entre os utilizadores será feita por Bluetooth. Estando ligada a aplicação pode funcionar em três modos diferentes: modo normal, modo egoísta ou modo social. No modo normal, a aplicação tanto está à procura de novos dispositivos para receber os seus perfis, como torna o seu dispositivo visível disponibilizando-se para entregar o seu perfil ao nó encontrado. No modo egoísta, a aplicação só procura novos utilizadores para obtenção de novos perfis não se tornando visível para os outros nós e não permitindo, assim, enviar o seu perfil a novos utilizadores. No modo social, a aplicação torna-se visível para os outros nós da rede, enviando para estes o seu perfil, mas não procura novos dispositivos para receber perfis. A atratividade desta aplicação encontra-se no facto de ajudar as pessoas a socializar, pois permite aos utilizadores poderem descobrir os interesses de uma pessoa desconhecida, facilitando, assim, o início de uma conversa casual e, possivelmente, uma nova amizade. A aplicação SocialConnector está dividida em 6 módulos distintos, cada um com a sua responsabilidade: • Ligação ao Facebook: responsável por aceder à rede social e retirar os dados desejados, criando o perfil social. • Gestor de perfil: responsável por gerir o perfil do utilizador, ou seja, definir o que o utilizador pretende partilhar com os outros. Ao recolher os dados do Facebook, o utilizador deverá criar um perfil social onde irá constar a sua informação retirada do Facebook para partilhar com os outros utilizadores. Devido a questões de privacidade, na aplicação deverá ser permitido ao utilizador escolher que dados do seu perfil pretende partilhar com os outros dispositivos, sendo possível esconder alguns dos seus interesses ou dos seus amigos. Os dados que constam no perfil social são: o nome, a idade, a lista de interesses, a lista de amigos e a localização. • Comunicação entre nós: responsável por definir e estabelecer o protocolo de comunicação, aquando do encontro entre dois nós. A aplicação deve permitir procurar novos dispositivos, ao mesmo tempo que permite ao nó ficar visível para outros. A comunicação funciona da seguinte forma: se um nó A encontrar um nó B, ou vice-versa, depois de verificar se o nó B tem a aplicação instalada e a funcionar no modo normal ou social, o nó A pede uma parte do perfil do nó B, com o seu nome, idade e localização. Depois de receber esses primeiros dados, o nó B deve decidir se pretende pedir o resto do perfil social, e caso o pretenda deve pedi-lo ao nó B. O nó B deve dar Figura 1 - Arquitetura do sistema permissão para enviar o resto do perfil social. Caso o utilizador B permita o envio do perfil, é enviado para o nó A a totalidade do seu perfil: a sua foto, a sua lista de interesses e a lista de amigos (Figura 3). Os utilizadores devem guardar todos os perfis acedidos recentemente até ter acesso ao servidor. Aquando de um novo encontro, e depois da partilha de perfis entre si, os nós devem comunicar e, caso pretendam, devem enviar a lista de perfis encontrada recentemente, desta forma, contrariar o limite de alcance do Bluetooth, utilizando a transitividade na partilha de perfis. • Armazenamento de dados: responsável por guardar temporariamente o histórico de contactos do nó e permanentemente o perfil social do utilizador. • Segurança e privacidade: responsável por garantir a segurança na partilha de informação entre utilizadores e a privacidade dos mesmos. Para isso, é usada uma ligação RFCOMM segura com registo do serviço Bluetooth, sendo todos os identificadores sumariados com uma função de hash na comunicação entre nós e na ligação com o servidor. • Ligação ao servidor: responsável por estabelecer a ligação ao servidor para o envio de dados. Cada vez que um nó acede à aplicação, verifica se tem acesso à internet, e, se tal for o caso, envia o seu histórico de contactos para o servidor, apagando-os da memória local. Na primeira ligação e quando houver uma atualização do perfil, o nó também envia uma mensagem para o servidor com o seu perfil social. Figura 2 - Esquema SocialConnector 100 Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 TABELA 1. DATASET SIGCOMM09 Número de participantes 76 Duração da experiência 5 Dias Total de interesses 711 Encontros entre os nós 285879 Média contactos por nó ≃ 3762 Média interesses por nó ≃ 12 Média amizades por nó ≃4 definir um mecanismo de segurança que permita garantir a privacidade dos utilizadores na apresentação dos dados, isto é, não deve mostrar o nome do utilizador nem o seu perfil social, mas sim identificar esses dados por identificadores já sumariados nos clientes. V. DISCUSSÃO E AVALIAÇÃO DO SISTEMA Figura 3 - Comunicação entre dois nós B. Servidor O servidor irá ser desenvolvido em Java e está dividido em cinco módulos: • Registo na internet: responsável por colocar o servidor disponível na internet, de modo a que esteja acessível aos nós da rede. • Comunicação com os nós: responsável por definir um protocolo de comunicação com os nós da rede, de modo a receber periodicamente o histórico de contactos e o perfil social de cada nó. O servidor deve receber do nó uma mensagem por cada contacto que este tenha, e que deve ter os seguintes campos: identificação do sujeito encontrado (endereço MAC),duração do contacto e instante de início do contacto. • Processamento dos dados obtidos: responsável pelo processamento das mensagens recebidas dos nós da rede, de modo a armazenar a informação num grafo NoSQL. • Criação do grafo: responsável por guardar permanentemente os dados obtidos num grafo numa base de dados NoSQL. Com os valores obtidos do histórico de contactos e dos perfis sociais, o servidor deve construir um grafo. Esse grafo, deve representar os nós e as ligações entre estes, relacionando os contactos físicos com o perfil social de cada utilizador. Uma ligação entre dois nós do grafo deve parecer-se com o da Figura 4. O servidor deverá, também, guardar para cada nó a seguinte informação: número total de contactos com todos os outros nós, duração total dos contactos com todos os outros nós, lista de amigos e lista de interesses. • Segurança e privacidade: responsável por garantir a segurança na partilha de informação com os nós da rede e por A Internet do futuro O objetivo inicial era recolher efetivamente os dados, instalando a aplicação SocialConnector num conjunto de dispositivos que seriam utilizados por um grupo de pessoas previamente escolhidas. Nesta fase de desenvolvimento do trabalho, não foi ainda possível coletar dados reais utilizando o SocialConnector, tendo-se recorrido a datasets já existentes para avaliar o sistema. Utilizando o crawdad, foi encontrado um dataset que permite avaliar o nosso sistema, o dataset sigcomm2009. Este contém dados coletados de uma aplicação desenvolvida para telemóveis com o sistema operativo Windows Phone: a MobiClique[4]. A aplicação foi usada por 76 pessoas durante os diasda conferência SIGCOMM, em 2009, em Barcelona. O dataset inclui os dados de proximidade obtidos através de Bluetooth, criação e disseminação de mensagens oportunistas e os perfis sociais, incluindo a lista de amigos e de interesses dos participantes. Foi pedido aos participantes que utilizassem um smartphone que lhes era fornecido com a aplicação MobiClique, e que o utilizassem durante os dois dias da experiência. Os dados sobre os contactos físicos e sociais foram guardados na memória dos próprios dispositivos. Na tabela 1, podemos verificar os valores globais acerca dos encontros e dos perfis sociais obtidos nesta experiência e que servirão para ser colocados no servidor desenvolvido de forma Figura 4 - Exemplo de uma ligação do grafo 101 a serem analisados através do nosso programa de análise de dados. O objetivo final deste trabalho é obter a relação entre o histórico de contactos físicos e a relação social dos nós numa rede RTA. Com esse propósito, foram definidas duas métricas: o [ ] ;eo coeficiente social entre o nó A e o nó B coeficiente dos contactos físicos entre o nó A e o nó B [ ]. O coeficiente social é calculado da seguinte forma: (1) Nesta métrica estão incluídos o coeficiente de amizade [ ] e o coeficiente de interesses [ ]. O primeiro indica a razão entre o número de amigos em comum entre A e B, sobre o número total de amigos que os dois têm em conjunto. O segundo refere-se à razão entre o número de interesses em comum entre A e B, sobre o número total de interesses que os dois têm em conjunto. σ e β são valores que, somados, têm que dar 1, e que se referem à importância que se pretende dar a cada coeficiente. O coeficiente de contactos físicos é calculado da seguinte forma: [ ] uma Pocket Switched Network. Para obter essa relação, foi construído um sistema de recolha e análise de dados de contactos físicos e sociais numa rede tolerante a atrasos que consiste num esquema Cliente-Servidor, onde o cliente é uma aplicação desenvolvida em Android, responsável por recolher os dados relativos aos contactos físicos e ao seu perfil social e enviá-los para o servidor. O servidor é uma aplicação em Java que recebe os dados dos clientes e organiza-os num grafo onde relaciona o campo social com o campo do histórico de contactos. Depois de obtidos os dados, procede-se à análise dos mesmos, através de uma métrica que relaciona os dois campos já referidos: social e físico. Sendo que este trabalho ainda se encontra em desenvolvimento, não foram obtidos os testes para verificar a validade desta métrica. No entanto, no final, pretende-se que o teste seja feito, utilizando para isso um dataset já existente: o dataset SIGCOMM09. Caso seja validada no teste, a métrica calculada pode ser usada futuramente como uma métrica numa decisão de encaminhamento para um protocolo que use informação de contexto social numa RTA. REFERÊNCIAS [1] (2) Em relação ao coeficiente dos contatos físicos, este consiste, igualmente, em dois coeficientes: o coeficiente do [ ] ; e o coeficiente da número de contactos físicos [ ]. O duração desses mesmos contactos físicos primeiro alude à razão entre o número de contactos entre os nós A e B na rede, sobre o número total de contactos com todos os nós da rede que os dois têm em conjunto. O segundo aponta a razão entre a duração total dos contactos entre A e B, sobre a duração total dos contactos com todos os nós da rede que os dois têm em conjunto. e são valores que, somados, têm que dar 1 e que se referem à importância que se pretende [ ] é a constante de dar a cada coeficiente. envelhecimento; e é a média de tempo decorrido entre os contactos dos nós A e B. Por fim, para relacionar os dois coeficientes fazemos a razão entre eles e retiramos as devidas ilações. [ ] (3) [2] [3] [4] [5] [6] [7] [8] [9] [10] { (4) Já foram realizados os primeiros testes experimentais com estas métricas, contudo, visto tratar-se de um trabalho ainda em desenvolvimento, estes não foram devidamente validados, o que inviabiliza a apresentação de resultados. VI. CONCLUSÃO O principal objetivo deste trabalho é verificar a existência de uma relação entre o histórico de contactos físicos e a relação social entre os nós de uma rede RTA, mais concretamente de 102 [11] [12] [13] [14] [15] K. Fall, “A delay-tolerant network architecture for challenged internets,” Proc. 2003 Conf. Appl. Technol. Archit. Protoc. Comput. Commun. SIGCOMM ’03, p. 27, 2003. L. Fratta, M. Gerla, and L. Kleinrock, “The flow deviation method: An approach to store‐and‐forward communication network design,” Networks, 1973. P. Hui, A. Chaintreau, J. Scott, R. Gass, J. Crowcroft, and C. Diot, “Pocket switched networks and human mobility in conference environments,” Proceeding 2005 ACM SIGCOMM Work. Delaytolerant Netw. - WDTN ’05, pp. 244–251, 2005. A. Pietiläinen, E. Oliver, and J. LeBrun, “MobiClique: middleware for mobile social networking,” 2nd ACM Work. Online Soc. networks, pp. 49–54, 2009. A. Pietilänen and C. Diot, “Dissemination in opportunistic social networks: the role of temporal communities,” MobiHoc ’12 Proc. Thirteen. ACM Int. Symp. Mob. Ad Hoc Netw. Comput., 2012. A. Vahdat and D. Becker, “Epidemic routing for partially connected ad hoc networks,” 2000. A. Lindgren, A. Doria, and O. Schelén, “Probabilistic routing in intermittently connected networks,” ACM SIGMOBILE Mob. Comput. Commun. Rev., vol. 7, no. 3, p. 19, Jul. 2003. E. M. Daly and M. Haahr, “Social Network Analysis for Information Flow in Disconnected Delay-Tolerant MANETs,” IEEE Trans. Mob. Comput., vol. 8, no. 5, pp. 606–621, May 2009. J. M. Pujol, A. Lopez Toledo, and P. Rodriguez, “Fair Routing in Delay Tolerant Networks,” IEEE INFOCOM 2009 - 28th Conf. Comput. Commun., pp. 837–845, Apr. 2009. P. Hui, J. Crowcroft, and E. Yoneki, “BUBBLE Rap : Social-Based Forwarding in Delay-Tolerant Networks,” no. November, pp. 1576– 1589, 2011. A. Mtibaa and M. May, “Peoplerank: Social opportunistic forwarding,” INFOCOM 2010 Proc. IEEE, 2010. K. Scott, S. Burleigh, and The MITRE Corporation, “Bundle Protocol Specification,” pp. 1–51, 2007. R. Balani, “Energy Consumption Analysis for Bluetooth , WiFi and Cellular Networks.” C. Vicknair, M. Macias, Z. Zhao, X. Nan, Y. Chen, and D. Wilkins, “A comparison of a graph database and a relational database,” in Proceedings of the 48th Annual Southeast Regional Conference on ACM SE 10, 2010, p. 1. “Redes Sociais.” [Online]. Available: http://www.ebizmba.com/articles/social-networking-websites. [Accessed: 13-Sep-2013]. Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 Encaminhamento Multi-Caminho Baseado num Número Reduzido de Árvores João Horta, Margarida Mamede e José Legatheaux Martins CITI e Departamento de Informática, Faculdade de Ciências e Tecnologia, Universidade Nova de Lisboa, 2829–516 Caparica, Portugal Email: [email protected], {mm, jose.legatheaux}@fct.unl.pt Resumo—Quando se utiliza encaminhamento multi-caminho para engenharia de tráfego, o número total de caminhos necessários é potencialmente muito elevado, da ordem de O(kn2 ), onde n é a cardinalidade do conjunto de nós de entrada / saı́da de tráfego (edge nodes) e k é o número de caminhos distintos, simultaneamente usados entre cada par desses nós. A dimensão das tabelas de encaminhamento dos nós é proporcional ao número total de caminhos necessários. Reduzir o seu número é um objectivo importante, que pode ser conseguido através da agregação dos caminhos em árvores. No entanto, determinar o número mı́nimo de árvores que cobrem um conjunto de caminhos é um problema NP-difı́cil. Este artigo começa com uma análise das diferentes alternativas que podem ser usadas para realizar encaminhamento multicaminho, usando equipmentos off-the-shelf, baseado na utilização de várias árvores. Em seguida, apresenta um novo algoritmo de agregação de caminhos num número reduzido de árvores, destinado a optimizar a concretização de encaminhamento multicaminho e utilizável em várias das alternativas anteriores. Nos testes experimentais efectuados, que envolvem redes sintéticas e reais, o algoritmo produziu melhores resultados que outros previamente publicados. I. I NTRODUÇ ÃO Para o encaminhamento intra-domı́nio numa rede de computadores, uma solução comum consiste em utilizar um caminho único entre os nós origem e destino dos pacotes (e.g., RIP, OSPF, IS-IS, ...). No entanto, quando critérios de optimização da capacidade disponı́vel na rede assumem um papel preponderante [1], é frequente recorrer a técnicas de encaminhamento mais sofisticadas, recorrendo, por exemplo, a formas de distribuição do tráfego com utilização simultânea de mais do que um caminho entre cada par de nós origem / destino do tráfego (e.g., usando MPLS [2] e engenharia de tráfego [3] com encaminhamento multi-caminho). Entre os diversos caminhos usados entre cada par de nós devem estar presentes caminhos mais curtos, mas também caminhos que proporcionem equidade entre fluxos e capacidade de optimizar a distribuição do tráfego e a resistência a avarias [4], [5]. Num quadro de encaminhamento multi-caminho, a tendência mais recente consiste na computação e instalação destes caminhos a priori, por métodos off-line. Assim, se os nós de entrada do tráfego na rede tiverem a capacidade de realizar a distribuição da carga pelos diferentes caminhos disponı́veis, a complexidade dos nós interiores poderá ser minimizada, visto que a sua configuração poderá ser estática (a menos da sua A Internet do futuro eventual participação na sinalização de avarias e contabilização de tráfego), na linha do defendido em [6]. A optimalidade da distribuição dinâmica de carga e da reacção a avarias continua a ser objecto de investigação recente [1], [4]. Mas o problema da simplicidade global dos nós da rede tem sido mais desprezado. No quadro descrito, o número total de caminhos parametrizados a priori nos nós da rede é muito elevado, da ordem de O(kn2 ), onde n é o número de nós de entrada / saı́da de tráfego (edge nodes) e k é o número de caminhos distintos entre cada par desses nós. Reduzir o número de entradas da tabela de encaminhamento (i.e., da FIB - Forwarding Information Base) também é um objectivo importante. Uma forma de realizar esta optimização consiste na agregação dos diferentes caminhos em árvores. Se a redução assim conseguida for significativa, o número de entradas nas FIBs poderá ser muito reduzido. Infelizmente, determinar o número mı́nimo de árvores que cobrem um conjunto de caminhos é um problema NP-difı́cil [7], [8]. As principais contribuições deste artigo são, primeiro, uma análise das diferentes alternativas que podem ser usadas para concretizar encaminhamento multi-caminho com base na utilização de várias árvores e, depois, um novo algoritmo de agregação de caminhos num número reduzido de árvores, destinado a optimizar a concretização de encaminhamento multi-caminho e utilizável em várias das situações anteriores. Nos testes experimentais efectuados, o algoritmo produziu melhores resultados que outros previamente publicados. Na secção II é discutida a concretização do encaminhamento multi-caminho com base em várias árvores. Na secção III é apresentado trabalho prévio sobre o tema. A secção IV descreve e discute o algoritmo proposto. Em seguida, na secção V, é efectuada uma análise empı́rica do mesmo e realizada uma comparação com outros algoritmos. Finalmente, na secção VI, são apresentadas algumas conclusões e trabalho futuro. II. E NCAMINHAMENTO M ULTI -C AMINHO COM BASE EM Á RVORES Para esta discussão, uma rede é definida por um grafo G = (V, E) simples (um grafo sem lacetes nem arcos paralelos), não orientado (onde (v1 , v2 ) e (v2 , v1 ) denotam o mesmo arco) e conexo (existe caminho entre dois quaisquer nós). Seja N ⊆ V o conjunto, de cardinalidade n, dos nós de entrada e saı́da da rede, ou seja, o conjunto dos nós que podem ser a origem ou o destino do tráfego. Para todos os pares de nós (x, y) ∈ N 2 , com x < y (para uma qualquer relação de 103 ordem total em N), computaram-se previamente (até) k > 0 caminhos distintos com caracterı́sticas adequadas ao suporte de encaminhamento multi-caminho [3], [5], [9], [10]. O número total desses caminhos é geralmente próximo de k n(n−1) 2 , visto que em certas redes e contextos podem não existir k caminhos distintos para certos pares de nós. Como veremos nas secções seguintes, existem algoritmos que permitem agregar esses caminhos num certo número de árvores. Considera-se igualmente que existem mecanismos, necessários para engenharia de tráfego, que permitem a um nó x de entrada de tráfego obter as seguintes informações: M1) dado o endereço de destino de um fluxo, determinar o nó y de saı́da a que o destino está ligado; M2) dado um nó y de destino, conhecer os k caminhos para lhe chegar; e M3) dados os k caminhos que permitem a x alcançar y, qual destes deve ser escolhido para cada fluxo / pacote (segundo um critério de engenharia de tráfego ou outro). A solução completa destes 3 problemas está fora do âmbito deste trabalho, no entanto, nas subsecções que se seguem, faremos referência ao modo como estes podem ser abordados em diferentes alternativas de encaminhamento com base em árvores. A. MPLS com Utilização de LSPs Multipoint-to-Point Com MPLS cada caminho é concretizado na rede através de um LSP (Label Switch Path). Como o seu número é muito elevado, desenvolveram-se técnicas de agregação de LSPs com o objectivo de utilizar uma única entrada na FIB de um nó intermédio z, sempre que vários LSPs partilham o mesmo caminho de z até ao destino [7], [11], [12]. Estes LSPs especiais designam-se multipoint-to-point, ou m-t-p, e a sua determinação tem semelhanças com a agregação de caminhos em árvores.1 A secção seguinte refere algoritmos propostos para esta agregação. A utilização de MPLS para engenharia de tráfego com parametrização estática dos LSPs é comum, pelo que existem os mecanismos M1), M2) e M3) acima referidos nos equipamentos com suporte de MPLS (ver, por exemplo, [3]). B. Utilização de VLANs Numa rede de switches Ethernet organizada em malha é possı́vel desactivar o protocolo STP (Spanning Tree Protocol) e parametrizar estaticamente em cada switch a que VLANs devem estar associadas cada uma das suas portas. Assim, é possı́vel parametrizar na rede até 4096 árvores distintas (o limite do número de VLANs imposto pela norma IEEE 802.1D) [10]. Com esta solução é possı́vel realizar o encaminhamento multi-caminho com base num número reduzido de árvores. A escolha do caminho que um dado pacote deve seguir é equivalente à escolha da VLAN tag que o mesmo recebe à entrada da rede. O encaminhamento é depois realizado usando o tradicional algoritmo de inundação com aprendizagem pelo caminho inverso.2 A proposta geral do método foi feita no quadro do encaminhamento em redes para centros de dados. 1 Um LSP m-t-p não é exactamente uma árvore (um subgrafo da rede G, acı́clico e conexo), visto que é um grafo orientado (“dirigido para a raiz”, que é o destino dos caminhos). Mas é acı́clico e fracamente conexo. 2 Caso seja necessário preservar identificadores de VLANs com significado fora da rede, deverá ser utilizada alguma forma de encapsulamento suplementar (e.g., IEEE 802.1ad). 104 Neste quadro a implementação dos mecanismos M1), M2) e M3) pode ser realizada nos drivers Ethernet dos servidores [10]. O método requer a utilização de inundação e de tabelas de endereços MAC cuja dimensão pode ser significativa. Outra proposta baseada na utilização de VLANs consiste em usar tantas árvores de cobertura, computadas pelo protocolo STP, quanto o número de switches de N (i.e., n árvores), cada uma com raiz em cada um desses switches [13]. Para realizar a distribuição de tráfego multi-caminho, os fluxos são distribuı́dos pelas diferentes n árvores numa forma roundrobin. No entanto, este método não permite controlar com rigor os caminhos usados por cada fluxo e a qualidade dos mesmos. C. Utilização de Longest-Prefix Matching Dada uma árvore, é possı́vel realizar o encaminhamento ponto a ponto usando equipamentos com suporte de encaminhamento IP, endereços hierárquicos e Longest-Prefix Matching, portanto sem recurso a inundação. Para este efeito é necessário parametrizar os equipamentos com rotas estáticas, especı́ficas para cada árvore, da seguinte forma. Dada uma árvore t, é-lhe associado um prefixo ou intervalo de endereços I, disjunto de todos os outros. Em seguida, I é particionado em vários subintervalos, cada um dos quais associado a um nó filho da raiz. Esta operação é realizada recursivamente até às folhas. Em seguida, em cada nó da árvore, I é associado à interface que dá acesso ao nó pai (excepto na raiz) e cada subintervalo afectado a um filho é associado à interface que lhe dá acesso. Finalmente, cada nó da rede recebe um endereço no seu intervalo (este endereço não é afectado a nenhum filho). É fácil verificar que o algoritmo de encaminhamento Longest-Prefix Matching encaminha pacotes destinados a um endereço contido em I, na árvore t, sem necessidade de realizar inundação. Este método apenas requer espaço nas FIBs para as rotas estáticas proporcional ao número de árvores em que cada nó participa. A escolha do caminho que um pacote deve seguir é equivalente à escolha do endereço do nó destino na árvore pela qual se pretende encaminhar o pacote. Esta transformação de endereços pode ser realizada por vários métodos, como por exemplo túneis IP sobre IP, ou recorrendo a LISP [14], que fornece igualmente interfaces para a utilização dos mecanismos M1), M2) e M3). Na literatura é possı́vel encontrar diversas outras realizações de encaminhamento multi-caminho usando ECMP (Equal Cost Multi-Path Routing) em redes fisicamente configuradas com árvores, mas a comparação exaustiva das qualidades e defeitos de cada um desses métodos, assim como dos métodos indicados acima, ultrapassa o âmbito deste artigo. III. AGREGAÇ ÃO DE C AMINHOS EM Á RVORES : P ROBLEMA E S OLUÇ ÕES O problema da agregação de caminhos em árvores pode ser definido da seguinte forma. Dado um conjunto S de caminhos num grafo G = (V, E) simples, não orientado e conexo, pretende-se obter um conjunto T de árvores de G (ou seja, um conjunto de subgrafos de G acı́clicos3 e conexos), 3 Um grafo cı́clico (respect. acı́clico) é um grafo com (respect. sem) ciclos. Um ciclo é um caminho com pelo menos dois nós, tal que o primeiro e o último nós são iguais e cujos arcos são todos distintos. Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 com a menor cardinalidade possı́vel, tal que todo o caminho de S seja um caminho em alguma árvore de T . Sem perda de generalidade, assume-se que qualquer caminho p ∈ S tem pelo menos dois nós e que todos os nós de p são distintos. No subproblema da agregação de caminhos com o mesmo destino, todos os caminhos de S têm o mesmo nó destino. Sabe-se que o problema de decisão da agregação de caminhos com o mesmo destino, onde se pergunta se é possı́vel agregar os caminhos de S em m ≥ 1 árvores, é NP-completo [7], [8]. Consequentemente, os dois problemas de optimização referidos são NP-difı́ceis, não havendo actualmente algoritmos polinomiais para os resolver. Portanto, os algoritmos que existem não garantem que a cardinalidade do conjunto retornado é a menor possı́vel, sendo essa cardinalidade a medida para avaliar a qualidade da solução computada. O caso particular da agregação de caminhos com o mesmo destino foi estudado no contexto de LSPs m-t-p. Em [11], o problema é reformulado em termos de programação linear inteira (do tipo 0-1). Em [7] é proposto um algoritmo greedy que, basicamente, agrega caminhos (e árvores) por ordem descrescente de comprimento dos “sufixos comuns”. Embora o problema geral pudesse ser atacado com estes algoritmos, para os nossos conjuntos S de caminhos, o número total de árvores nunca seria muito reduzido. Em geral, S tem k caminhos para cada par (x, y) ∈ N 2 , com x < y. Ou seja, |S| ≈ k n(n−1) 2 , onde n = |N|. Particionando S pelo vértice final dos caminhos, seriam gerados n − 1 problemas de agregação com o mesmo destino e, para cada um deles, o conjunto de árvores retornado teria, no mı́nimo, k árvores, porque cada um dos k caminhos com a mesma origem (e destino) teria de ser coberto por uma árvore diferente. Portanto, obter-se-iam pelo menos (n − 1)k árvores no total, não sendo esperadas repetições. Esta estratégia de resolução do problema será designada por estratégia LSPs m-t-p, na secção V. Para simplificar as próximas definições, considere-se que um caminho p = v1 v2 · · · vm−1 vm (com m ≥ 2) induz o grafo não orientado G p = (Vp , E p ), onde Vp = {v1 , v2 , . . . , vm−1 , vm } é o conjunto dos vértices e E p = {(v1 , v2 ), . . . , (vm−1 , vm )} é o conjunto dos arcos. Sejam G0 = (V 0 , E 0 ) um subgrafo acı́clico de G e p ∈ S um caminho. Diz-se que G0 contém ou cobre p se E p ⊆ E 0 e que p pode ser agregado a G0 se (V 0 ∪Vp , E 0 ∪ E p ) for um grafo acı́clico. A inserção ou agregação de p em G0 transforma G0 no grafo (V 0 ∪Vp , E 0 ∪ E p ). No âmbito do sistema SPAIN [8], [10], cujos objectivos são muito semelhantes aos nossos, Mudigonda et al. desenvolveram dois algoritmos aleatórios para agregar caminhos em subgrafos acı́clicos (não necessariamente conexos). Devido à sua natureza, ambos os algoritmos devem ser executados várias vezes, sendo guardado e retornado um dos conjuntos calculados nas diferentes execuções com a menor cardinalidade. O primeiro algoritmo [8], [10] é muito simples. Inicialmente, o conjunto O de subgrafos é vazio. O conjunto S é percorrido, por uma ordem aleatória, e cada um dos seus caminhos p é tratado sequencialmente, começando-se por verificar se algum subgrafo de O o contém. Em caso afirmativo, passa-se ao caminho seguinte. Se nenhum subgrafo cobrir p, percorre-se novamente O, por uma ordem aleatória, até se encontrar um subgrafo G0 ao qual p possa ser agregado e A Internet do futuro efectua-se a inserção de p em G0 . Se p não puder ser agregado a nenhum subgrafo existente, cria-se o subgrafo G p (com os vértices e os arcos do caminho), que se acrescenta a O. O segundo algoritmo [8] é muito complexo para ser descrito em detalhe. Basicamente, S é inicialmente particionado pelo vértice final dos caminhos, para que os sub-problemas possam ser resolvidos em paralelo, e cada conjunto de subgrafos que agregam os caminhos com um mesmo destino é obtido através de uma redução ao problema da coloração de vértices. Como a reunião de todos os conjuntos computados (que é uma solução do problema original) pode ser muito grande, depois executa-se uma função não determinista que efectua reuniões de subgrafos obtidos para destinos diferentes (quando o resultado é um grafo acı́clico). A justificação apresentada pelos autores para desenvolver o segundo algoritmo é a diminuição dos tempos de execução, devido à paralelização da primeira fase. Mas os dois algoritmos não são comparados, nem quanto aos tempos de execução, nem quanto à qualidade das soluções produzidas (dada pela cardinalidade dos conjuntos retornados). Por estes motivos, só comparámos o nosso algoritmo com o primeiro, cuja implementação é significativamente mais simples. IV. A LGORITMO DE AGREGAÇ ÃO DE C AMINHOS EM Á RVORES O novo algoritmo de agregação de caminhos em árvores é determinista. Partindo de um conjunto vazio de árvores, vão-se agregando caminhos às árvores existentes, criando uma nova árvore apenas quando a inserção dos caminhos em qualquer uma das árvores que já existem resultaria num grafo cı́clico ou não conexo. A grande diferença em relação aos algoritmos semelhantes descritos na secção anterior é que se começa por inserir “pares de caminhos compatı́veis”, por uma ordem e numa árvore especı́ficas. Por abuso, chamamos par a um conjunto {p, q} com dois caminhos, denotando-o por (p, q), mas os caminhos são distintos e a ordem pela qual ocorrem é irrelevante. É importante recordar que S é o conjunto de entrada (i.e., um conjunto de caminhos num grafo G), que G p = (Vp , E p ) denota o grafo induzido por um caminho p ∈ S e que uma árvore t de G é um subgrafo de G conexo e acı́clico (definido por (Vt , Et )). A noção de “compatibilidade” é fundamental e definese entre dois caminhos, entre um caminho e uma árvore e entre um par de caminhos e uma árvore. No primeiro caso, a compatibilidade será usada para definir a ordem pela qual os pares de caminhos são processados. Nos restantes, será usada para escolher a árvore onde um caminho ou um par de caminhos é inserido, quando há várias alternativas. A compatibilidade entre um par de caminhos (p, q) é −1 se o grafo (Vp ∪Vq , E p ∪ Eq ) for cı́clico; e é |Vp ∩Vq |, o número de nós em comum, no caso contrário. A compatibilidade entre um caminho p e uma árvore t define-se de forma semelhante: é −1 se o grafo (Vt ∪Vp , Et ∪E p ) for cı́clico; e é |Vt ∩Vp |, no caso contrário. A compatibilidade entre um par de caminhos (p, q) e uma árvore t é −1 se o grafo (Vt ∪Vp ∪Vq , Et ∪ E p ∪ Eq ) for cı́clico; e é |Vt ∩Vp |+|Vt ∩Vq |, nos outros casos. Dois caminhos (respect., um caminho e uma árvore, ou um par de caminhos e uma árvore) dizem-se compatı́veis se a compatibilidade entre eles — denotada por compat(·, ·) — for positiva. 105 Note-se que dois caminhos sem nós em comum (respect., um caminho sem nós em comum com uma árvore) não são compatı́veis, porque a reunião dos respectivos grafos não é um grafo conexo. Mas um par de caminhos pode ser compatı́vel com uma árvore, mesmo que um dos caminhos não partilhe qualquer nó com a árvore (desde que o outro partilhe). As seguintes propriedades, que permitem efectuar operações com entidades compatı́veis, são fáceis de verificar. • Se (p, q) for um par de caminhos compatı́veis, a criação de um novo grafo com (p, q), definido por (Vp ∪Vq , E p ∪ Eq ), produz uma árvore. • Se o caminho p e a árvore t forem compatı́veis, a inserção de p em t, que transforma t no grafo (Vt ∪ Vp , Et ∪ E p ), produz uma árvore. • Se (p, q) for um par de caminhos compatı́veis, t for uma árvore, e (p, q) e t forem compatı́veis, a inserção de (p, q) em t, que transforma t no grafo (Vt ∪ Vp ∪ Vq , Et ∪ E p ∪ Eq ), produz uma árvore. O algoritmo de agregação de caminhos é composto por três fases: (i) geração dos pares de caminhos compatı́veis e dos caminhos singulares iniciais (os caminhos de S que são incompatı́veis com todos os outros e que, consequentemente, não ocorrem em nenhum par de caminhos compatı́veis); (ii) agregação de pares de caminhos compatı́veis; e (iii) agregação de caminhos singulares. Na primeira fase, são analisados todos os pares de caminhos de S e avaliada a sua compatibilidade. Os pares compatı́veis serão processados na segunda fase, por uma ordem que envolve três critérios: primeiro, por ordem decrescente de compatibilidade do par; depois, por ordem decrescente de “potencial de agregação” do par em S; e, em caso de empate na compatibilidade e no potencial de agregação, por ordem decrescente de comprimento do par (que é a soma dos comprimentos dos dois caminhos). O critério da compatibilidade tem como objetivo privilegiar os pares cuja agregação é a mais “natural”, ou seja, aqueles cujo resultado agregado é o menos diferente de cada um dos caminhos. A ordenação pelo potencial de agregação dá prioridade a pares de caminhos que têm um maior número de nós em comum com todos os outros. Formalmente, o potencial de agregação de um caminho p no conjunto S é a soma das compatibilidades de todos os pares de caminhos de S que envolvem p: potAgreg(p, S) = ∑ compat(p, q). q∈S\{p} Na fase de agregação dos caminhos singulares, os caminhos são seleccionados por ordem decrescente de comprimento. O processamento de cada caminho p também se inicia com a procura de uma árvore que o contenha, não havendo nada mais a fazer quando esta pesquisa tem sucesso. Se p não estiver contido em nenhuma árvore, verifica-se se p é compatı́vel com alguma árvore e, em caso afirmativo, insere-se p numa árvore existente. Quando o caminho é incompatı́vel com todas as árvores, a árvore G p é criada e adicionada ao conjunto resultado. A procura de uma árvore compatı́vel com um dado caminho ou par de caminhos α devolve, em caso de sucesso, a árvore t onde a inserção de α será efectuada. Essa árvore é, de entre todas as árvores compatı́veis com α, uma que maximiza o valor da compatibilidade. Ou seja, se T for o conjunto das árvores existentes, a árvore t ∈ T onde α é inserido verifica: compat(α,t) ≥ 1 e (∀t 0 ∈ T ) compat(α,t) ≥ compat(α,t 0 ). A complexidade temporal do algoritmo é O(|S|3 × |V |), onde V denota o conjunto dos nós da rede G, pelos seguintes motivos. A compatibilidade entre duas entidades pode ser decidida e avaliada em O(|V |) passos, porque o comprimento de cada caminho não excede |V | − 1. Consequentemente, o custo da primeira fase é O(|S|2 × (|V | + log |S|)), uma vez que todos os pares de caminhos são analisados e os pares compatı́veis são ordenados. Nas duas últimas fases, processam-se os pares de caminhos compatı́veis, e ordenam-se e processamse os caminhos singulares. Como o processamento de cada par ou caminho singular requer tempo O(|T | × |V |), onde T representa o conjunto corrente de árvores, a complexidade total das duas últimas fases é O(|S|2 × |T | × |V |). A conclusão é obtida usando o facto de que |T | ≤ |S|. V. O potencial de agregação de um par de caminhos (p, q) em S é a soma do potencial de agregação de p e de q em S: potAgreg((p, q), S) = potAgreg(p, S) + potAgreg(q, S). Por fim, com o terceiro critério, pretende-se tratar os caminhos de maior comprimento o mais cedo possı́vel, enquanto existem mais possibilidades de agregação, deixando para o fim os que, em princı́pio, têm mais facilidade em se agregar. Na fase de agregação dos pares de caminhos compatı́veis, processa-se um par de cada vez, pela ordem definida acima, até todos os pares terem sido tratados. Começa-se por verificar, 106 para cada caminho do par, se alguma árvore existente o cobre, sendo necessário distinguir três casos. No primeiro, os dois caminhos estão contidos em árvores (possivelmente distintas) e o processamento do par termina. No segundo caso, nenhum dos caminhos está contido numa árvore. Se houver alguma árvore compatı́vel com o par, insere-se o par de caminhos numa das árvores existentes; senão, é criada uma nova árvore com o par de caminhos. No terceiro caso, um dos caminhos está contido numa árvore t e o outro (que designaremos por p) não está contido em nenhuma árvore. Se p for compatı́vel com t, o caminho é inserido nessa árvore; se p não for compatı́vel com t mas houver alguma árvore compatı́vel com p, agregase p a uma das árvores existentes; e se não existir nenhuma árvore compatı́vel com p, o caminho é adicionado à estrutura dos caminhos singulares (adiando-se a sua agregação). AVALIAÇ ÃO O novo algoritmo e o (primeiro) do SPAIN foram implementados em Java. Todos os testes foram executados num computador com 4 Gbytes de RAM, CPU a 2,53 GHertz e usando a Java VM versão 1.7. Cada conjunto S de teste foi obtido com o algoritmo de selecção de caminhos para encaminhamento multi-caminho proposto em [5]. O algoritmo recebe a rede G (cujos arcos têm custos positivos), dois nós distintos x, y ∈ N, o número k > 0 de caminhos desejados de x para y e mais dois parâmetros, que limitam o comprimento e o custo dos caminhos pretendidos, e retorna um conjunto de caminhos de x para y. Para cada rede Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 (a) Full Mesh (b) Anel (ver Figura 2b). Os caminhos interessantes entre cada par de nós da primeira camada (que corresponde ao conjunto N) são todos simultaneamente de menor custo e disjuntos entre si e o seu número é igual ao número de nós da segunda camada, dado por n. Por estes motivos, S tem n2 (n − 1)/2 caminhos. Na rede usada no teste, n = 6. As redes folded clos também são utilizadas em centros de dados e têm a propriedade de assegurar a disjunção máxima de caminhos. Figura 1: Representações das redes Full Mesh e Anel B. Redes Não Regulares (a) Fat Tree (b) Folded Clos Figura 2: Representações das redes Fat Tree e Folded Clos testada, o algoritmo foi executado para todos os pares de nós (x, y) ∈ N 2 , com x < y, tendo-se contruı́do S com a reunião dos n(n − 1)/2 conjuntos retornados. Testaram-se dois tipos de redes: redes regulares, representativas de configurações com propriedades bem conhecidas, utilizadas frequentemente em redes para interligação de computadores em clusters e em centros de dados, e redes não regulares, que incluem backbones reais e uma rede aleatória. Os caminhos seleccionados nas redes regulares são fáceis de identificar e coincidem com os que serão classificados como interessantes. Nas redes não regulares, são caminhos que asseguram multiplicidade de encaminhamento, disjunção de rotas e custo e comprimento adequados. A. Redes Regulares Foram utilizadas quatro redes regulares: full mesh, anel, fat tree e folded clos. Nos dois primeiros casos, todos os nós são origem e destino de tráfego (ou seja, N = V ). Na full mesh cada nó está directamente ligado a todos os outros formando uma clique (como ilustrado na Figura 1a). Numa rede destas com n nós, entre cada par existe um caminho de menor custo (com custo 1) e n − 2 caminhos com custo 2. O conjunto S tem todos estes (n − 1) × n(n − 1)/2 caminhos, os únicos considerados interessantes. Numa rede em anel, cada nó tem grau 2 e existem apenas 2 caminhos (disjuntos) entre cada par de nós (ver Figura 1b). Neste caso, S tem 2 caminhos por par. Usou-se uma full mesh com 6 nós e um anel com 10 nós. Uma rede fat tree é uma rede hierárquica frequentemente usada em centros de dados. O teste foi efectuado com a rede da Figura 2a. Configurada adequadamente, esta rede assegura que entre quaisquer dois nós folha (os que pertencem a N) existe capacidade garantida. Os caminhos interessantes entre cada par de nós folha são os caminhos de menor custo, cujo número é 22m−1 , onde m é o número de nı́veis que é necessário subir para chegar ao nó de destino. Uma rede com topologia folded clos é definida por duas camadas distintas, formando um grafo bipartido tal que cada nó da primeira camada está ligado a todos os nós da segunda A Internet do futuro Foram usados três backbones reais e uma rede aleatória. Para os testes foram removidos das redes reais canais paralelos e nós que não acrescentavam diversidade. Nas redes reais o custo dos canais usado é proporcional à distância entre os nós e na rede aleatória o peso de todos os arcos é 1 (tal como nas redes regulares). A rede GÉANT é uma rede europeia de investigação e educação que interliga as diferentes redes de investigação e educação dos paı́ses europeus. A configuração testada tem 31 nós e 50 canais. A Internet 2 é um consórcio norte-americano que liga universidades, centros de investigação, corporações e outras redes regionais de educação e investigação nos EUA. A configuração testada tem 25 nós e 44 canais. A NTT Communications é uma corporação subsidiária da NTT (Nippon Telegraph and Telephone) e possui uma rede IP com uma distribuição geográfica mundial. A configuração testada tem 27 nós e 63 canais. A rede aleatória utilizada foi gerada com base numa distribuição de Poisson, com um grau médio dos nós de valor 3. A configuração testada tem 30 nós e 48 arcos. Nos quatro casos, todos os nós são origem e destino de tráfego. C. Resultados da Agregação em Árvores A tabela I apresenta alguns dados sobre os conjuntos de teste e os resultados. A primeira coluna identifica a rede; a segunda tem o número n de nós de entrada e saı́da da rede (|N|); a terceira o número k de caminhos distintos pedidos ao algoritmo de selecção de caminhos para cada par de nós de N; e a quarta o número total de caminhos seleccionados (i.e., a cardinalidade do conjunto S). Para as redes regulares, calculámos o número de árvores óptimo (apresentado na quinta coluna da tabela I), através da análise da rede e dos caminhos seleccionados. Para as restantes redes, não conhecemos a cardinalidade da solução óptima. Os algoritmos de agregação de caminhos em árvores comparados são o novo e o (primeiro) algoritmo do sistema SPAIN [8], [10], cujos resultados se encontram na sexta e na sétima colunas da tabela I, respect.. O algoritmo SPAIN foi executado para cada rede múltiplas vezes. Mas, ao invés de definir o número de execuções, limitou-se o tempo utilizado por estas. Isto é, durante um certo intervalo de tempo, o algoritmo foi executado repetidamente, tendo sido escolhido o resultado de uma execução com o menor número de subgrafos. Nestes resultados, o intervalo de tempo utilizado corresponde a 5 vezes o tempo de execução do novo algoritmo para a mesma rede. Convém referir que o algoritmo foi implementado como foi descrito na secção III e pelos autores [8], [10]. Por isso, o resultado é um conjunto de grafos acı́clicos, não necessariamente conexos (o que justifica o tı́tulo das duas colunas de resultados na tabela). A oitava coluna apresenta 107 que recorrem a switches e VLANs, que encaminham através de árvores, com base em inundação optimizada por aprendizagem pelo caminho inverso. O mesmo também permite a utilização de FIBs muito mais compactas do que as necessárias quando se usa MPLS e m-t-p LSPs. Tanto quanto é do nosso conhecimento, a sua proposta não foi ainda previamente sistematizada na literatura existente. Tabela I: Resultados da execução dos algoritmos Redes Full Mesh Anel Fat Tree Folded Clos GÉANT Internet 2 NTT Aleatória n 6 10 8 6 31 25 27 30 k 5 2 2 ou 8 6 3 3 3 3 |S| 75 90 152 90 1381 898 1044 1318 # óptimo de árvores 6 10 8 6 — — — — # de subgrafos Novo SPAIN 6 10 10 10 8 14 6 18 30 38 14 16 25 39 27 34 LSPs m-t-p 25 18 56 30 90 72 78 87 Em seguida introduzimos um algoritmo de agregação de caminhos ponto a ponto num número reduzido de árvores. Nos testes realizados, o algoritmo apresenta melhores resultados que outros recenseados na literatura. Como trabalho futuro, pretendemos tentar deduzir qual a distância máxima da solução computada à solução óptima. Tabela II: Tempos de execução dos algoritmos Redes Full Mesh Anel Fat Tree Folded Clos GÉANT Internet2 NTT Aleatória Tempo (SPAIN) 965ms 15ms 12sec 820ms 2sec 420ms 25min 39sec 34min 19sec 41min 32sec 22min 56sec # de execuções (SPAIN) 699 83 2274 870 20268 32570 27391 22598 Tempo (Novo) 193ms 3ms 2sec 564ms 484ms 5min 7sec 6min 51sec 8min 18sec 4min 35sec Este trabalho insere-se num trabalho mais geral que visa desenvolver algoritmos e mecanismos de engenharia de tráfego que permitam optimizar o funcionamento da rede num quadro de carga variável e desconhecida a priori, incluindo a resposta atempada às falhas dos canais e dos nós. R EFER ÊNCIAS o menor número de árvores que poderia ser obtido com a estratégia LSPs m-t-p (c.f. secção III), assumindo que não haveria repetições, e que corresponde a (n − 1)k. A tabela II apresenta os resultados da execução dos algoritmos para cada rede (tempo de execução e número de execuções no caso do SPAIN). Os resultados mostram que o novo algoritmo agrega os conjuntos de caminhos das redes regulares no número óptimo de árvores. Para as restantes redes, ao não se conhecer o valor óptimo, esta avaliação não pode ser realizada. No entanto, analisando os resultados de forma comparativa, repara-se que os do novo algoritmo são sempre os melhores e que o número de árvores é muito reduzido. O SPAIN só tem um desempenho igual para a rede em anel. Os valores da coluna LSPs m-t-p são substancialmente mais elevados do que os resultados obtidos por ambos os algoritmos, indiciando que aquela estratégia de resolução do problema geral não é a mais adequada. VI. C ONCLUS ÕES E T RABALHO F UTURO [2] [3] [4] [5] [6] [7] [8] Quando se pretende realizar o encaminhamento numa rede usando engenharia de tráfego, a utilização de encaminhamento através de múltiplos caminhos tem-se imposto. Neste quadro, a procura de soluções simples, mas que não sacrifiquem a optimalidade, na linha das defendidas em [6], é fundamental. O trabalho aqui apresentado centra-se na problemática da redução do número de entradas nas FIBs dos equipamentos de encaminhamento, com recurso à agregação dos caminhos num número reduzido de árvores, para encaminhamento com equipamentos banalizados (off-the-shelf ) e sem necessidade de recorrer a novos protocolos. O recenseamento apresentado na secção II mostra que é possı́vel encaminhar com base em árvores através de pelo menos três métodos distintos. Usando MPLS e LSPs m-t-p, usando diversas VLANs e usando Longest-Prefix Matching. Este último método é implementável em qualquer equipamento que suporte encaminhamento com base em tabelas de prefixos IP e que possa ser parametrizado com rotas estáticas. Tratase de uma solução mais simples e mais escalável do que as 108 [1] [9] [10] [11] [12] [13] [14] N. Wang, K. H. Ho, G. Pavlou, and M. Howarth, “An overview of routing optimization for internet traffic engineering,” IEEE Communications Surveys and Tutorials, vol. 10, no. 1, pp. 36–56, 2008. E. Rosen, A. Viswanathan, and R. Callon, “Multiprotocol label switching architecture,” IETF, RFC 3031, 2001. O. M. Heckmann, The Competitive Internet Service Provider, 1st ed., ser. Wiley Series in Communications Networking & Distributed Systems. Chichester, UK: Wiley-Interscience, April 2006. M. Suchara, D. Xu, R. Doverspike, D. Johnson, and J. Rexford, “Network architecture for joint failure recovery and traffic engineering,” SIGMETRICS Performance Evaluation Review-Measurement and Evaluation, vol. 39, no. 1, p. 97, 2011. J. Horta, M. Mamede, and J. L. Martins, “Selecção de caminhos para encaminhamento multi-caminho,” in Actas do Inforum 2013 - Simpósio de Informática, September 2013, pp. 78–89. M. Caesar, M. Casado, T. Koponen, J. Rexford, and S. Shenker, “Dynamic route recomputation considered harmful,” SIGCOMM Comput. Commun. Rev., vol. 40, no. 2, pp. 66–71, Apr. 2010. S. Bhatnagar, S. Ganguly, and B. Nath, “Creating multipoint-to-point LSPs for traffic engineering,” Workshop on High Performance Switching and Routing, 2003, HPSR., pp. 201–207, 2003. J. Mudigonda, P. Yalagandula, M. Al-Fares, and J. Mogul, “Spain: Design and algorithms for constructing large data-center ethernets from commodity switches,” Tech. Rep. HPL-2009-241, HP Labs, Tech. Rep., 2009. S. Nelakuditi and Z.-L. Zhang, “On selection of paths for multipath routing,” in Quality of Service — IWQoS 2001, ser. Lecture Notes in Computer Science, L. Wolf, D. Hutchison, and R. Steinmetz, Eds. Springer Berlin Heidelberg, 2001, vol. 2092, pp. 170–184. J. Mudigonda, P. Yalagandula, M. Al-Fares, and J. Mogul, “Spain: Cots data-center ethernet for multipathing over arbitrary topologies,” in Proceedings of the 7th USENIX conference on Networked systems design and implementation. USENIX Association, 2010, pp. 18–18. H. Saito, Y. Miyao, and M. Yoshida, “Traffic engineering using multiple multipoint-to-point lsps,” in INFOCOM 2000. Nineteenth Annual Joint Conference of the IEEE Computer and Communications Societies. Proceedings. IEEE, vol. 2, 2000, pp. 894–901 vol.2. F. Solano, R. Fabregat, and J. Marzo, “On optimal computation of mpls label binding for multipoint-to-point connections,” Communications, IEEE Transactions on, vol. 56, no. 7, pp. 1056–1059, july 2008. R. van Haalen, R. Malhotra, and A. de Heer, “Optimized routing for providing ethernet lan services,” Communications Magazine, IEEE, vol. 43, no. 11, pp. 158–164, nov. 2005. D. Meyer, “The locator identifier separation protocol (LISP),” The Internet Protocol Journal, vol. 11, no. 1, March 2008. Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 Encaminhamento IP Optimizado Através de uma Aproximação de Software Defined Networking Alexandre Pinote e José Legatheaux Martins CITI e Departamento de Informática, Faculdade de Ciências e Tecnologia, Universidade Nova de Lisboa, 2829–516 Caparica, Portugal Email: [email protected], [email protected] Resumo—Este artigo apresenta uma implementação optimizada de encaminhamento IP Unicasting e Multicasting para uma rede de switches. A optimização está implementada segundo a aproximação Software Defined Networking (SDN), com base na norma OpenFlow e no controlador FloodLight. Através da introdução de novos mecanismos de optimização da implementação de ARP, IGMP e da gestão do encaminhamento IP Multicasting, o trabalho demonstra que as promessas de flexibilidade e simplicidade da aproximação SDN são reais. O encaminhamento IP Multicasting é realizado com base em árvores de caminhos mais curtos, equivalentes às utilizadas por IP PIMDM, mas implementadas de forma muito mais simples e leve. do que uma única subnet IP e encaminha de forma sub-óptima (pelo menos dentro de cada sub-net). Nos últimos anos apareceram diversas propostas de optimização do encaminhamento pelos switches, que introduzem simultaneamente servidores de directório em redes de switches Ethernet empresariais ou de centros de dados (e.g., [2], [3], [4], [5]). Simultanemente, apareceu também uma proposta para tornar mais flexı́vel o controlo e evolução deste tipo de redes através de uma aproximação que se veio a designar Software Defined Networking (SDN) [6], [7]. A. Software Defined Networking e OpenFlow I. I NTRODUÇ ÃO A rede Ethernet foi inicialmente definida com base num meio de difusão partilhado de tal forma que os custos da comunicação ponto a ponto (unicasting ) ou ponto multi-ponto (difusão: broadcasting e multicasting ) eram idênticos. Como as subnets IP têm necessidade de mecanismos de descoberta e directórios (para afectação de endereços IP e mapeamento de endereços IP em endereços MAC), o baixo custo do difusão na Ethernet tornou muito atractiva a sua utilização, em conjunto com soft state, como alternativa de implementação desses mecanismos. A disponibilidade de switches Ethernet de baixo custo permitiria hoje em dia construir subnets IP de grande dimensão (e.g., cobrindo todo um campus universitário ou uma grande empresa), que dispensariam a complexidade da utilização de encaminhamento IP entre várias subnets distintas. No entanto, na prática, tal aproximação não é muito utilizada. Por um lado, critérios de segurança recomendam a partição da rede em várias VLANs distintas (virtual local area networks). Por outro lado, a utilização indiscriminada de difusão na rede de switches (e.g., ARP, DHCP, IGMP, inundação para aprendizagem do encaminhamento unicasting e inundação para encaminhamento IP Multicasting) limitaria de forma significava o seu desempenho. Na prática as redes institucionais de switches são particionadas em diversas VLANs. Cada VLAN é uma subnet distinta, com um prefixo IP especı́fico, e o encaminhamento é nelas realizado com base em, por um lado, encaminhamento sub-óptimo através de árvores de cobertura (protocolo STP Spaning Tree Protocol [1]) dentro de cada VLAN e, por outro, encaminhamento IP entre VLANs distintas (e.g., RIP, OSPF). Na prática tal rede é do ponto de vista de gestão mais complexa A Internet do futuro Nas redes convencionais os equipamentos de rede desempenham simultaneamente duas funções distintas, geralmente designadas por data plane e control plane. As funções do data plane consistem em analisar os cabeçalhos dos pacotes recebidos e, em função de tabelas de comutação ou de encaminhamento, enviarem-nas para o seu destino final via a interface seleccionada. O control plane implementa todos os protocolos de coordenação com os outros equipamentos de rede necessários para a parametrização e controlo do funcionamento do data plane. Numa rede de switches Ethernet o control plane executa pelo menos o algoritmo de aprendizagem de endereços MAC, assim como o protocolo STP. Nos switches que também implementam nı́vel 3, o control plane é igualmente responsável pela implementação dos protocolos de encaminhamento IP. A aproximação SDN consiste em separar o data plane do control plane e implementá-los em equipamentos distintos, ver a figura 1. Assim, os switches apenas realizam as funções do data plane, enquanto que servidores, designados por controladores de rede, realizam as funcionalidades do control plane através de uma aproximação logicamente centralizada. Finalmente, os switches e os controladores comunicam através de um protocolo de controlo, cujo exemplo mais conhecido e normalizado é o protocolo OpenFlow [6]. O protocolo OpenFlow permite a um controlador programar um switch através de regras de encaminhamento. No essencial, cada regra é constituı́da por um descritor de um conjunto de pacotes (i.e., um descritor de um flow) e por uma ou mais acções a aplicar ao conjunto desses pacotes (i.e., ao flow). Um descritor OpenFlow é da mesma natureza que as ACLs usadas em diversos equipamentos de rede e permite especificar um flow com uma grande flexibilidade, usando exact matching 109 rede simples de nı́vel L2 convencional. Geralmente fornecem igualmente módulos de realização de controlo de acessos (firewalling) e de encaminhamento unicasting usando o caminho mais curto numa configuração arbitrária de switches (i.e., em malha e com ciclos). No entanto, tanto quanto conseguimos apurar, não existem no domı́nio público implementações de IGMP nem de encaminhamento IP Multicasting optimizado através de árvores de difusão (como as computadas por PIM por exemplo). Um único artigo faz referência a uma implementação sem apresentar informação concreta sobre a solução [12]. Figura 1: Separação do data plane e do control plane numa rede e wild card matching. As acções determinam o que fazer com os pacotes que pertencem ao flow sendo as mais comuns: drop e forward. No último caso, a acção pode especificar o envio da mensagem por uma interface determinada, a difusão (flood) da mesma, o seu envio para o controlador, etc.. Em versões mais recentes do protocolo o conjunto de acções compreende igualmente acções mais complexas como empilhar identificadores (e.g., ATM), ou transformar o cabeçalho IP. Através do protocolo OpenFlow é possı́vel implementar uma nova arquitectura de controlo de uma rede, com diversas vantagens potenciais quando comparada com a aproximação convencional. Os switches passam a ser equipamentos fabricados com base em circuitos VLSI verticais (merchant silicon) que implementam as tabelas de encaminhamento (CAMs e TCAMs - Content Addressing Memories) assim como interfaces de controlo e comunicação normalizadas. Os controladores são servidores banalizados cuja especificidade está associada ao software que executam. Ambos os factores poderão conduzir a uma descida significativa de custos. Mas a vantagem mais importante advêm do facto de que um controlador pode controlar simultaneamente dezenas ou mesmo centenas de switches, o que permite desenvolver no mesmo uma visão logicamente centralizada da rede. Tal visão permite usar algoritmos mais simples que os algoritmos distribuı́dos de coordenação e controlo subjacentes aos protocolos de rede usados actualmente. Espera-se que desta forma seja mais fácil introduzir novas e mais sofisticadas formas de controlo, ou seja, flexibilizar e banalizar a evolução e a adaptabilidade do control plane. Actualmente já existem diversos switches que suportam OpenFlow e vários controladores OpenFlow. Os controladores fornecem uma espécie de sistema de operação de rede que suporta uma visão lógica da mesma, a interface com os switches por OpenFlow e um ambiente de desenvolvimento do tipo event driven para introdução de novas funcionalidades. Alguns dos controladores mais citados são: NOX [8], POX [9], Beacon [10] e o FloodLight [11]. Este artigo apresenta um trabalho que consistiu em introduzir no controlador FloodLight um conjunto de modificações com o objectivo de optimizar o funcionamento de uma rede de switches Ethernet, de tal forma que seja mais realista trabalhar com uma única subnet IP, mesmo numa rede de grande dimensão1 . Estas modificações têm como principal contribuição novas implementações dos protocolos ARP e IGMP e do encaminhamento do IP Multicasting. As modificações e optimizações introduzidas reduzem a utilização de difusão pelo protocolo ARP, encaminham o tráfego unicasting usando o caminho mais curto na rede (funcionalidade já implementada no FloodLight) e implementam o tráfego multicasting usando uma árvore de difusão óptima por grupo IP e por emissor. Para a implementação desta última funcionalidade foi também necessário introduzir uma implementação do protocolo IGMP. As novas funcionalidades foram desenvolvidas em Java para o FloodLight, e foram testadas usando o simulador de redes OpenFlow Mininet [13]. A configuração da rede fı́sica é arbitrária, podendo incluir canais redundantes e ciclos. Na próxima secção apresenta-se brevemente o controlador FloodLight e os módulos relevantes para este trabalho que este implementa. Na secção III apresenta-se o módulo de descoberta introduzido (que implementa os protocolos ARP e IGMP) e as modificações no encaminhamento introduzidas para suportar encaminhamento IP Multicasting. Na secção seguinte é apresentada a avaliação do trabalho realizado. Finalmente, na secção V, são apresentadas algumas conclusões e discutido o trabalho futuro. II. C ONTROLO DE R EDES IP COM O C ONTROLADOR F LOODLIGHT Para a realização deste trabalho foi escolhido o controlador FloodLight, devido a este ser considerado como tendo um desempenho elevado, estar desenvolvido em Java e ter por ambição controlar redes em produção. Quando comparado com outros controladores é, no entanto, geralmente considerado como mais difı́cil de modificar devido à sua maior complexidade. O Floodlight fornece um framework de base constituı́do por uma estrutura de execução baseada em módulos normalizados, dinamicamente instanciáveis, e orientada a eventos com base no paradigma editores/subscritores, uma thread pool, mecanismos normalizados de gestão de tabelas partilhadas pelos B. Contribuições deste Trabalho A maioria dos controladores acima citados já oferecem módulos que permitem, através de OpenFlow, construir uma 110 1 Os requisitos de segurança ultrapassam o âmbito deste trabalho mas poderiam ser implementados com base no módulo de firewalling já disponibilizado pelo Floodlight. Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 diferentes módulos, uma interface de diálogo com os switches por OpenFlow etc. Entre os módulos mais relevantes do FloodLight encontram-se alguns dos que a seguir são indicados. O módulo LinkDiscoveryManager realiza a gestão dos canais existentes na rede através do protocolo LLDP (Link Layer Discovery Protocol). O módulo envia para os switches as mensagens LLDP a serem flooded, processa a sua recepção pelos switches adjacentes e mantém uma visão centralizada dos canais existentes na rede. O módulo TopologyManager gere a configuração da rede e fornece serviços para cálculo de caminhos mais curtos e árvores de cobertura de caminhos mais curtos com raiz num nó dado. O módulo DeviceManager faz snooping dos pacotes recebidos pelo controlador e gere uma tabela de dispositivos ligados à rede mantendo sobre cada um diversos atributos (switch e porta a que está ligado, endereços MAC e IP, . . . ). O módulo Forwarding é responsável pela introdução de flows (i.e., das respectivas regras nos switches) correspondentes ao tráfego unicasting entre quaisquer dois devices. O FlowReconcileManager é responsável pela reconfiguração dos flows unicasting na sequência de uma alteração da configuração dos canais. Com base nestes módulos, o FloodLight gere completamente uma rede L2 da forma a seguir apresentada. Todo o tráfego multicasting ou broadcasting de nı́vel 2 é encaminhado directamente pelo controlador pois os switches não têm regras para o seu processamento de outra forma. Assim, todos os frames com endereços MAC deste tipo são enviados para o controlador e este é que decide, caso a caso, se o frame deve ser ignorado ou flooded em função da porta e switch onde foi recebido. Assim, por defeito, o FloodLight usa inundações da rede para processar ARP requests, DHCP, IGMP, IP Multicasting e outro tráfego em broadcasting ao nı́vel L2. Para evitar broadcast storms, é usado um algoritmo de inundação sobre uma árvore de cobertura de caminhos mais curtos com raiz no switch de menor identificador (computada de forma centralizada mas equivalente à definida pelo protocolo STP). Em contrapartida, o controlador usa o tráfego que passa na rede para preencher a sua tabela de devices (c.f. módulo DeviceManager) pelo que sempre que recebe um primeiro frame de um flow unicasting, instala regras nos switches de tal forma que todo o tráfego desse flow (caracterizado pelos endereços MAC e IP origem e destino) passa a ser encaminhado pelo caminho mais curto. O controlador deixará assim de receber estes pacotes enquanto o flow estiver activo. III. S OLUÇ ÃO I MPLEMENTADA De modo a criar uma solução para o encaminhamento IP optimizado no FloodLight, foi necessário criar um módulo que se designou IPDiscoveryManager e modificar o módulo Forwarding. Os objectivos do primeiro módulo são gerir uma cache partilhada de ARP e responder a ARP Requets, assim como gerir um directório de grupos IP Multicast, através de uma solução baseada em IGMP. Adicionalmente, foi necessário alterar o módulo Forwarding, de forma a optimizar o encaminhamento do IP Multicasting. A. Optimização do protocolo ARP O módulo DeviceManager, por defeito, regista os endereços MAC dos computadores e utiliza o tráfego ARP e DHCP para A Internet do futuro registar também os seus endereços IP. Esta implementação foi alterada para que todos os pacotes IP que chegam ao controlador fossem usados para actualizar também os endereços IP do emissor. O módulo IPDiscoveryManager usa as informações recolhidas pelo DeviceManager como uma cache partilhada de ARP. Com efeito, essa cache permite obter por soft state a associação entre endereços IP Unicast e os endereços MAC. Assim, o módulo IPDiscoveryManager intercepta os pedidos ARP (ARP Request) e, caso a informação solicitada se encontre na cache há menos de um intervalo de tempo (daqui para a frente designado por TRUST INTERVAL e actualmente com o valor de 60 segundos) responde directamente com um pacote ARP Reply. Caso contrário deixa o broadcasting prosseguir. Com esta implementação o controlador terá de: 1) interceptar os pacotes ARP Request, verificando nas suas estruturas de dados se o computador de destino enviou pacotes que lhe chegaram há menos de TRUST INTERVAL segundos; 2) responder aos pacotes ARP Request caso a condição anterior seja satisfeita. Para se compreender melhor o papel desta cache é necessário ter em atenção que o controlador receberá os pacotes emitidos por um computador IP sempre que estes não são encaminhados directamente pelos switches. Isso passa-se com todos os ARP Requests visto que os mesmos são emitidos em difusão e com todos os primeiros pacotes de cada novo fluxo unicast, sendo estes caracterizados por aparecer um pacote em que os campos IP origem, IP destino ou VLAN são distintos de outros anteriores. Sempre que um novo fluxo é iniciado, o controlador instala o seu caminho nos switches através de comandos OpenFlow. Esses comandos são válidos enquanto o fluxo tiver actividade, e durante esse tempo os pacotes do fluxo não chegam ao controlador. No entanto, qualquer ARP Request assim como algum ARP Reply e ainda qualquer novo fluxo que seja iniciado por qualquer outro par de computadores, permitirá ao controlador enriquecer a sua cache com nova informação. Em alguns sistemas de operação (e.g., Mac OS X), sempre que uma interface é activada, ou uma associação a um novo AP WIFI tem lugar, o driver Ethernet emite um gratious ARP 2 . Se esta implementação fosse normalizada, a cache do controlador representaria quase sempre a realidade, e poder-seia praticamente suprimir todos as difusões relacionadas com o protocolo ARP. De qualquer forma, como veremos a seguir, a cache do controlador tem uma eficácia significativa na prática. B. Gestão do protocolo IGMP - Recenseamento dos grupos IP Multicast e da sua filiação Para gerir os grupos multicast e os computadores subscritores dos mesmos, é utilizado o protocolo IGMP de acordo com a sua norma (a implementação realizada baseia-se na versão 2), assumindo o controlador o papel de um router multicast. Através do envio periódico de IGMP Queries e da análise dos IGMP Reports, o módulo IPDiscoveryManager recenseia os grupos IP Multicast existentes e os seus subscritores. Adicionamente, esse recenseamento também tem lugar sempre que os computadores emitem por sua iniciativa mensagens IGMP Join e IGMP Leave. Se um subscritor se deixa de manifestar durante um certo intervalo de tempo, isto é, não 2 i.e., um ARP Request do seu próprio endereço IP. 111 responde mais às IGMP Queries, o controlador considera que o mesmo deixou de subscrever o grupo. O controlador terá portanto de: 1) enviar periodicamente IGMP Queries; 2) interceptar os IGMP Membership Reports para saber os membros associados aos grupos e actualizar as estruturas de dados; 3) interceptar IGMP Joins e Leaves e actualizar as estruturas de dados; 4) limpar periodicamente das estruturas de dados a informação sobre subscrições de grupos desactualizadas. Para clarificar a gestão do IGMP feita pelo módulo, apresenta-se o pseudo-código correspondente, que ilustra igualmente o estilo de programação usada no controlador. Um thread (não apresentado) assegura a funcionalidade 4) do módulo. HashMap <group ip, list of devices> groups; // in FloodLight, a device is a communication interface HashMap <subscriber ip, timestamp> subscriberLastSeen; received(PacketIn pi, Switch sw){ if (pi is an IGMP packet) return handleIgmp(pi, sw) else .... // process other packet types } O passo seguinte consiste na instalação de flows nos switches da árvore podada, configurando os mesmos para fazerem inundação dos pacotes. Nos restantes instalam-se flows para fazer drop dos mesmos pacotes. Na versão 1.0 do protocolo OpenFlow só é possı́vel associar uma acção de forwarding a cada flow. A versão 1.3 já suporta associar várias acções, o que permitiria enviar os pacotes apenas para os canais que pertencem à árvore. Infelizmente, como a nova versão ainda não está generalizada, e não é suportada pela versão do software e do simulador que utilizámos, foi usada a implementação com base em difusão para todas as portas. Assim, quando o módulo Forwarding do Floodlight recebe um pacote, e este é um pacote IP Multicast, realiza as computações necessárias (lista de switches da árvore podada) e por fim instala os flows nos switches. A implementação é descrita a seguir em pseudo código, uma vez mais para ilustrar o estilo de programação do controlador. received(PacketIn pi, Switch sw){ if(pi is an IP multicast packet) doMulticast(pi, sw) else // process other packet types } handleIgmp(packetIn pi, switch sw){ if (pi.srcIp != controllerIp) { device = device such that device.IP = pi.srcIP // we must handle this packet, // since it is a join/leave/report message if (pi.type equals report or join){ groups.add(pi.dstIp, device) update subscriberLastSeen } else if (pi.type equals leave){ groups.remove(pi.dstIp, device) } } // allow other modules to process the packet return continues } doMulticast(packetIn pkt, switch sw){ BroadcastTree bt = topology.getBroadcastTree(pkt.src.srcSw); tree = computeFloodSwitches(bt, pkt.src.srcSw, ptk.dst); if(tree.contains(sw)){ installDoFloodFlow(tree, pkt, sw) }else{ installDoDropFlow(pkt) drop packet } } //this method is called each 90 seconds by an endless thread sendQuery(){ create packetOut and build it as an IGMP Report write to switch with lower id } C. Encaminhamento IP Multicasting Para optimizar a implementação do IP Multicasting usada pelo Floodlight, é necessário evitar tráfego inútil e fazer chegar cada mensagem difundida a cada subscritor pelo caminho mais curto. Dispondo de informação sobre os subscritores de cada grupo e, com base nos pacotes enviados para os mesmos, o controlador, sempre que recebe um pacote IP Multicast com origem no emissor E, e dirigido ao grupo G, deve assegurar o seu encaminhamento através de uma árvore de caminhos mais curtos com raiz em E e cobrindo apenas os subscritores de G. O Floodlight já dispõe de uma forma de calcular uma árvore de cobertura da rede com raiz num dado nó, usada para o tráfego unicast. A implementação usa o algoritmo de Dijkstra. Para adaptar estas árvores ao novo objectivo, foi necessário podá-las para evitar mensagens inúteis, através de um algoritmo, que introduzimos no FloodLight sob o nome computeFloodSwitches, que computa uma árvore que cobre todos os switches com membros de um grupo IGMP com raiz no emissor. O algoritmo calcula um conjunto de switches 112 inicializado com a raı́z e todos os switches com subscritores do grupo. Em seguida acrescenta a esse conjunto todos os switches extra que são necessários para chegar de cada switch no conjunto inicial até à raiz. installDoFloodFlow(tree, packetIn, root){ initiate OFFlowMod set match from packetIn set idle and hard timeouts set command to add flow and action to flood set wildcards to inPort, dataLinkVLAN, dataLinkSrc, dataLinkDst, networkMaskSrc, networkMaskDst for each switch in tree { if(switch.Id equals root.Id){ set match inPort to packetIn inPort // the match port is the sender port }else{ set match inPort to tree.getPort(switch) // the match port is the port connecting this // switch to the root switch } send flow to switch } send packetOut to sender switch } O pseudo código apresentado corresponde a uma simplificação significativa da implementação visto que o mesmo não ilustra o tratamento da modificação de grupos. Como os timeouts dos flows usados são idle timeouts (i.e., os flows só expiram na ausência de tráfego), se um emissor estiver sempre a enviar tráfego, só o grupo inicial o irá receber e mais nenhum membro que entre posteriormente. Por outro lado, se um membro sair do grupo, poderá passar a existir tráfego inútil. Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 A solução é tratar as alterações de filiação. Na implementação, o módulo Forwarding também processa os pacotes IGMP enviados pelos devices para detectar eventuais alterações de grupos com flows já instalados nos switches. Caso as alterações conduzam a uma modificação da árvore de difusão do grupo, o módulo procede as alterações necessárias dos flows. O mesmo sucede quando há subscrições que expiram. IV. AVALIAÇ ÃO De modo a avaliar esta proposta, utilizou-se o simulador Mininet [13]. O Mininet é um simulador especial, disponibilizado em Linux, que permite simular uma rede de dimensão significativa num único computador, mesmo com recursos limitados. No nosso caso foi utilizado um computador com CPU Intel i7 a 2.5 GHz e com 4 GBytes de RAM. Neste computador o simulador corria numa máquina virtual própria, ligada por IP ao sistema hospedeiro. Neste corria directamente o servidor Floodlight e nele foi realizado o desenvolvimento do código Java do mesmo. Na verdade, o controlador e a rede simulada até podiam correr em computadores distintos. O Mininet simula os switches através do módulo OpenVSwitch, o qual implementa um verdadeiro switch OpenFlow. O simulador constrói uma rede de switches interligando directamente verdadeiras interfaces virtuais do kernel Linux. Assim, toda a comunicação entre os switches é directamente assegurada pelo kernel. Finalmente, os computadores ligados à rede simulada, partilham o file system e executam num name space especı́fico, que faz com que cada um deles, seja equivalente a um verdadeiro host Linux ligado à rede. Cada um desses hosts pode executar directamente comandos e programas convencionais (e.g., ifconfig, tcpdump, sock, bash, . . . ) através de uma consola de comando programável que permite controlar a rede e executar comandos nos computadores à mesma ligados. Desta forma, é possı́vel instanciar uma rede e um conjunto de computadores ligados à mesma, lançar programas de geração de tráfego, lançar monitores de tráfego, obter amostras dos pacotes que passam nos canais e nas interfaces, etc. usando comandos Linux normais. Os testes foram realizados usando um conjunto de scripts em Python que controlavam a execução de programas nos computadores ligados à rede simulada. Deste modo foi possı́vel simular redes OpenFlow e controlar o fluxo de comandos que os computadores executavam. Dois comandos foram usados intensivamente, o programa sock e o programa tcpdump. O programa sock, da autoria de Richard Stevens, disponibiliza um grande leque de opções para demonstrar e testar as funcionalidades do TCP/IP, como por exemplo instanciar emissores e receptores multicast. Deste modo, criaram-se scripts para simular uma rede OpenFlow e ordenar que os computadores dessa rede executem o programa sock. Assim, foi possı́vel simular uma rede com grupos IP Multicast em funcionamento e testar se o comportamento da mesma era o esperado, analisando os traces de pacotes recolhidos através de tcpdump. Num teste final, mais completo, foi usada uma configuração de 7 switches e 8 computadores Os últimos entravam e saiam aleatoriamente de diversos grupos IP Multicast e, também aleatoriamente, iniciavam a transmissão de fluxos de pacotes para os diferentes grupos. Este teste, mais abrangente, A Internet do futuro Hora 1 2 3 4 5 6 7 Total TI = 0 4872 5802 5575 6534 7205 5142 228 35358 TI = 60 1137 1495 2323 2443 1845 992 56 10291 TI = 1200 584 560 1409 1030 451 395 5 4434 Ganho TI = 60 76,66% 74,23% 58,33% 62,61% 74,39% 80,71& 75,44% 70,89% Ganho TI = 1200 88,01% 90,35% 74,73& 84,24% 93,74% 92,32% 97,81% 87,46% Tabela I: Número de ARP Requests por hora (variando TI) e % de redução dos mesmos pela cache do controlador permitiu, através de análise detalhada dos traces, verificar a implementação realizada. Apesar de não ter sido desenvolvida uma avaliação rigorosa do desempenho em produção, o trabalho desenvolvido e os testes realizados permitiram verificar as hipóteses iniciais, isto é, uma vez vencida a barreira de penetrar na arquitectura do controlador, do seu ambiente de programação e testes, e dos detalhes de implementação do OpenFlow e da aproximação SDN, os algoritmos de controlo da rede são certamente mais simples do que a sua versão completamente distribuı́da. Para avaliar a optimização das difusões de ARP Requests foi usado um trace de pacotes recolhidos numa rede convencional e avaliados quais os ganhos que a cache partilhada de ARP introduziria. O resultado deste avaliação foi saber qual a redução de difusões que a mesma permitiria, usando vários valores para o parâmetro TRUST INTERVAL (TI). Na tabela I apresenta-se o número de ARP Requests existentes na rede e o número de ARP Requests que existiriam na mesma se se utilizasse o controlador com a optimização desenvolvida. A tabela tem uma linha por cada hora de tráfego recolhido e apresenta três hipóteses. No primeiro caso é apresentado o número de ARP Requests total capturados durante essa hora. No segundo caso é apresentado o número de ARP Requests que existiriam na mesma rede durante essa hora com TI = 60 segundos, e no terceiro caso com TI = 1200. Como se pode observar existe redução significativa das difusões de ARP Requests. V. C ONCLUS ÕES E T RABALHO F UTURO O trabalho realizado permite tirar várias conclusões. As primeiras estão relacionadas com a extensibilidade e flexibilidade da aproximação SDN. Com efeito, foi possı́vel de forma relativamente simples e com base em algoritmos centralizados substituir integralmente a utilização de difusão por defeito pelo uso de encaminhamento pelos caminhos mais curtos, quer para o tráfego ponto a ponto (funcionalidade já disponibilizada pelo Floodlight), mas também para o tráfego IP Multicasting. Neste último caso o encaminhamento passou a ser realizado com árvores de caminhos mais curtos optimizadas para cada emissor e o grupo de subscritores do grupo. Ambas as formas de encaminhamento funcionam perfeitamente numa rede de switches organizada em malha, com caminhos alternativos e redundantes. Foi igualmente possı́vel optimizar a gestão dos mapeamentos de endereços IP / MAC e da filiação de grupos (protocolos 113 ARP e IGMP) através da utilização de uma gestão centralizada de directórios. A actualização dos directórios é realizada pelos switches enviando directamente para o controlador os pacotes ARP Replies e IGMP Reports recebidos. Sempre que os switches solicitam ao controlador que os instrua sobre a forma de realizarem o encaminhamento, os pacotes IP também são usados para actualizar o mapa de endereços IP / MAC. O encaminhamento implementado constituı́ uma ilustração particularmente feliz das vantagens potenciais do paradigma SDN na medida em que se encaminha com qualidade equivalente à da utilização simultânea de OSPF para todo o tráfego IP Unicasting, e IGMP e PIM-DM (PIM Dense Mode) para o tráfego IP Multicasting, mas com uma implementação baseada em algoritmos centralizados e sem todo o overhead de controlo do PIM-DM. Com efeito, o PIM-DM usa inundações periódicas particularmente ineficazes com uma distribuição pouco densa de subscritores. Adicionalmente, os gestores da rede não necessitam de introduzir endereçamento IP para várias subnets distintas. A complexidade do novo control plane é relativamente baixa, ao mesmo tempo que os switches apenas necessitam de manter tabelas de flows grosso modo equivalentes às tabelas de endereços MAC convencionais e deixaram de executar protocolos e algoritmos distribuı́dos. É no entanto necessário ter presente que estas vantagens são apenas potenciais devido a diversos desafios levantados pelas SDN. Em primeiro lugar os problemas de escalabilidade [14] quando a rede atinge dimensões muito significativas. Em segundo lugar os problemas relacionados com a resistência a avarias, desde logo as do controlador, mas também a forma como este lida com as avarias da rede, sobretudo as que conduzirem a partições da mesma. Intimamente relacionado com este problema está o problema do bootstrap (como é que os switches encontram o controlador e comunicam com este e sobretudo como é que o controlador e os switches se coordenam perante avarias). Por último lugar, os problemas de segurança, em particular os relacionados com ataques de negação de serviço ao controlador. Finalmente, é necessário ter presente que a aproximação SDN introduz um novo ponto a necessitar de normalização e coordenação para evitar a dependência de soluções proprietárias. Tal dependência irá deslocar-se para o software dos controladores, o qual é ainda objecto de desenvolvimento e investigação. Na implementação realizada diversas facetas relacionadas com o controlo da rede pelo Floodlight, usando OpenFlow, necessitam de ser melhor trabalhadas, nomeadamente as que se discutem a seguir. O envio de comandos para os switches pelo Floodlight é assı́ncrono. Assim, podem eventualmente ocorrer race conditions porque um pacote de um flow pode chegar a um switch antes do comando para processar o mesmo flow. Esta situação não introduz necessariamente incorrecções, mas pode introduzir processamento extra e inútil no controlador e atrasos no encaminhamento. Este problema é delicado e necessita de um tratamento mais aprofundado. Uma possı́vel forma de o minorar, corresponde a impor uma ordem estrita de instalação dos flows pelos diferentes switches, começando sempre a instalá-los nos switches mais próximos da raiz. da rede, o Floodlight dispõe de mecanismos que os detectam e disparam as correspondentes notificações. Na implementação do IP Multicasting será necessário acrescentar o tratamento dessas notificações (por agora ignoradas) e reconfigurar todas as árvores afectadas. Tal como para a detecção de falhas, o Floodlight tem mecanismos para identificar se um computador se moveu na rede. O processamento desses eventos passaria por duas situações: 1) a de um computador subscritor de um grupo se mover e 2) a de um computador emissor se mover. Para a primeira, é necessário, analogamente ao que acontece na mudança da filiação de um grupo, calcular a diferença entre a árvore antiga e a nova e proceder de forma idêntica. Na segunda situação, o tratamento mais simples consistiria em desinstalar a antiga árvore e instalar a nova. O trabalho futuro passa igualmente pelo teste em produção numa rede real. AGRADECIMENTOS São devidos a Samuel Neves e Luı́s Anjos pelo apoio na recolha dos dados sobre o tráfego que permitiram avaliar o ganho potencial da utilização da cache ARP. R EFER ÊNCIAS [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] R. Perlman, “An algorithm for distributed computation of a spanning tree in an extended lan,” ACM SIGCOMM Computer Communication Review, vol. 15, no. 4, pp. 44–53, Sep. 1985. R. J. Perlman, “Rbridges: Transparent routing,” in INFOCOM, 2004. M. Casado, M. J. Freedman, J. Pettit, J. Luo, N. McKeown, and S. Shenker, “Ethane: taking control of the enterprise,” SIGCOMM Comput. Commun. Rev., vol. 37, no. 4, pp. 1–12, Aug. 2007. C. Kim, M. Caesar, and J. Rexford, “Seattle: A scalable ethernet architecture for large enterprises,” ACM Trans. Comput. Syst., vol. 29, no. 1, p. 1, 2011. A. Greenberg, J. R. Hamilton, N. Jain, S. Kandula, C. Kim, P. Lahiri, D. A. Maltz, P. Patel, and S. Sengupta, “Vl2: a scalable and flexible data center network,” in SIGCOMM ’09, 2009. N. McKeown, T. Anderson, H. Balakrishnan, G. Parulkar, L. Peterson, J. Rexford, S. Shenker, and J. Turner, “Openflow: enabling innovation in campus networks,” SIGCOMM CCR, vol. 38, no. 2, pp. 69–74, Mar. 2008. T. A. Limoncelli, “Openflow: A radical new idea in networking,” Queue, vol. 10, no. 6, pp. 40:40–40:46, Jun. 2012. N. Gude, T. Koponen, J. Pettit, B. Pfaff, M. Casado, N. McKeown, and S. Shenker, “Nox: towards an operating system for networks,” SIGCOMM Comput. Commun. Rev., vol. 38, no. 3, pp. 105–110, Jul. 2008. “Pox project,” http://www.noxrepo.org, [Acedido em outubro de 2013]. D. Erickson, “Baecon a java-based openflow controller,” https:// openflow.stanford.edu/display/Beacon/Home, [Acedido em outubro de 2013]. “Floodlight project,” http://floodlight.openflowhub.org, [Acedido em outubro de 2013]. Y. Nakagawa, K. Hyoudou, and T. Shimizu, “A management method of IP multicast in overlay networks using openflow,” in Proceedings of the first workshop on Hot topics in software defined networks - HotSDN ’12. New York, New York, USA: ACM Press, 2012, p. 91. B. Lantz, B. Heller, and N. McKeown, “A network in a laptop: rapid prototyping for software-defined networks,” in Proceedings of HotnetsIX, ser. Hotnets-IX. New York, NY, USA: ACM, 2010, pp. 19:1–19:6. S. H. Yeganeh, A. Tootoonchian, and Y. Ganjali, “On scalability of software-defined networking,” Communications Magazine, IEEE, vol. 51, no. 2, pp. 136–141, 2013. Se existirem problemas com os switches ou com os canais 114 Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 Automatização de Testes SIP ∗ Centro David Gonçalves∗ , Pedro Sousa∗ , António Amaral† and António Costa∗ Algoritmi, Universidade do Minho, [email protected], {pns,costa}@di.uminho.pt † PT Inovação, [email protected] Abstract—As redes IP são actualmente as principais infraestruturas de comunicação utilizadas por um conjunto crescente de aplicações e serviços heterogéneos, nos quais se incluem os serviços de voz. Neste sentido, as funções de transmissão e gestão de sessões são muitas vezes asseguradas por protocolos dedicados, como seja o exemplo do Real-Time Transport Protocol (RTP) e o Session Initiation Protocol (SIP). O protocolo SIP apresenta um papel preponderante na gestão de sessões, desempenhando funções vitais num conjunto extenso de soluções. Contudo, a disseminação do protocolo acarreta alguns desafios, tais como a validação e teste de soluções SIP. Estes processos de validação necessitam de considerar diversos fatores, como seja o caso da análise de cabeçalhos, validação de valores dinâmicos, verificação de fluxos de mensagens, entre outros. Nesta perspetiva, a validação manual de soluções SIP apresenta-se como um processo moroso e dispendioso, sendo crucial o desenvolvimento de processos automatizados nesta área. Neste contexto, este resumo alargado aborda e analisa de forma integrada a temática geral da validação de soluções SIP, apresentando também ferramentas e aplicações capazes de auxiliarem os processos de automatização de testes de soluções SIP. No que respeita à sinalização, o protocolo Session Initiation Protocol (SIP) [3] apresenta-se como um protocolo preponderante no estabelecimento de sessões, sendo o mesmo definido na RFC 3261 [3]. Em termos funcionais, o protocolo SIP opera a nı́vel aplicacional seguindo o modelo cliente-servidor para a troca de mensagens entre os participantes da sessão. No que respeita às mensagens trocadas, o SIP apresenta as mensagens em formato texto, sendo de simples interpretação para o utilizador, mas de difı́cil interpretação integral para os sistemas computacionais. Embora o formato das mensagens SIP favoreça a validação manual, a diversidade destas torna o processo de validação manual moroso e propenso a erros, verificando-se a necessidade de automatizar o processo de validação. Contudo, a implementação e validação de soluções com elevada diversidade, tal como acontece com o protocolo SIP, torna a tarefa de automatização árdua e de difı́cil implementação. Ao longo do resumo são discutidas as dificuldades associadas aos processos de validação de soluções SIP bem como estratégias gerais de um possı́vel processo de automatização. I. I NTRODUÇ ÃO A proliferação das redes IP veio mudar o modo como as pessoas interagem e comunicam. O impacto desta tecnologia faz-se sentir tanto nos utilizadores como nos fornecedores de serviço, tendo pois consequências no que respeita às receitas obtidas pelas redes de telecomunicações [1]. As soluções de comunicação por voz em redes IP denominam-se usualmente por soluções Voice over IP (VoIP), caracterizando-se como soluções capazes de converter sinais analógicos de voz em sinais digitais passı́veis de serem transmitidos sobre uma rede comutada de pacotes. No que diz respeito às vantagens do VoIP, estas apresentam-se distintas para utilizadores finais, empresas e operadores tendo contudo, um principio base comum, diminuição de custos comparativamente com serviços das redes telefónicas. Em termos protocolares, as soluções VoIP necessitam de possuir por base mecanismos de sinalização e transmissão dos media, capazes de permitir o estabelecimento de uma sessão e a correspondente troca de dados sobre a mesma. Em relação aos protocolos usados para a transmissão de dados, destaca-se o protocolo Real-Time Transport Protocol (RTP) [2], caracterizado como um protocolo de transporte de dados independente das camadas inferiores. Este trabalho é financiado por Fundos FEDER através do Programa Operacional Fatores de Competitividade – COMPETE e por Fundos Nacionais através da FCT – Fundação para a Ciência e Tecnologia no âmbito do Projeto: FCOMP-01-0124-FEDER-022674. Agradeço à PT Inovação, a possibilidade para a realização do trabalho descrito neste artigo. A Internet do futuro II. M OTIVAÇ ÃO Em termos gerais, a qualidade de um projeto encontra-se diretamente relacionada com a capacidade dos testes validarem todos os requisitos considerados. Contudo, o mapeamento de requisitos em testes e a execução destes na sua totalidade apresenta-se como uma tarefa morosa e de difı́cil alcance. No que respeita à realização de validações de soluções SIP, estas necessitam de ser validadas sobre o conjunto de equipamentos que possuem intervenção no fluxo de mensagens, tendo pois cada equipamento de ser validado de forma singular. Em termos de condicionantes, para além do elevado número de validações a realizar sobre diferentes equipamentos, verificam-se obstáculos associados com as próprias caracterı́sticas das mensagens, quer seja devido à multiplicidade de informação presente, ao dinamismo de certos valores ou relacionadas com o tipo de mensagem e a sua integração no fluxo geral de mensagens. A nı́vel estrutural as mensagens SIP seguem o modelo definido na RFC 2822 [4], sendo constituı́das por uma start-line, um conjunto de cabeçalhos e o corpo das mensagens. Aquando da validação de soluções SIP, o foco principal centra-se na validação dos valores associados com os cabeçalhos presentes nas mensagens. Sendo estes em grande número, encontrando-se definidos só na RFC base mais de 40 cabeçalhos distintos [3]. Juntamente com o elevado número de cabeçalhos verificamse dificuldade na validação dos mesmos pelo dinamismo 115 que estes apresentam. Os valores dos cabeçalhos SIP são definidos por uma gramática Augmented Backus–Naur Form (ABNF) [5] apresentando-se restritos, mas com um grau de dinamismo elevado comparativamente com os cabeçalhos da maioria dos protocolos. Este conjunto extenso de problemáticas tem relevância tanto ao nı́vel académico como empresarial apresentando-se util para equipas multidisciplinar que operem directa ou indirectamente com o protocolo SIP. Verificando-se assim a necessidade de desenvolver métodos capazes de analisarem soluções SIP de forma rápida e eficaz, permitindo a realização cómoda de validações e teste de soluções SIP. III. M ETODOLOGIA DE TESTE E VALIDAÇ ÃO DE CEN ÁRIOS SIP Tendo como ponto de partida as dificuldades de validação de soluções SIP anteriormente identificadas, começou-se a desenvolver trabalho tendo como propósito final a criação de uma solução/metodologia capaz de validar soluções SIP de forma rápida e simples. Neste processo terão que ser consideradas as questões centrais do controlo dos inputs e outputs dos equipamentos, e a execução dos testes em condições em tudo semelhantes às condições que a solução terá no ambiente final. O controlo dos inputs, outputs é fundamental. A solução a validar sobre o ponto de vista do equipamento possui mecanismos de tratamento das mensagens SIP consoante a informação que chega ao equipamento na mensagem, sendo crucial conhecer e controlar bem a informação que é enviada para e do equipamento para se conseguir testar diferentes cenários com a precisão necessária. A solução proposta para esta temática identifica a necessidade de ostracizar o elemento a validar para um ambiente controlado onde os inputs e outputs encontram-se ao encargo da equipa de validações. Neste tipo de cenários é configurado o equipamento para operar com dois terminais a executar software de emulação SIP. A escolha de ferramentas de emulação em detrimento de terminais fı́sico justifica-se pela capacidade que estas ferramentas possuem de manipular diretamente as mensagens do fluxo, permitindo criar cenários idênticos aos presentes na rede onde o equipamento a validar se encontrara implementado. Relativamente à criação das mensagens, como indicado anteriormente, as mensagens SIP possuem um tamanho avultado sendo assumido por alguns autores o valor médio de 731 bytes por mensagem [6]. Estes valores põem em causa a criação manual das mensagens no script a emular, sendo necessário desenvolver mecanismos automáticos de geração de scripts. Para endereçar esta questão, optou-se pelo uso de aplicações capazes de através de capturas de rede gerar scripts de emulação de tráfego. Desta forma consegue-se garantir a exatidão dos comportamentos, avaliando se os mesmos estão alinhados com a realidade. IV. F ERRAMENTAS Open Source Ao nı́vel de ferramentas de emulação de tráfego SIP, existe um conjunto extenso de possibilidades, tais como Seagull [7], SIP Tester [8], SIPp [9], entre outros. Das ferramentas 116 analisadas a que se revelou mais adequada foi o SIPp, devido aos mecanismos que possui de validação de mensagens, à aceitação que a ferramenta tem por parte de entidades relevantes na área do SIP como a Fraunhofer [10] e pelo conjunto de aplicações de tratamento de tráfego que dispõe. No que respeita a geração de cenário, são analisadas duas aplicações que através de capturas de rede (ficheiros PCAP) redigem cenários SIPp. A. SIPp O SIPp é um projeto open source desenvolvido tendo como propósito a geração de tráfego SIP e a validação do mesmo [9]. Em termos de modelo funcional, o SIPp opera sobre ficheiros XML onde são descritos os cenários a executar de forma simples e concisa, sendo fácil o processo de adaptação dos mesmos. Ao nı́vel protocolar, a ferramenta encontra-se equipada com suporte para protocolos diversos como o IPv4, IPv6, UDP, SCTP entre outros, permitindo o desenvolvimento de cenários próximos da realidade, conjugando scripts de emulação com equipamentos fı́sicos. Relativamente a cenários de testes, um caso prático de integração da ferramenta de emulação com equipamentos, apresentar-se-ia semelhante a Figura 1. Fig. 1: Fluxo de estabelecimento de sessão entre UAC e UAS Os ficheiros SIPp representados como UAC (cliente) e UAS (servidor) apresentam o mesmo fluxo, mas com comportamento complementar um do outro. Como indicado anteriormente o SIP segue um modelo cliente-servidor onde para um dado request (ex. INVITE), é enviada uma response (ex. 200 OK). Quando o SIPp UAC faz o envio de um request o UAS tem no seu fluxo a indicação do request enviado pelo UAC e viceversa mantendo desta forma o fluxo das mensagens (excerto I de cenário entre o UAC e o UAS). Aquando do término da criação dos cenários SIPp, existe a necessidade de aplicar expressões regulares ao mesmo de Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 Exc. I: Interligação entre o INVITE do UAC e UAS <send> INVITE ... </send> <recv request=”INVITE” > </recv> forma a validar valores especı́ficos da mensagem. Em termos funcionais, na mensagem que se quer validar indica-se o valor expectável para o cabeçalho a validar, estando este mapeado numa expressão regular. Aquando da execução, o próprio SIPp encarrega-se de analisar a mensagem recebida e verificar se a mesma apresenta o valor esperado. O conteúdo da expressão é validado dentro de uma tag <ereg> indicando que componente da mensagem se pretende validar, que tipo de validação e qual a expressão regular com que se pretenda que exista match. Em termos estruturais apresenta-se semelhante ao evidenciado no excerto de código IV. B. Preparação de testes a partir de cenários reais Como referido anteriormente de forma a tornar o processo de geração de scripts uma tarefa menos penosa recorre-se ao uso de aplicações capazes de, forma automática, gerar os cenários pretendidos. De entre as aplicações destacam-se o pcap2sipp [11], sniff2sipp [12]. Das aplicações de estudadas o sniff2sipp apresentou-se como a aplicação mais adequada para a geração de scripts, apresentando-se como uma aplicação mais madura, operando com um conjunto de protocolos superior e capaz de realizar scripts através de capturas ou de traces diretos na rede. V. E XEMPLO DE U TILIZAÇ ÃO O conjunto das ferramentas apresentadas possibilita a validação de soluções SIP sobre diferentes cenários. A tı́tulo de exemplo demonstra-se de seguida os diferentes passos a seguir para a validação de um equipamento SIP com funções de encaminhamento e manipulação de cabeçalhos. A validação dos testes inicia-se com o processo de criação dos scripts SIPp, sendo esta tarefa levada a cabo pelo sniff2sipp. Tendo a captura com o comportamento a validar, basta executar a aplicação indicando o nome da captura a gama de portos usada pelo SIP como verificado na excerto II. Exc. II: Comando de arranque da aplicação sniff2sipp ./sniff2sipp -f call.cap -p 5060-5062 Após a execução do comando são gerados os ficheiros do cliente e do servidor. No ficheiro do cliente é apresentado o INVITE a ser enviado para o equipamento a validar (excerto III), enquanto que do lado do servidor é indicada a mensagem que se espera receber. Com o envio e a espera de receção da mensagem já se valida a solução ao nı́vel do fluxo. Contudo, o equipamento a validar substitui o user-part do cabeçalho To pelo valor “siphomenetwork”, sendo necessário aplicar uma expressão regular ao INVITE a receber no servidor (excerto IV) Estando os cenários SIPp preparados e com as expressões regulares embebidas, basta executar os mesmos. A Internet do futuro Exc. III: Mensagem INVITE em cenário SIPp UAC INVITE sip:[service]@[remote ip] [remote port] SIP/2.0 Via: SIP/2.0/UDP [local ip]:[local port];branch=[branch];rport Max-Forwards: 70 Contact: <sip:test1@[local ip]:[local port]> To: <sip:[service]@[remote ip]:[remote port]> From: <sip:test1@[local ip]:[local port]>;tag=[pid] Call-ID: [call id] CSeq: 1 INVITE Exc. IV: Mensagem INVITE em cenário SIPp UAS <recv request=”INVITE” crlf=”true”> <action > <ereg regexp=”<sip:siphomenetwork@*” search in=”hdr” header=”To”/> </action> </recv> Através da plataforma, consegue-se realizar validações em ambiente emulado como se de tráfego real se tratasse permitindo assim executar e validar os diferentes cenários de forma mais autónoma e controlando o cenário de testes na sua totalidade. VI. C ONCLUS ÕES As soluções tecnológicas envolvendo o protocolo SIP encontram-se cada vez mais presentes no dia-a-dia das pessoas, verificando-se a necessidade de desenvolver estratégias auxiliares na resolução de tarefas morosas e dispendiosas, como é o caso dos processos de validação e testes de infra-estruturas VoIP. Desta forma, a definição de estratégias eficazes, recorrendo à utilização de ferramentas de automatização, torna-se uma mais-valia indispensável nesta área. A utilização destes mecanismos é útil, tanto no processo de validação de soluções, como no auxı́lio ao estudo de anomalias, permitindo pois um mais rápido desenvolvimento e implementação de soluções nos clientes finais. Através da solução delineada, que tem por base ferramentas open source, é pois possı́vel acelerar todo o processo de desenvolvimento de soluções SIP, possibilitando às equipas de desenvolvimento a definição de um framework simples mas eficaz para o teste e deteção de anomalias nestes ambientes. R EFERENCES [1] Antonio Cuevas, J.I. Moreno, P. Vidales, and H. Einsiedler. The ims service platform: a solution for next-generation network operators to be more than bit pipes. Communications Magazine, IEEE, 44(8):75–81, 2006. [2] H. Schulzrinne S. Casner R. Frederick V. Jacobson. Rtp: A transport protocol for real-time applications, 7 2003. RFC 3550. [3] J. Rosenberg H. Schulzrinne G. Camarillo A. Johnston J. Peterson R. Sparks M. Handley E. Schooler. Sip: Session initiation protocol, 6 2002. RFC 3261. [4] P. Resnick. Internet message format, 4 2001. RFC 2822. [5] D. Crocker P. Overell. Augmented bnf for syntax specifications: Abnf, 1 2008. RFC 5234. [6] Masataka Ohta. Overload control in a sip signaling network. International Journal of Electrical and Electronics Engineering, 2009. [7] HP OpenCall Software. Seagull: an open source multi-protocol traffic generator @ONLINE, 2 2009. [8] StarTrinity.com. Freeware sip tester (call generator, sip/rtp stressing tool, dos simulator) @ONLINE, 2013. [9] R. Day. Welcome to sipp @ONLINE, 4 2013. [10] Fraunhofer FOKUS. Links for ims developers @ONLINE, 2008. [11] C. Oancea. pcap2sipp @ONLINE, 4 2013. [12] Digium. digium: The asterik company @ONLINE, 2013. 117 118 Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 Transmissão de vı́deo com múltiplas descrições com débitos variáveis em canais multi-percurso com débito assimétrico Pedro Correia Pedro A. Amado Assunção Vı́tor Silva Instituto de Telecomunicações Instituto Politécnico de Tomar/EST Portugal [email protected] Instituto de Telecomunicações Instituto Politécnico de Leiria/ESTG Portugal [email protected] Instituto de Telecomunicações Universidade de Coimbra/DEEC Portugal [email protected] Resumo—Este artigo propõe um método para codificação e transmissão de vı́deo, usando múltiplas descrições não balanceadas com débitos variáveis em canais assimétricos multi-percurso. O controlo de débito de cada descrição é realizado através da combinação dos parâmetros de codificação escalar não balanceada (U-MDSQ), com base num método que explora a relação linear entre o número de bits e a percentagem de coeficientes da transformada no domı́nio MDSQ. Os resultados de simulação mostram que o método proposto garante uma melhoria de desempenho em transmissão de vı́deo através de canais multipercurso, com restrições na capacidade de transmissão e com taxas de perda de pacotes assimétricas, quando comparado com esquemas MDSQ balanceado (B-MDSQ). Deste modo, a sua utilização traz vantagens em sistemas de comunicação de vı́deo que usam redes ou canais de transmissão com múltiplos percursos e com restrições na capacidade disponı́vel ou taxas de perdas assimétricas. de bits gerados e o número de coeficientes da transformada que são nulos no contexto MDSQ. Demonstra-se que esta relação linear se mantém em cada descrição quando se aplica na cascata quantificaçãoMDSQ aos coeficientes da transformada usada em H.264/AVC. O método proposto permite reservar e controlar débitos binários diferentes em cada descrição de acordo com a restrição global de largura de banda e distribuição entre descrições sem degradar o desempenho débito-distorção MDC global. Apesar dos métodos de controlo de débito baseados no modelo linear terem sido usados noutros contextos, o seu uso em esquemas MDSQ não tem sido muito investigado, conferindo assim um aspecto inovador ao caso estudado neste artigo. I. I NTRODUÇ ÃO II. M ODELO ρ PARA MDSQ Nos ambientes heterogéneos das redes de comunicação atuais, a grande variedade de tecnologias de rede, assim como a rápida evolução das suas arquiteturas e topologias, tem dado origem ao aparecimento de novos métodos que permitam solucionar os problemas de erros de transmissão e perdas. A transmissão de vı́deo com diversidade de canais é vista como um esquema interessante de comunicação para fazer face a este cenário. Enquadrando-se neste contexto, a codificação de Vı́deo com Múltiplas Descrições (MDC) é uma abordagem de codificação eficiente de modo a aumentar a robustez em canais sujeitos a erros, particulamente em aplicações que permitem a utilização de vários caminhos de comunicação entre o servidor e um determinado cliente. Na codificação de vı́deo com múltiplas descrições (MDC), a fonte de sinal é representada através da codificação de vários fluxos de dados (descrições), onde cada um pode ser descodificado de forma independente. Por outro lado, as descrições podem ser combinadas entre si, obtendo-se assim uma descodificação com melhor qualidade quando comparada com a descodificação independente [1]. A maioria das arquitecturas MDC usam N = 2 descrições com débitos e distorções semelhantes, i.e. balanceadas. No entanto, para que o sistema possa lidar com as caracterı́sticas variáveis dos canais, em termos de largura de banda disponı́vel e taxas de perda de pacotes, o codificador MDC necessita de adaptar de forma dinâmica os débitos de transmissão de cada descrição por forma a minimizar a distorção no descodificador. Deste modo, esta necessidade obriga que os esquemas de transmissão MDC possuam a capacidade de gerar débitos assimétricos para cada descrição (MDC não balanceado (UMDC)), podendo descodificar cada descrição de forma independente para resoluções e/ou qualidades diferentes. Usando o conceito de codificação com múltiplas descrições baseado em quantificação escalar (MDSQ) balanceado [2], este artigo usa um novo método MDSQ baseado em tabelas de indexação variáveis [3]. Neste artigo é avaliada a relação linear existente entre o número O modelo ρ é baseado na dependência linear entre o número de bits produzido por um codificador e a percentagem de coeficientes nulos resultantes da transformada ρ, depois da quantificação [4]. Este é um modelo bastante simples e pode ser expresso pela seguinte equação, usando apenas um parâmetro φ, A Internet do futuro R(ρ) = φ(1 − ρ), (1) onde R(ρ) é o número de bits obtido como função de ρ, i.e. a percentagem de coeficientes nulos. O parâmetro do modelo é obtido através das unidades de codificação anteriores. A função débitoquantificação (R-Q) é obtida de forma indirecta através da relação entre a estatı́stica da fonte com o passo de quantificação. Consequentemente, é necessário calcular a estatistica da fonte, que pode ser obtida baseada em modelos paramétricos [5]. Outra abordagem possı́vel consiste em usar os dados de unidades de codificação (imagem) anteriores, de modo a poder obter a estatı́stica da fonte de forma operacional para posteriormente calcular um parâmetro de quantificação (QP) adequado para um determinado valor de ρ. A Fig. 1 mostra a dependência entre o número de bits produzido em cada descrição, resultante da codificação MDSQ de imagens I e P, e a percentagem de coeficientes nulos antes de ser aplicado MDSQ. Este exemplo mostra que as descrições balanceadas e não balanceadas seguem uma relação linear entre número de bits e percentagem de zeros antes de MDSQ. É interessante verificar que a proporcionalidade é mantida para diferentes percentagens de balanceamento. Esta caracteristica é particularmente evidente em MDSQ balanceado e para MDSQ não balanceado em débitos binários mais elevados. III. C ONTROLO DE D ÉBITO U-MDSQ Esta secção apresenta uma nova abordagem para controlo do débito binário em codificadores U-MDSQ, baseada no conceito de atribuição de ı́ndices para MDC não balanceado. Esta abordagem permite que o débito binário entre descrições possa ser dinâmico 119 Bal.-D1 Bal.-D2 Unbal. Z=0-D1 Unbal. Z=0-D2 Unbal. Z=1-D1 Unbal. Z=1-D2 Unbal. Z=2-D1 Unbal. Z=2-D2 Unbal. Z=3-D1 Unbal. Z=3-D2 300 rate(kbits/frame) 250 200 150 250 Balanceado-D1 Balanceado-D2 Não bal. Z=0-D1 Não bal. Z=0-D2 Não bal. Z=1-D1 Não bal. Z=1-D2 Não bal. Z=2-D1 Não bal. Z=2-D2 Não bal. Z=3-D1 Não bal. Z=3-D2 200 kbits/imagem 350 150 ( 100 100 0 40 50 60 70 80 Percentage of zeros before MDSQ 90 0 55 60 (a) Imagens I. Figura 1. 65 70 75 80 85 Percentagem de zeros antes de MDSQ 90 95 (b) Imagens P. Relação entre percentagem de zeros e débito, sequência bus. através da alteração das tabelas de indexação do método MDSQ [3]. O método de controlo de débito proposto tem por objetivo produzir duas descrições com débitos diferentes, baseado na dependência linear entre percentagem de zeros dos coeficientes da transformada e o número de bits obtidos em cada descrição depois de MDSQ. É utilizado um buffer comum às duas descrições. O débito global gerado pelo esquema MDSQ é controlado através a escolha adequada do parâmetro de quantificação QP0 do codificador central e também pela escolha das tabelas de indexação MDSQ, de acordo com um débito desejado pré-definido. Este método opera em dois nı́veis distintos: GOP (Grupo de imagens) e imagem. Ao nı́vel de GOP, o algoritmo de controlo de débito determina o quantidade de bits necessária para manter um nı́vel adequado de preenchimento do buffer de acordo com um determinada restrição de largura de banda do canal. Adicionalmente, a percentagem de balanceamento entre descrições é também definida de acordo com o débito alocado a cada uma das descrições. O método proposto é pois uma extensão do modelo usado em [6] de modo a incluir um objectivo de débito adicional, de acordo com a percentagem de balanceamento, para que se possa definir o débito de cada descrição para um determinado débito total. Ao nı́vel da imagem, o método de controlo de débito é composto por duas etapas. A primeira etapa define o objectivo para débito global (i.e, para ambas as descrições) com base na ocupação do buffer e das medidas de complexidade da imagem. Adicionalmente, calcula o objectivo de débito para a descrição principal (a que possuir o débito maior), tendo em conta a percentagem de balanceamento entre descrições. A segunda etapa usa o modelo ρ aplicado à descrição principal para calcular a percentagem de zeros, ρ, necessária para cumprir o ojectivo de débito. Tendo este valor segue-se o cálculo do passo de quantificação δ que permite obter o débito necessário e o correspondente parâmetro de quantificação QP0 . Cada descrição é codificada com base no QP0 e na matriz de indexação determinada para a percentagem de balanceamento desejada. Depois de codificar ambas as descrições, o parâmetro do modelo ρ e a tabela de indexação são actualizadas para a próxima imagem. A. Controlo de débito a nı́vel de imagem O objectivo do número de bits para cada descrição Ti (j) e a percentagem de balanceamento (π1 , π2 ), é dado pela expressão, Ti (j)D1 = Ti (j) × π1 Ti (j)D2 = Ti (j) × π2 (2) O algoritmo de controlo segue a percentagem de balanceamento desejado através do ajuste do parâmetro Z e consequentemente da matriz de indexação, baseada no número de bits obtido em cada descrição na imagem anterior. Este ajuste é feito usando o modelo linear, 120 (3) Posteriormente, tendo em conta as caracterı́sticas descritas na secção II, é aplicado o modelo ρ para determinar o parâmetro de quantificação central (QP0 ) para um determinado objectivo de débito em cada descrição. Tendo em conta os resultados obtidos, o modelo possui uma maior linearidade na descrição com maior débito. Deste modo, o modelo é aplicado à descrição principal usando as estatı́sticas da imagem anterior do mesmo tipo. Assim, o parâmetro do modelo, φi , para a imagem i é calculada de acordo com, 50 50 π1 (Z, t) = mt Z + bt , − 1 ≤ Z ≤ 3, t = I, P, B π2 (Z, t) = 100 − π1 (Z, t) φi = Ri−1 /(1 − ρi−1 ). (4) Depois de calcular φi para uma dada imagem e o correspondente objetivo de débito para a descrição principal, é calculado o valor ρ correspondente (i.e. a percentagem de zeros) usando a equação (1). Através do histograma dos coeficientes da transformada da imagem anterior, é definido o valor do passo de quantificação δ, de acordo com a percentagem de zeros ρ necessária para produzir o número de bits pretendido. A relação entre δ e ρ é estabelecida através de uma tabela de correspondência, preenchida com base nos dados obtidos na imagem anterior. Finalmente, o parâmetro de quantificação é determinado a partir da expressão [5], 3δ )c, 0 ≤ QP0 ≤ 51. (5) 2 O valor de QP0 para as imagens B são obtidas por interpolação das imagens de referência vizinhas (I ou P), tendo em conta a correspondente distância temporal. O valor absoluto da diferença entre imagens adjacentes é limitada ao valor máximo 2, por forma a garantir uma qualidade visual uniforme ao longo da sequencia de vı́deo. As matriz de indexação usada é a mesma da imagem de referencia mais próxima. QP0 = b6 × log2 ( IV. AVALIAÇ ÃO DE D ESEMPENHO O desempenho do método de controlo de débito baseia-se na simulação para transmissão MDC em canais com débito assimétrico com vários cenários de condições de perda de pacotes, comparando os métodos MDC não balanceado com MDC balanceado. Foram usadas para a simulação as sequencias foreman e bus, com resolução CIF, frequência de imagem= 15Hz, GOP=IPBBP... e 16 imagens/GOP. Foi usada a arquitectura MDC em malha fechada descrita em [7] para implementação do método de controlo de débito para MDC não balanceado. Na simulação foi usado uma dimensão do buffer B = Channelrate∗1.5 (em bits) com um atraso inicial D = B∗0.8, equivalente a um atraso de 1.2 segundos. São definidos como objectivos, o débito global assim como as percentagens de balanceamento entre descrições. A. Transmissão em canais com débito assimétrico O método de controlo de débito foi avaliado em cenários de transmissão de video com perda de pacotes em canais com débitos diferentes, mas também com taxas de perda de pacotes diferenciados. O débito de saı́da foi definido a 1 Mbps, usando um número fixo de 10 pacotes por imagem, com 20% de redundância da informação lateral para controlo de distorção, resultante num débito global de 1.2 Mbps. Os débitos e nı́veis de resundância são idêntidos para os esquemas balanceados e não balanceados. A informação adicional é assimetricamente distribuı́da nas duas descrições de modo a manter as percentagens de balanceamento especificadas como objectivo em Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 41 39 38 37 36 35 0 32 31 30 29 2 4 DLR(%) 6 8 28 0 10 (a) Sequencia foreman. 34 40 33 39 32 38 37 35 0 4 DLR(%) 6 8 10 PSNR média usando canais com taxa de perda de pacotes (PLR) 41 36 2 (b) Sequencia bus. PSNR(dB) Média PSNR(dB) Média Figura 2. iguais. Bal. (600 kbps; 600 kbps) Não bal. (480 kbps; 720 kbps) Não bal.(360 kbps; 840 kbps) 33 PSNR(dB) Média PSNR(dB) Média 34 Bal.(600kbps,600 kbps) Não bal.(480 kbps, 720 kbps) Não bal. (360 kbps; 840 kbps) 40 Não bal. (360 kbps; 840 kbps)-(70%,30%) Bal. (600 kbps; 600 kbps)-(70%,30%) Não bal. (480 kbps; 720 kbps)-(60%,40%) Bal. (600 kbps; 600 kbps)-(60%,40%) 2 4 DLR(%) 6 31 30 29 8 (a) Sequência foreman. 10 28 0 Não bal. (360 kbps; 840 kbps)-(70%,30%) Bal. (600 kbps; 600 kbps)-(70%,30%) Não bal. (480 kbps; 720 kbps)-(60%,40%) Bal. (600 kbps; 600 kbps)-(60%,40%) 2 4 DLR(%) 6 8 10 (b) Sequência bus. Figura 3. PSNR média usando canais com taxas de perda de pacotes (PLR) diferentes. cada descrição. A simulação de perdas de pacotes foram realizadas usando o modelo de Markov Gilbert-Elliott de 2 estados por forma a gerar várias taxas médias de perda de pacotes (PLR) e valores médios de perdas em rajada (burst) [8]. De modo a obter resultados estatisticamente relevantes, a transmissão de cada sequência (foreman and bus) foi simulada 50 vezes para cada condição de rede especificada. Nesta simulação, foram consideradas taxas de perda de pacotes médias entre 0% e 10% com um burst médio de 4 pacotes. São considerados dois cenários de aplicação para comparação entre MDSQ balanceado e não balanceado.: i) canais com a mesma PLR e ii) canais com diferentes PLR. Em ambos os casos, o desempenho é avaliado através da PSNR global (i.e., obtida pela descodificação das duas descrições) em função da percentagem da perda total de dados (DLR) em ambas as descrições, i.e., DLR(%) = (1 − Rx rate/T x rate) × 100%. (6) De notar que em U-MDC, valores diferentes de PLR podem produzir a mesma DLR devido ao tamanho variável dos pacotes existente em cada descrição, embora tenhamos o mesmo de número de pacotes por imagem em cada uma delas. 1) Canais com o mesmo PLR: As Figs. 2(a) e 2(b) mostram os resultados relativos ao desempenho em canais com o mesmo PLR. A PSNR média é mostrada como função de DLR. A comparação entre MDSQ balanceada e não balanceada mostram que a PSNR média para U-MDSQ é melhor que MDSQ balanceado para o mesmo débito total, i.e. entre 0.5dB e 1dB em média. Este facto é explicado pelo facto de existir no método não balanceado uma melhor qualidade reconstrução de apenas uma descrição, comparando com o método balanceado para o mesmo débito. Os resultados mostram uma melhoria efectiva do desempenhodo método proposto face ao método clássico balanceado em aplicações com diversidade de canais, com diferentes largura de banda disponı́veis. A Internet do futuro 2) Canais com PLR diferentes: Este cenário de transmissão assume que cada canal tem diferentes PLR. Para que se possa estabelecer condições equivalentes, cada descrição tanto do método balanceado como do método não balanceado estão sujeitas à mesma percentagem de dados perdidos. De notar que, como foi explicado anteriormente, este facto é obtido usando PLR diferentes em cada canal. Em MDSQ não balanceado, a descrição de maior débito é transmitido no canal com melhor condições, i.e., menor PLR. Foram utilizadas dois objectivos de débito: i) RD1 = 480kbps; RD2 = 720kbps; ii) RD1 = 360kbps; RD2 = 840kbps. Para o caso de MDSQ balanceado, a comparação é realizada para o mesmo débito total de 1200 kbps, i.e., RD1 = 600kbps; RD2 = 600kbps. As Figs. 3(a) e 3(b) mostram a PSNR média versus DLR. Na comparação dos resultados, a percentagem total de dados perdidos em cada descrição correspondente é a mesma, i.e., (70%, 30%) and (60%, 40%). Estes resultados mostram que o método U-MDSQ também são melhores do que MDSQ balanceado para a maioria dos valores de DLR. Os valores médios de ganho de U-MDSQ são da ordem de 1dB comparando com o caso balanceado. Assim, os resultados mostram que existe uma melhoria da qualidade dos sinais descodificados, quando se usa o método proposto em ambientes de transmissão com vários canais, com largura de banda e PLR diferentes. V. C ONCLUS ÕES Este artigo propõe um novo método MDSQ não balanceado para transmissão em canais com largura de banda e percentagem de perda de pacotes diferentes. Os resultados apresentados mostram que o método proposto melhora o desempenho global em cenários de canais sujeitos a perdas de pacotes, onde a largura de banda de cada canal e a taxa de perdas de pacotes são assimétricos. Como conclusão, o trabalho desenvolvido pode ser aplicado em aplicações de codificação de vı́deo com múltiplas descrições onde a transmissão seja realizada através de vários canais com largura de banda e restrições de perdas de pacotes assimétricas. AGRADECIMENTOS Este trabalho for parcialmente suportado pela Fundação para a Ciência e Tecnologia (FCT), com as bolsas SFRH/BD/50035/2009 e o projecto PEstOE/EEI/LA0008/2013. R EFER ÊNCIAS [1] V. Goyal, “Multiple description coding: Compression meets the network,” IEEE Signal Processing Magazine, vol. 18, no. 5, pp. 74–93, September 2001. [2] P. F. Correia, P. Assuncao, and V. Silva, “Multiple description of coded video for path diversity streaming adaptation,” IEEE Transactions on Multimedia, vol. 16, no. 3, pp. 923–935, 6 2012. [3] P. F. Correia, P. Assunção, and V. Silva, “Unbalanced multiple description video coding,” in Conf. on Telecommunications - ConfTele, vol. 1, May 2013, pp. —–. [4] Z. He and S. Mitra, “A unified rate-distortion analysis framework for transform coding,” IEEE Transactions on Circuits and Systems for Video Technology, vol. 11, no. 12, pp. 1221 –1236, dec 2001. [5] S. Milani, L. Celetto, and G. A. Mian, “An accurate low-complexity rate control algorithm based on ρ-domain,” IEEE Transactions on Circuits and Systems for Video Technology, vol. 18, no. 2, pp. 257–262, Feb. 2008. [6] Z. Li, W. Gao, F. Pan, S. Ma, K. Lim, G. Feng, X. Lin, S. Rahardja, H. Lu, and Y. Lu, “Adaptive rate control for H.264,” Journal of Visual Communication and Image Representation, vol. 17, no. 2, pp. 376 – 406, 2006. [7] P. Correia, P. Assuncao, and V. Silva, “Drift-free multiple description intra video coding,” in Image Processing (ICIP), 2009 16th IEEE International Conference on, 7-10 2009, pp. 625 –628. [8] Z. Li, J. Chakareski, X. Niu, Y. Zhang, and W. Gu, “Modeling of distortion caused by markov-model burst packet losses in video transmission,” in IEEE International Workshop on Multimedia Signal Processing (MMSP), Oct. 2009, pp. 1–6. 121 122 Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 Web-Browser Real Time Communication in IMS Systems Rui Sábioa, Fernando Silvaa, Carlos Rabadãoa,b, António Pereiraa,b a Centro de Investigação de Informática e Comunicações, Escola Superior de Tecnologia e Gestão de Leiria, 2411-901, Leiria b Inov Inesc Inovação Instituto de Novas Tecnologias – Delegação de Leiria Resumo- Nos últimos anos a sociedade carece de uma constante comunicação e de conteúdo web cada vez mais dinâmico. Esta necessidade despoletou, por parte do IETF e W3C, um esforço conjunto para viabilizar a comunicação em tempo real através do browser sem a necessidade de agentes intermédios. Nesse sentido surgiu o Web-Browser Real Time Communication (WebRTC), uma Application Programming Interface (API) que permite às aplicações web o acesso aos inputs (webcam, microfone, entre outros) e adiciona mecanismos de comunicação que permitem o envio e receção de conteúdo através de Peer to Peer. Esta nova abordagem, onde deixa de ser necessário um agente intermédio para mediar a comunicação entre clientes, deu origem a novos modelos de negócio por parte das empresas e a uma desmistificação do paradigma comunicacional relacionado com a Internet. Este trabalho apresenta uma solução vocacionada para o público sénior, a qual utiliza o WebRTC em conjunto com um IP Multimedia Subsystem (IMS), criando dessa forma uma plataforma de suporte a uma aplicação cliente que permite aos utilizadores funcionalidades como: videochamada, reconhecimento de voz para controlo da interface, assim como, o acesso a um conjunto de aplicações lúdicas e utilitárias de uma forma centralizada. Keywords—Web-Browser Real Time Communication, Ambient Assisted Living, IP Multimedia Subsystem. I. INTRODUÇÃO O constante desenvolvimento das Tecnologias de Informação e Comunicação (TIC) e a sua crescente importância na sociedade atual fomenta o desenvolvimento de aplicações e tecnologias, que não só nos possibilitam o contato permanente entre indivíduos, como proporcionam o acesso a serviços que de outra forma se encontravam fora do alcance de uma determinada população[1]. Uma dessas tecnologias emergentes é o WebRTC, o qual permite a comunicação direta entre browsers, eliminando a necessidade de um agente intermédio para a realização da comunicação[2][4]. Estes fatores permitem o aparecimento de soluções de baixo custo, de extrema mobilidade e sem a necessidade de recursos complexos a que normalmente soluções deste tipo estão associadas[5]. As soluções supracitadas fornecem por um lado excelentes ferramentas para a melhoria da qualidade de vida da população, e por outro permitem uma comunicação facilitada que se traduz numa menor exclusão social. Tendo em conta esse panorama, este trabalho apresenta uma solução vocacionada para a criação de uma plataforma A Internet do futuro que, de uma forma centralizada, agregue serviços e os disponibilize de forma simples, facilitando a sua utilização pelos idosos e, paralelamente utilize as vantagens inerentes à API WebRTC[3] e à framework IMS[6]. Ao longo deste resumo são apresentados trabalhos relacionados com o âmbito da solução proposta, bem com a arquitetura idealizada para o efeito e as tecnologias que foram alvo de estudo, o WebRTC e a framework IMS. II. TRABALHO RELACIONADO Existem diversos projetos focados no desenvolvimento de tecnologias e frameworks Ambient Assisted Living (AAL)[7] que possibilitam a implementação de serviços baseados em AAL. Tendo isso em mente serão abordadas algumas das soluções existentes relacionadas com esta temática, por forma a enquadrar a solução proposta no âmbito destas tecnologias. No seguimento do estudo das AAL, apresentamos alguns projetos relacionados focados na interação dos utilizadores com tecnologias de reconhecimento de movimentos para o controlo de jogos. Exemplo disso é o “An Elderly-Oriented Platform to Simplify the Use of Physical Activity Controlled Game Consoles”[7], que aproveita o facto de cada vez mais as plataformas de jogos incitarem os seus utilizadores a terem um papel ativo no desenrolar do jogo, forma de fomentar uma maior atividade física, e leva esse conceito até às populações mais idosas. Propõem para o efeito uma arquitetura que torna o idoso no comando da consola, ou seja, passa o corpo a ser a peça que controla as ações no jogo, anulando assim a complexidade muitas das vezes agregada ao controlo que certas ações requerem. Ao mesmo tempo que regista a utilização por parte do utilizador, recolhe informações importantes sobre a atividade física praticada pelo idoso que, posteriormente, pode ser analisada por forma a verificar se o indivíduo está ou não a cumprir o plano de atividade diária ou a detetar padrões de inatividade cuja causa pode estar em problemas físicos. Outra das soluções que partilha o mesmo âmbito previamente referido é a “System Architecture for Palliative Care in the Home Environment”[7], que se propõe a monitorizar, através de uma rede sensorial montada em casa de cada utilizador, parâmetros como os sinais vitais do mesmo, entre outros, dados esses que são transmitidos para um centro de controlo onde são guardados e analisados de modo a tentar detetar padrões anómalos. Não obstante, não existem só implementações relacionadas, mas também algumas plataformas que pretendem criar standards sobre os quais se podem basear futuras soluções. Exemplo disso é a “universAAL – An Open and Consolidated AAL Platform”[7] que consolida a 123 informação proveniente de diversos projetos, a saber: AMIGO[8], GENESYS[9], OASIS[10], MPOWER[11], PERSONA[12], SOPRANO[13] e ElderCare[1]. Esta consolidação deu origem a uma arquitetura comum que define os parâmetros a serem desenvolvidos por qualquer implementação inserida no âmbito de uma aplicação AAL. Este standard fornece também um conjunto de regras sobre os quais os futuros desenvolvimentos aplicacionais nesta área devem assentar, para que sejam integráveis com soluções existentes e que tornem possível a integração dos vários módulos sem a necessidade de alterações específicas. III. A. Módulo Cliente O módulo cliente é constituído por uma aplicação web transversal a qualquer tipo de plataforma, desde que a mesma seja executada num browser compatível. CONCEITOS Nesta secção são apresentados os principais conceitos relativos às tecnologias que foram alvo de estudo durante a fase de conceptualização da arquitetura idealizada para a solução. A. API WebRTC A API WebRTC propõe-se a dinamizar as aplicações web, na medida em que permite a comunicação e transferência de dados browser-to-browser. Com esse intuito, o seu desenvolvimento está a ser feito tendo em conta três conceitos relevantes: PeerConnection, MediaStreams e DataChannel. 1) PeerConnection: permite que dois clientes comuniquem directamente entre si através da aplicação web. 2) MediaStreams: mecanismo que representa e gere streams de dados multimédia, aúdio e/ou vídeo, sejam eles locais ou remotos. 3) DataChannel: mecanismo de comunicação bidirecional, que permite o envio de dados entre os clientes, sejam eles dados multimédia ou não[2][3][14]. B. Framework IMS A framework IMS, inicialmente desenvolvida para disponibilizar serviços sobre IP aos utilizadores da rede UMTS, permite disponibilizar um conjunto de serviços através da rede IP. Para isso engloba uma série de funcionalidades, tais como, controlo de utilizadores, servidores aplicacionais e suporte para mensagens Session Initiation Protocol (SIP), as quais permitem, de forma modular, a disponibilização de diversos serviços baseados em arquiteturas ALL-IP. Esta framework tem uma arquitetura modular, composta por Call Services Controll Functions (CSCF) que interpretam as mensagens SIP e controlam a comunicação interna entre módulos para que as diversas funcionalidades sejam executadas[5][6]. IV. ARQUITETURA Tendo em consideração a problemática supracitada sobre as AAL e o estudo realizado aos conceitos expostos, foi definida uma arquitetura base para a solução, constituída por dois módulos distintos, o Módulo Cliente e o Módulo Servidor, como pode ser constatado na Figura 1. 124 Figura 1 - Arquitetura Geral Esta aplicação, desenvolvida em Hyper Text Markup Language (HTML) 5 e Javascript, faz uso do WebRTC e da API sipML5 para comunicar através de mensagens SIP com o módulo servidor, obtendo assim acesso a todas as funcionalidades disponibilizadas através da framework IMS. B. Módulo Servidor O módulo servidor encontra-se dividido em dois submódulos distintos: 1) O módulo de Gestão Open-Ims, assente numa sistema Linux, incorpora o serviço Open-Ims, os vários servidores aplicacionais que suportam os serviços disponibilizados pela solução, o sistema de base de dados necessário a todo o sistema e por último o sistema de gestão desenvolvido para a gestão do serviço em si. Este módulo é responsável por gerir a autenticação dos utilizadores, pela gestão e disponibilização dos serviços associados e pela base de dados inerente à solução. Sendo que é com este módulo que a aplicação cliente comunica diretamente através de websockets. 2) O módulo servidor, denominada por Servidor Reconhecimento de Voz/Aplicação web, assente num sistema Windows, é constituído pela aplicação que habilita o reconhecimento de voz por parte da aplicação cliente e pelo servidor web que disponibiliza a aplicação web aos clientes. A aplicação de reconhecimento de voz foi desenvolvida com recurso à linguagem de programação .Net e à API Microsoft Speech Recognition Engine[15]. Esta aplicação recebe os dados de áudio diretamente da aplicação cliente e processa os mesmos por forma a dar uma resposta de controlo à plataforma, em conformidade com o comando de voz enviado pelo utilizador. Em relação ao componente servidor web, este é baseado em Apache, alberga a aplicação cliente e está configurado para Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 comunicar com os clientes através de HyperText Transfer Protocol Secure (HTTPS). V. TESTES Nesta seção são apresentados os testes realizados à aplicação por uma amostra populacional representativa do público-alvo desta solução. Na TABELA 1 elencamos o conjunto de tarefas definidas, a serem realizadas pelos grupo de utilizadores que se disponibilizaram a executar os testes. TABELA 1 - TABELA DE TAREFAS A REALIZAR Tarefas Iniciar o registo na plataforma Visualizar os contatos Utilizar o reconhecimento de voz para visualizar os contatos Realizar uma videochamada Os parâmetros utilizados para a realização dos testes foram: Cada utilizador realizou o teste individualmente; O teste foi realizado num computador com interface touch; Os resultados foram registados à medida que cada teste foi executado. Na Figura 2 é apresentado o gráfico do tempo, em segundos, que cada utilizador levou a executar cada tarefa. Analisando os resultados, conclui-se que a tarefa que em média demorou mais tempo a ser executada, foi a “Realizar Videochamada, e a que em média demorou menos tempo foi a “Registo na Plataforma. Estes resultados prendem-se com a complexidade das tarefas, e eram os esperados. Figura 3 - Gráfico de Erros por Utilizador VI. O objetivo da solução proposta era uma plataforma de custo reduzido, com um conjunto de serviços úteis à população sénior e aos seus cuidadores, utilizando as mais recentes tecnologias. Para isso foi realizado um estudo a diversas tecnologias, o qual deu origem à arquitetura apresentada na seção Arquitetura, e que foi projetada com o intuito de disponibilizar uma infraestrutura de baixo custo, tanto em termos de manutenção como em termos de custos para os utilizadores. Por último, os testes realizados à solução foram de encontro com os esperados e verificam a viabilidade da solução para o fim proposto. REFERÊNCIAS [1] [2] [3] [4] [5] [6] [7] [8] Figura 2 - Gráfico Tempos de Execução por Tarefa [9] A Figura 3, apresenta o gráfico representativo dos erros cometidos por cada utilizador na realização das diversas tarefas. Ao analisarmos os resultados obtidos, apercebemo-nos que as tarefas que deram origem a mais erros foram a “Visualizar Contatos” e a “Realizar Videochamada”. No que diz respeito aos erros verificados na tarefa “Realizar Videochamada”, pensa-se que estão relacionados com a complexidade inerente à mesma. Em síntese, os resultados obtidos são indicadores de que o interface é de fácil utilização e estão de acordo com os resultados esperados para uma aplicação deste tipo com um público-alvo pertencente a uma faixa etária sénior. A Internet do futuro CONCLUSÕES [10] [11] [12] [13] [14] [15] I. Marcelino, J. Barroso, J. B. Cruz, and A. Pereira, “Elder Care Architecture – a physical and social approach.” S. Loreto, S. Pietro, and F. Ii, “Real-Time Communications in the Web,” 2012. Google Inc, “WebRTC,” 2012. [Online]. Available: http://www.webrtc.org/. [Accessed: 22-Aug-2013]. IETF, “Real-Time Communication in WEB-browsers (rtcweb).” [Online]. Available: http://datatracker.ietf.org/wg/rtcweb/. [Accessed: 22-Aug-2013]. I. Enablement, “WebRTC IMS Systems and WebRTC Proprietary Islands,” 2012. “3gpp - IMS.” [Online]. Available: http://www.3gpp.org/Technologies/KeywordsAcronyms/article/ims. [Accessed: 01-Jul-2013]. R. Wichert and B. Eberhardt, Eds., Ambient Assisted Living. Springer, 2011, p. 318. “AMIGO.” [Online]. Available: http://www.hitechprojects.com/euprojects/amigo/. [Accessed: 24-Jun-2013]. “GENESYS.” [Online]. Available: http://www.genesysplatform.eu/. [Accessed: 24-Jun-2013]. “OASIS.” [Online]. Available: http://www.oasis-project.eu/. [Accessed: 24-Jun-2013]. “MPOWER.” [Online]. Available: www.mpower-project.eu. [Accessed: 24-Jun-2013]. “PERSONA.” [Online]. Available: http://www.aal-persona.org/. [Accessed: 24-Jun-2013]. “SOPRANO.” [Online]. Available: http://www.soprano-ip.org/. [Accessed: 24-Jun-2013]. E. Adam Bergkvist, V. Daniel C. Burnett, C. Cullen Jennings, and M. Anant Narayanan, “W3C - WebRTC 1.0: Real-time Communication Between Browsers.” [Online]. Available: http://www.w3.org/TR/webrtc/. [Accessed: 22-Aug-2013]. “Microsoft Speech Platform SDK Documentation.” [Online]. Available: http://msdn.microsoft.com/enus/library/dd266409(v=office.14).aspx. [Accessed: 29-Jun-2013]. 125 126 Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 Técnicas de detecção e classificação de tráfego para aplicações de Voz sobre IP (VoIP) Hugo Fonseca, Tiago Cruz, Paulo Simões, Edmundo Monteiro, CISUC-DEI Universidade de Coimbra, Portugal {hfonseca, tjcruz, psimoes, edmundo}@dei.uc.pt Resumo— Nos últimos anos surgiu uma nova geração de aplicações baseadas em Voice-over-IP (VoIP), que oferecem serviços de comunicações de voz na Internet. Fornecidas maioritariamente como serviços over-the-top, e usando normas como o SIP ou mecanismos proprietários (tais como Skype, Google Talk e Yahoo! Voice), estas aplicações ganharam grande popularidade devido ao seu baixo custo e à facilidade de uso. No entanto, por múltiplas razões, tais como a aplicação de políticas de uso, garantias de qualidade, segurança ou interesses empresariais, é frequentemente necessário detectar, classificar e monitorizar a presença de tráfego de voz em redes de dados. Neste trabalho apresenta-se um estudo de técnicas de detecção e classificação de tráfego gerado por protocolos VoIP, com ênfase em duas categorias principais (com base no perfil de padrões de tráfego de rede e com base em modelos de fluxos de comunicação para a detecção de anomalias), discutindo algumas das técnicas mais populares dentro de cada um destes dois grupos. São também descritas técnicas clássicas, ainda que de forma mais sucinta. Palavras-chave— VoIP, Técnicas de detecção e classificação I. INTRODUÇÃO O aumento do poder computacional disponível para o utilizador final, assim como os avanços no acesso e eficiência das tecnologias de rede, como cabo, fibra ao local (FTTx) e redes móveis 3G e 4G, abriu caminho para a generalização de aplicações de voz baseadas em IP (VoIP – Voice over IP), suportadas por uma grande variedade de dispositivos, desde computadores de secretária até smartphones. Algumas dessas aplicações são baseadas em normas abertas, tais como o SIP (Session Initiation Protocol [1]) e CODECs de voz normalizados, enquanto outras usam soluções proprietárias – por exemplo o Skype [2], o Google Talk [3] e o Yahoo! Voice [4]. Com a gradual evolução das redes móveis e dos smartphones, estas aplicações passaram também dos computadores – onde eram geralmente usadas – para os terminais móveis. No entanto, a introdução e generalização de aplicações e serviços baseados em VoIP tem aumentado as preocupações para operadores de telecomunicações, provedores de serviços e outros intervenientes, ainda que a natureza destas preocupações nem sempre seja consensual. Para os operadores de telecomunicações tradicionais as principais preocupações estão relacionadas com a erosão do mercado por aplicações e serviços VoIP que usam as suas redes A Internet do futuro José Silva, Pedro Gomes, Nuno Centeio COLLAB Av. Dom João II, Lote 1.03.2.3 1998-031 Lisboa, Portugal {jose.silva, pedro.gomes, nuno.centeio}@collab.pt de dados, reduzindo a receita de telefonia fixa e móvel. Juntamente com os operadores de telecomunicações, algumas organizações também estão a implementar mecanismos para identificar as chamadas VoIP, a fim de cobrar por estas ou simplesmente bloqueá-las. Os prestadores de serviços VoIP, por outro lado, estão preocupados com o fornecimento de serviços de qualidade e confiança, garantindo níveis adequados de segurança e Qualidade do Serviço (QoS). Independentemente da perspetiva em que nos colocamos, a capacidade de detectar e classificar aplicações VoIP é fundamental, ainda que o desenvolvimento contínuo de novos protocolos e serviços VoIP exija a pesquisa e desenvolvimento sistemático de novas técnicas de detecção e classificação. Neste artigo apresenta-se uma visão geral das técnicas para detectar e classificar aplicações baseadas em VoIP, assim como estudos de diversas metodologias que foram desenvolvidas a partir de técnicas tradicionais existentes. O resto deste artigo está organizado da seguinte forma. O capítulo 2 apresenta as técnicas clássicas mais relevantes. O capítulo 3 discute metodologias baseadas em perfis para detecção e classificação de tráfego VoIP (com atenção especial a técnicas baseadas em tráfego de rede e modelos de fluxo de comunicação), e o capítulo 4 conclui o artigo. II. TÉCNICAS DE CLASSIFICAÇÃO CLÁSSICAS Embora o uso de classificadores para análise e detecção de aplicações de rede não seja um desenvolvimento recente, constitui um campo de pesquisa activa, devido à necessidade de evolução e também ao melhoramento contínuo dos protocolos VoIP. Em geral a literatura [5] [6] [7] [8] menciona dois tipos de técnicas clássicas para a classificação de tráfego VoIP: as baseadas em análise porta TCP/IP e as que efetuam análise de protocolo. Neste capítulo é fornecida uma descrição destas técnicas que, no entanto, se tornaram gradualmente ineficazes, não oferecendo resultados precisos nos dias de hoje. A. Análise baseada em portos A técnica mais simples para a detecção de aplicações VoIP consiste em analisar os portos pré-definidos que as aplicações de voz utilizam. Esta técnica baseia-se assim na vigilância de um conjunto de números de portos TCP/IP definidos de forma estática e tradicionalmente usados pelas aplicações VoIP. Até algum tempo atrás, o número dos portos TCP (Transmission Control Protocol) e UDP (User Datagram Protocol) usados pelas aplicações podia ser identificado com 127 alguma precisão por uma lista fornecida pela IANA (Internet Assigned Numbers Authority [9]). Com esta informação era possível identificar facilmente o tráfego de voz. No entanto esta técnica de classificação não é eficaz, devido ao facto de não existir controlo sobre os portos que são realmente usados pelas aplicações de voz, que têm deixado de usar portas prédefinidas para passarem a usar portos dinâmicas e técnicas automáticas para adaptação ou reação às características da rede ondem operam – de modo a contornar firewalls, proxies e mecanismos NAT (Network Address Translation). Outras aplicações optaram por usar técnicas de túnel, em geral por meio de HTTP (Hypertext Transfer Protocol) nos portos TCP 80 e TCP 443, de modo a disfarçar o seu tráfego. B. Análise baseada em protocolo A técnica de análise baseada em protocolo consiste na utilização de equipamentos e aplicações de software que monitorizam a rede, recolhendo informações a partir de pacotes de dados e fluxos de comunicação para identificar aplicações. Estes mecanismos fazem uso de assinaturas ou modelos de fluxo de tráfego, também designados por impressões digitais, de modo a identificar as referidas aplicações de voz. Muitas aplicações de classificação comerciais ou de código aberto são baseadas neste tipo de técnica. No entanto, esta solução torna necessário um conhecimento prévio dos protocolos de comunicação usados pela aplicação, tanto para a criação de assinaturas e modelos de fluxo de tráfego como para a recolha de informação da rede. A evolução das aplicações leva frequentemente à necessidade de criar ou atualizar as assinaturas e os modelos de fluxo de tráfego. Para além disso, o uso cada vez mais comum de técnicas de criptografia contribui para aumentar a complexidade desta abordagem. Como resultado, a utilização desta técnica é frequentemente desencorajada e muitas vezes impossível. III. METODOLOGIAS BASEADAS EM PADRÕES Conforme foi já mencionado, as técnicas clássicas para classificar tráfego VoIP estão a perder progressivamente eficácia, principalmente devido ao facto de o paradigma de desenvolvimento das aplicações VoIP ter evoluído. Algumas das aplicações mais recentes apresentam comportamentos distintos, que habitualmente impedem a criação de assinaturas e de modelos de fluxos ou utilizam técnicas de ofuscação de tráfego gerado. A. Classificação baseada em padrões de tráfego de rede Como alternativa às técnicas clássicas, o trabalho de investigação mais recente nesta área propõe novas abordagens para ultrapassar as limitações das técnicas descritas na Secção 2. Uma das abordagens mais comuns consiste na análise do comportamento das aplicações de voz, em termos de utilização da rede [5][6][10][11][12], fazendo uso de técnicas de análise intensiva para identificar os parâmetros de rede que são mais representativos da presença de aplicações VoIP – ou seja, as características do tráfego de rede que podem indiciar em tempo real a presença de tráfego de voz. Ao analisar essas características do tráfego de rede torna-se possível superar as limitações anteriores, uma vez que esses parâmetros não correspondem a recursos estáticos como portos ou o 128 conhecimento de protocolos. Diversos parâmetros têm sido propostos, incluindo por exemplo o intervalo de tempo entre o primeiro e o último pacote do fluxo, o número total de pacotes, o número de pacotes por segundo, o tamanho dos pacotes, o número de octetos transmitidos num intervalo de tempo e os respectivos valores médios para cada uma dessas métricas. Estas técnicas assumem que existe uma distinção clara entre o tráfego gerado por aplicações VoIP e outras aplicações [5]. Neste âmbito, aplicações como o Google Talk, o Skype e o Yahoo! Voice foram analisadas e caracterizadas como apresentando uma elevada taxa de envio de pacotes e um tamanho reduzido por pacote, quando comparadas com outras aplicações (e.g. partilha de arquivos, chat ou jogos). Um trabalho de análise mais detalhado permite ainda concluir que a largura de banda média (Kb/s), o tamanho médio do pacote e o intervalo de tempo entre a chegada de dois pacotes consecutivos são também factores que distinguem o Skype de outras restantes aplicações VoIP [6][10]. Ao identificar as características do tráfego de rede distintivas das aplicações VoIP e associar essas características a assinaturas baseadas em regras de comportamento, torna-se possível criar ferramentas que analisam o tráfego de rede e tentam identificar as assinaturas de aplicações de voz. Por outras, um mecanismo de classificação para aplicações VoIP que não necessita de conhecimento prévio dos portos ou dos protocolos para funcionar com níveis de precisão satisfatórios. B. Classificação baseada em modelos de fluxos A técnica descrita anteriormente destina-se à análise das características específicas comuns à generalidade das aplicações de voz, através da análise das características particulares do tráfego que estas geram. No entanto, muitas aplicações VoIP recorrem a técnicas de túnel. Estas técnicas são usadas quando um aplicativo detecta que está numa rede com configurações de NAT ou firewalling restritivas ou simplesmente porque se pretenda camuflar o tráfego de voz, misturando-o com o tráfego de outras aplicações. Este cenário afecta a precisão das técnicas anteriores, uma vez que introduz ruído nos parâmetros-chave de classificação. Para lidar com estas situações, alguns autores propõem como técnica alternativa a análise dos parâmetros dos canais de comunicação em que a técnica de túnel é aplicada [7-8]. Este tipo de abordagem sucede, por exemplo, quando as aplicações encapsulam o tráfego de voz como tráfego HTTP (portas TCP 80 e TCP 443) para contornar firewalls. Ao analisar as características do tráfego HTTP é possível criar modelos para o tráfego normal de navegação web (isto é, sem tráfego de voz misturado). A partir destes modelos é possível caracterizar o tráfego HTTP, identificando as suas características mais relevantes (por meio de métodos estatísticos), podendo depois ser criados algoritmos para detectar desvios (anomalias) no que diz respeito a um perfil de um modelo de tráfego "normal" HTTP. Se houver um desvio do modelo original, pode concluir-se que existem aplicações que fazem uso das técnicas de túnel. Em [7][8] são apresentados modelos para tráfego HTTP com os seguintes parâmetros: tamanho do pedido e da resposta Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 web, intervalo de tempo entre chegada de pedidos consecutivos, número de pedidos por “página” e tempo total de chegada da “página completa”. Com estes modelos, e recorrendo a testes de Kolmogorov-Smirnov, Goodness-of-Fit e Qui-quadrado para detectar diferentes fluxos desconhecidos com características fundamentais diferentes do comportamento esperado, é possível detectar tráfego de voz. C. Comparação entre técnicas A Tabela I apresenta uma comparação entre os dois grupos de técnicas considerados neste artigo, tendo por referência os seguintes parâmetros: complexidade, robustez e performance. TABELA I. COMPARAÇÃO ENTRE TÉCNICAS DE CLASSIFICAÇÃO Classificação baseada Classificação baseada Parâmetros em padrões de tráfego em modelos de fluxos Complexidade +++ Robustez +++ Eficácia ++ ++ Ambos os mecanismos de classificação assumem alguma complexidade, ainda que a classificação com base no tráfego de rede seja menos complexa de implementar e utilizar, dado que é possível desenvolver algoritmos genéricos para detectar aplicações de voz com base exclusivamente nas diferenças de tráfego entre estas aplicações e outros tipos de aplicações. As classificações baseadas em modelos de fluxo são mais complexas, pois exigem um modelo de fluxo e um conjunto de dados de treino para funcionar corretamente. Quanto mais complexos forem os fluxos de comunicação mais complexos serão os modelos representativos e mais extenso e complexo necessitará de ser o conjunto de dados do treino. Em termos de robustez a classificação com base no modelo de fluxo é tipicamente superior. As aplicações de voz podem mudar o tráfego que geram e, por conseguinte, tornar inúteis os algoritmos baseados na análise do tráfego de rede. Por outro lado, a classificação baseada em modelos de fluxos não depende da aplicação de voz em si, mas sim do tráfego observado no comunicação. Este não tende a mudar com muita frequência, por isso o modelo permanece inalterado por mais tempo. Em termos da eficácia, a Tabela I mostra que ambas as técnicas de classificação são semelhantes, com a força de uma das técnicas a ser a fraqueza de outra e viceversa. IV. CONCLUSÃO E TRABALHO FUTURO A detecção e classificação de aplicações de voz com base na análise do tráfego de rede é uma questão importante para várias entidades (tais como operadores de telecomunicações e prestadores de serviços de voz), devido a diversos motivos: segurança, gestão de qualidade do serviço, gestão da rede, e aplicação de políticas de negócio preestabelecidas. Neste âmbito, este artigo apresenta uma visão geral de técnicas clássicas e das técnicas mais recentes para detecção e classificação de aplicações de voz. As técnicas clássicas incluem mecanismos baseados na detecção por porta ou protocolo, que se tornaram gradualmente menos eficazes com o surgimento de novas aplicações e protocolos VoIP e com a A Internet do futuro evolução das técnicas de evasão e ofuscação. Relativamente às técnicas mais recentes, foram identificados dois grandes grupos: os que se baseiam na caracterização dos padrões do tráfego de rede e aqueles que usam modelação de fluxos para detecção de anomalias. A primeira categoria permite distinguir os parâmetros de tráfego de rede gerados por aplicações de voz sem um conhecimento prévio das dos portos ou dos protocolos usados. Existem muitos algoritmos que se enquadram nesta categoria, sendo genericamente capazes de detectar vários tipos de aplicações de voz sem grande distinção entre eles. Há também variações específicas de algoritmos dentro desta categoria, projetadas para identificar tipos específicos de aplicações de voz. A segunda categoria de algoritmos de detecção e classificação trabalha com os modelos de fluxos dos canais de comunicação, a fim de estabelecer os modelos de referência que servem como base para a utilização de técnicas de detecção de anomalias. Estas técnicas são particularmente adequadas para aplicações de voz que recorrem a túneis, misturando por exemplo o seu tráfego com tráfego HTTP. A categorização proposta permite estabelecer uma distinção clara entre estas diferentes abordagens para o mesmo problema, independentemente dos algoritmos de aprendizagem, modelação ou detecção de anomalias usados em concreto. Espera-se no futuro desenvolver mais esta categorização, de modo a identificar e caracterizar subcategorias mais detalhadas. AGRADECIMENTOS Este trabalho foi parcialmente financiado pela Collab S.A. e pelo programa QREN (no âmbito do projeto I&DT Nubitalk, referência QREN 22983) e pela Comissão Europeia, no âmbito do projeto CockpitCI (FP7-SEC-2011-1, N. 285647). Os nossos agradecimentos aos restantes participantes nestes dois projetos, pelas várias contribuições recebidas. REFERÊNCIAS [1] [2] [3] [4] [5] RFC 3261, “SIP: Session Initiation Protocol” Microsoft Inc., Skype, http://www.skype.com/ Google Inc, Google Talk, http://www.google.com/hangouts/ Yahoo! Inc, Yahoo Message, http://messenger.yahoo.com/ F. Idress e U. Khan, “A Generic Technique for Voice over Internet Protocol (VoIP) Traffic Detection,” no International Journal of Computer Science and Network Security, VOL.8 No.2, 2008 [6] M. Perényi e S. Molnár, “Enhanced Skype Traffic Identification,” em Budapest University of Technology & Economics, Hungary, 2007 [7] E. Freire, A. Ziviani e R. Salles, “Detecting VoIP Calls Hidden in Web Traffic,” em IEEE TNSM, vol. 5, no. 4, 2008. [8] E. Freire, A. Ronaldo e M. Salles, “On Metrics to Distinguish Skype Flows from HTTP Traffic,” em J Netw Syst Manage 17:53-72, 2009. [9] IANA “Port numbers”, http://www.iana.org/assignments/port-numbers [10] M. Perényi, A. Gefferth, T. D. Dang e S. Molnár, “Skype Traffic Identification,” GLOBECOM 2007. [11] S. Molnár e M. Perényi, “On the identification and analysis of Skype traffic,” em Int. J. Commun. Syst., vol. 24, no. 1, 2011. [12] P. Biondi e F. Desclaux, “Skype uncovered - Security study of Skype,” EADS, 2005. 129 130 Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 Validação remota de aplicações de informática forense com recurso a dongles por USB/IP Albano Afonso Instituto Politécnico de Leiria Portugal Mário Antunes Instituto Politécnico de Leiria Filipe Mota Pinto Instituto Politécnico de Leiria Center for Research in Advaced Computing Systems (CRACS), DCC/FC, Universidade do Porto Portugal Centro Algoritmi, Universidade do Minho Portugal Resumo — O uso de dongles USB para alojamento de licenças de utilização é uma técnica muito usada por várias aplicações de software. Na área da informática forense há duas aplicações comerciais de renome internacional muito utilizadas: o Encase Forensic© da Guidance Software e o Forensic ToolKit (FTK)© da AccessData Group. A validação das licenças destas aplicações por meio de dongles levanta vários problemas às equipas de investigação em informática forense, designadamente o perigo de furto e perda, com o consequente acesso não autorizado às respetivas aplicações, bem como a inviabilização da otimização dos recursos, tanto humanos como tecnológicos, já que cada examinador terá de ter um dongle, que deverá ser transportado e utilizado por si. Neste artigo apresenta-se uma arquitetura distribuída para a gestão de dongles, recorrendo ao uso do protocolo USB/IP. A abordagem utilizada permite o acesso remoto e distribuído aos dongles USB com as licenças das aplicações de informática forense, recorrendo a uma rede TCP/IP. A solução apresentada foi desenvolvida em colaboração com a Secção de Investigação da Criminalidade informática e Tecnológica (SICIT) da Polícia Judiciária Portuguesa (PJ), tendo sido realizados testes de aceitção. Keywords— USB, dongle, USB/IP, Acesso Remoto a Licenças I. INTRODUÇÃO A informática forense é um ramo da ciência forense e uma área da investigação criminal relacionada com as provas digitais encontradas em suportes de armazenamento digital [1]. De forma a auxiliar os examinadores de informática forense e os peritos a otimizar a recolha da prova digital, há duas aplicações comerciais, lideres de mercado a nível internacional de informática forense [2], que são muito utilizadas por estes profissionais: Forensic Toolkit (FTK)© [3] e o Encase© [4]. Para validar a licença do utilizador e concederlhe o respectivo acesso, estas aplicações recorrem ao uso de um dongle [5]. Um dongle é um dispositivo de hardware com uma interface USB, utilizado na deteção da licença de utilização de um software. O maior desafio dos examinadores que utilizam estas aplicações consiste na necessidade de terem que ligar fisicamente o dongle no computador onde está instalada a aplicação, tendo para isso de o transportar fisicamente de computador para computador. Desta forma, o risco de perda ou furto do dongle aumenta, bem como a possibilidade do seu uso não autorizado. Neste artigo apresenta-se uma solução distribuída, assente numa rede TCP/IP, que pretende mitigar o problema apresentado e com o qual os examinadores de informática A Internet do futuro forense se deparam constantemente. O objectivo principal consiste em agilizar o acesso remoto aos dongles onde estão as licenças das aplicações de informática forense, através da rede local TCP/IP. O trabalho apresentado consiste na replicação das portas USB existentes nas máquinas, a partir de um servidor TCP/IP pertencentes à rede local privada e isolada do exterior [6]. Desta forma, os clientes acedem remotamente aos dongles USB ligados fisicamente no servidor, como se os mesmos estivessem ligados localmente à interface USB. Os dongles são partilhados e acedidos remotamente pela rede local, através dos pedidos efetuados pelos clientes, através do protocolo USB/IP. O desenvolvimento efetuado no servidor USB/IP foi realizado recorrendo a componentes de software opensource [7]. Foi igualmente desenvolvida uma interface gráfica para o cliente USB/IP. II. CONCEITOS FUNDAMENTAIS A limitação física de acesso às portas USB pode ser ultrapassada através do uso de uma solução de USB sobre TCP/IP, através do protocolo USB/IP. A aplicação servidor, em execução na máquina que disponibiliza o acesso físico às portas físicas USB, é acedida remotamente por uma aplicação cliente, através de uma máquina onde não existe o recurso físico a essas portas USB. A possibilidade de aceder remotamente a uma porta USB através da rede TCP/IP foi inicialmente proposta por Hirofuchi, et al. [7]. Em 2007, Kwon et al. [8], implementaram uma nova versão do USB/IP em que estenderam a possibilidade do cliente ser compatível com o sistema operativo Microsoft Windows. Posteriormente, em 2009 procedeu-se ao desenvolvimento de um cliente baseado na linha de comandos para o Windows. Em 2011, com o suporte da ReactOS [9], foi publicada uma versão melhorada desse cliente Microsoft Windows, em que os drivers USB/IP necessários para a aplicação são assinados digitalmente e tornam-se compatíveis com sistemas operativos Windows de 32 bits e 64 bits [9]. Atualmente, a versão do USB/IP que está disponível para ser instalada por um instalador de software do Linux (p.e. apt-get), encontra-se obsoleta e é incompatível com as versões do kernel superior à 2.6. O protocolo aplicacional USB/IP utiliza uma arquitetura do tipo cliente/servidor. Desta forma, o servidor exporta os dispositivos USB, colocando-os a disposição dos clientes que 131 procedem a importação dos mesmos. Além disso, o driver do dispositivo USB exportado é executado na máquina cliente. III. ARQUITETURA Nesta seção, é apresentada a arquitetura do sistema desenvolvido para validação remota de licenças guardadas em dongles, assente numa solução distribuída com acesso remoto por USB/IP. O caso de estudo usado neste trabalho utilizou o acesso remoto às aplicações de informática forense em uso na Secção SICIT da PJ. A Figura 1 ilustra a situação atual (a) e a solução proposta (b). Actualmente as aplicações encontram-se instaladas em cada um dos computadores dos examinadores, sendo o seu acesso validado através de um dongle que se encontra ligado fisicamente em cada máquina. dispositivo USB, este automaticamente era removido no servidor. Ou seja, o servidor removia automaticamente esse dispositivo da lista dos dispositivos exportados, sendo por isso obrigatório proceder-se novamente à partilha do mesmo no servidor USB/IP. Esta situação verificava-se tanto no cliente Linux como no cliente Microsoft Windows, tornando assim a utilização desta versão pouco viável. No entanto, a versão compatível com o kernel 3.0 tenta mitigar estes problemas, conforme descrito em [9]. Nesta versão foi também incrementada a funcionalidade que permite no servidor parar a partilha de um determinado dispositivo. Constatámos no entanto que não existe compatibilidade com versões do kernel anteriores à 3.0, atendendo a que são utilizados módulos diferentes do kernel. Além disso, esta versão não se encontra disponível no repositório de software do Linux. Desta forma, a única alternativa consistiu em obter o código fonte do USB/IP presente no kernel 3.2.28, disponível em \linux3.2.28\drivers\staging\usbip\userspace, e proceder à compilação e instalação manual a partir do código fonte, respeitando todas as dependências necessárias. (b) (a) Figura 1. Cenário Atual (a) e a solução desenvolvida (b) O cenário desenvolvido, ilustrado em (b), consiste na implementação de uma solução distribuída em que o servidor USB/IP é uma máquina Linux que aloja fisicamente no seu barramento USB, todos os dongles USB disponíveis e necessários a cada aplicação de informática forense. A aplicação USB/IP do servidor encontra-se instalada e está à escuta de pedidos TCP no porto 3240. As máquinas onde estão a ser executadas as aplicações de informática forense são os clientes USB/IP e usam o sistema operativo Microsoft Windows com os drivers USB/IP devidamente instalados. Nestas máquinas encontra-se também instalada a aplicação cliente USB/IP que vai interagir com o servidor USB/IP e será responsável pelos pedidos de acesso aos dispositivos USB ligados fisicamente no servidor e partilhados através da rede TCP/IP. Cada máquina cliente virtualiza um acesso remoto através da rede local TCP/IP ao dispositivo USB, como se de uma porta USB de acesso local se tratasse. Com o objetivo de validar a licença de utilização antes de iniciar uma das aplicações de informática forense, o examinador recorre à aplicação cliente USB/IP e obtém o acesso ao dongle remoto que se encontra ligado fisicamente no servidor. Neste novo cenário de utilização dos dongles, o número de licenças é exatamente igual ao utilizado no cenário actual, respeitando assim as condições de licenciamento. IV. DESENVOLVIMENTO O desenvolvimento efectuado baseou-se no projeto open source USB/IP [7], que inicialmente foi concebido para um ambiente homogéneo Linux, para a versão 2.6 do kernel. Durante o desenvolvimento constatou-se que nesta versão do USB/IP, sempre que um cliente terminasse a ligação virtual ao 132 Após a compilação desta nova versão verificou-se que a aplicação servidor de USB/IP ficou devidamente instalada e que o problema anteriormente existente ficou resolvido. No entanto, estas alterações ao código do servidor tornou-se incompatível com o cliente para Microsoft Windows baseado na linha de comandos. Assim, foi necessário obter o código fonte do cliente Windows e compilá-lo. Também com o recurso ao Windows Driver Kit 7 e a partir dos ficheiros do código fonte, foram gerados os ficheiros binários .sys para 32 e 64 bits, compatíveis com o Windows 7, Windows Server 2008 e Windows 8. A partir deste momento constatou-se a compatibilidade entre o servidor na sua versão mais recente e o novo cliente para o Windows baseado na linha de comandos. A Figura ilustra aplicação gráfica desenvolvida para o cliente USB/IP. Figura 2. Aplicação gráfica de interação com o utilizador V. TESTES REALIZADOS Esta secção resume os principais testes realizados com dongles USB. Foram realizados testes recorrendo aos dongle USB, ligados fisicamente no servidor através de um hub USB. Para cada dongle foi realizado um teste entre o servidor e o cliente em que este último acedeu remotamente ao dongle USB como se de um dongle USB local se tratasse, possibilitando assim a validação remota da licença de utilização das aplicações de informática forense, Encase© e FTK© utilizadas pelos examinadores. Os dongles utilizados Atas da 13ª Conferência sobre Redes de Computadores - CRC2013 nos testes são um CodeMeter que suporta a licença da aplicação de informática forense FTK© e dois Aladdin HASP HL que suportam a licença da aplicação de informática forense Encase©. Neste teste a máquina servidor USB/IP tem o sistema operativo Ubuntu 12 LTS e o cliente tem o sistema operativo Microsoft Windows 7 (64bits). Na máquina cliente USB/IP estão instaladas as aplicações Encase© e CodeMeter Control Center©, sendo esta última responsável pela gestão das licenças utilizadas na aplicação FTK©. Também neste teste as máquinas encontram-se ligadas a um switch na mesma rede local, conforme ilustrado na Figura 2. Foram realizados vários testes com a aplicação desenvolvida, no laboratório da PJ em Lisboa, quer com discos externos USB, quer com dongles USB usados para o acesso remoto ao licenciamento das aplicações de informática forense, EnCase© e FTK©, que constituiam o objectivo principal deste trabalho. Embora os testes tenham sido realizados com duas aplicações muito específicas, cuja licença se encontra alojada em dongles, o mesmo procedimento poderá ser igualmente bem sucedido com outras aplicações que utilizem o mesmo processo de validação de licenças. Por exemplo, a aplicação de desenho assistido por computador AutoCAD©, as aplicações de gestão e contabilidade PHC© e algumas aplicações utilizadas na saúde, na área da radiologia. BIBLIOGRAFIA [1] Eoghan Casey, Handbook of Digital Forensics and Investigation.: Academic Press, 2010. Figura 2. Cenário de teste com os dongles USB Neste teste, o cliente através da aplicação gráfica USB/IP, estabeleceu com sucesso uma ligação TCP ao servidor USB/IP, e obteve a lista dos dongles exportados pelo servidor através da rede local. Após a ligação virtual estabelecida entre o cliente e os dongles remotos CodeMeter e Aladdin HASP HL, as aplicações de informática forense do FTK© (Figura 11-a) e do Encase© (Figura 11-b) realizaram a validação remota da licença de utilização. [2] 2013 SC Awards US Finalists: Round Three; "SC Magazine", "http://www.scmagazine.com//2013-scawards-us-finalists-round-three/article/270295/"; Consultado em Setembro 2013. [3] "AccessData Group Software FTK", ", http://www.accessdata.com/products/digital forensics/ftk", Consultado em Setembro 2013. [4] "Guidance Software Encase",, "http://www.guidancesoftware.com/encase-forensic", Consultado em Setembro 2013. [6] Piazzalunga, U., Salvaneschi, P., Balducci, F., Jacomuzzi, P., & Moroncelli, C. (2007). "Security strength measurement for dongle-protected software"; Security & Privacy, IEEE, 5(6), pp. 32-40. (a) (b) Figura 3. (a) A aplicação CodeMeter detetou o dongle remoto e (b) Informações sobre a licença encontrada no dongle remoto O processo decorreu de forma transparente para o utilizador final, não tendo havido necessidade do examinador ligar fisicamente um dongle USB na máquina onde a aplicação forense está instalada. VI. CONCLUSÕES Neste artigo foi abordada a validação remota das aplicações de informática forense e o desenvolvimento realizado na adaptação do protocolo USB/IP existente em open source. Do lado do servidor conseguiu-se colocar em funcionamento uma versão estável da aplicação, compatível com o kernel 3.2 do Linux. Por outro lado, no que diz respeito ao cliente USB/IP, foi possível realizar os desenvolvimentos necessários para o colocar em funcionamento no sistema operativo Windows 7, na versão de 64 bits, mantendo-se disponível um cliente Linux nativo no kernel 3.2, através de comandos executados na shell. A Internet do futuro [5] "Wibu-Systems", "http://www.wibu.com/hardware-copyprotection.html", Consultado em Setembro 2013. [6] Albano Afonso; "USBport Through TCP/IP - Replicação de portas USB," Relatório de Projeto de Mestrado, Novembro de 2012. [7] Takahiro Hirofuchi, Eiji Kawai, Kazutoshi Fujikawa, and Hideki Sunahara, "USB/IP a Peripheral Bus Extension for Device Sharing over IP Network," in FREENIX Track: USENIX Annual Technical Conference, 2005, pp.47-60. [8] Han Wook Cho, and Yong Ho Song Wonhong Kwon, "Design and Implementation of Peripheral Sharing Mechanism on Pervasive Computing with Heterogeneous Environment," 5th IFIP WG 10.2 International Workshop Seoul 2007, pp. 537-546. [9] "USB/IP Project", " http://usbip.sourceforge.net/", Consultado em Setembro 2013. 133 134 Atas da 13ª Conferência sobre Redes de Computadores - CRC2013