BR112012010503B1 - Método para permitir compartilhamento de arquivos de conteúdo entre nós de uma rede não hierárquica, e, rede não hierárquica - Google Patents

Método para permitir compartilhamento de arquivos de conteúdo entre nós de uma rede não hierárquica, e, rede não hierárquica Download PDF

Info

Publication number
BR112012010503B1
BR112012010503B1 BR112012010503-5A BR112012010503A BR112012010503B1 BR 112012010503 B1 BR112012010503 B1 BR 112012010503B1 BR 112012010503 A BR112012010503 A BR 112012010503A BR 112012010503 B1 BR112012010503 B1 BR 112012010503B1
Authority
BR
Brazil
Prior art keywords
file
node
content
nodes
subnet
Prior art date
Application number
BR112012010503-5A
Other languages
English (en)
Other versions
BR112012010503A2 (pt
Inventor
Luigi Ciminiera
Marco Papa Manzillo
Vinicio Vercellone
Mario Ullio
Original Assignee
Telecom Italia S.P.A.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Telecom Italia S.P.A. filed Critical Telecom Italia S.P.A.
Publication of BR112012010503A2 publication Critical patent/BR112012010503A2/pt
Publication of BR112012010503B1 publication Critical patent/BR112012010503B1/pt

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1834Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
    • G06F16/1837Management specially adapted to peer-to-peer storage networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1065Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT] 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1076Resource dissemination mechanisms or network resource keeping policies for optimal resource availability in the overlay network
    • H04L67/2842

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

método para permitir compartilhamento de arquivos de conteúdo entre nós de uma rede não hierárquica, rede não hierárquica, e, software de cliente um método para possibilitar compartilhamento de arquivos de conteúdo entre nós de uma rede de p2p (100) é fornecido. a rede de p2p (100) compreende uma grande quantidade de sub-redes (110(i)) cada uma incluindo uma respectiva grande quantidade de nós (pj(i)) capazes de armazenar arquivos de conteúdo (file(k)). cada sub-rede (110(i)) está associada com uma correspondente tabela de códigos calculados identificadores (dht(i)) para a indexação dos arquivos de conteúdo (file(k)) armazenados nos nós (pj(i)) da sub-rede (110(i)); a tabela de códigos calculados identificadores (dth(i)) mencionada é distribuída entre pelo menos alguns dos nós da sub-rede (110(i)). o método compreende, para cada arquivo de conteúdo (file(k)) armazenado em pelo menos um nó (pj(i)) de uma sub-rede (110(i)), armazenando na tabela de códigos calculados identificadores (dht(i)) associada com a sub-rede (110(i)) mencionada um índice de censura (ick) fornecendo uma indicação do grau de compartilhamento do arquivo de conteúdo (file(k)) mencionado entre os nós (pj(i)) de sub-rede (110(i)) mencionada. o método anda compreende ter um nó (pj(i)) acessando através de dispositivo de acesso intermediário rápido pelo menos um arquivo de conteúdo (file(k)) a ser compartilhado por outros nós (pj(i)) das sub-rede (110(i)). o pelo menos um arquivo de conteúdo (file(k)) mencionado não é solicitado pelo nó (pj(i)) mencionado para o desfrute do mesmo, o acesso de arquivo através de dispositivo de acesso intermediário rápido de pelo menos um arquivo de conteúdo (file(k)) mencionado é baseado no índice de censura (ick) do pelo menos um arquivo de conteúdo (file(k)).

Description

