[en] Opportunistic Networking usually focuses on homogeneous environments. Therefore, most proposals process all messages the same way and take for granted that all participants will behave for the sake of the network without any consideration. This thesis claims that this approach constrains Opportunistic Neworking's applicability. This thesis aims to provide tools to extend Opportunistic Networking by allowing its operation in heterogeneous environments, where a wide set of different devices, applications and/or users may coexist. This thesis is presented as a compendium of publications where every publication presents a system designed to face a different heterogeneous environment. At the first one, we consider application heterogeneity, a network that could be shared by different applications that may require a different routing for their messages. In order to deal with this, we present a network architecture based on messages that carry their own application-defined routing code and an access control system that makes feasible the usage of application-defined contextual information. In the second one, we consider users heterogeneity, a network where every node is ruled by a selfish participant, so they could not be interested in using their resources to store and forward others' messages. To face this, we present a mechanism to keep track of the nodes' actions and an incentive scheme that punishes or rewards nodes based on their behavior. This incentive scheme is designed to make sure that the best strategy for every participant is to cooperate with the network. In the third and fourth publications, we consider node heterogeneity, a network of volunteer nodes that do not want to collapse their devices nor share any information that hurt their privacy. We deal with this using a privacy-preserving georouting protocol that learns about nodes' usual whereabouts and preserves the privacy of this information.

[es] La investigación en el campo de las Redes Oportunistas se suele centrar en el estudio de escenarios homogeneos. Por lo tanto, la mayoría de las propuestas da por hecho que todos los mensajes deben ser tratados de la misma forma y que todos los participantes actuarán por el bien de la red. Esta tesis afirma que este enfoque restringe la aplicabilidad de las Redes Oportunistas, y se marca como objetivo mejorar el desarrollo de herramientas que permitan su funcionamiento en ambientes heterogéneos, donde conviven una gran variedad de dispositivos, aplicaciones y/o usuarios. Esta tesis se presenta en el formato de compendio de publicaciones. En cada publicación se presenta un sistema diseñado para hacer frente a un tipo de ambiente heterogéneo. En la primera, se plantea la heterogeneidad de aplicaciones, en una red compartida por aplicaciones cuyos mensajes deben ser tratados de formas diferentes. Para afrontar esta situación, se presenta una arquitectura de red basada en mensajes que contienen su propio código de encaminamiento, proporcionado por la aplicación, y un sistema de control de acceso que hace viable a la propia arquitectura y permite el uso de la información contextual de encaminamiento definida por la aplicación. En la segunda, se estudia la heterogeneidad de los usuarios, cuyos intereses egoístas no priorizan el uso de sus recursos para encaminar los mensajes de otros. Para tratar de reconducir este comportamiento, se presenta un mecanismo para controlar las acciones de los nodos y un sistema de castigos y recompensas que premia a los nodos en función de sus acciones. Este sistema de incentivos garantiza que la mejor estrategia posible consiste en cooperar con la red. En las dos últimas publicaciones, se tiene en cuenta la heterogeneidad de los nodos, en una red de nodos que quieren ayudar pero no por ello están dispuestos a que su privacidad se vea afectada, ni a permitir un consumo de recursos excesivo. En este caso, se presenta un protocolo de encaminamiento geográfico respetuoso con la privacidad de los nodos, que aprende cuales son las zonas más visitadas por cada nodo mientras protege su privacidad.