[001] A solução de acordo com uma modalidade da presenteinvenção se refere ao campo da tecnologia de informação e comunicação. Particularmente, tal solução envolve um método melhorado e um sistema para acessar arquivos de conteúdo em redes com base “não hierárquica”.
[002] Geralmente falando, uma rede de computador (ou, para semais exato, uma rede de sobreposição) tendo a assim chamada arquitetura não hierárquica é formada por uma pluralidade de nós que simultaneamente funcionam com ambos clientes e servidores em direção a outros nós da rede. Na presente descrição, com o termo “nó” é pretendido qualquer sistema de processamento de dados programado adequadamente capaz de receber, transmitir, armazenar e processar dados digitais, tais como um computador pessoal, um laptop, um Assistente Digital Pessoal (PDA), e o similar, gerenciado por um software adequado instalado nele.
[003] Diferente das redes de computadores tendo uma arquiteturacliente - servidor, em uma rede de computador arrumada de acordo com uma arquitetura não hierárquicas - de agora em diante - abreviadamente referida como uma “rede P2P” - qualquer nó é capaz de iniciar e / ou terminar uma transação de conteúdo digital em direção a qualquer outro nó. Mesmo que cada nó de uma rede P2P seja geralmente diferentes de outros nos da rede em termos de recursos computacionais, largura de banda e dados armazenados, todos os nós são considerados serem equivalentes “parceiros de comunicação” cada um deles tendo os direitos de baixar / carregar conteúdos digitais de / para outros parceiros de comunicação. Uma rede P2P acumula diferentes recursos computacionais e a largura de banda de cada parceiro de comunicação mais propriamente do que empregar um sistema centralizado convencional onde um número relativamente baixo de servidores são responsáveis por gerenciar as transações de conteúdos digitais em direção aos clientes.
[004] Redes P2P são presentemente exploradas em diferentescampos de aplicação, já que as características vantajosas oferecidas por tal arquitetura de rede podem ser úteis para muitos propósitos. Entre os campos de aplicação possíveis, o mais comum no tempo presente é com certeza o compartilhamento de arquivo. Particularmente, empregando uma arquitetura de rede P2P, os arquivos de conteúdo armazenadas em cada parceiro de comunicação podem ser facilmente compartilhados entre os outros parceiros de comunicação da rede, permitindo trocá-los em uma maneira eficiente explorando os recursos computacionais e a largura de banda acumulada a partir de vários próprios parceiros de comunicação. Com o termo muito genérico de “arquivo de conteúdo” é pretendido uma ampla categoria de dados, compreendendo dados de áudio, dados de vídeo, dados de texto, software de aplicação ou quaisquer dados em formato digital. Apenas para mencionar um outro campo de aplicação, as redes de P2P também podem ser empregadas para gerenciar transferência de dados em tempo real, tal como nas aplicações de sequência de mídia (ambos vídeo e áudio) e de telefone (ex., Protocolo de Voz sobre Internet).
[005] Vários estudos têm sido conduzidos nos últimos anos pararesolver ou pelo menos reduzir os principais inconvenientes afetando as redes de P2P, em tal uma maneira para melhorar a confiabilidade e a eficiência delas.
[006] Por exemplo, um dos principais inconvenientes afetando asredes de P2P atualmente empregadas para implementar serviços de compartilhamento de arquivo considerando a dificuldade com a qual os arquivos de conteúdo que são muito incomuns (i.e, os arquivos que são compartilhados por somente um pequeno número de parceiros de comunicação) gerenciar se espalham ao longo da rede. Este problema é sentido profundamente quando os arquivos de conteúdo incomuns mencionados são solicitados um número relativamente alta de parceiros de comunicação no mesmo tempo, originando um gargalo no processo de baixa de tais arquivos de conteúdo, De modo a resolver este problema, soluções conhecidas proveem a criação de cópias adicionais dos arquivos de conteúdo incomuns mencionados, a fim de aumentar as fontes para o descarregamento dos mesmos a partir dos parceiros de comunicação solicitantes. Nesta maneira, a distribuição de tais arquivos de conteúdo incomuns ao longo da rede P2P seria fortemente favorecida. Tais cópias adicionais podem ser armazenadas em um conjunto de parceiros de comunicação entre os parceiros de comunicação formando a rede P2P, a fim de implementar um sistema de “configuração de cache distribuído” de arquivos de conteúdo.
[007] Os principais conceitos de sistemas de configuração de cachedistribuído são ilustrados no documento “Peer-to-peer Caching Schemes to Address Flash Crowds” por Stading, Maniatis and Baker, Peer-to-peer Systems, 2002, páginas 203 - 212. Resumidamente, a idéia de sistema de configuração de cache é inicialmente implantada de modo a resolver os inconvenientes afetando o Flash Crowds. A solução mencionada é baseada na formação de uma assim chamada confederação de servidores da web, incluindo uma pluralidade de servidores que são explorados pelos vários sistemas de processamento de dados conectados para a rede aliviando a carga computacional dele. De acordo com esta solução, quando um sistema de processamento de dados da rede está em uma condição pesadamente carregada, i.e., se o tráfego da rede pertencendo a um arquivo de conteúdo determinado que é armazenado em tal sistema de processamento de dados é particularmente alto, uma ou mais cópias de tal arquivo de conteúdo são armazenadas (configurando cache) em um ou mais correspondentes servidores do confederação de servidores da web. Nesta maneira, parte do tráfego que foi direcionado ao sistema de processamento de dados armazenando tal arquivo de conteúdo é desviada para a confederação de servidores da web. Contudo, esta solução não é adequada para as redes tendo uma arquitetura de P2P, onde os servidores são substituídos pelos parceiros de comunicação. De fato, em uma rede P2P cada parceiro de comunicação é diferente a partir dos outros, e assim sendo um parceiro de comunicação genérico pode não ter suficiente espaço em disco para armazenar as cópias de um arquivo de conteúdo de um outro parceiro de comunicação, ou pode não desejar oferecer seu espaço de disco para este propósito. Mais ainda, com esta solução um intruso pode ser capaz de preencher o espaço de disco dos vários parceiros de comunicação que estão ofertando um serviço de acesso de arquivo através de dispositivos de acesso intermediários rápido com dados inúteis. Em adição, já que os arquivos de conteúdo acessados através de configuração de cache nos vários parceiros de comunicação são armazenados em um plano, de maneira sem criptografia, problemas legais podem surgir porque o proprietário do sistema de processamento de dados correspondendo a um determinado parceiro de comunicação teria o dever de verificar se os arquivos de conteúdo a serem acessados através de configuração de cache a partir de outros parceiros de comunicação são ou não protegidos por direitos autorais.
[008] O pedido de patente de US US2005/0120133 divulga umsistema de configuração de cache distribuído adaptado para ser implementado em arquiteturas de rede P2P híbridas. Em uma rede P2P híbrida, o sistema de alinhamento é implementado por meio de um servidor centralizado, enquanto somente a transferência dos arquivos de conteúdo é efetuada em uma maneira descentralizada. Porque o servidor centralizado tem uma visão global na rede inteira, tal servidor pode avaliar quais são os arquivos de conteúdo compartilhados pelos vários parceiros de comunicação que requerem ser acessados através de configuração de cache, e decide quais são os parceiros de comunicação que tem de ofertar espaço de disco para a configuração de cache. Nesta maneira, o risco de desperdiçar espaço em disco para armazenar dados inúteis é evitado, já que o servidor centralizado pode ser considerado como autorizado. Contudo, esta solução não leva em conta a quantidade de tráfego que está efetivamente envolvendo cada parceiro de comunicação da rede; e, por conseguinte, o servidor centralizado pode instruir um parceiro de comunicação que já esta carregado para acessar através de dispositivo de acesso rápido um arquivo de conteúdo adicional. Mais ainda, esta solução é afetada pelos mesmos inconvenientes legais previamente mencionado. Em adição, tal solução é adaptada para ser somente implementada em arquiteturas de rede P2P híbrida, enquanto as tendências futuras visam arquitetura de rede P2P completamente descentralizadas.
[009] O pedido de patente dos US US2007/0150575 divulga ummétodo para aumentar a localização de tráfego de uma rede explorando um sistema de acesso de arquivo através de configurações de cache distribuídas. Em maiores detalhes, os parceiros de comunicação que estão dentro de um mesmo ISP podem ser arrumados para formar um correspondente sistema de configuração de cache. Esta solução provê que cada parceiro de comunicação é responsável pela configuração de cache de um determinado sub-conjunto de arquivos de conteúdo. Se um arquivo de conteúdo específico não está disponível (i.e, se o parceiro de comunicação que é o responsável por aquele arquivo de conteúdo não armazena uma cópia dele), o arquivo de conteúdo é baixado da internet, e transmitido para o nó que é responsável por seu configuração de cache. Esta solução da mesma forma é afetada pelos mesmos inconvenientes anteriormente mencionados, já que mesmo neste caso a quantidade de tráfego que está efetivamente envolvendo cada parceiro de comunicação da rede não é levada em conta, e o proprietário do sistema de processamento de dados correspondendo a um determinado parceiro de comunicação teria o dever de verificar se os arquivos de conteúdo a serem acessados através de configuração de cache a partir de outros parceiro de comunicação são ou não protegidos por direitos autorais.
[0010] Mais anda, um outro inconveniente afetando as redes de P2P efetivamente empregadas para implementar serviços de compartilhamento de arquivo consiste no fato que os parceiros de comunicação que estão transmitindo arquivos são tipicamente coincididos com os parceiros de comunicação que estão recebendo os arquivos transmitidos sem levar em conta a localização dos (transmitindo e recebendo) parceiros de comunicação dentro da rede. Neste contexto, tem sido apreciado que com o termo “localização de um parceiro de comunicação” é pretendido para a localização física do sistema de processamento de dados correspondendo a tal parceiro de comunicação dentro da rede física (ex., a rede de telefonia).
[0011] No tempo presente, as aplicações conhecidas que são executadas nos sistemas de processamento de dados formando os parceiros de comunicação de uma rede P2P para o gerenciamento dos mesmos (a partir de agora em diante, simplesmente referidas como “aplicações de P2P”) lista os arquivos de conteúdo compartilhado vindo de vários parceiros de comunicação em um sistema de alinhamento, que pode ser implementado por meio de um ou mais servidores dedicados ou por meio de uma estrutura ou uma rede não estruturada. Quando a aplicação de P2P de um parceiro de comunicação genérico solicita um ou mais dos arquivos de conteúdos compartilhados mencionados, o sistema de alinhamento é indagado por tal própria aplicação de P2P; o sistema de alinhamento consequentemente responde com uma lista de respostas dos parceiros de comunicação que efetivamente possuem tais arquivos de conteúdo (ou pelo menos pedaços deles). Já que o uso de tais sistemas de alinhamento é uma carga para o tráfego de rede, tal lista de resposta não é exaustiva, mas em seu lugar é limitada a um número pré-fixo de resultados. Mais ainda, como já citado no descrito anteriormente, o conjunto de resultados incluídos em tal lista de resposta é gerada pelo sistema de alinhamento sem levar em consideração a localização dos parceiros de comunicação possuindo os arquivos de conteúdo desejados com relação à localização do parceiro de comunicação que fez a solicitação.
[0012] De modo a resolver este problema, o documento “Can ISPS and P2P users cooperate for improved performance?” por Aggarwal, Feldmann and Scheideler, DIGCOM Comput. Commun. Ver., vol. 37, 2007, páginas 29 - 40, divulga uma solução no qual os Provedores de Serviço de Internet (ISP) são fornecidos com uma função particular denotada “oráculo”. Quando um parceiro de comunicação recebe a lista de resposta representando os parceiros de comunicação que efetivamente possuem os arquivos de conteúdo solicitados, a lista de resposta é passada adiante para o ISP do parceiro de comunicação solicitante. Através de tal função oráculo, a lista de resposta mencionada é ordenada com base na distância entre os parceiros de comunicação listados e o parceiro de comunicação solicitante. A função oráculo é capaz de realizar tal tarefa porque o ISP tem um conhecimento profundo de sua rede, que permite quantificar a distância dos vários parceiros de comunicação por meio de informação de encaminhamento.
[0013] Contudo, tal solução é afetada por alguns inconvenientes. Primeiramente, um usuário malicioso pode ser apto a derivar a topologia de rede gerenciada pelo ISP embora uma simples sequência de solicitações apropriadamente estruturadas. Mais ainda, a eficiência atingida empregando a solução mencionada não é realmente alta, já que a função oráculo efetua uma classificação usando os parceiros de comunicação representados na lista de resposta somente, a qual lista de resposta não é exaustiva, mas em vez disso é limitada para um número de resultados pré-fixados. Se os arquivos de conteúdo buscados pelo parceiro de comunicação solicitante não são realmente populares, e o número de resultados é inferior do que o número de pré-fixado, a função oráculo é efetivamente capaz de permitir obter os arquivos de conteúdo desejados em uma maneira ótima. Contudo, se os arquivos de conteúdo solicitados são muito populares, a função oráculo é forçada a efetuar as operações de classificação em um conjunto de resultados que não é representativo da situação inteira, e assim sendo, a eficiência atingida com esta solução é realmente baixa.
[0014] Embora solução conhecida divulgada em “Taming the torrent: a pratical approach to reducing cross-isp traffic in parceiro de comunicação- to-parceiro de comunicação systems” por D.R. Choffness and Bustamante, Proceedings of the ACM SIGCOMM 2008 conference on Data Communications, Seattel, WA, USA: ACM, 2008, páginas 363 - 374. De acordo com esta solução, é possível obter algumas indicações acerca da localização de um parceiro de comunicação dentro da rede de sobreposição explorando a presença de sites espelhos da Rede de Entrega de Conteúdo (CDN). Em particular, se dois diferentes parceiros de comunicação são re-direcionados em direção ao mesmo site espelho, significa que há uma probabilidade relativamente alta que as localizações de tais dois parceiros de comunicação estão próximos cada um do outro. Por conseguinte, uma vez que um parceiro de comunicação obteve a lista de resposta a partir do sistema de alinhamento, ele pode contatar todos os parceiros de comunicação incluídos na lista, e avaliar suas distâncias mútuas observando os sites espelho deles. Contudo, isto é uma solução ineficiente, já que os sites espelhos são determinados pela CDN com base em um conjunto de critérios, onde a localização é somente um parâmetro entre outros. Mais importantemente, a solução mencionada sofre do mesmo inconveniente afetando a solução anterior, i.e., o número de resultados na lista de resposta que é limitada a um valor pré-fixado.
[0015] Uma solução adicional conhecida na arte é proposta em “P4P: provider portal for Applications”, por Xie et al., Procedimentos da ACM SIGCOMM 2008 Conferência sobre Comunicação de Dados, Seattle, WA, USA: ACM, 2008, páginas 351 - 362, onde uma arquitetura de rede de “não hierárquicas” chamada “P4P” é divulgada. De acordo com esta solução, os ISPs tem de fornecer sob demanda uma ampla faixa de informação considerando a rede (tal como a política e o custo de varias destinações) para o sistema de alinhamento. Um inconveniente desta solução é dada pelo requisito da informação confidencial de divulgação (tal como a topologia de rede). Contudo, o principal inconveniente desta solução consiste no fato que o sistema de alinhamento seria carregado com uma quantidade de dados bastante alta, o que não pode ser eficientemente processado usando a potência de computação dos sistemas de processamento de dados presentemente disponíveis.
[0016] Em vista do descrito acima, o Requerente abordou o problema de como melhorar o sistema de alinhamento das redes de P2P atualmente disponíveis. Para este propósito, um novo método para permitir compartilhamento de arquivos de conteúdo entre os nós de uma rede P2P é fornecido. A rede P2P compreende uma pluralidade de sub-redes cada uma incluindo uma respectiva pluralidade de nós capazes de armazenar arquivos de conteúdo. Cada sub-rede tem associada com ela uma correspondente tabela de dispersão para o alinhamento de arquivos de conteúdo armazenados nos nós da sub-rede; a tabela de dispersão mencionada é distribuída entre pelo menos alguns dos nós da sub-rede. O método compreende, para cada arquivo de conteúdo armazenado em pelo menos um nó da sub-rede, armazenar na tabela de dispersão associada com a sub-rede mencionada um índice de criticalidade fornecendo uma indicação do grau de compartilhamento do arquivo de conteúdo mencionado entre os nós da sub-rede mencionada. O método ainda compreende ter um nó acessando através de dispositivo de acesso intermediário rápida pelo menos um arquivo de conteúdo a ser compartilhado por outros nós da sub-rede. O pelo menos um arquivo de conteúdo mencionado não é solicitado pelo nó mencionado para a realização do mesmo; a configuração de cache mencionado de pelo menos um arquivo de conteúdo é baseado no índice de criticalidade do pelo mencionado um arquivo de conteúdo mencionado.
[0017] Um outro aspecto da presente invenção considera uma rede P2P.
[0018] Um aspecto adicional da presente invenção considera um software de cliente executável por um nó de uma rede P2P.
[0019] A invenção de acordo com um ou mais modalidades da presente invenção, assim como características e vantagens adicionais delas, serão melhor entendidas por referência à seguinte descrição detalhada, fornecida puramente por meio de um indicação não restritiva, para ser lida em conjunto com os desenho anexos. Particularmente:Figura 1: ilustra uma topologia exemplar de uma rede P2P de acordo com uma modalidade da presente invenção;Figura 2: representa um fluxograma ilustrando as principais fases efetuadas por um nó genérico da rede P2P da Figura 1 a conexão dele de acordo com uma modalidade da presente invenção;Figura 3: esquematicamente ilustra uma porção de uma tabela de dispersão distribuída de acordo com uma modalidade da presente invenção;Figura 4: representa um fluxograma ilustrando as principais fases efetuadas por um nó genérico da rede P2P da Figura 1 durante operações de procura direcionadas à busca e identificação de um arquivo de conteúdo específico de acordo com uma modalidade da presente invenção.Figura 5: esquematicamente ilustra uma porção de uma tabela de dispersão distribuída de acordo com uma modalidade da presente invenção;Figura 6: representa um fluxograma ilustrando como um primeiro nível de tabela de uma tabela de dispersão distribuída é gerada de acordo com uma modalidade da presente invenção; Figura 7: esquematicamente ilustra um primeiro nível de tabela e um segundo nível de tabela de uma tabela de dispersão distribuída de acordo com uma modalidade da presente invenção, eFigura 8: representa um fluxograma ilustrando as principais fases efetuadas por um nó da rede P2P da Figura 1 durante uma busca de nome e uma busca de dispersão de um arquivo de conteúdo específico de acordo com uma modalidade da presente invenção.
[0020] Na descrição a seguir, uma solução de acordo com modalidades exemplares e não limitativas da presente invenção será apresentada e descrita em detalhe. Aqueles com habilidade na arte contudo vão reconhecer que várias modificações para as modalidades descritas são possíveis, e que a presente invenção pode ser incorporada em diferentes maneiras.
[0021] Com referência em particular à Figura 1, uma topologia exemplar de uma rede P2P na qual os conceitos da presente invenção podem ser aplicados é esquematicamente ilustrado com a referência 100.
[0022] Particularmente, a rede P2P 100 é arrumada em dois diferentes níveis, e a sabem em um primeiro nível, referido como “rede legada”, e em um segundo nível, referido como “rede localizada”. Como será descrito a seguir na presente descrição, os principais elementos das soluções propostas de acordo com as várias modalidades da presente invenção reside no segundo nível da rede P2P aparelho de codificação de imagem 100, i.e., na rede localizada.
[0023] A rede legada, identificada na figura com referência circuito de matriz de conversão de cor 105, representa qualquer rede P2P pré-existente e já conhecida, com a qual a rede localizada mantém uma compatibilidade reversa. A rede legada 105 pode ser qualquer uma dentre as redes de P2P globais pré-existente atualmente disponíveis, tal como por exemplo, uma rede P2P descentralizada. Em resumo, a rede legada 105 compreende uma pluralidade de nós que podem ser arrumados de acordo com qualquer uma dentre as arquiteturas de rede P2P conhecidas. A rede legada 105 é fornecida com um sistema de alinhamento (não mostrado na figura), que tem o propósito de listar os arquivos de conteúdo compartilhados pelos nós pertencendo à rede legada 105 da mesma forma que aqueles armazenados pelos nós formando a rede localizada. Como é bem conhecido para aqueles com habilidade na arte, tal sistema de alinhamento é explorada para efetuar operações de procura necessárias para a identificação de quais nós estão armazenando (pedaços de) um arquivo de conteúdo solicitado especificado. A rede legada 105 e seu correspondente sistema de alinhamento podem ser ou do tipo não estruturado ou do tipo estruturado, ou pode ser baseado em servidor. No segundo caso, o sistema de alinhamento pode ser com base em uma tabela de dispersão distribuída, tal como no protocolo de comunicação kademlia. Com é bem conhecido por aqueles com habilidade na arte, uma tabela de dispersão (ou mapa de dispersão) é uma estrutura de dados que usa uma função de cálculo de código identificador para eficientemente mapear determinados identificadores ou chaves para valores associados, A função de cálculo de código identificador é usada para transformar a chave em índice (a dispersão) de um elemento de matriz onde o correspondente valor é para ser procurado. Tabelas de dispersão distribuídas são uma classe de sistemas distribuídos descentralizados que fornecem um serviço de procura similar a uma tabela de dispersão. Particularmente, em uma rede tendo associada com ela uma tabela de dispersão distribuída, tal tabela de dispersão distribuída é adaptada para armazenar (chave, valor) pares, e qualquer nó participante da rede pode eficientemente recuperar o valor associado com uma determinada chave. Responsabilidade para manter o mapeamento a partir de chaves para valores é distribuída entre os vários nós da rede, em tal uma maneira que uma mudança no conjunto de participantes causa uma quantidade mínima de interrupção.
[0024] A rede legada 105 não vai ser descrita em detalhe mais tarde porque não é relevante para o escopo da presente invenção.
[0025] O segundo nível da rede P2P 100, i.e, a rede localizada, é dividia em uma pluralidade de n diferentes sub-redes, identificada na Figura 1 com a referências 110(i), i = 1 para n. Cada sub-rede 110(i) é formado por uma correspondente pluralidade de nós, indicado com a referência Pj(i), j = 1,2,...
[0026] De acordo com uma modalidade da presente invenção, todos os nós Pj(i) incluídos em uma mesma sub-rede 110(i) pertencem a um mesmo correspondente sistema autônomo AS(i). Assim sendo, como é bem conhecido para o técnicos com habilidade, os números de Protocolo de Internet (IP) dos nós Pj(i) pertencendo a uma mesma sub-rede 110(i) possuem prefixos de encaminhamento conectados que estão sob o controle de um ou mais operadores de rede que apresentam uma política de encaminhamento comum e claramente definida para a Internet.
[0027] Cada sub-rede 110(i) forma uma rede P2P descentralizada independente fornecida com um correspondente sistema de alinhamento para se explorado para efetuar operações de procura para a busca e identificação de arquivos de conteúdo compartilhados entre os nós Pj(i) da sub-rede 110(i). De acordo com uma modalidade da presente invenção, as sub-rede 110(i) são do tipo estruturado, com o sistema de alinhamento de cada sub-rede 110(i) que é um sistema distribuído descentralizado com base em um respectiva tabela de dispersão distribuída DHT(i), como no protocolo de comunicação kademlia. A partir de agora, o sistema de alinhamento de uma sub-rede 110(i) genérica será referido com o termo “tabela de dispersão distribuída DHT(i)”. A tabela de dispersão distribuída DHT(i) é distribuída dentre nós Pj(i) formando a correspondente sub-rede 110(i); como é bem conhecido para aqueles com habilidade na arte, isto significa que a responsabilidade para gerenciar e manter o sistema de alinhamento é distribuído entre os nós Pj(i) da sub-rede 110(i). Foi apreciado que diferente da rede legada 105, cujo sistema de alinhamento é capaz de fornecer um serviço de procura direcionado aos arquivos de conteúdo compartilhados entre todos os nós da rede legada 105 e todos os nós Pj(i) de todas as sub-redes 110(i), a tabela de dispersão distribuída DHT(i) de uma sub-rede 110(i) genérica fornece um serviço de procura direcionado aos arquivos de conteúdo compartilhados entre os nós Pj(i) de somente tal sub-rede 110(i).
[0028] Os nós Pj(i) de uma sub-rede 110(i) genérica pertencem à rede legada 105, também, e são capazes de interagir com outros nós da rede legada 105 que não pertencem a tal sub-rede 110(i) para somente carregar / baixa arquivos de conteúdo armazenados nele. Como será descrito em maiores detalhes a seguir da presente descrição, os nós Pj(i) da sub-redes 110(i) têm compatibilidade reversa com outros nós da rede legada 105, a fim de permitir aos nós Pj(i) de uma sub-rede 110(i) que não armazenam um arquivo de conteúdo solicitado para realizar operações de procura direcionadas à busca de tal arquivo de conteúdo explorando o sistema de alinhamento da rede legada 105.
[0029] De acordo com uma modalidade da presente invenção, a tabela de dispersão distribuída DHT(i) de cada sub-rede 110(i) é fornecido com dados considerando a localização dos nós Pj(i) formando tal sub-rede 110(i); a partir de agora em diante, os dados relacionando a localização de um nó Pj(i) genérico será brevemente referido como dados de localização LD. Como já citado na introdução do presente documento, obter dados de localização LD precisos de um nó Pj(i) não é uma tarefa fácil. Para este propósito, de acordo com uma modalidade da presente invenção, os dados de localização LD de um nó Pj(i) genérico pode ser derivado a partir da informação fornecida pelo ISP por meio dos quais tal nó Pj(i) obteve acesso para a rede P2P 100.
[0030] Mais particularmente, de acordo com uma modalidade da presente invenção, os dados de localização LD de um nó Pj(i) genérico inclui três parâmetros, e a saber um primeiro parâmetro AS que identifica o sistema autônomo AS(i) correspondendo à sub-rede 110(i) incluindo tal nó Pj(i), um segundo parâmetro G que identifica a área geográfica na qual tal nó Pj(i) é localizada, e um terceiro parâmetro POP que identifica o Ponto de Presença (POP) fornecido pelo ISP e usado por tal nó Pj(i) para acessar o rede P2P 100. Tal arranjo de três parâmetros é particularmente adequado para a topologia de rede correntemente disponível, e especialmente para os Europeus; contudo, considerações similares se aplicam no caso de dados de localização LD incluindo um número diferente de parâmetros, ex., identificando o estado e / ou região no qual um nó Pj(i) está localizado.
[0031] Os dados de localização LD têm uma característica granular que corresponde ao parâmetro de POP,que é o mais específica entre os três parâmetros. De acordo com uma modalidade da presente invenção, os dados da localização LD é uma sequência de bits tendo o mesmo comprimento de dois endereços de IPv4. Este permite os dados de localização LD serem transmitidos em uma maneira fácil re-utilizando protocolos de transmissão bem conhecido.
[0032] A maneira que os dados de localização LD são gerados e comunicados para a tabela de dispersão distribuída DHT(i) de cada sub-rede 110(i) fortemente depende ta tecnologia empregada pelos vários ISP usados pelos nós Pj(i) para acessar a rede.
[0033] No caso que um ISP atribui os endereços de IP por meio de um servidor de Protocolo de Configuração de Hospedeiro Dinâmico (DHCP), tal ISP pode transmitir os dados de localização LD para um nó Pj(i) através de uma opção de DHCP específico inclui os dados de localização LD correspondendo ao POP usado por tal nó Pj(i). Esta solução não viola a privacidade do usuário do nó Pj(i). De fato, se um ISP automaticamente transmite os dados de localização LD para todos os nós Pj(i) que ele serve, e não somente par os nós Pj(i) que os usam para explorar os serviços oferecidos pelo rede P2P 100, o ISP não pode entender se um usuário de um nó Pj(i) genérico está efetivamente conectado a rede P2P 100 ou não. Mesmo se tal solução é muito barata por m ponto de vista de implementação, a presença de roteadores, firewalls e/ou a adoção de sistemas diferentes a partir do DHCP podem impedir a transferência dos dados de localização LD a partir do ISP para os nós Pj(i).
[0034] Para este propósito, a solução mencionada acima pode ser melhora explorando um Sistema de Nome de Domínio (DNS). Particularmente, um nó Pj(i) que está interessado em conhecer seus dados de localização LD pode passar adiante uma solicitação específica para o ISP, que vai responder com base no endereço de IP do solicitante.
[0035] Já que algum ISP vai negar a passagem adiante dos dados de localização LD, de acordo com uma modalidade da presente invenção a rede P2P 100 é fornecida com um sistema de auto-detecção de dados de localização LD. Mais particularmente, os parâmetros AS podem ser facilmente derivados dos bancos de dados públicos que podem ser incorporados nos clientes, enquanto o parâmetro G pode ser configurado para um valor à revelia. O parâmetro POP pode ser derivado em seu lugar através de uma maneira heurística, por exemplo, diretamente perguntando ao usuário de sistema de processamento de dados correspondendo a um nó Pj(i), a vila / cidade onde tal sistema de processamento de dados está fisicamente localizado.
[0036] Como será descrito em maiores detalhes a seguir na presente descrição, uma vez que um nó Pj(i) de uma sub-rede 110(i) recebeu seus dados de localização LD, os últimos estão localizados na correspondente tabela de dispersão distribuída DHT(i) junta com a lista de arquivos de conteúdo possuídos por tal nó Pj(i).
[0037] A Figura 2 representa um fluxograma 200 ilustrando as principais fases efetuadas por um nó Pj(i) genérico durante sua conexão a uma correspondente sub-rede 110(i) da rede P2P 100 de acordo com uma modalidade exemplar da presente invenção.
[0038] Já que cada sub-rede 110(i) é uma rede P2P descentralizada independente, que não inclui um nó dedicado atuando como um servidor, a operação de inicialização de tais sub-redes é realizado usando alguns nós Pj(i) aleatórios como “nós de inicialização”. Sem entrar em particulares bem conhecidos por aqueles com habilidade na arte, os nós Pj(i) pertencendo a uma particular sub-rede 110(i) que opera como nós de inicialização são usados como pontos de entrada de tal sub-rede 110(i). De acordo com uma modalidade da presente invenção, os nós de inicialização de uma sub-rede 110(i) são fornecidos com um arquivo de sinalizador de inicialização específico BOOT(ASi) que identifica o sistema autônomo AS(i) correspondente a tal sub-rede 110(i). Assim sendo, de modo a identificar que nós Pj(i) entre aqueles pertencendo a uma sub-rede 110(i) são nós de inicialização para tal sub-rede 110(i), é suficiente realizar uma operação de procura para buscar o arquivo de sinalizador de inicialização específico BOOT(ASi).
[0039] Fazendo referência à Figura 2, quando um sistema de processamento de dados (e.g., um computador) tenta estabelecer uma conexão com a rede P2P 100 para se tornar um nó Pj(i) de uma sub-rede 110(i), ele primeiramente acessa a rede legada 105 (bloco 205) usando os serviços oferecidos por um ISP. De acordo com uma dentre as soluções anteriormente descritas, tal sistema de processamento de dados adquire seus dados de localização LD, que inclui - entre outros parâmetros - o parâmetro AS identificando um sistema autônomo AS(i).
[0040] Uma vez que tal sistema de processamento de dados ganho acesso à rede legada 105, é possível para realizar operação de procura explorando o sistema de alinhamento de tal rede legada 105. Em particular, uma primeira operação de procura é efetuada para buscar se já existe qualquer nó Pj(i) que possua o arquivo de sinalizador de inicialização BOOT(ASi) relacionado ao sistema autônomo AS(i) identificado pelo parâmetro AS (bloco 210).
[0041] A rede legada 105 responde fornecendo uma lista de resposta compreendendo os endereços de IP dos nós Pj(i) que compartilham o arquivo de sinalizador de inicialização BOOT(ASi) solicitado junto com a dispersão ao qual se aplicou criptografia do arquivo de sinalizador de inicialização BOOT(ASi) (bloco 215). Como já descrito na discussão anterior da presente descrição, os nós Pj(i) que compartilham tal arquivo de sinalizador de inicialização BOOT(ASi) são os nós de inicialização da sub-rede 110(i) correspondendo ao sistema autônomo AS(i).
[0042] Neste ponto, já que é fortemente desejável que o número de nós de inicialização seja suficientemente grande, uma verificação é feita para confirmar se o número efetivo de nós Pj(i) de inicialização da sub-rede 110(i) é menor do que um predeterminado limite TH (e.g., igual à 200) ou não.
[0043] No caso que o número efetivo de nós de inicialização da sub- rede 110(i) é menor do que limite TH (ramo de saída Y do bloco 220), o sistema de processamento de dados é registrado na tabela de dispersão distribuída DHT(i) como um novo nó Pj(i) de inicialização da sub-rede 110(i) (bloco 225); se em seu lugar o número efetivo de nós de inicialização da sub- rede 110(i) é maior do que o limite TH (ramo de saída N do bloco 220), o sistema de processamento de dados é registrado na tabela de dispersão distribuída DHT(i) como um nó Pj(i) padrão da sub-rede 110(i) (bloco 230).
[0044] Uma vez que o nó Pj(i) foi registrado na tabela de dispersão distribuída DHT(i), o elo de comunicação de tal nó Pj(i) para a sub-rede 110(i) é efetivamente estabelecida. Neste ponto, o nó Pj(i) compartilha na tabela de dispersão distribuída DHT(i) a lista dos arquivos de conteúdo que ele possui associando-os com seus dados de localização LD e (bloco 235).
[0045] O procedimento descrito acima requerer ser modificado no caso que o ISP usado pelo sistema de processamento de dados para a conexão da rede P2P 100 faz uso de um sistema de endereçamento privado através de um aparelho de Translação de Endereço de Rede (NAT). Neste caso, o endereço de IP detectado pela rede legada 105 vai corresponder àquele fornecido pelo aparelho de NAT, e o inicialização não seria efetuado corretamente. De modo a resolver este inconveniente de acordo com uma modalidade da presente invenção, o endereço de IP local de um sistema de processamento de dados que foi registrado como um nó Pj(i) de inicialização na tabela de dispersão distribuída DHT(i) é comunicado no lugar da dispersão ao qual foi aplicado criptografia do arquivo de sinalizador de inicialização BOOT(ASi). Nesta maneira, um novo nó Pj(i) pode estabelecer uma conexão com os nós Pj(i) de inicialização usando seus endereços locais.
[0046] Uma porção de uma tabela de dispersão distribuída DHT(i) simplificada e exemplar de uma sub-rede 110(i) genérica é esquematicamente ilustrada na Figura 3 de acordo com uma modalidade da presente invenção.
[0047] No exemplo simplificado aqui considerado, a sub-rede 110(i) é formada por quatro nós - e particularmente pelos nós Pj(i), j = 1 à 4 - que compartilham seis diferentes arquivos de conteúdo, identificados comas referências FILE(k), K = 1 à 6.
[0048] A tabela de dispersão distribuída DHT(i) ilustrada na Figura 3 compreende um número de linhas 305(k) que é igual ao número total de arquivos de conteúdo FILE(k) compartilhada pelos nós Pj(i) formando a sub- rede 110(i) (no exemplo em questão, seis). Cada linha 305(k) compreende três campos, cujas referências são 310(k), 320 (k) e 325(k), respectivamente.
[0049] O primeiro campo 310(k) de cada linha 305(k) é adaptado para armazenar a dispersão do arquivo de conteúdo FILE(k) determinado aplicando uma função de cálculo de código identificador para tal arquivo de conteúdo FILE(k), referido como H(FILE(k)), com será descrito em maiores detalhes a seguir na descrição, a dispersão H(FILE(k)) é usado como uma chave para a procura do arquivo de conteúdo FILE(k) entre os arquivos de conteúdo compartilhados pelos nós Pj(i) da sub-rede 110(i).
[0050] O segundo campo 320(k) de cada linha 305(k) é adaptado para armazenar uma lista mostrando os nós Pj(i) da sub-rede 110(i) que armazenam uma cópia do arquivo de conteúdo FILE(k) (ou um pedaço dele). Em maiores detalhes, para cada nó Pj(i) armazenando uma cópia do arquivo de conteúdo FILE(k), a lista armazenada no 320(k) fornece o endereço de IP e o número de porta de tal nó Pj(i). No exemplo considerado, cópias do arquivo de conteúdo FILE(1) são armazenados nos nós P2(i) e P3(i), cópias do arquivo de conteúdo FILE(2) são armazenadas nos nós P2(i) e P4(i), uma cópia do arquivo de conteúdo FILE(3) é armazenada no nó P1(i), e assim por diante.
[0051] O terceiro campo 325(k) de cada linha 305(k) é adaptado para armazenar uma lista mostrando os dados de localização LD de cada nó Pj(i) incluído na lista do correspondente segundo campo 320(k).
[0052] A tabela de dispersão distribuída DHT(i) é descentralizada, no sentido que os dados armazenados nela e as estruturas de dados para o armazenamento de tais dados são distribuídos entre os vários nós Pj(i) formando a sub-rede 110(i). Por questão de simplicidade, a DHT(i) ilustrada na Figura 3 é representada como uma tabela centralizada; contudo, tal tabela tem de ser pretendida como se fosse distribuída entre os nós Pj(i) da sub-rede 110(i). Particularmente, os dados armazenados em cada linha 305(k) - ou grupo de linhas - da tabela de dispersão distribuída DHT(i) da Figura 3 pode ser armazenada e gerenciada por um correspondente conjunto de nós Pj(i) da sub-rede 110(i). Um nó Pj(i) que armazena os dados correspondendo a uma linha 305(k) da tabela de dispersão distribuída DHT(i) é referido como o nó Pj(i) responsável pelo arquivo de conteúdo FILE(k) correspondendo a linha 305(k) mencionada. No exemplo considerado, o nó Pj(i) é o nó responsável pelo arquivo de conteúdo FILE(k), o nó P2(i) é o nó responsável pelos arquivos de conteúdo de conteúdo FILE(2) e FILE(3), o nó P3(i) é o nó responsável pelo arquivo de conteúdo FILE(4), e o nó P4(1) é o nó responsável pelo arquivos de conteúdo FILE(5) e FILE(6).
[0053] A Figura 4 representa um fluxograma 400 ilustrando as principais fases efetuadas por um nó Pj(i) genérico conectado à tabela de dispersão distribuída DHT(i) de uma sub-rede 110(i) durante as operações de procura direcionadas à busca e identificação de um arquivo de conteúdo FILE(k) específico para ser baixado de acordo com uma modalidade da presente invenção.
[0054] Quando um nó Pj(i) pertencendo a sub-rede 110(i) deseja achar um arquivo de conteúdo FILE(k) específico, tal nó Pj(i) contata a tabela de dispersão distribuída DHT(i) da sub-rede 110(i) para efetuar uma procura de tal arquivo de conteúdo FILE(k) (bloco 405).
[0055] Conforme é bem conhecido para os técnicos com habilidade, as operações de procura efetuada em uma rede de DHT do tipo de rede P2P 100 são tipicamente constituídas por duas diferentes operações de procura a serem efetuadas cada uma sucessiva a outra. A primeira operação de procura, também referido como “busca de nome”, é efetuada usando (porções de) o nome do arquivo solicitado como chave; o resultado de tais operações de procura é uma lista compreendendo a dispersão dos arquivos compartilhado pelos nós da rede que (pelo menos parcialmente) correspondem ao nome de arquivo solicitado. Uma vez que o arquivo correto foi identificado, uma segunda operação de procura é efetuada, que é também referido como “busca de dispersão”. A segunda operação de procura usa a dispersão de tal arquivo como chave; o resultado da segunda operação de procura é uma lista compreendendo os endereços de IP dos nós das redes que efetivamente compartilham o arquivo correspondendo a tal dispersão. Por questão de simplicidade, a operação de procura exemplar descrita no fluxograma 400 da Figura 4 faz referência principalmente a busca de dispersão. Contudo, uma descrição mais detalhada da busca de nome será fornecida na discussão seguinte da presente especificação.
[0056] De acordo com uma modalidade da presente invenção, a procura do arquivo de conteúdo FILE(k) desejado é iniciado fornecendo à tabela de dispersão distribuída DHT(i) uma chave de busca (i.e, o nome da arquivo de conteúdo FILE(k) junto com os dados de localização LD do nó Pj(i) que solicitou o arquivo de conteúdo (bloco 410).
[0057] A tabela de dispersão distribuída DHT(i) emite uma lista de resposta correspondente - um exemplo do qual é ilustrado na figura 4 com a referência 415 - compreendendo o endereço de IP e portas dos nós Pj(i) pertencendo à sub-rede 110(i) que efetivamente armazena cópias do arquivo FILE(k) desejado (bloco 420).
[0058] De acordo com uma modalidade da presente invenção, os resultados mostrados na lista de resposta 415 são ordenados de acordo com um critério de proximidade que quantifica a proximidade do nó Pj(i) solicitando o arquivo de conteúdo FILE(k) com os nós Pj(i) que são listados na lista de resposta 415. Tal critério de proximidade consiste de comparar os dados de localização LD enviados pelos nós Pj(i) solicitantes com os dados de localização LD correspondendo aos nós Pj(i) que são listados na lista de resposta 415.
[0059] Em maiores detalhes, com base na chave de busca recebida, o DHT(i) seleciona a linha 305(k) cujo campo 310(k) está armazenando a dispersão H(FILE(k)) do arquivo de conteúdo FILE(k) solicitado, a fim de recuperar a listas armazenada no campo circuito de seleção 320(k) que mostra os nós Pj(i) da sub-rede 110(i) armazenando uma cópia do arquivo de conteúdo FILE(k) solicitado (ver Figura3). Fazendo referência ao exemplo ilustrado na Figura 3, onde a sub-rede 110(i) é formada por quatro nós Pj(i) compartilhando um total de seis arquivos de conteúdo FILE(k), e assumindo que o nó Pj(i) está solicitando o arquivo de conteúdo FILE(5), a lista de resposta 415 vai inclui o endereço de iP e portas dos nós Pj(i) listados no campo 320(5), i.e., os nós P1(i), P3(i), e P4(i).
[0060] Conforme previamente mencionado, de acordo com uma modalidade da presente invenção os resultados fornecidos pela lista de resposta 415 são ordenados em uma sequência com base em uma comparação entre os dados de localização LD do nó Pj(i) solicitante (os quais dados são recebido juntos com a chave de busca) e os dados de localização LD dos nós Pj(i) listados no campo 320(k) da linha 305(k) correspondendo ao arquivo FILE(k) selecionado (os quais dados são listados no campo 325(k)).
[0061] De acordo com uma modalidade exemplar da presente invenção, tal sequência é ordenada primeiramente posicionando um primeiro conjunto incluindo os endereços de IP e portas dos nós Pj(i) listados tendo ambos os parâmetros G e os parâmetro POP igual ao parâmetro G e ao parâmetro POP do nó Pj(i) solicitante, respectivamente. Então, tal primeiro conjunto é seguido na sequência por um segundo conjunto incluindo os endereços de IP e portas dos nós Pj(i) tendo somente o parâmetro G igual ao parâmetro G do nó Pj(i) solicitante. A sequência termina com um terceiro conjunto incluindo o os endereços IP e portas dos nós Pj(i) remanescentes (que contudo tem o mesmo parâmetro AS, sendo conectado à mesma sub-rede 110(i). a ordem dos nós Pj(i) dentro de cada conjunto é irrelevante.
[0062] Tem de ser apreciado que os dados fornecidos pela tabela de dispersão distribuída DHT(i) para o nó Pj(i) solicitante através da lista de resposta 415 não explicitamente inclui os dados de localização LD dos nós Pj(i) listados nela, em tal uma maneira não para violar a privacidade dos usuários de tais nós.
[0063] Retornando ao fluxograma 400 da Figura 4, se a lista de resposta 415 tem um número de entradas maior do que um predeterminado limite THR ( saída do ramo N do bloco 425), o nó Pj(i) tenta estabelecer uma conexão com os nós Pj(i) listados na lista de resposta 415 seguindo a ordem específica em tal lista (bloco 430). Conforme será descrito em maiores detalhes na descrição a seguir da presente invenção, cada vez que o nó Pj(i) tenta estabelecer uma conexão com um particular nó Pj(i), o nó anterior fornece seus dados de localização LD para o mais recente nó.
[0064] Uma vez que o nó Pj(i) solicitante estabeleceu uma conexão com um ou mais dos nós Pj(i) listados na lista de resposta 415, o descarregamento do arquivo de conteúdo FILE(k) é iniciado (bloco 435).
[0065] Se a lista de resposta 415 tem um número de entradas menor do que o limite THR, (saída de ramo Y do bloco 425), isto significa que o arquivo de conteúdo FILE(k) solicitado é compartilhado por um número muito baixo dos nós Pj(i) da sub-rede 110(i). Neste caso, a solicitação por tal conteúdo FILE(k) pode ser passado adiante para a rede legada 105 (bloco 440). Esta possibilidade é contemplada já que os nós Pj(i) da sub-rede 110(i) são de compatibilidade reversa com a rede legada 105; nesta maneira, as operações de procura direcionadas à busca de tal arquivo de conteúdo FILE(k) pode ser realizado explorando o sistema de alinhamento da rede legada 105. O jeito que a rede legada 105 efetua tais operações de procura não será descrito, por não ser relevante ao escopo da presente invenção.
[0066] Conforme mencionado na introdução da presente descrição, um grande inconveniente afetando as redes de P2P empregadas para implementar serviços de compartilhamento de arquivo, tal como a rede P2P 100, considera a dificuldade com as quais os arquivos de conteúdo FILE(k) que são bem incomuns em uma sub-rede 110(i) - i.e, aqueles arquivos que são compartilhados somente por um número pequeno de nós Pj(i) da sub-rede 110(i) - podem ser baixados. Este problema é particularmente enorme quando tais arquivos de conteúdo FILE(k) são solicitadas por um número relativamente alta de nós Pj(i) da sub-rede 110(i) ao mesmo tempo.
[0067] De modo a resolver este problema, uma solução de acordo com uma modalidade da presente invenção provê um sistema de configuração de cache adaptado para automaticamente avaliar se um arquivo de conteúdo FILE(k) genérico compartilhado pelos nós Pj(i) de uma sub-rede 110(i) tem de ser configurando cache ou não, e, no caso afirmativo, gerar cópias adicionais de tal arquivo de conteúdo FILE(k) a ser armazenado em algum dos nós Pj(i) de tal sub-rede 110(i).
[0068] Para este propósito, de acordo com uma modalidade da presente invenção a tabela de dispersão distribuída DHT(i) de cada correspondente sub-rede 110(i) armazena dados adicionais considerando a efetiva difusão dos arquivos de conteúdo FILE(k) entre os nós Pj(i) da sub- rede 110(i) e o número de solicitações pendentes envolvendo-os.
[0069] Fazendo referência à Figura 5, de acordo com uma modalidade exemplar da presente invenção cada linha 305(k) da tabela de dispersão distribuída DHT(i) ainda inclui um quarto campo, identificado na figura com a referência 505(k). O campo 505(k) é adaptado para armazenar dois parâmetros numéricos Na, Np quantificando como o arquivo de conteúdo FILE(k) correspondendo à linha 305(k) é solicitado e com ele é difundido dentro da sub-rede 110(i).
[0070] Em maiores detalhes, o parâmetro Na corresponde ao número de solicitações de baixa pendente para tal arquivo de conteúdo FILE(k) que foram apresentados pelos nós Pj(i) da sub-rede 110(i). Em outras palavras, o parâmetro Na é igual ao número de nós Pj(i) que solicitaram o arquivo de conteúdo FILE(k), mas que ainda não iniciou o descarregamento. O parâmetro Np é em vez disso relacionado ao número de nós Pj(i) da sub-rede 110(i) efetivamente armazenando (pedaços de) o arquivo de conteúdo FILE(k). De acordo com uma modalidade exemplar da presente invenção, o parâmetro Np correspondendo para um arquivo de conteúdo FILE(k) específico - referido como Np(FILE(k)) - é ponderado de acordo com a porcentagem do arquivo de conteúdo FILE(k) efetivamente possuída pelos vários nós Pj(i). Por exemplo, o parâmetro Np correspondendo a um arquivo de conteúdo FILE(k) pode ser calculado como:Np(FILE(k)) = N100 + N75 x 0,875 + N50 x 0,625 + N25 x 0,375 + N0 x 0,125onde os parâmetros N100, N75, N50, N25, N0 são os números de nós Pj(i) da sub-rede 110(i) armazenando pelo menos o aparelho de codificação de imagem 100%, 75 %, 59 %, 23 % e 0% do arquivo de conteúdo FILE(k), respectivamente. O coeficiente de multiplicação de cada parâmetro entre os parâmetros N75, N50, N25, N0 sã obtidos calculando um valor médio normalizado das porcentagens correspondendo ao mesmo parâmetro e aos parâmetros anteriores. Por exemplo, o coeficiente de multiplicação 0,875 corresponde ao valor médio normalizado entre a porcentagem aparelho de codificação de imagem 100 % e a porcentagem 75%. Naturalmente, os conceitos da presente invenção podem ser aplicados mesmo se o parâmetro Np é calculado em uma maneira diferente.
[0071] De acordo com uma modalidade da presente invenção, é possível avaliar se um arquivo de conteúdo FILE(k) necessita ser configurando cache ou não com base em uma comparação entre os parâmetros Na e Np de tal arquivo de conteúdo armazenado na tabela de dispersão distribuída DHT(i). Essencialmente, quanto maior o parâmetro Na com relação ao parâmetro Np, maior o número das solicitações de baixa pendente para tal arquivo de conteúdo FILE(k) com relação ao número de cópias efetivamente disponível dentro da sub-rede 110(i), e assim, maior a necessidade de acessar tal arquivo de conteúdo FILE(k) através de configuração de cache.
[0072] Para este propósito, de acordo com uma modalidade exemplar da presente invenção cada linha 305(k) da tabela de dispersão distribuída DHT(i) ainda inclui um quinto campo, identificado na figura com a referência 510(k), que é adaptada para armazenar um índice de criticalidade ICk calculado com base nos parâmetros Na e Np listado no campo 505(k); por exemplo, o índice de criticalidade ICk pode ser determinado de acordo com a seguinte relação:
Figure img0001
[0073] Em que t é um limite predeterminado, e 1/8 é um fator de normalização. Por conseguinte, como pode ser facilmente inferido, observando a relação acima, quanto maior o índice de criticalidade ICk, maior a necessidade de configurar cache de o arquivo de conteúdo FILE(k). Tem de ser apreciado que o índice de criticalidade ICk é configurado a zero se o arquivo de conteúdo FILE(k) é solicitado através de um número pequeno de nós Pj(i) (igual ou menor do que o limite t).
[0074] De acordo com uma modalidade da presente invenção, quando um nó Pj(i) genérico de uma sub-rede 110(i) decide (ou é instruído) oferecer uma porção de seu espaço de disco para propósitos de configuração de cache, a escolha de qual arquivo de conteúdo FILE(k) é para ser configurando cache é efetuado com base no correspondente índice de criticalidade ICk. Mais em detalhe, cada nó Pj(i) localmente armazena uma lista de criticalidade CLj(i) incluindo os índices de criticalidade ICk de um conjunto de arquivos de conteúdo FILE(k) entre os arquivos de conteúdo FILE(k) compartilhados pelos nós da sub-rede 110(i). A escolha de quais arquivos de conteúdo FILE(k) são inseridos na lista de criticalidade CLj(i) de um nó Pj(i) será descrito mais tarde.
[0075] De acordo com uma modalidade da presente invenção, quando um nó Pj(i) decide ofertar uma porção de seu espaço de disco para propósitos de configuração de cache, isto seleciona os arquivos de conteúdo FILE(k) da lista de criticalidade CLj(i) tendo o mais alto índices de criticalidade ICk.
[0076] Um exemplo de uma possível lista de criticalidade CLj(i) armazenada pelo nó Pj(i) de acordo com um modalidade da presente invenção é ilustrado na Figura 5 com a referência CL1(i). Cada lista de criticalidade CLj(i) inclui um conjunto de linhas 515(1) cada uma correspondendo a um arquivo de conteúdo FILE(k) específico. Por exemplo, a lista de criticalidade CL1(i) exemplar ilustrada na Figura 5 inclui três linhas, e particularmente uma primeira linha 505(1) correspondendo ao arquivo de conteúdo FILE(1), uma segunda linha 515(2) correspondendo ao arquivo de conteúdo FILE(5), e uma terceira linha 515(3) correspondendo ao arquivo de conteúdo FILE(6). Cada linha 505(1) inclui um primeiro campo 520(1) adaptado para armazenar a dispersão H(FILE(k)) do arquivo de conteúdo FILE(k) correspondendo a tal linha, um segundo campo 525(1) adaptado para armazenar dados de tempo TD(k) fornecendo uma indicação de “alívio” do índice de criticalidade ICk, i.e., uma indicação de quando tal índice de criticalidade ICk foi atualizado pela última vez na lista de criticalidade. Fazendo referência para a lista de criticalidade CL1(i) ilustrado na Figura 5, se o nó P1(i) decide configurar cache de um arquivo de conteúdo FILE(k), a seleção vai ocorrer dentre os arquivos de conteúdo FILE(1), FILE(5) e FILE(6) com base nos índices de criticalidade IC1, IC5 e IC6.
[0077] Uma vez que um nó Pj(i) escolheu o arquivo de conteúdo FILE(k) a ser configurando cache, ele inicia o descarregamento dele. A este respeito, tem de ser destacado que os nós Pj(i) que estão baixando um arquivo de conteúdo FILE(k) para propósitos de configuração de cache não são numerados para o cálculo do parâmetro Na correspondendo a tal arquivo de conteúdo FILE(k).
[0078] De acordo com uma modalidade da presente invenção, cada vez que dois nós Pj(i) da sub-rede 110(i) entram em comunicação cada um com o outro - ambos durante as operações de inicialização e as operações de procura, e.g., porque um deles está solicitando um particular arquivo de conteúdo FILE(k) para o outro, informação é trocada entre a lista de criticalidade CLj(i) de um nó Pj(i) inclui um índice de criticalidade ICk que não está ainda listado na lista de criticalidade CLj(i) do outro nó Pj(i), a linha 515(1) correspondendo a tal índice de criticalidade ICk é copiado e adicionado para a lista de criticalidade CLj(i) do mais recente nó Pj(i). Se em vez disso diferente versões de uma mesmo índice de criticalidade ICk são listadas em ambas a lista de criticalidade CLj(i) dos dois nós, a lista de criticalidade CLj(i) incluindo a mais antiga versão deles é atualizada com o índice de criticalidade ICk da outra lista de criticalidade CLj(i). De modo a avaliar que versão do índice de criticalidade ICk é a mais antiga, uma comparação é feita entre os dados de tempo TD(k) armazenado em ambas as listas de criticalidade CLJ(i).
[0079] Nesta maneira, atualização dos índices de criticalidade ICk pode ser vantajosamente efetuada durante a operação da rede P2P 100, aumentando a confiabilidade do serviço de configuração de cache. Particularmente, enquanto a lista de criticalidade CLJ(i) de um nó Pj(i) que foi recentemente registrado na tabela de dispersão distribuída DHT(i) pode incluir somente os índices de criticalidade ICk dos arquivos de conteúdo FILE(k) para os quais tal nó é o responsável pela tabela de dispersão distribuída DHT(i), com a passagem do tempo tal lista de criticalidade CLJ(i) é enriquecida com a informação tomada das listas de criticalidade CLJ(i) dos outros nó Pj(i) da sub-rede 110(i) com os quais tal nó entrada em comunicação.
[0080] Comparado com as presentes redes de P2P, a rede P2P 100 que foi descrita até agora permite drasticamente aumentar a eficiência de baixa dos arquivos de conteúdo FILE(k) compartilhado entre os nós Pj(i). Esta eficiência aumentada é obtido graças aos melhoramentos nas operações de procura devido à possibilidade de localização dos nós Pj(i) dentro de suas sub-redes 110(i), e graças à presença de um sistema de configuração de cache melhorada que leva em conta a criticalidade dos arquivos de conteúdo FILE(k).
[0081] Tem de ser apreciado que de acordo com a solução proposta cada nó Pj(i) incluindo em uma sub-rede 110(i) é configurado para atuar ambos como um nó parceiro de comunicação efetuando baixas de arquivos de conteúdo FILE(k) solicitados que são armazenados em outros nós Pj(i), e ao mesmo tempo como um nó de configuração de cache oferecendo espaço de disco a se explorado por outros nós Pj(i) para propósitos de configuração de cache. Nesta maneira, um maior grau de privacidade é garantida para os usuários da sub-rede 110(i). De fato, observando o tráfego ocorrendo entre os vários nós Pj(i) da sub-rede 110(i), não é possível distinguir as baixas realizadas para propósitos de configuração de cache a partir das baixas realizadas para a recuperação de arquivos de conteúdo FILE(k) explicitamente solicitados.
[0082] Mais ainda, a possibilidade de ofertar espaço de disco para propósitos de configuração de cache pelos nós Pj(i) de uma rede P2P introduz um problema de direito autoral que pode ser considerado como novidade no campo de sistema de P2P. Particularmente, o usuário de um nó Pj(i) que está ofertando seu espaço de disco para configurar cache de uma cópia de um arquivo de conteúdo FILE(k) teria o dever de verificar se tal arquivo de conteúdo FILE(k) é protegido por direitos autorais ou não.
[0083] Uma solução de acordo com uma modalidade da presente invenção fornece para superar os inconvenientes mencionados fazendo cada usuário de um nó Pj(i) que está de configuração de cache um arquivo de conteúdo FILE(k) agnóstico para tal arquivo de conteúdo FILE(k).
[0084] De modo a explicar como tais nós Pj(i) são feita agnósticos para os arquivos de conteúdo FILE(k) que eles estão de configuração de cache de acordo com uma modalidade da presente invenção, considerações preliminares são para serem feitas sobre como as operações de procura são efetuadas nas redes de P2P do tipo da rede P2P 100. Especificamente, como já mencionado na discussão anterior da presente descrição, tais operações de procura são efetuados em duas etapas a serem efetuadas cada um em seguida da outra, e particularmente: -uma busca de nome efetuada usando o nome do arquivo de conteúdo FILE(k) solicitado como uma chave, a qual busca emite a dispersão H(FILE(k)) de tal arquivo, e- uma busca de dispersão efetuada usada a dispersão H(FILE(k)) com uma chave, a qual busca emite a lista compreendendo os endereços de IP dos nós Pj(i) que efetivamente compartilham o arquivo de conteúdo FILE(k).
[0085] Enquanto a busca de nome não foi descrita ainda, a busca de dispersão foi descrita em detalhe nas Figuras 3 - 5.
[0086] Fazendo referência à rede P2P 110 descrita aqui, ambas a busca de nome e a busca de dispersão efetuada por um nó Pj(i) genérico de uma sub-rede 110(i) são realizadas explorando a tabela de dispersão distribuída DHT(i) correspondendo à sub-rede 110(i) mencionada. Por conseguinte, por questões de clareza, a tabela de dispersão distribuída DHT(i) será agora considerada com uma tabela de dois níveis. Particularmente, o primeiro nível da tabela de dispersão distribuída DHT(i) - referido como uma tabela de primeiro nível - é usado durante a busca de nome, enquanto o segundo nível da tabela de dispersão distribuída DHT(i) - referido como tabela de segundo nível - é usado durante a busca de dispersão. Tem sido apreciado que a tabela de dispersão distribuída DHT(i) que foi ilustrada nas Figuras 3 e 5 era na realidade uma tabela de segundo nível, sendo usado para de busca de dispersão.
[0087] De acordo com uma modalidade da presente invenção, os nós Pj(i) são feitos agnósticos para os arquivos de conteúdo FILE(k) que ele estão de configuração de cache por meio de um sistema de criptografia usada ambos durante a geração da tabela de dispersão distribuída DHT(i) e durante as buscas de nome e dispersão.
[0088] A Figura 6 representa um fluxograma 600 ilustrando como uma tabela de primeiro nível de uma tabela de dispersão distribuída DHT(i) é gerada de acordo com uma modalidade da presente invenção.
[0089] Uma vez que um nó Pj(i) armazenando um novo arquivo de conteúdo FILE(k) a ser compartilhado é conectado à sub-rede 110(i), a dispersão H(FILE(k)) de tal arquivo de conteúdo FILE(k) é determinado aplicando uma função de cálculo de código identificador para o mais recente (bloco 605).
[0090] Então, ao arquivo de conteúdo FILE(k) é aplicada criptografia com um algoritmo de criptografia de chave simétrica (e.g., AES, Serpent or Twofish) usando a dispersão H(FILE(k)) previamente calculado como chave criptográfica (bloco 610). A versão a qual foi aplicada criptografia de tal arquivo de conteúdo FILE(k) é referido como “arquivo de conteúdo com criptografia”, e é identificado com a referência CFILE(k).
[0091] O próximo passo provê para calcular a dispersão H(CFILE(k)) do arquivo de conteúdo com criptografia CFILE(k) usando a mesma função de cálculo de código identificador usada para gerar a dispersão H(FILE(k)) (bloco 615).
[0092] De acordo com uma modalidade da presente invenção, tais dados são usados para gerar a tabela de primeiro nível da tabela de dispersão distribuída DHT(i), um exemplo da qual é ilustrada na Figura 7 com referência 1DHT(i). Particularmente, o exemplo em questão corresponde ao exemplo já considerado na discussão anterior da presente descrição, onde a sub-rede 110(i) é formada por quatro nós P1(i), P2(i), P3(i) e P4(i), enquanto o número de arquivos de conteúdo FILE(k) compartilhado por tais nós é igual à 6, cada arquivo de conteúdo FILE(k) é univocamente identificado por uma correspondente sequência de caracteres de nome NAME_FILE(k). De modo a simplificar a descrição, será assumido que cada sequência de caractere de nome NAME_FILE(k) identificando um respectivo arquivo de conteúdo FILE(k) é formado por uma simples palavra; contudo, os conceitos da presente invenção podem ser facilmente generalizados para casos mais complexos (e realísticos), nos quais cada sequência de caracteres de nome NAME_FILE(k) pode ser formada por uma sequência de mais do que uma palavra.
[0093] A tabela de primeiro nível 1DHT(0( compreende um número de linhas 705(k) que é igual ao número total dos arquivos de conteúdo FILE(k) compartilhados pelos nós Pj(i) formando a sub-rede 110(i) (no exemplo em questão, seis). Cada linha 705(k) compreende quatro campos, cuja referências são 710(k), 720(k), 725(k) e 730(k), respectivamente.
[0094] O primeiro campo 710(k) de cada linha 705(k) é adaptado para armazenar a dispersão da sequência de caracteres de nome NAME_FILE(k), o qual dispersão é calculado aplicando a mesma função de cálculo de código identificador usada para gerar a dispersão H(FILE(k)); a dispersão da sequência de caracteres de nome NAME_FILE(k), é referido como H(NAME_FILE(k)). Conforme será descrito em maiores detalhes na discussão a seguir da presente descrição, a dispersão H(NAME_FILE(k)) é usado como uma chave de busca para efetuar busca de nome, O segundo componente 720(k) é adaptado para armazenar a dispersão H(NAME_FILE(k)) do arquivo de conteúdo FILE(k), enquanto o terceiro campo 725(k) é adaptado para armazenar a dispersão H(CFILE(k)) do arquivo de conteúdo com criptografia CFILE(k). O quarto campo 730(k) da linha 705(k) é em vez disso adaptado para armazenar a sequência de caracteres de nome NAME_FILE(k) do arquivo de conteúdo FILE(k).
[0095] Na mesma maneira que para a tabela de dispersão distribuída DHT(i) ilustrada na Figura 3, a tabela de primeiro nível 1DHT(i) é representada na Figura 7 como uma tabela centralizada por motivo de simplicidade. Contudo, tal tabela é distribuída entre os nós Pj(i) da sub-rede 110(i). Como no exemplo da Figura 3, o nó P1(i) é o nó responsável pelo arquivo de conteúdo FILE(1), o nó P2(i) é o nó responsável pelos arquivos de conteúdo FILE(2) e FILE(3), o nó P3(i) é o nó responsável pelo arquivo de conteúdo FILE(4), e o nó P4(i) é o nó responsável pelos arquivos de conteúdo FILE(5) e FILE(6).
[0096] A Figura 7 também ilustra um exemplo de uma correspondente tabela de segundo nível da tabela de dispersão distribuída DHT(i) - referida como 2DHT(i) - de acordo com uma modalidade da presente invenção. A tabela de segundo nível 2DHT(i) é igual à tabela de dispersão distribuída DHT(i) que já foi descrita fazendo referência à Figura 5, com a única diferença que o primeiro campo 310(k) de cada linha 305(k) dela é adaptado para armazenar a dispersão H(CFILE(k)) do arquivo de conteúdo com criptografia CFILE(k) no lugar da dispersão H(FILE(k)) do arquivo de conteúdo FILE(k).
[0097] De modo a descrever como a tabela de primeiro nível 1DHT(i) e a tabela de segundo nível 2DHT(i) da tabela de dispersão distribuída DHT(i) são exploradas para fazer os nós Pj(i) da sub-rede 110(i) agnósticos para os arquivos de conteúdo FILE(k) que eles estão de configuração de cache de acordo com uma modalidade da presente invenção, referência será agora feita para o fluxograma 800 na Figura 8.
[0098] O fluxograma 800 ilustra as principais fases efetuadas por um nó Pj(i) de uma sub-rede 110(i) e pela correspondente tabela de dispersão distribuída DHT(i) durante uma operação de procura (busca de nome e busca de dispersão) de um arquivo de conteúdo FILE(k) genérico identificado por uma sequência de caracteres de nome NAME_FILE(k) e durante o descarregamento dele de acordo com uma modalidade da presente invenção. De modo a melhor entender com nó Pj(i) interage com a tabela de dispersão distribuída DHT(i), o fluxograma 800 descreve as operações efetuadas pelo nó Pj(i) e as operações efetuadas pela tabela de dispersão distribuída DHT(i) e as operações efetuadas pela tabela de dispersão distribuída DHT(i) em duas “pistas” dedicadas, identificadas na figura com as referências 805 e 810, respectivamente.
[0099] A primeira etapa da operação de procura consiste na mesma busca de nome. Em particular, o nó Pj(i) indaga à tabela de dispersão distribuída DHT(i), usando a dispersão H(NAME_FILE(k)) da sequência de caracteres de nome NAME_FILE(k) como uma chave de busca (pista 805, bloco 815).
[00100] Uma vez que a tabela de dispersão distribuída DHT(i) recebeu a dispersão H(NAME_FILE(k)), uma verificação é feita na tabela de primeiro nível 1DHT(i), direcionada para avaliar se existe uma linha 705(k) dela tendo o campo 710(k) que armazena tal dispersão H(NAME_FILE(k)) (pista 810, bloco 820).
[00101] Então, a tabela de dispersão distribuída DHT(i) fornece uma primeira lista de resposta 827 incluindo a dispersão H(FILE(k)), a dispersão H(CFILE(k)) e a sequência de caracteres de nome NAME_FILE(k) obtidas a partir das linhas 705(k) da tabela de primeiro nível 1DHT(i) tendo o campo 710(k) que armazena tal dispersão H(NAME_FILE(k)), (pista 810, bloco 825). Tem de ser apreciado que no exemplo simplificado em questão, onde cada arquivo de conteúdo FILE(k) é identificado por uma respectiva sequência de caracteres de nome NAME_FILE(k) formada por uma simples palavra. Nos casos mais realísticos, onde os arquivos de conteúdo FILE(k) são identificados pelas sequências de caracteres de nome NAME_FILE(k) formadas por mais de uma palavra, a chave de busca usada pelo nó Pj(i) pode corresponder a somente uma porção da sequências de caracteres de nome NAME_FILE(k) completa; neste caso, a primeira lista de resposta 827 vai incluir a dispersão H(FILE(k)), a dispersão H(CFILE(k)) e as (completas) mesmas sequências de caracteres de nome NAME_FILE(k) obtidas a partir das linhas 705(k) da tabela de primeiro nível 1DHT(i) tendo uma palavra da (completa) sequência de caracteres de nome NAME_FILE(k) que corresponde a tal chave de busca.
[00102] Então, o nó Pj(i) seleciona uma sequência de caracteres de nome NAME_FILE(k) específica entre aquelas incluídas na primeira lista de resposta 827 (pista 805, bloco 830), e temporariamente memoriza a dispersão H(FILE(k)), a dispersão H(CFILE(k)) correspondendo a tal sequência de caracteres de nome NAME_FILE(k) (i.e., aqueles obtidos a partir da mesma linha 705(k) da tabela de primeiro nível 1DHT(i) tendo o campo 730(i) armazenando tal sequência de caractere de nome selecionada).
[00103] A próxima etapa da operação de procura consiste na busca de dispersão, que é substancialmente igual àquela já descrita na Figura 4, com a única diferença que a chave de busca usada pelo nó Pj(i) para indagar a tabela de dispersão distribuída DHT(i) é a dispersão H(CFILE(k)) do arquivo de conteúdo com criptografia CFILE(k) em vez da dispersão H(FILE(k)) do arquivo de conteúdo FILE(k).
[00104] Em resumo, a tabela de dispersão distribuída DHT(i) é primeiro indagada pelo nó Pj(i) com uma chave de busca para a dispersão H(CFILE(k)) correspondendo à sequência de caracteres de nome NAME_FILE(k) (pista 805, bloco 835). Conforme já descrito na discussão anterior da presente descrição (e em particular durante a descrição do fluxograma 400 ilustrado na Figura 4), tal chave de busca é fornecida para a tabela de dispersão distribuída DHT(i) junto com os dados de localização LD do nó Pj(i) que fez a solicitação.
[00105] Uma vez que a tabela de dispersão distribuída DHT(i) recebeu a dispersão H(CFILE(k)) e os dados de localização LD, uma verificação é feita na tabela de segundo nível 2DHT(i), para recuperar a linha 305(k) dela tendo o campo 310(k) que armazena tal dispersão H(CFILE(k)) (pista 810, bloco 840).
[00106] Então, a tabela de dispersão distribuída DHT(i) emite uma correspondente lista de resposta 845 compreendendo os endereços de IP e portas dos nós Pj(i) pertencendo à sub-rede 110(i) que efetivamente armazena cópias do arquivo de conteúdo com criptografia CFILE(k) correspondendo ao arquivo de conteúdo FILE(k) solicitado (pista 810, bloco 847). Em particular, tal segunda lista de resposta 845 inclui os nós Pj(i) listados no campo circuito de seleção 320(k) da tabela de segundo nível 2DHT(i) ordenada de acordo com os critérios de proximidade anteriormente descritos com referência à Figura 4.
[00107] Neste ponto, o nó Pj(i) que solicitou o descarregamento do arquivo de conteúdo FILE(k) tenta estabelecer uma conexão com os nós Pj(i) listados na segunda lista de resposta 845 seguindo a ordem específica fornecida em tal lista (pista 805, bloco 850).
[00108] Tem sido apreciado que, diferente da solução descrita com referência à Figura 4, já que os vários arquivos de conteúdo FILE(k) compartilhados pelos nós Pj(i) da sub-rede 110(i) têm sido registrados na tabela de dispersão distribuída DHT(i) em uma maneira aplicando criptografia, o efetivo arquivo que vai ser baixado pelo nó Pj(i) solicitante é o arquivo de conteúdo com criptografia CFILE(k), e não o (original) arquivo de conteúdo FILE(k).
[00109] Uma vez que o nó Pj(i) solicitante concluiu o descarregamento do arquivo de conteúdo com criptografia CFILE(k) (pista 805, bloco 855), o nó Pj(i) é capaz de decriptografar do arquivo usando a dispersão H(FILE(k)) do (original) arquivo de conteúdo FILE(k) que foi anteriormente memorizado (no bloco 830 do fluxograma 800) como uma chave de criptografia (pista 805, bloco 860).
[00110] Com a solução proposta, todos os arquivos de conteúdo FILE(k) são compartilhados pelos nós Pj(i) das sub-rede 110(i) em uma maneira com criptografia somente; de fato, as baixas são direcionadas aos arquivos de conteúdo com criptografia CFILE(k) somente, e não para os (original) arquivos de conteúdo FILE(k). As chaves de decriptografar para decriptografar de tais arquivos de conteúdo com criptografia CFILE(k) estão contudo disponíveis na tabela de dispersão distribuída DHT(i), já que elas são a dispersão H(FILE(k)) dos (original) arquivos de conteúdo FILE(k) armazenados no campo 720(k) da tabela de primeiro nível 1DHT(i). De modo a efetuar um descarregamento de um arquivo de conteúdo FILE(k) desejado, um nó Pj(i) tem de conhecer ambos a dispersão H(CFILE(k)) - para recuperar os nós Pj(i) armazenando cópias do arquivo de conteúdo com criptografia CFILE(k) - e a dispersão H(FILE(k)) - para decriptografar do arquivo de conteúdo com criptografia CFILE(k) baixado. A única maneira para um nó Pj(i) conhecer ambos a dispersão H(CFILE(k)) e a dispersão H(FILE(k)) é sendo um nó Pj(i) que fez uma busca de nome usando a sequência de caracteres de nome NAME_FILE(k). Se um nó Pj(i) não está em poder de ambos tais dispersão H(CFILE(k)), H(FILE(k)),ele não é capaz de recuperar uma versão original do arquivo de conteúdo FILE(k). Esta condição pode ser vantajosamente explorada tornando agnósticos os nós Pj(i) para os arquivos de conteúdo FILE(k) que eles estão de configuração de cache. De fato de acordo com esquerda solução, um nó Pj(i) que aceitou ofertar seu espaço de disco para configurar cache de uma cópia de um arquivo de conteúdo FILE(k) muito solicitado efetivamente armazena um versão com criptografia dele (i.e., o arquivo de conteúdo com criptografia CFILE(k) sem ter a chave de decriptografar requerida para recuperar o arquivo de conteúdo FILE(k) original (i.e., o H(FILE(k))). Nesta maneira, o usuário de um nó Pj(i) não pode recuperar que tipo de arquivo de conteúdo FILE(k) está de configuração de cache, superando os inconvenientes de direitos autorais mencionados acima.
[00111] De modo a ainda melhorar a eficiência e a confiabilidade da Rede de P2P 100, seria desejável implementar um recurso de engenharia de tráfego, i.e., um mecanismo que permite os ISPs re-direcionar uma parte do tráfego apri de elos de comunicação altamente carregados e congestionados para menos usados e processo conseguinte, elos de comunicação mais disponíveis.
[00112] Para este propósito, seria suficiente que os OSPs fossem instruídos a enviar para cada nó Pj(i) dados considerando sua topologia de rede e o estado de congestionamento de cada elo de comunicação. Nesta maneira, seria possível fortemente melhorar o balanceamento de carga entre os elos de comunicação, explorando a informação adicional mencionada para melhor ordenar os resultados fornecidos pela tabela de dispersão distribuída DHT(i) durante as operações de procura. Contudo, como previamente mencionado na introdução da presente descrição, informação de tal tipo é usualmente considerado como confidencial.
[00113] Para este propósito, de acordo com uma modalidade adicional da presente invenção, a rede P2P 100 é fornecida com um recurso de “configuração de cache hierárquico”.
[00114] Em maiores detalhes, de acordo com uma modalidade da presente invenção cada sub-rede 110(i) da rede P2P é fornecida com dois diferentes tipos de nós Pj(i) adicionais que são diretamente controlados pelos ISOs, referidos como “nós mestres de configuração de cache” e “nós escravos de configuração de cache”.
[00115] Os nós mestres de configuração de cache têm m um alto conhecimento da topologia e do estado da rede, e são usados para melhorar o encaminhamento de tráfego entre os outros nós. Os nós mestres de configuração de cache não são usados para armazenar arquivos de conteúdo a serem compartilhado entre os outros nós, assim sendo eles geram uma quantidade relativamente pequena de tráfego adicional. De modo a serem capazes de constantemente atualizarem a informação considerando a topologia e o estado da rede, os nós mestres de configuração de cache pode por exemplo serem colocados em localizações de rede específicas (e.g., em POPs principais ou no Centro de Operações da Rede).
[00116] Os nós escravos de configuração de cache carecem de qualquer informação considerando a topologia e o estado de rede, mas em vez disso são usados para armazenar arquivos de conteúdo para propósitos de configuração de cache. Já eu os nós escravos de configuração de cache geram uma quantidade relativamente alta de tráfego, ele podem estar localizados perto dos nós padrões da rede, por exemplo, dentro de POPs principais.
[00117] Os nós mestres de configuração de cache efetuam operações de procura explorando a tabela de dispersão distribuída DHT(i) na mesma maneira que previamente descrita, contudo, uma vez que um nós mestres de configuração de cache obteve a partir da tabela de dispersão distribuída DHT(i) a lista incluindo a sequência ordenada dos nós que efetivamente armazenam cópias do arquivo de conteúdo desejado, ela não inicia o descarregamento por si só; mas mais propriamente instrução um ou mais dos nós escravos de configuração de cache para efetuar o descarregamento. De acordo com uma moda da presente invenção, os arquivos de conteúdo armazenados nos nós escravos de configuração de cache são registrados na correspondente tabela de dispersão distribuída DHT(i) pelos nós mestres de configuração de cache, e não pelos nós escravos de configuração de cache.
[00118] De modo a serem distinguidos dos nós padrões da rede, um nó mestre de configuração de cache tem de informar a correspondente tabela de dispersão distribuída DHT(i), por exemplo configurando o parâmetro G para um valor dedicado que não corresponde a qualquer área geográfica conhecida.
[00119] De acordo com uma modalidade da presente invenção, em resposta a uma operação de procura direcionada à busca e identificação de um arquivo de conteúdo específico, a lista de resposta compreendendo a sequência ordenada dos nós armazenando tal arquivo de conteúdo (tal como a lista de resposta 415 ou a segunda lista de resposta 845) que é fornecido pela tabela de dispersão distribuída DHT(i) pode ser modificada a fim de incluir pelo menos um nó mestre de configuração de cache se o arquivo de conteúdo solicitado é configurando cache. Em particular, o nó mestre de configuração de cache pode ser inserido entre os resultados listados na lista de resposta em uma posição entre as posições dos nós pertencendo ao mesmo POP dos nós que efetuou a solicitação e a posição daqueles pertencendo a sua mesma área geográfica. Quando o nó solicitante contata o nó mestre de configuração de cache incluído na lista de resposta, ele é re-direcionado para um nó escravo de configuração de cache. De acordo com uma modalidade da presente invenção, a tabela de dispersão distribuída DHT(i) pode deslocar a posição de um nó mestre de configuração de cache dentro dos nós listados na lista de resposta de poucos posições em uma maneira imprevisível, em tal uma maneira para evitar que o nó solicitante seja capaz de detectar informação sobre os grupos de endereços alocados ao seu POP.
[00120] Naturalmente, de modo a satisfazer requisitos locais e específicos, uma pessoa com habilidade na arte pode aplicar à solução descrita acima muitas modificações e alterações lógicas e / ou físicas. Mais especificamente, embora a presente invenção tenha sido descrita com um determinado grau de particularidade com referência à modalidade(s) preferida dela, deve ser entendido que várias omissões, substituições e mudanças na forma e detalhes assim como outras modalidades são possíveis; mais ainda, é expressamente pretendido que elementos específicos e / ou etapas de método descritos em conjunto com qualquer modalidade divulgada da invenção podem ser incorporados em qualquer outra modalidade com uma questão de escolha de projeto geral.
[00121] Por exemplo, o método de acordo com as várias modalidades da solução proposta pode ser implementado através de um software adequado (referido como software cliente) a ser instalado nos sistemas de processamento de dados formando os nós. Tal software cliente pode ser um módulo autônomo ou de conexão.
[00122] Considerações similares se aplicam se o software cliente que pode ser usada para implementar cada modalidade da invenção é estruturada em uma maneira diferente, ou se módulos ou funções adicionais são fornecidas. Em qualquer caso, tal software cliente pode tomar qualquer forma adequada para ser usado por qualquer sistema de processamento de dados ou um conjunto com lê (por exemplo, dentro de uma máquina virtual); particularmente, o software cliente pode ser na forma de software residente ou externo, firmware, ou micro-código (ambos em código objeto ou em código fonte - por exemplo, a ser compilado ou interpretado). Mais ainda, é possível fornecer o software cliente em qualquer meio usável de computador, o meio pode ser qualquer elemento adequado para conter, armazenar, comunicar, propagar, ou transferir o software. Por exemplo, o meio pode ser do tipo eletrônico, magnético, óptico, eletromagnético, infravermelho, ou semicondutor; exemplos de tais meios são discos fixos (onde o software pode ser pré-carregado), discos removíveis, fitas, cartões, cabos, fibras, conexão sem fio, redes, ondas de transmissão por difusão, e o similar. Em qualquer caso, a solução de acordo com uma modalidade da presente invenção presta- se para ser implementada mesmo com um estrutura de hardware (por exemplo, integrado em um chip de material semicondutor), ou com uma combinação de software e hardware.

Claims (8)

1. Método para permitir compartilhamento de arquivos de conteúdo entre nós de uma rede não hierárquica (P2P) (100), a rede P2P (100) compreendendo uma pluralidade de sub-redes (100(i)) cada uma incluindo uma respectiva pluralidade de nós (Pj(i)) capazes de armazenar arquivos de conteúdo (File(k)), em que cada sub-rede (110(i)) é associada com uma correspondente tabela de dispersão (DHT(i)) para o alinhamento dos arquivos de conteúdo (File(k)) armazenados nos nós (Pj(i)) da sub-rede (110(i)), e todos os nós (Pj(i)) incluídos em uma mesma sub-rede (110(i)) pertencendo a um mesmo sistema autônomo correspondente (AS(i)), a tabela de dispersão (DHT(i)) sendo distribuída entre pelo menos alguns dos nós da sub-rede (110(i)), caracterizado pelo fato de compreender: - para cada arquivo de conteúdo (File(k)) armazenado em pelo menos um nó (Pj(i)) de uma sub-rede (110(i)), armazenando na tabela de dispersão (DHT(i)) associada com a sub-rede (110(i)) um índice de criticalidade (ICk) fornecendo uma indicação do grau de compartilhamento do arquivo de conteúdo (File(k)) entre os nós (Pj(i)) da sub-rede (110(i)), e- ter um nó (Pj(i) configurando cache de pelo menos um arquivo de conteúdo (File(k)) a ser compartilhado por outros nós (Pj(i)) da sub-rede (110(i)), em que:- o pelo menos um arquivo de conteúdo (File(k)) não é solicitado pelo nó (Pj(i)) para a realização do mesmo, e- a configuração de cache de pelo menos um arquivo de conteúdo (File(k)) é com base no índice de criticalidade (ICk) do pelo menos um arquivo de conteúdo (File(k)), e- cada nó (Pj(i)) de uma sub-rede (110(i)) localmente armazena uma lista de criticalidade (CLJ(i)) incluindo os índices de criticalidade (ICk) de um sub-conjunto de arquivos de conteúdo (File(k)), o pelo menos um arquivo de conteúdo (File(k)) configurando cache pelo nó (Pj(i)) sendo selecionado dentre o sub-conjunto de arquivos de conteúdo (File(k)) cujos índices de criticalidade (ICk) estão incluídos na lista de criticalidade (CLJ(i)) armazenada no nó (Pj(i)), e em que o método compreende ainda:- atualizar a lista de criticalidade (CLJ(i)) do nó (Pj(i)) de acordo com a lista de criticalidade (CLJ(i)) de um nó adicional (Pj(i)) quando o nó (Pj(i)) e o nó adicional (Pj(i)) entram em comunicação um com o outro.
2. Método de acordo com a reivindicação 1, caracterizado pelo fato de compreender calcular os índices de criticalidade (ICk) de um arquivos de conteúdo (File(k)) com base em uma proporção entre:- um número de nós (Pj(i)) que têm feito uma solicitação do arquivo de conteúdo (File(k)) para a realização do mesmo, e- um número de nós (Pj(i)) efetivamente armazenando pelo menos pedaços do arquivo de conteúdo (File(k)) mencionado.
3. Método de acordo com a reivindicação 1 ou 2, caracterizado pelo fato de que o pelo menos um arquivo de conteúdo (File(k)) configurando cache pelo nó (Pj(i)) sendo selecionado entre o sub-conjunto de arquivos de conteúdo (File(k)) com base em seu índice de criticalidade (ICk).
4. Método de acordo com qualquer uma das reivindicações 1 a 3, caracterizado pelo fato de ainda incluir:- para cada arquivo de conteúdo (File(k)) armazenado em pelo menos um nó (Pj(i)) de uma sub-rede (110(i)), armazenando uma lista de nós correspondente (320(k)) listando os nós (Pj(i)) que armazenam o arquivo de conteúdo (File(k)) na tabela de dispersão (DHT(i));- definindo uma lista preferencial correspondente dos nós (Pj(i)) armazenando o arquivo de conteúdo (File(k)) para o descarregamento do arquivo de conteúdo (File(k)) por um nó (Pj(i)) solicitante, a definição sendo baseada na lista de nó mencionada, e- em resposta a uma solicitação de download de um arquivo de conteúdo (File(k)) por um nó (Pj(i)), o nó (Pj(i)) recebendo a lista preferencial correspondendo ao arquivo de conteúdo (File(k)).
5. Método de acordo com a reivindicação 4, caracterizado pelo fato de que para descarregamento um arquivo de conteúdo (File(k)), o nó (Pj(i)) solicitando o arquivo de conteúdo efetua uma primeira busca e uma segunda busca, a primeira busca compreendendo:- tendo o nó que solicita o arquivo de conteúdo, fornecer para pelo menos um outro nó da respectiva sub-rede uma primeira chave de busca (H(NAME_FILE(k))) com base em um nome de arquivo do arquivo de conteúdo (FILE(k));- tendo pelo menos um nó da sub-rede fornecendo, em resposta à primeira chave de busca (H(NAME_FILE(k))), uma primeira lista de resposta (827) incluindo para cada nome de arquivo do arquivo de conteúdo (FILE(k)) armazenado em pelo menos um nó (Pj(i)) da sub-rede (110(i)) que corresponde à primeira chave de busca (H(NAME_FILE(k))) uma correspondente segunda chave de busca (HCFILE(k)) com base no arquivo de conteúdo (FILE(k)) mencionado,a segunda busca compreendendo:- tendo o pelo menos um nó da sub-rede fornecendo, em resposta à segunda chave de busca (HCFILE(k)), a lista preferencial correspondendo ao arquivo de conteúdo (FILE(k)) identificado pela segunda chave de busca (HCFILE(k)), em que:- para cada arquivo de conteúdo (FILE(k)) armazenado em pelo menos um nó (Pj(i)) da sub-rede (110(i)), a tabela de dispersão (DHT(i)) compreende a primeira chave de busca (H(NAME_FILE(k))) e a segunda chave de busca (HCFILE(k)) correspondendo ao arquivo de conteúdo (FILE(k)).
6. Método de acordo com a reivindicação 5, caracterizado pelo fato de que: - cada segunda chave de busca (HCFILE(k)) listada a primeira lista de resposta (827) está associada com uma correspondente chave de criptografia (H(FILE(k)), e- os arquivos de conteúdo (FILE(k)) armazenados nos nós (Pj(i)) da sub-rede (110(i)) sofrem aplicação de criptografia (CFILE(k)) usando a chave de criptografia (H(FILE(k)).
7. Método de acordo com a reivindicação 6, caracterizado pelo fato de que para cada arquivo de conteúdo (FILE(k)) armazenado em pelo menos um nós (Pj(i)) da sub-rede (110(i)):- a primeira chave de busca (H(NAME_FILE(k))) é uma dispersão do nome de arquivo do arquivo de conteúdo (FILE(k)),- a chave de criptografia é uma dispersão do arquivo de conteúdo (FILE(k)), e- a segunda chave de busca (HCFILE(k)) é uma dispersão do arquivo de conteúdo com criptografia (CFILE(k)).
8. Rede não hierárquica (P2P) (100) caracterizada pelo fato de compreender uma pluralidade de sub-redes (100(i)) cada uma incluindo uma respectiva pluralidade de nós (Pj(i)) capazes de armazenar arquivos de conteúdo (File(k)), em que cada sub-rede (110(i)) é associada com uma correspondente tabela de dispersão (DHT(i)) para o alinhamento dos arquivos de conteúdo (File(k)) armazenados nos nós (Pj(i)) da sub-rede (110(i)), e todos os nós (Pj(i)) incluídos em uma mesma sub-rede (110(i)) pertencendo a um mesmo sistema autônomo correspondente (AS(i)), a tabela de dispersão (DHT(i)) sendo distribuída entre pelo menos alguns dos nós da sub-rede (110(i)), em que, para cada arquivo de conteúdo (File(k)) armazenado em pelo menos um nó (Pj(i)) de uma sub-rede (110(i)), a tabela de dispersão (DHT(i)) correspondente inclui um índice de criticalidade (ICk) fornecendo uma indicação do grau de compartilhamento do arquivo de conteúdo (File(k)) entre os nós (Pj(i)) da sub-rede (110(i)), em que cada nó (Pj(i) é configurado para realizar cache no nó (Pj(i)) de pelo menos um arquivo de conteúdo (File(k)) a ser compartilhado por outros nós (Pj(i)) da sub-rede (110(i)), em que:- o pelo menos um arquivo de conteúdo (File(k)) não é solicitado pelo nó (Pj(i)) para a realização do mesmo, e- a configuração de cache de pelo menos um arquivo de conteúdo (File(k)) é com base no índice de criticalidade (ICk) do pelo menos um arquivo de conteúdo (File(k)), e- cada nó (Pj(i)) de uma sub-rede (110(i)) localmente armazena uma lista de criticalidade (CLJ(i)) incluindo os índices de criticalidade (ICk) de um sub-conjunto de arquivos de conteúdo (File(k)), o pelo menos um arquivo de conteúdo (File(k)) configurando cache pelo nó (Pj(i)) sendo selecionado dentre o sub-conjunto de arquivos de conteúdo (File(k)) cujos índices de criticalidade (ICk) estão incluídos na lista de criticalidade (CLJ(i)) armazenada no nó (Pj(i)), e em que cada nó (Pj(i)) é configurado para:- atualizar a lista de criticalidade (CLJ(i)) do nó (Pj(i)) de acordo com a lista de criticalidade (CLJ(i)) de um nó adicional (Pj(i)) quandoo nó (Pj(i)) e o nó adicional (Pj(i)) entram em comunicação um com o outro.
BR112012010503-5A 2009-11-03 2009-11-03 Método para permitir compartilhamento de arquivos de conteúdo entre nós de uma rede não hierárquica, e, rede não hierárquica BR112012010503B1 (pt)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2009/064547 WO2011054376A1 (en) 2009-11-03 2009-11-03 Improved caching of digital contents in p2p networks

Publications (2)

Publication Number Publication Date
BR112012010503A2 BR112012010503A2 (pt) 2016-03-15
BR112012010503B1 true BR112012010503B1 (pt) 2021-11-16

Family

ID=41512483

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112012010503-5A BR112012010503B1 (pt) 2009-11-03 2009-11-03 Método para permitir compartilhamento de arquivos de conteúdo entre nós de uma rede não hierárquica, e, rede não hierárquica

Country Status (4)

Country Link
US (1) US8838690B2 (pt)
EP (1) EP2497251B1 (pt)
BR (1) BR112012010503B1 (pt)
WO (1) WO2011054376A1 (pt)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110153737A1 (en) * 2009-12-17 2011-06-23 Chu Thomas P Method and apparatus for decomposing a peer-to-peer network and using a decomposed peer-to-peer network
US10084856B2 (en) * 2009-12-17 2018-09-25 Wsou Investments, Llc Method and apparatus for locating services within peer-to-peer networks
US9432452B2 (en) 2012-09-10 2016-08-30 Joosy, Inc. Systems and methods for dynamic networked peer-to-peer content distribution
US9106721B2 (en) * 2012-10-02 2015-08-11 Nextbit Systems Application state synchronization across multiple devices
US9413846B2 (en) 2012-12-14 2016-08-09 Microsoft Technology Licensing, Llc Content-acquisition source selection and management
US9374420B2 (en) * 2012-12-14 2016-06-21 Microsoft Technology Licensing, Llc Content source selection in a P2P network
US9716749B2 (en) 2012-12-14 2017-07-25 Microsoft Technology Licensing, Llc Centralized management of a P2P network
US10391387B2 (en) 2012-12-14 2019-08-27 Microsoft Technology Licensing, Llc Presenting digital content item with tiered functionality
US9503835B2 (en) * 2013-06-13 2016-11-22 Microsoft Technology Licensing, Llc Service provisioning through a smart personal gateway device
WO2015023537A2 (en) * 2013-08-16 2015-02-19 Interdigital Patent Holdings, Inc. Methods and apparatus for hash routing in software defined networking
JP2015072629A (ja) * 2013-10-03 2015-04-16 富士通株式会社 データ処理プログラム及びデータ処理方法
US10841393B2 (en) * 2018-11-12 2020-11-17 Citrix Systems, Inc. Systems and methods for secure peer-to-peer caching
CN111182036B (zh) * 2019-12-12 2023-07-25 腾讯云计算(北京)有限责任公司 数据分流方法及网络构建方法、装置、设备、存储介质
US11076016B1 (en) * 2020-11-23 2021-07-27 Verizon Patent And Licensing Inc. Systems and methods for caching content in a wireless communication network
CN112836008B (zh) * 2021-02-07 2023-03-21 中国科学院新疆理化技术研究所 基于去中心化存储数据的索引建立方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7188145B2 (en) 2001-01-12 2007-03-06 Epicrealm Licensing Llc Method and system for dynamic distributed data caching
US7054867B2 (en) * 2001-09-18 2006-05-30 Skyris Networks, Inc. Systems, methods and programming for routing and indexing globally addressable objects and associated business models
US20030204602A1 (en) 2002-04-26 2003-10-30 Hudson Michael D. Mediated multi-source peer content delivery network architecture
US7627644B2 (en) 2003-11-28 2009-12-01 Canon Kabushiki Kaisha Recipient-centred proactive caching in a peer-to-peer system

Also Published As

Publication number Publication date
US20120221646A1 (en) 2012-08-30
EP2497251B1 (en) 2018-03-07
WO2011054376A1 (en) 2011-05-12
US8838690B2 (en) 2014-09-16
BR112012010503A2 (pt) 2016-03-15
EP2497251A1 (en) 2012-09-12

Similar Documents

Publication Publication Date Title
BR112012010503B1 (pt) Método para permitir compartilhamento de arquivos de conteúdo entre nós de uma rede não hierárquica, e, rede não hierárquica
US8805932B2 (en) Sharing of digital contents in P2P networks exploiting localization data
JP5536362B2 (ja) コンテンツセントリックネットワークにおける通信を円滑化するための方法
Trautwein et al. Design and evaluation of IPFS: a storage layer for the decentralized web
JP5749144B2 (ja) コンテンツセントリック・ネットワークにおけるカストディアンベースのルーティング
Alimi et al. Application-layer traffic optimization (ALTO) protocol
CN105279216B (zh) 使用自认证名称分发无名称对象的系统
KR101330392B1 (ko) 분산 저장 네트워크에서 데이터 인가를 위한 네트워크 노드 및 방법
US7987290B2 (en) Security modes for a routing table distributed across multiple mesh nodes
JP2015165657A (ja) 情報指向ネットワーキングのためのコンテンツ名解決
CN109983752A (zh) 带有编码dns级信息的网络地址
BR112014015694B1 (pt) Método de pseudonimização dinâmico para uma rede de perfilagem de dados, e, rede de perfilagem de dados
US20170201375A1 (en) Secure content sharing using content centric approach
US20080189351A1 (en) Network system which performs peer-to-peer communication
US8244867B2 (en) System and method for the location of caches
JP2016018561A (ja) コンテンツ指向型ネットワークにおける並列のセキュアなコンテンツのブートストラッピングのためのシステムおよび方法
Ford UIA: A global connectivity architecture for mobile personal devices
Ashraf et al. Comparative analysis of unstructured P2P file sharing networks
WO2020010270A1 (en) Dynamic routing using a distributed hash table
US8051167B2 (en) Optimized mirror for content identification
Saroliya et al. A pragmatic analysis of peer to peer networks and protocols for security and confidentiality
Kurokawa et al. Study on the distributed data sharing mechanism with a mutual authentication and meta database technology
Kutzner et al. The IGOR file system for efficient data distribution in the GRID
Kiesel et al. RFC 7285: Application-Layer Traffic Optimization (ALTO) Protocol
Cowan S4h: A Peer-to-Peer Search Engine with Explicit Trust

Legal Events

Date Code Title Description
B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B15K Others concerning applications: alteration of classification

Free format text: A CLASSIFICACAO ANTERIOR ERA: H04L 29/08

Ipc: G06F 16/182 (2019.01), H04L 29/08 (1990.01), G06F

B15K Others concerning applications: alteration of classification

Free format text: AS CLASSIFICACOES ANTERIORES ERAM: G06F 16/182 , H04L 29/08 , G06F 16/957 , H04L 29/06

Ipc: H04L 29/08 (2006.01), G06F 16/182 (2019.01), G06F

B06A Patent application procedure suspended [chapter 6.1 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B09Y Publication of grant cancelled [chapter 9.1.2 patent gazette]

Free format text: ANULADA A PUBLICACAO CODIGO 9.1 NA RPI NO 2608 DE 29/12/2020 POR TER SIDO INDEVIDA.

B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 03/11/2009, OBSERVADAS AS CONDICOES LEGAIS. PATENTE CONCEDIDA CONFORME ADI 5.529/DF, QUE DETERMINA A ALTERACAO DO PRAZO DE CONCESSAO.

B21F Lapse acc. art. 78, item iv - on non-payment of the annual fees in time

Free format text: REFERENTE A 13A ANUIDADE.

B24J Lapse because of non-payment of annual fees (definitively: art 78 iv lpi, resolution 113/2013 art. 12)

Free format text: EM VIRTUDE DA EXTINCAO PUBLICADA NA RPI 2695 DE 30-08-2022 E CONSIDERANDO AUSENCIA DE MANIFESTACAO DENTRO DOS PRAZOS LEGAIS, INFORMO QUE CABE SER MANTIDA A EXTINCAO DA PATENTE E SEUS CERTIFICADOS, CONFORME O DISPOSTO NO ARTIGO 12, DA RESOLUCAO 113/2013.