MXPA04006451A - Sistema de transporte para mensajeria instantanea. - Google Patents

Sistema de transporte para mensajeria instantanea.

Info

Publication number
MXPA04006451A
MXPA04006451A MXPA04006451A MXPA04006451A MXPA04006451A MX PA04006451 A MXPA04006451 A MX PA04006451A MX PA04006451 A MXPA04006451 A MX PA04006451A MX PA04006451 A MXPA04006451 A MX PA04006451A MX PA04006451 A MXPA04006451 A MX PA04006451A
Authority
MX
Mexico
Prior art keywords
computer
session
bridge
data
transport
Prior art date
Application number
MXPA04006451A
Other languages
English (en)
Inventor
Vonkoch Walter
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of MXPA04006451A publication Critical patent/MXPA04006451A/es

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • H04L61/2575NAT traversal using address mapping retrieval, e.g. simple traversal of user datagram protocol through session traversal utilities for NAT [STUN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/251Translation of Internet protocol [IP] addresses between different IP versions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/10Architectures or entities
    • H04L65/1063Application servers providing network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1069Session establishment or de-establishment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1073Registration or de-registration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • H04L65/1104Session initiation protocol [SIP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • H04L65/401Support for services or applications wherein the services involve a main real-time session and one or more additional parallel real-time or time sensitive sessions, e.g. white board sharing or spawning of a subconference
    • H04L65/4015Support for services or applications wherein the services involve a main real-time session and one or more additional parallel real-time or time sensitive sessions, e.g. white board sharing or spawning of a subconference where at least one of the additional parallel sessions is real time or time sensitive, e.g. white board sharing, collaboration or spawning of a subconference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/164Adaptation or special uses of UDP protocol
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/029Firewall traversal, e.g. tunnelling or, creating pinholes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/14Multichannel or multilink protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Telephonic Communication Services (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

Se describe un metodo ejemplar que involucra la creacion de una sesion maestra sobre una primera conexion a traves de un servidor; y crear un canal virtual sobre la conexion, el canal virtual puede funcionar para comunicar una sesion con caracteristicas especiales; el metodo puede involucrar el establecimiento de una conexion directa que evita el servidor y conmuta la comunicacion de la sesion con caracteristicas especiales a la conexion directa; un sistema para la comunicacion de red incluye una pluralidad de puentes de transporte, cada puente de transporte corresponde a una configuracion de dispositivo activo de red, y un modulo de conmutacion que puede funcionar para elegir uno de los puentes de transporte para formar una conexion entre dos dispositivos de computo con base en la configuracion del dispositivo activo de la red.

Description

SISTEMA DE TRANSPORTE PARA MENSAJERÍA INSTANTÁNEA REFERENCIA CRUZADA CON SOLICITUDES RELACIONADAS La presente solicitud está relacionada con la patente copendiente de EE.UU. con No. de serie , No. de expediente MS1-1527, titulada "Almacenamiento de objetos de mensajería instantánea" de David ichael Miller, John Holmes y Walter vonKoch, la cual se presenta de manera adjunta con la presente, asignada al apoderado de la presente invención e incorporada a la presente por referencia por todas sus enseñanzas y descripciones. Campo de la Invención El objeto descrito se refiere a las comunicaciones por computadora. En particular, el objeto se refiere a un sistema de transporte para mensajería instantánea. Antecedentes de la Invención La mensajería instantánea se está convirtiendo en una herramienta de comunicación muy común para los usuarios de dispositivos de cómputo. Una aplicación de mensajería instantánea (IM) (por ejemplo el sistema mensajero de WINDOWS® de Microsoft Corporation de Redmond, Washington, mensajero de Yahoo!, mensajero instantáneo de AOL (AIM, y similares) permite que los usuarios establezcan una conversación en tiempo real con uno o más contactos, los cuales se identifican en la lista de contactos privada del usuario. Típicamente, las listas privadas se almacenan en un servidor y se establece una conversación a través de un panel de distribución, o un servidor de relé, el cual dirige los mensajes entrantes a los destinatarios apropiados. El enrutamiento de mensajes en tiempo real a través del panel de distribución puede ser más lento y más costoso (en términos de recursos de servidor) que la mensajería instantánea en una disposición de computadora a computadora, en donde los mensajes no pasan a través de un panel de distribución, pasan directamente desde y hacia los participantes en la conversación. De esta manera, después de establecer una conversación usando un servidor de panel de distribución, un sistema de mensajería instantánea típico puede intentar convertir la conversación en una configuración de computadora a computadora. La conversión de computadora a computadora puede realizarse de diversas manera, típicamente involucra la Identificador de una computadora mediante una dirección de protocolo de Internet (IP) y/o un número de puerto, por el que se puede enviar directamente los mensajes a una computadora. Sin embargo, la creación de una conversación computadora a computadora puede ser difícil, o imposible, en situaciones que involucran dispositivos activos de red, como barreras de protección o traductores de direcciones de red (NAT). Tales dispositivos se usan para dar seguridad al sistema, pero típicamente están diseñados para evitar el acceso directo a las computadoras que se encuentran detrás de dichos dispositivos. Por ejemplo, un NAT tiene su propia dirección de IP y las computadoras detrás del NAT tienen sus propias direcciones de IP las cuales son privadas, es decir, otras computadoras fuera del NAT no pueden determinar las direcciones de IP de las computadoras que se encuentran detrás de NAT. La dirección de IP de un mensaje que se recibe a través del NAT se traduce a la dirección de IP de la computadora destino que se encuentra protegida por el NAT. Diversas técnicas se pueden aplicar para cruzar o atravesar un dispositivo activo de red para formar una conexión directa. Con las mejoras de los sistemas de mensajería instantánea, típicamente se proveen más funcionalidades además del texto, los que hace que la conversación sea una experiencia más intensa. Por ejemplo, un sistema de mensajería instantánea puede permitir que un usuario transmita audio, video o una imagen personal del usuario (también denominada como imagen de visualízación) asociada de manera exclusiva con el usuario. Tales características comúnmente necesitan más recursos de los que requiere el texto para que sean incluidos en una conversación, por ejemplo, un ancho de banda de transmisión. De esta manera, se desea una conexión de computadora a computadora cuando se mantiene una conversación a través de la mensajería instantánea, ya que esta conexión computadora a computadora típicamente proporciona un desempeño superior a una conexión a través de un servidor de panel de distribución. Sumario de la Invención Las ¡mplementaciones que se describen y se reclaman en la presente resuelven los problemas analizados, además de otros. Un método ejemplar involucra la creación de una sesión maestra sobre una primera conexión a través de un servidor y la creación de un canal virtual sobre la conexión, el canal virtual puede operar para comunicar una sesión con características especiales. El método puede involucrar el establecimiento de una conexión directa que se desvía del servidor así como la conmutación de la comunicación de la sesión con características especiales a la conexión directa. Un sistema para una comunicación sobre una red incluye una pluralidad de puentes de transporte, cada puente de transporte corresponde a una configuración del dispositivo activo de la red y un módulo de conmutación que puede funcionar para elegir uno de los puentes de transporte para formar una conexión entre dos dispositivos de cómputo con base en la configuración del dispositivo activo de la red. Breve Descripción de los Dibujos La Figura 1 es un diagrama de bloques que ilustra los componentes en un sistema de mensajería instantánea ejemplar; la Figura 2 ¡lustra un sistema de transporte que incluye capas ejemplares para manejar la comunicación de datos en un escenario de mensajería instantánea; la Figura 3 es un diagrama de bloques que ilustra un módulo de selección de puente ejemplar que puede funcionar para seleccionar un puente de transporte preferido; la Figura 4 es un diagrama de bloques que ilustra los canales virtuales a través de una conexión física entre dos dispositivos de cómputo; la Figura 5 ilustra un flujo de operación que tiene operaciones ejemplares para establecer una sesión con características especiales dentro de una sesión maestra y crear una conexión directa si es posible; la Figura 6 ilustra un flujo de operación que tiene operaciones ejemplares para determinar un puente de transporte que se prefiere y crear una conexión directa usando el puente de transporte preferido; la Figura 7 ilustra un flujo de operación que tiene operaciones ejemplares para transportar objetos grandes binarios (BLOB) en secuencia; la Figura 8 ¡lustra un sistema ejemplar que proporciona un entorno operativo para seleccionar de manera transparente un puente de transporte que se prefiere y comunicar datos característicos en un escenario de mensajería instantánea. Descripción Detallada de la Invención Haciendo referencia a las figuras, en donde los numerales de referencia similares se refieren a elementos similares, se ilustran diversos métodos implementados en un entorno de cómputo adecuado. Aunque no se requiere, diversos métodos ejemplares serán descritos dentro de un contexto general de instrucciones realizables a través de una computadora, por ejemplo módulos de programa, ejecutados en una computadora personal y/u otros dispositivos de cómputo. En general, los módulos de programas incluyen rutinas, programas, objetos, componentes, estructuras de datos, que realizan tareas particulares o que implementan tipos de datos abstractos particulares. Adicionalmente, los expertos en la técnica podrán apreciar que diversos métodos ejemplares pueden practicarse con sistemas de cómputo que tengan otras configuraciones, incluyendo dispositivos de mano, sistemas de procesadores múltiples, aparatos electrónicos programables o basados en microprocesadores, PC en red, mini computadoras, computadoras principales, y similares. Diversos métodos ejemplares también se pueden practicar en entornos de cómputo distribuidos en donde las tareas se realizan a través de dispositivos de procesamiento remoto que están enlazados a través de una red de comunicaciones. En un entorno de cómputo distribuido, los módulos de programa se pueden ubicar en dispositivos de almacenamiento de memoria tanto locales como remotos. En la presente, en algunos diagramas se resumen varios actos algorítmicos en "bloques" individuales. Dichos bloques describen acciones o decisiones específicas que se toman o desarrollan de conformidad con un proceso. Cuando se emplea un microcontrolador (o algún equivalente), los diagramas de flujo que se presentan en la presente proveen una base para un "programa de control" o programa de cómputo/ programación en firme que puede usarse a través de dicho microcontrolador (o equivalente) para efectuar el control deseado. De esta manera, se implementan los procesos como instrucciones que pueden ser leídas a través de una máquina y que pueden ser almacenadas en la memoria que, al ejecutarlas a través de un procesador, realizan los diversos actos que se ilustran en los bloques. Los expertos en la técnica pueden escribir fácilmente un programa de control con base en los diagramas de flujo y otras descripciones que se presentan en este documento. Debe comprenderse y apreciarse que el objeto descrito en la presente no sólo incluye dispositivos y/o sistemas cuando se programan para realizar los actos que se describen a continuación, sino los programas de cómputo que están configurados para programar los microcontroladores y, adicionalmente cualquiera y todos los medios que pueden ser leídos a través de una computadora en la que se pueda expresar dichos programas de cómputo. Ejemplos de tales medios que pueden ser leídos a través de una computadora incluyen, sin limitarse a estos, discos flexibles, discos rígidos, CD, RAM, ROM, memoria instantánea y similares. Entorno de Red Ejemplar Para Mensajería Instantánea La Figura 1 ilustra un entorno de red 100 ejemplar para una conversación de mensajería instantánea. En general, dos clientes 102 y 104 pueden comunicarse entre sí a través de una red 106. Los dispositivos activos de red 108 y 110 pueden o no estar presentes en el entorno de red 100. Un servidor de eco 112 y un servidor de panel de distribución 114 pueden conectarse a través de la red 106 para facilitar la comunicación entre los clientes 102 y 104. Una plataforma 116 de mensajería instantánea (IM) habilita al cliente (1) 102 y al cliente (2) 104 para que inicien una conversación de mensajería instantánea. Un usuario de la plataforma IM 116 interactúa con la plataforma IM 116 a través de una interfaz de usuario (no se muestra) para enviar y recibir mensajes hacia y desde el cliente (2) 104. La plataforma IM 116 incluye características 118 (también denominadas características de usuario final (EUF)) y una pila de protocolo de transporte 122 que facilita la comunicación de datos entre el cliente (1) 102 y el cliente (2) 104. Específicamente, la pila de protocolo de transporte 122 establece de manera transparente una sesión de mensajería instantánea basada en características del entorno de red 100. En general, la sesión que se establece puede ser a través de un servidor de panel de distribución (SB) 114 o, de manera alternativa, mediante una conexión de computadora a computadora 124, en donde los datos no se envían a través del servidor SB 114.
Los clientes 102 y 104 pueden acceder a la red 106 a través de un proveedor de servicio de Internet (no se muestra), o de otra manera. En una modalidad, los clientes 102 y 104 cada uno cuenta con direcciones de red, puertos y/o identificadores únicos, sobre los que se puede establecer la comunicación entre los clientes 102 y 104. Por ejemplo, el servidor SB 114 puede enviar datos a la computadora del cliente (2) 104 usando la dirección de red de la computadora del cliente (2) 104, el puerto y/o identificador del mismo. Sobre una conexión de computadora a computadora 124, la computadora cliente (1) 102 puede enviar datos directamente a la computadora cliente (2) 104, usando la dirección de red, el puerto y/o el identificador de la computadora cliente (2) 104. Como se analizó, el dispositivo activo de red (1) 106 y el dispositivo activo de red (2) 110 puede o no estar presente. Ejemplos de dispositivos activos de red son los cortafuegos y traductores de direcciones de red, los cuales proporcionan seguridad al sistema para sus dispositivos clientes respectivos. De esta manera, el dispositivo activo de red (2) 110 puede proveer seguridad para la computadora cliente (2) 104 y el dispositivo activo de red (1) 108 puede proveer seguridad para la computadora cliente (2) 102. Por lo tanto, son posibles diversas configuraciones de red. En una configuración de red, el dispositivo activo de red (1) 108 está presente, pero el dispositivo activo de red (2) 110 no los está. En otra configuración de red, el dispositivo activo de red (2) 110 está presente, pero el dispositivo activo de red (1) 108 no lo está. En otra configuración de red, no están presentes ninguno de los dispositivos activos de red, ni el dispositivo (1) 108, ni el dispositivo (2) 110. En una cuarta configuración de red, están presentes tanto el dispositivo activo de red (1) 108 como el dispositivo activo de red (2) 110. Los dispositivos activos de red 108 y 110 pueden tener direcciones únicas de red, como direcciones de protocolo de Internet (IP), en donde los dispositivos activos de red 108 y 110 reciben datos anexos para sus clientes respectivos 102 y 104. Los dispositivos activos de red 108 y 110 reciben datos en sus direcciones de red y traducen las direcciones de red a las direcciones de red asociadas con sus clientes 102 y 104 respectivos. El cliente (1) 102 puede usar el servidor de eco 112 para obtener la dirección de red asociada con el dispositivo activo de red (1) 108. El cliente (1) puede enviar al servidor de eco 112 un mensaje. Cuando el servidor de eco 112 recibe el mensaje desde el cliente (1) 102, el mensaje incluirá la dirección de red del dispositivo activo de red 108. Como respuesta, el servidor de eco 112 envía la dirección de red del dispositivo activo de red 108 de nuevo al cliente 102. El cliente (2) 104 puede obtener de manera similar la dirección de red de dispositivo activo de red (2) 110. Usando las direcciones de red de los dispositivos activos de red 108 y 110, los clientes 102 y 104 pueden establecer una conexión de computadora a computadora 124. Aunque el entorno 100 ejemplar de la Figura 1 ilustra sólo dos clientes 102 y 104 en una conversación, debe comprenderse que más de dos clientes pueden involucrarse en una conversación.
Dos o más clientes pueden comunicarse de manera de puntos múltiples, en donde cada cliente puede tener una conexión de computadora a computadora con todos los otros clientes. De manera alternativa, los dos o más clientes pueden incorporarse a la conversación a través del servidor de panel de distribución 114. Además, cualquier combinación de conexiones de computadora a computadora y conexiones a través del panel de distribución se pueden implementar en una conversación. A continuación se proporcionan descripciones más detalladas de operaciones ejemplares, así como sistemas, que se pueden usar en el entorno de red 100. Sistemas Ejemplares para Transportar Mensajes Instantáneos entre Clientes La Figura 2 ilustra un sistema de transporte 200 que incluye capas ejemplares para administrar la comunicación de datos en un escenario de mensajería instantánea. En general, cada una de las capas proporciona funcionalidad y/o datos para transportar diversas tareas asociadas con la capa. Los expertos en la técnica comprenderán la descripción de los protocolos de transporte y los sistemas en términos de capas. El sistema de transporte 200 incluye características 202. Las características 202 son funciones que se encuentran o se ejecutan a través o dentro de una aplicación de mensajero (por ejemplo, la plataforma de mensajería instantánea 116 de la Figura 1) para presentar los datos asociados con las características. Una característica puede estar determinada por el tipo de datos q ue presenta la característica, la manera de presentar los datos, las operaciones q ue puede real izar la característica en los datos y/o las opciones interactivas q ue proporciona la característica al usuario para i nteractuar con los datos. Por ejemplo, una característica de la imagen personal del usuario presenta datos de i magen en una pequeña pantalla en la interfaz del usuario , u na característica de transferencia de archivos habi lita a un usuario para q ue seleccione un archivo y los envíe a un contacto al q ue envía mensajes instantáneos. A manera de ejemplo , pero sin limitarse a esto, la capa de características 202 puede inclui r iconos de emociones, tinta , i mágenes incrustadas, entre otros. Las características 202 usan capas en una pila de protocolo de transporte 206 para comu nicar datos en un escenario de mensajería instantánea. La pila de protocolo de transporte 206 administra de manera transparente los detal les de la recepción y tra nsmisión de los datos desde y hacia los cl ientes en u na conversación . La pi la de protocolo de transporte 206 proporciona una interfaz de programa de aplicación (API ) 208 de transporte a las características 202 , en donde las características 202 pueden enviar y recibir datos. Las capas inferiores de la pila de protocolo de transporte 206 usan datos de configuración de red e información sobre los datos de las características 202 para establecer sesiones de mensajes instantáneos . De esta manera , la pila de protocolo de transporte 206 hace que los detalles de los niveles inferiores de los datos de comunicación sean transparentes a las características 202. Los términos "BLOB" (objeto grande binario) y "trozo" se usan en la presente para referirse a porciones de datos que pueden ser enviados o recibidos dentro de un entorno de red, sin importar el tipo o tamaño de los datos. Por ejemplo, una imagen digital puede estar compuesta de uno o más BLOB de datos. Un BLOB está compuesto de uno o más trozos de datos. Como se mencionó anteriormente, la API 208 de transporte ejemplar proporciona métodos o funciones que exponen la funcionalidad de la pila de protocolo de transporte a las características 202. Una implementación particular de la API 208 incluye los siguientes métodos: SendData(); // Envía un blob de datos a otro cliente; OnDataReceivedQ; // Vuelve a llamar a una característica cuando la sesión asociada recibe un blob de datos; RegisterFeatureHandler(); // Invocado por las características para registrar a los manipuladores. Los manipuladores son invocados cuando otro cliente envía una invitación para la característica. RegisterDataChannelCallBacks(); //Invocado por las características para registrar a los manipuladores que son i nvocados cuando suceden eventos de canal o los estados del canal cambian . CreateDataChannel(); //Crea un canal de datos (sesión) para u na característica . GetTransportCapabilities(); //Devuelve las capacidades de la conversación, por ejemplo Direct (di recta), I ndirect (indirecta), Store (al macenar) y Forward (enviar). GetParticipants(); //Obtiene la lista de participantes en una conversación . Para ¡l ustrar la API 208 ejemplar, una funcional idad en la capa de fu ncionalidades 202 puede crear una sesión usando la función CreateDataChannel() (Crear canal de datosQ). La característica puede invocar el registro RegisterFeatureHand ler() (Man i pulador de característica de registro()) para registrar al manipulador que será invocado al recibir una invitación para esta característica . La característica puede invocar RegisterDataChannelCalIBacksO (Registrar llamadas de canal de datos()) para reg istrar un manipulador que será invocado cuando se produzca un evento de canal . La característica puede invocar Send Data() (Enviar datos()) para enviar datos al cl iente. La función On DataReceived () (En datos recibidosQ) se i nvoca por otra capa de protocolo de transporte, como la capa de sesión 21 0 , cuando se reciben datos para la característica. Una capa de sesión 210 ejemplar incluye la lógica para proveer servicios de sesión a las características 102. Una conversación de mensajes instantáneos incluye al menos una sesión, denominada una sesión de mensajes instantáneos para desarrollarse en la conversación. Una implementación de SLP también incluye una sesión maestra, la cual tiene control lógico para establecer otras sesiones para las características, denominadas sesiones con características especiales. La capa de sesión 210 es el protocolo mediante el cual se inician las sesiones. En una implementación, la capa de sesión 210 inicia una sesión negociando el establecimiento de sesiones entre dos computadoras con base en las capacidades respectivas de cada computadora. En una implementación particular de la capa de sesión 210, se emplea un subconjunto del protocolo de iniciación de sesión (SIP). En esta implementación, los mensajes se pueden enviar en un formato que puede ser leído por un humano (por ejemplo, un lenguaje marcado extensible (XML), valor separado por comas (CSV), etc.). Los mensajes de administración de sesión ejemplares son "INVITE" (INVITAR), "BYE" (ADIOS), "CANCEL" (CANCELAR) y "ACK" (RESPONDER). Una capa de transporte ejemplar 212 incluye los elementos lógicos para manejar un protocolo de capa de transporte del estándar de interconexión de sistema abierto (OSI). El TLP es un protocolo binario para enviar y recibir objetos grandes binarios (BLOB) de tamaño arbitrario a través de canales de red. La capa de transporte 212 realiza diversas tareas de administración de datos. Por ejemplo, como se analiza con mayor detalle a continuación, la capa de transporte 212 puede funcionar para transmitir de manera simultánea datos a través de una conexión de red y crear de esta manera canales virtuales dentro de una sola conexión de red. Como se analiza con mayor detalle a continuación, la capa de transporte 212 hace interfaz con uno o más puentes de transporte, como un puente TCP o un puente SB, los cuales residen en la capa de puente de transporte 214. La capa de transporte 212 puede incluir un programador y pone en cola para programar datos de las características 202 que serán transportados a través de los puentes en la capa de puente 214. En una implementación particular, la capa de transporte 212 anexa un encabezado TLP a cada trozo de cada BLOB que se transporta. El encabezado proporciona información sobre el BLOB y el trozo. Al recibir un trozo, la capa de transporte 212 puede analizar sintácticamente el encabezado para determinar cómo deben volver a unirse los trozos y cómo los BLOB deben volver a ordenarse, en caso de ser necesario. En una implementación ejemplar, el encabezado de TLP es como se indica a continuación: DWORD Sessld; // Identificador de sesión secundaria a la que pertenece este blob DWORD Blobld; // Identificador para este blob UINT64 Offset; // Desvío de estos datos del trozo dentro de los datos del blob UINT64 BlobSize; // Tamaño total de todos los trozos sin incluir los encabezados DWORD ChunkSize; // Tamaño de los datos en este trozo (sin incluir el encabezado) DWORD Flags; // Unidos juntos TLP_CONTROL_FLAGS (Indicadores de control de TLP) El campo "Sessld" (Identificador de sesión) identifica la sesión asociada con un trozo de los datos que se están enviando o recibiendo. El campo "Sessld" (identificador del campo) lo usa la capa de transporte 212 para asociar un trozo de datos con una sesión particular, y de esta manera transmitir de manera simultánea y/o desmultiplexar el trozo de datos. La transmisión de manera simultánea de datos que emplea la pila de protocolo de transporte 206 se describe a continuación detalladamente. El campo "Blobld"(ldentificador de Blob) identifica el objeto grande binario (BLOB) que corresponde a los datos que se están enviando o recibiendo. El campo "Blobld (Identificador de Blob) se puede usar mediante la pila de protocolo de transporte 206 para ensamblar o volver a ensamblar los trozos en un BLOB correspondiente. El campo "Offset" (Desviación) representa el lugar en donde se ubica un trozo en el BLOB correspondiente. El campo "Blobld" (Identificador de BLOB) también se puede usar para organizar los BLOB en el orden adecuado antes de entregarlos o después de recibirlos. El campo "BlobSize" (Tamaño BLOB) representa el tamaño de BLOB. El campo "ChunkSize" (Tamaño del trozo) representa el tamaño del trozo de datos, sin incluir el encabezado. El campo "Flags" (Indicadores) proporciona un número de indicadores que usa la capa de transporte 212 para administrar el proceso de enviar y recibir datos entre los clientes. Los "Indicadores" ejemplares se muestran y describen a continuación: enum TLP_CONTROL_FLAGS (Indicadores de control de TLP) { TLP_NAK =0x01 , //Establecer en un paquete sin respuesta (solicitud para retransmitir) TLP_ACK=0x02, //Establecer en un paquete de respuesta TLP_RAK=0x04, //Establecer en una solicitud de un paquete de respuesta TLP_RST=0x08, //Establecer en un paquete de Reset (restablecimiento), cierra la sesión del otro lado TLP_BIG- = 0x10, //Establecer cuando este trozo es parte de un blob que debe guardarse como un archivo TLP_CAL=0x20, //Establecer en un blob para el cual se solicitan las llamadas de avance }; La capa de puente de transporte 214 incluye los datos lógicos para transportar datos sobre una red. Por ejemplo, la capa de puente de transporte 214 puede realizar la codificación y/o decodificación de datos. En una implementación, la capa del puente de transporte 214 incluye uno o más puentes de transporte en donde cada uno tiene la funcionalidad que corresponde a una configuración de red y datos característicos para comunicarse sobre la red. Los puentes de transporte ejemplares, así como los sistemas y operaciones para seleccionar entre los puentes se describen detalladamente a continuación. En una implementación, la capa de transporte 214 puede usar la capa de puente de transporte 214 para la transición entre dos tipos de puente en medio de una sesión. De esta manera, una sesión puede comenzar sobre un puente de panel de distribución (SB), en donde los datos de la sesión se comunican a través del servidor de panel de distribución, sin embargo, más tarde, la sesión puede cambiar a una conexión directa o de computadora a computadora. Además, sí la conexión de computadora a computadora se interrumpe, la capa de transporte 212 puede nuevamente conectarse al puente SB o a algún otro puente disponible en la capa de puente 214. La capa de transporte 212 maneja la conmutación a un tipo de conexión diferente de manera que es transparente a las capas superiores de la pila de protocolo de transporte 206. La capa de transporte 212 funciona con la capa de puente 214 para asegurar que los BLOB se entregan y/o reciben en un orden adecuado. Debido a que el tipo de conexión puede cambiar de una conexión más lenta a una conexión más rápida en medio de una sesión, los BLOB que se transmiten sobre la conexión más lenta pueden llegar a su destino después de que se transmiten los BLOB sobre la conexión más rápida, a menos que la capa de transporte 212 realice acciones para asegurar un orden adecuado. A continuación se describen operaciones ejemplares que aseguran que se mantiene un orden adecuado en secuencia de la entrega. Una capa de red 218 representa una funcionalidad de comunicaciones a nivel inferior que realiza las funciones de comunicaciones de red estándar. La capa de red 218 puede incluir, sin limitarse a esto, una funcionalidad de protocolo de control de transmisión/ protocolo de internet (TCP/IP), una funcionalidad de protocolo de datagramas universales (UDP), una funcionalidad de protocolo de transporte de hipertexto (HTTP), un protocolo de acceso de objeto simple (SOAP). La capa de puente 214 puede usar la funcionalidad de capa de red 218 para comunicar datos a través de una red. Como se analiza en la presente, se proporcionan diversos puentes de transporte para manejar diferentes configuraciones de red y tipos de red de datos, así como formatos y/o tamaños de estos. La Tabla 1 ilustra puentes de transporte ejemplares y configuraciones de red asociados en los que se pueden usar los puentes. TABLA 1 Una marca de verificación (X) en una intersección de una fila y una columna de la Tabla 1 indica que el puente en la fila de intersección se puede usar en la configuración de red en la columna que se cruza. El puente SB envía tráfico a través de un servidor de panel de distribución (por ejemplo, el servidor de panel de distribución 114 de la Figura 1). En una implementación, cuando se establece inicialmente una sesión de mensajes instantáneos, el puente SB es ei puente que se usa para transportar los datos de la sesión de mensajes instantáneos. Posteriormente, el puente SB sigue siendo usado sólo si no puede establecerse una conexión directa (computadora a computadora). Se puede usar el puente de protocolo de control de transporte (TCP) activado por torsión (también denominado el TCP de Protocolo de Internet versión 5 (IPv6)) para atravesar un NAT de Protocolo de Internet versión 4 (IPv4). En una implementación, el puente IPv6 utiliza una técnica de conexión Teredo para establecer una conexión de computadora a computadora. Teredo es una tecnología de transición IPv6/IPv4 que proporciona una asignación de dirección y una conexión automática de hospedero a hospedero para una conectividad IPv6 única unicast cuando los anfitriones IPv6/IPv4 se encuentran detrás de uno o varios NAT IPv4. Para cruzar los NAT IPv4, los paquetes de IPv6 se envían como mensajes de protocolo de datagramas de usuario (UDP) basados en IPv4. El puente de TCP activado por torsión puede operarse para establecer una conexión de TCP-IP de computadora a computadora, incluso si un traductor de dirección de red (NAT) está configurado en la red. Por ejemplo, si un primer cliente está detrás de un NAT, un segundo cliente no está detrás de un NAT o cortafuego, el puente TCP activado por torsión del primer cliente inicia una conexión saliente TCP con el segundo cliente. El primer cliente puede usar un servidor de eco (por ejemplo, el servidor de eco 112 de la Figura 1) para detectar que el primer cliente esta detrás del NAT) y de esta manera determinar la dirección en la que se forma la conexión; es decir, el primer cliente inicia la conexión de TCP. Puede aplicarse una técnica similar cuando alguno de los clientes se encuentra detrás de un NAT de conexión directa universal (UPnP). El Puente de protocolo de datagrama universal fiable ((RUDP) comunica datos a través de UDP pero emula una conexión de TCP reconociendo la recepción de la transmisión de datos de una mera similar como un "paquete" sería reconocido bajo TCP. De esta manera, el puente RUDP proporciona una conexión más fiable que una conexión UDP tradicional, ya que el protocolo puede detectar cuando se pierden datos (es decir no se reciben) y deben volver a enviarse. El puente RUDP puede usar un servidor de eco para obtener direcciones de red de NAT, de manera que los NAT se puedan atravesar. El puente RUDP anexa un encabezado a los datos transmitidos. Un encabezado ejemplar se muestra a continuación: unsigned_int64 qwSeqNum; // número de secuencia del primer byte en este paquete unsigned_int64 qwAckNum; // número de reconocimiento del siguiente byte que el remitente de este paquete espera DWORD dwOtherFields; //Desvío de 4 bits en palabras cuádruple, 5 bits reservados, 5 bits de control, 16 reservados, desde el más significativo DWORD dwWindow; //tamaño de ventana que destinatario aceptará DWORD dwSendTime; //indicador de tiempo momento en que el paquete haya sido enviado DWORD dwEchoTime //el último indicador de tiempo que el remitente grabó en un paquete del destinatario Un protocolo de puente RUDP ejemplar involucra enviar un mensaje "SYN" (Sincronizar) a un puente RUDP que escucha, y responde con "SYN ACK" (sincronizar respuesta), y responde al mensaje "SYN ACK" (sincronizar respuesta) con "ACK" (Respuesta). Posteriormente, un temporizador de retransmisión continuará retransmitiendo uno o más conjuntos de datos hasta que se reciba una respuesta desde el puente RUDP que responde a los conjuntos de datos transmitidos (o retransmitidos). La Figura 3 es un diagrama de bloques que ilustra un módulo de selección 302 ejemplar que puede funcionar para seleccionar un puente de transporte que se prefiere entre un conjunto de puentes de transporte 304. La aplicación de mensajería instantánea puede tener más de una característica 308, y una característica 308 se comunica con una sesión maestra 306 y un registro de sesión 310 para establecer una sesión con características especiales asociada 312. Los datos de mensajería instantánea, incluyendo los datos de característica, se transportan a través de un puente seleccionado. La sesión maestra 306 se ejecuta en la capa de sesión 210 (Figura 2) en la pila de protocolo 206 (Figura 2). La sesión maestra 306 se crea cuando una conversación inicia en una aplicación de mensajería instantánea. La sesión maestra 306 se asocia con una ventana de conversación y es el objeto a través del cual las características 308 solicitan una sesión secundaria o característica 312. La sesión maestra 306 también puede exponer un método estático que habilita las características 308 para iniciar una sesión maestra fuera del contexto de una ventana de conversación, en donde se creará una conversación de mensajería instantánea. Una característica 308 se registra el registro de sesión 310, el cual mantiene información sobre las características que se ejecutan durante una conversación. El registro de sesión 310 también puede mantener información sobre las características "de auto inicio". Las características de auto inicio son características que deben existir predeterminadas y sus manipuladores invitados serán invocados en ambos clientes en la conversación con identificadores de llamada e identificadores de sesión predefinidos una vez que se ha establecido una conexión de panel de distribución subyacente. Cuando la característica 308 se registra con el registro de sesión 310, la característica 308 proporciona una función de manipulador de invitación y un identificador único global (GUID) asociado con la característica 308. La sesión maestra 306 puede usar la información de registro de característica para establecer la sesión con características especiales 312, a través de la cual la función 308 se puede transportar en una sesión con una característica personal. Por ejemplo, una invitación de una computadora puede ser recibida por la sesión maestra 306, invitando a la característica 308 para que entre en una sesión. La invitación especifica el GUID asociado con la característica 308. La sesión maestra 306 busca el GUID en el registro de sesión 310, para encontrar la función del manipulador de invitación asociada con la característica 308. Si la invitación es aceptada por la característica 308, la sesión maestra 306 crea la nueva cesión característica 312. La característica 308 puede invitar una característica de computadora para que entre en una sesión. Para hacerlo, la característica 308 solicita una nueva sesión de la sesión maestra 306 (por ejemplo, al invocar CreateDataChannel() (Crear Canal de DatosQ) en la API de transporte 208 de la Figura 2)). La solicitud, de una nueva sesión de la característica 308 puede incluir una solicitud para un tipo de conexión (por ejemplo, directa o no directa). La sesión maestra 306 invocará el selector de puente 302 con información como la conexión directa solicitada, el tamaño de los datos y/o la configuración de red. El selector de puente 302 usa la información para identificar u n puente de transporte preferido para usarse para la sesión con ca racterísticas especiales solicitada. En una implementación, el selector de puente 302 ejecuta en la capa de transporte 21 2 (Figu ra 2) e im plementa las reglas de selección de puente de transporte para seleccionar el puente que se prefiere. En una i mplementación , el objetivo de d iseño es enviar tanto tráfico de computadora a computadora di rectamente como sea posible , de esta manera evitando las demoras y los costos que se pueden asociar con un servidor de panel de distri bución. En esta im plementación , se analizan los siguientes factores para seleccionar el puente de transporte: la conexión directa solicitada , el ancho de banda soportado por el puente de transporte, el ta maño de los datos que serán enviados, y cualesquiera limitantes del puente de transporte, así como el puente asociado con un puente de transporte particu lar (por ejemplo, costos de relé) y/o las especificaciones de privacidad (por ejemplo , revelar o no revela r la dirección de I P). Cada puente de transporte calcula una puntuación con base en los factores mencionados. Proporciona su pu ntuación al selector de puente 302, el cual elige el puente de transporte q ue se prefiere con base en las puntuaciones. Antes de analizar las puntuaciones sin precisar, el selector de puente 302 toma las solicitudes especificadas en cuenta . Por ejemplo, si la característica 308 selecciona una conexión di recta , entonces el selector de puente 302 puede eliminar todos los puentes no directos del conjunto de puentes candidatos. Los puentes que no funcionarán en una configuración de red particular también se eliminan del conjunto de puentes candidatos. Por ejemplo, el puente de TCP activado por torsión no se considera si la configuración de red incluye dos NAT de herencia simétrica. La información obtenida de una prueba de servidor de eco durante la inicialización de la conversación se puede usar para decir cuáles son los puentes que no pueden funcionar. De esta manera, una implementación del selector de puente 302 emplea las siguientes normas de selección del puente dé transporte: 1. Elimina puentes que no pueden funcionar con base en los resultados de la prueba de eco. 2. Elimina puentes que no satisfacen la solicitud específica que invoca el que llama. 3. Usa el puente remanente con la puntuación más alta. 4. Si el puente anterior falla, usa el puente remanente con la segunda puntuación superior. 5. Si el puente anterior falla, usa el puente remanente con la siguiente puntuación superior, etc.. El selector de puente 302 notifica a la sesión maestra 306 sobre el puente preferido basado en las normas. Como respuesta, la sesión maestra 306 crea la sesión con características especiales 312 y crea un ejemplo concreto del puente preferido que será usado. Después de que la sesión con características especiales 31 2 se crea, la sesión con características especiales 312 será la sesión a través de la cual la característica 308 se com unica con otras características de computadora . La sesión con características especiales 312 maneja el envío de datos, así como las llamadas de control de la sesión, por ejem plo AcceptSession (Aceptar sesión ) y AcceptDirect (Aceptar conexión directa). La Figura 4 es un d iag rama de bloq ues que i lustra los canales vi rtuales 412 a través de u na conexión física 404 entre un primer dispositivo cliente 406 y un segundo dispositivo cl iente 408. La conexión 404 y los canales 402 se usan mediante los dispositivos cl iente 406 y 408 para acoplarse en una conversación de mensajería instantánea , en donde se comunican datos de diversos tipos . Aunque los dispositivos 406 y 408 se denominan "dispositivos cliente" debe entenderse que la conexión 404 entre los d ispositivos 406 y 408 no necesita establecerse a través de un servidor, puede ser una conexión d irecta o de computadora a computadora. Como se muestra , el canal de datos 0 se usa para comunicar mensajes de texto en la conversación ; el canal de datos 1 se usa para transferir archivos entre los dispositivos cliente 406 y 408; el canal de datos 2 se usa para transferir imágenes incrustadas entre los dispositivos 406 y 408; y el canal de datos 3 se usa para comunicar información del i ndicador de escritu ra q ue ind ica si un usuario está tecleando un mensaje en el momento en u no de los dispositivos 406 ó 408. El número de canal virtual corresponde a un identificador de sesión . Como se anal izó anteriormente, se anexa u n encabezado (véase el encabezado TLP en párrafos anteriores) a los datos que se comu nican sobre la conexión 404. El encabezado incl uye un "Sess ld" (Identificador de Sesión) que indica a q ué sesión y a qué canal (por ejemplo, si es característica o maestra) corresponden los datos. Al usar el identificador de sesión, se pueden transmitir de manera simultánea datos para múlti ples sesiones sobre la conexión 404. De esta manera , los canales 402 se consideran canales "vi rtuales". El identificador de sesión se extrae de los datos recibidos en los dispositivos cliente 406 y 408 y los datos se envían a la sesión apropiada asociada con el identificador de sesión . En otra i m plementación , se establece más de una conexión entre el dispositivo cl iente 406 y el dispositivo cliente 408, y cada una de las conexiones puede i nclu ir varios canales vi rtuales. Por ejem plo, cuando se crea inicial mente una conversación entre el dispositivo cliente 406 y el dispositivo cliente 408 , se creará una sesión maestra a través de una conexión a través de un servidor de panel de distribución . Posteriormente, puede establecerse una conexión com putadora a computadora entre los dispositivos cliente 406 y 408. En esta situación , las características en los dispositivos 406 y 408 pueden establecer canales virtuales sobre una conexión de panel de distribución o sobre la conexión de computadora a computadora. Operaciones Ejemplares que Emplean una Pila de Protocolo de Transporte La Figura 5 ilustra un flujo de operación 500 que tiene operaciones ejemplares para establecer una sesión con características especiales dentro de una sesión maestra y crear una conexión directa si es posible. El flujo de la operación 500 puede llevarse a cabo a través de un dispositivo cliente, como la computadora cliente (1) 102, que se muestra en la Figura 1, para acoplarse en una conversación de mensajería instantánea con otro dispositivo cliente. Una operación de establecimiento 502 establece una sesión maestra. La sesión maestra se establece cuando un usuario lanza inicialmente la aplicación del mensajero e intenta conectar a otro usuario. Establecer la sesión maestra involucra invitar a otro cliente para que entre a la conversación. Después de que otro cliente acepta la invitación, las sesiones maestras se crean tanto en el cliente que invita como en el cliente que acepta. La sesión maestra se establece a través de un puente de panel de distribución, a través de una conexión SB. La sesión maestra puede usarse posteriormente para establecer sesiones con características especiales. Si no se ha realizado una prueba del servidor de eco antes de la operación de establecimiento 502, la operación de establecimiento 502 puede realizar una prueba de servidor de eco, para detectar cortafuegos (NAT u otros dispositivos activos de red que pud ieran estar presentes. La prueba de servidor de eco i nvol ucra consiste en un mensaje de prueba a un servidor de eco (por ejemplo, el servidor de eco 1 1 2, de la Figura 1 ) y el servidor de eco responde con la información de dirección de red q ue corresponde a cualquier dispositivo activo de red q ue puede esta r config urado. El usuario puede desear comunicar datos característicos además de los datos de texto. Dichos datos característicos que i ncluyen , si n limitarse a esto, archivos, imágenes, iconos de emociones personalizados, imágenes persona les del usuario y similares . Además, la aplicación del mensajero puede crear una sesión con características especiales para transferir datos característicos. De esta manera, en otra operación de establecimiento 504, se establece una sesión con características especiales . La operación de establecimiento 504 i nvolucra la sesión maestra que crea una sesión con ca racterísticas especiales en un cliente q ue invita y envía u na i nvitación característica a u n cl iente que la recibe. Cuando la invitación característica llega al cliente que la reci be, la invitación puede ser aceptada o rechazada . Al conti nuar con la operación de establecimiento 504, si la invitación característica es aceptada , la sesión maestra en el cl iente que recibe crea una sesión con características especiales en el cliente que recibe. La sesión con características especiales en el cliente que recibe tiene el GUID que corresponde a la característica de invitación. La sesión maestra en el cliente que recibe también invoca una función del manipulador de invitación que se registra para el GUID. Si se acepta la invitación característica, la característica asociada almacena la sesión con características especiales, de manera que la sesión con características especiales se pueda usar para interactuar con la API de transporte para la sesión. Cuando la característica acepta, se envían mensajes de retorno de llamada tanto a la característica que invita como a la característica que acepta, haciéndole saber que la sesión está lista para usarse y enviar y recibir datos. Si se rechaza la invitación característica, la sesión maestra elimina la sesión con características especiales que fue creada. La operación de establecimiento 504 establece la sesión con características especiales a través de una conexión ya existente, como una conexión SB establecida. En particular, los datos de la sesión con características especiales se transmiten simultáneamente con los datos de la sesión maestra, como se muestra en la figura 4, para transportar la sesión con características especiales y la sesión maestra de manera simultánea. Ya que una conexión a través de un panel de distribución puede ser más lenta que una conexión de computadora a computadora, una operación de creación 506 intenta crear una conexión directa (computadora a computadora) sobre la cual se desarrolla la sesión con características especiales. Una modalidad ejemplar de la operación de creación 506 se ilustra en la Figura 6, como se describe a continuación. Si se puede crear una conexión directa, la sesión con características especiales se desarrollará usando la conexión directa. El flujo de operación 500 termina en una operación de término 508. La Figura 6 ilustra un flujo de operación que tiene operaciones ejemplares para crear una conexión directa. Se asume que un usuario indica a una característica en un cliente de inicio que el usuario desea cambiar la sesión con características especiales a una conexión directa en lugar del servidor de panel de distribución (SB). El usuario puede preferir la conexión directa ya que puede desear evitar los límites que se establecen en un límite de tamaño de mensaje o desea enviar más mensajes que los que permite un servidor SB, o tal vez desea mantener sus mensajes dentro de su cortafuegos corporativo. Cuando la característica recibe la indicación de moverse a una conexión directa, se ejecuta un operación de solicitud 602, en donde la característica invoca un método sobre la sesión secundaria de la característica. La operación de solicitud 602 solicita una conexión directa. La sesión secundaria pasa la solicitud de la sesión maestra. Como respuesta, la sesión maestra envía un mensaje "reINVITE" (Volver a invitar) a la característica de la computadora en un cliente que recibe solicitando una conexión directa. Al continuar con la operación de solicitud 602, el mensaje de volver a invitar contiene información que identifica todos los tipos de puente de transporte soportados por el cliente q ue hace la i nvitación . La sesión con características especiales en el cliente que recibe invoca la función del mani pulador de i nvitación asociada con la característica . El mensaje de volver a invitar puede ser aceptado de muchas manera. En una implementación , la característica puede tener establecida u na configuración de aceptación automática en el man ipulador de i nvitación de la característica. Una config uración de aceptación automática i ndica que todas las solicitudes para u na conexión d i recta se aceptarán de manera automática . En otra implementación, puede establecerse una configuración de rechazo automático en el manipu lador de invitaciones, lo que indica que la solicitud de conexión directa será rechazada de manera automática. Si no se establece ning una de las configuraciones de aceptación automática o rechazo automático, el transporte buscará un valor predeterm inado global . Si el valor predeterminado global se establece para aceptar o rechazar, se genera u na respuesta al mensaje "reI NVITE" (Volver a invitar). Si esto no se establece, la característica a la que se hace la i nvitación puede responder a ésta , por ejemplo el usuario puede hacer una em isión ya sea para aceptar o rechazar el mensaje "reI NVITE" (volver a invitar). Al asumir que el mensaje "reI NVITE" (Volver a invitar) ha sido aceptado, se identifica un puente de transporte preferido en una operación de selección 606.
La operación de selección 606 selecciona un puente de transporte que se prefiere usando los factores de preferencia como se analizó anteriormente con respecto a la Figura 3. Una operación de aceptación 608 envía un mensaje de aceptación al cliente que hace la invitación. El mensaje de aceptación contiene un puente preferido. La aceptación también incluye las direcciones IPv4 interna y externa del cliente que acepta, así como una dirección global IPv6, si el cliente cuenta con una. El transporte en el otro extremo intentará conectarse a la dirección de IP recibida y el puerto usando el puente preferido que se enumera en el mensaje de aceptación. Después de que el cliente que invita se conecta, el transporte envía un mensaje "RAK" (volver a responder) y el cliente que acepta responde con un "ACK" (responder). Si falla la conexión, el cliente que hace la invitación será interrumpida enviando el "RAK" (Volver a responder). En una implementación, la sesión maestra que hace la invitación entonces envía otro "reINVITE" (mensaje de volver a invitar), en esta ocasión excluye el tipo de puente de transporte que falló. El flujo de la operación termina en una operación final 610. La Figura 7 ilustra un flujo de operación 700 que tiene operaciones ejemplares para transportar objetos grandes binarios (BLOB) en un secuencia. En general, antes de que se transmita un último trozo de un BLOB sobre una nueva conexión directa, el transporte espera para recibir todos los reconocimientos asociados con los trozos de BLOB q ue se transmitieron anteriormente sobre una conexión no directa. De esta manera se produce la espera dé los reconoci mientos, sin importar q ué tipo de puente de transporte de conexión se esté usando (es decir, U DP, TCP, u otra) . U na operación de transmisión 702 comienza a transmitir un BLOB usando una conexión que no es directa. U na operación de consu lta 704 determina si el ti po de puente de transporte se ha conectado a una conexión di recta. Si el tipo de puente de transporte no se ha conectado la operación de consu lta 704 ramifica el "NO" a una operación de transm isión 706. La operación de transm isión 706 transmite un trozo del BLOB a través de una conexión no di recta . Después de que se transmite el trozo en la operación de transmisión 706, la operación de consulta 704 nuevamente determina si el ti po de puente de transporte cam bió . Si el tipo de puente de transporte cambió, la operación de consulta 704 ramifica el "S I" a otra operación de consulta 708. La operación de consulta 708 determ ina si un identificador de BLOB actual es mayor que el últi mo valor para BLOB I D (identificador de BLOB). Si el identificador actual de BLOB no es mayor que el último identificador de BLOB, la operación de consulta 708 ramificará el "NO" hacia la operación de transm isión 706 , la cual transmite un trozo del BLOB actual . Si la operación de consu lta 708 determina que el identificador BLOB actual es mayor que el último identificador de BLOB, entonces la operación de consulta 708 ramifica el "SI" a otra operación de consulta 710. La operación de consulta 710 determina si el trozo actual que será transmitido es el último trozo en el BLOB. Si el trozo actual no es el último trozo en el BLOB, la operación de consulta 710 ramificará el "NO" hacia la operación de transmisión 710, la cual transmite el trozo actual. Sí la operación de consulta 710 determina que el trozo actual es el último trozo en el BLOB, la operación de consulta 710 ramifica hacia una operación de espera 712. La operación de espera 712 espera hasta que todos los reconocimientos se reciban para los BLOB que se transmitieron a través de la conexión original que no es directa. Sistema de Cómputo Ejemplar que puede usarse en un Entorno de Red para Mensajería Instantánea La Figura 8 y su análisis correspondiente se crearon para proveer una descripción general de un entorno de cómputo adecuado en el que se pueda implementar las disposiciones y los procedimientos descritos para transportar datos de cómputo. El entorno de cómputo 820 ejemplar sólo muestra un entorno de cómputo adecuado y no tiene la intención de sugerir limitación alguna del alcance de uso o funcionalidad del asunto descrito. Tampoco el entorno de cómputo 820 debe interpretarse con ninguna dependencia o requerimiento con relación a ninguna de las combinaciones o alguno de los componentes que se ilustran en el entorno de cómputo 820 ejemplar. Las disposiciones y procedimientos ejemplares para transportar datos de cóm puto entre los dispositivos i nterconectados operan con numerosos objetivos generales o entornos de sistemas de cóm puto de objetivos especiales así como config u raciones. Los ejemplos de sistemas de cómputo ya conocidos , entornos y/o config uraciones que pueden ser adecuados para usarse con el objeto descrito i ncl uyen , sin limitarse a esto, computadoras personales , computadoras de servidor, clientes delgados, cliente gruesos, dispositivos de mano o portátiles, sistemas de multiprocesadores, sistemas basados en microprocesadores , computadoras principales, entornos de cómputo distri buido así como un grupo de servidores además de redes i nternas corporativas y sim ilares, que incluyen cualq uiera de los sistemas o dispositivos mencionados. El entorno de cómputo 820 incluye u n dispositivo de cómputo de uso general en forma de una computadora 830. La computadora 830 puede incluir y/o fu ncionar como una implementación ejemplar de un sistema de transporte para los emiti r mensajes i nstantáneos descritos anteriormente con respecto a las Figuras de la 1 a la 7. Los componentes de la computadora 830 pueden incluir, pero no están limitados a uno o más procesadores o unidades de procesamiento 832, u na memoria de sistema 834 y una barra de distri bución 836 q ue acopla va rios componentes del sistema i ncluyendo la memoria del sistema 834 al procesador 832. La barra de d istribución 836 representa uno o más de algu nos de los diversos tipos de estructuras de barras de distribución, incluyendo una barra de distribución de memoria o un controlador de memoria, una barra de distribución periférica, un puerto de gráficos acelerado y una barra de distribución local o procesador usando cualquiera de una variedad de arquitecturas de barras de distribución. A manera de ejemplo, y no así como limitante, dichas arquitecturas incluyen Una barra de distribución de arquitectura estándar industrial (ISA), una barra de distribución de micro canal (VESA), una barra de distribución ISA mejorada (EISA), una barra de distribución local de asociación de estándares electrónicos (VESA), y una barra de distribución de interconexión de componentes periféricos (PCI) también conocido como barra de distribución Mezzanine. La computadora 830 típicamente incluye una variedad de medios que pueden ser leídos a través de una computadora, dichos medios pueden ser cualesquiera medios disponibles a los que puede tener acceso una computadora 830 e incluye memoria permanente y no permanente, memoria extraíble y no extraíble. La memoria del sistema incluye medios que pueden ser leídos a través de una computadora en forma de memoria no permanente, así como una memoria de acceso aleatorio "RAM" 840, y/o una memoria permanente, como una memoria de sólo lectura (ROM) 838. Un sistema básico de entradas/salidas (BIOS) 842, que contiene las rutinas básicas que ayudan a comunicar información entre elementos dentro de la computadora 830, como en el arranque, se almacenan en ROM 838. La RAM 840 típicamente contiene datos y/o módulos de programas a los que se puede tener acceso de inmediato y/o pueden funcionar en el momento a través del procesador 832. La computadora 830 además puede incluir otros medios de almacenamiento de cómputo extraíbles/ no extraíbles, permanentes/ no permanentes. Únicamente a manera de ejemplo, la Figura 8 ilustra una unidad de disco duro 844 para leer y escribir en un medio magnético no removible, permanente (no se muestra y típicamente se denomina "unidad de disco duro"), una unidad de disco magnético 846 para leer y escribir en un disco magnético extraíble, y permanente 848 (por ejemplo, un "disco flexible"), y una unidad de disco óptico 850 para leer y escribir en un disco óptico permanente, extraíble 852 como CD-ROM, DVD-ROM u otros medios ópticos. La unidad de disco duro 844, la unidad de disco magnético 846 y la unidad de disco óptico 850 cada uno se conecta a la barra de distribución 836 a través de una o más interfaces 854. Las unidades y sus medios que pueden ser leídos a través de una computadora asociada proporcionan almacenamiento permanente de las instrucciones que pueden ser leídas a través de la computadora, estructuras de datos, módulos de programa y otros datos para la computadora 830. Aunque el entorno ejemplar descrito en la presente emplea un disco duro, un disco magnético extraíble 848 y un disco óptico extraíble 852, debe ser evidente para los expertos en la técnica que otros tipos de medios flexibles por computadora que puedan almacenar datos a los que se pueda tener acceso a través de una computadora, como casetes magnéticos, tarjetas de memoria instantánea, discos de video digital, memorias de acceso aleatorio (RAM), memorias de sólo lectura (ROM) y similares, también pueden usarse en el entorno operativo de ejemplo. Diversos módulos de programa pueden almacenarse en el disco duro, en el disco magnético 848, en el disco óptico 852, en ROM 838 o RAM 540, incluyendo, a manera de ejemplo y sin limitarse a esto, un sistema operativo 858, uno o más programas de aplicación 860, otros módulos de programa 862 y datos de programa 864. Los programas de aplicación 860 pueden incluir una aplicación de mensajería instantánea, usando características y una pila de protocolo de transporte, como se analizó en la presente. Un usuario puede introducir comandos e información en la computadora 860 a través de dispositivos de entrada opcional, como un teclado 866 y un dispositivo puntero 868 (como un "ratón"). Otros dispositivos de entrada (no se muestra) pueden incluir un micrófono, un control de palanca de mando, una almohadilla de juego, una antena parabólica, un puerto en serie, explorador y similares. Estos y otros dispositivos de entrada se conectan a la unidad de procesamiento 832 a través de una interfaz de entrada 870 del usuario que se acopla a la barra de distribución 836, pero puede conectarse mediante otras estructuras de interfaz y de red de distribución, como un puerto paralelo, un puerto de juego o u na barra de distribución en serie un iversal (USB). Un monitor 872 opcional u otro ti po de dispositivo de visualización se conecta a la barra de distribución 836 a través de una interfaz, como u n adaptador de video 874. Además del monitor, las computadoras personales típicamente incluyen otros dispositivos periféricos de sal ida (no se muestran ), como altavoces e impresoras, las cuales se pueden conectar a través de la i nterfaz periférica de salida 875. La computadora 830 puede funcionar en u n entorno conectado en red usando conexiones lógicas a una o más computadoras remotas, como una computadora remota 882. La computadora remota 882 puede incl uir muchos o algunos elementos y características descritos en la presente con relación a la computadora 830. Las conexiones lógicas que se muestran en la Figura 8 son una red de área local (LAN) 877 y una red de área extensa (WAN ) general 879. La LAN 877 y/o la WAN 879 pueden ser redes cableadas, redes i nalámbricas o cua lqu ier combinación de redes cableadas o inalámbricas . Tales entornos de red son com unes en oficinas, redes de cómputo de empresas, redes internas e I nternet. Cuando se usa en un entorno de red LAN , la computadora 830 se conecta a la LAN 877 a través de u na i nterfaz de red o un adaptador 886. Cuando se usa en un entorno de red WAN , la computadora 830 típicamente incluye u n módem 878 u otros medios para establecer comunicaciones sobre la WAN 879. El módem 878, el cual puede ser interno o externo, puede conectarse a la barra de distribución del sistema 836 a través de la interfaz de entrada de usuario 870 u otro mecanismo adecuado. Como se ilustra en la Figura 8, una implementación específica de una WAN a través de Internet. La computadora 830, típicamente incluye un módem 878 u otro medio para establecer comunicaciones en Internet 870. El módem 878 se conecta a la barra de distribución 836 a través de la interfaz 870. En un entorno conectado en red, los módulos de programa que se ilustran con relación a la computadora personal 830, o porciones de ésta, se pueden almacenar en un dispositivo de almacenamiento de memoria remota. A manera de ejemplo, y no como limitante, la Figura 8 ilustra programas de aplicación remota 889 como residentes en un dispositivo de memoria de la computadora remota 882. Será evidente que las conexiones en red que se muestran o describen son ejemplares y pueden usarse otros medios para establecer un enlace de comunicación entre las computadoras. Conclusión Aunque las disposiciones y procedimientos descritos se han descrito con un lenguaje específico respecto a las características estructuras y/o operaciones metodológicas, debe comprenderse que el objeto definido en las reivindicaciones anexas no necesariamente está limitado a las características u operaciones específicas descritas. En su lugar, las características y operaciones específicas se describen como formas preferidas de implementar el objeto que se reclama en la presente.

Claims (22)

REIVINDICACIONES
1. - Un medio que puede ser leído a través de una computadora que tiene almacenado en éste instrucciones que pueden ser ejecutadas mediante una computadora para desarrollar un método que comprende: crear una sesión maestra sobre una primera conexión a través de un servidor; y crear un canal virtual sobre la conexión, el canal virtual puede funcionar para comunicar una sesión con características especiales.
2. - Un medio que puede ser leído a través de una computadora tal y como se describe en la reivindicación 1, caracterizado además porque el método también comprende: establecer una conexión directa que evita al servidor; y conmutar la comunicación de la sesión con características especiales a la conexión directa.
3. - Un medio que puede ser leído a través de una computadora tal y como se describe en la reivindicación 2, caracterizado además porque el establecimiento de una conexión directa comprende elegir un puente de transporte con base en una configuración de red.
4. - Un medio que puede ser leído a través de una computadora tal y como se describe en la reivindicación 1, caracterizado además porque la creación de un canal virtual comprende la transmisión de manera simultánea de la sesión con características especiales y la sesión maestra sobre la primera conexión.
5. - Un medio que puede ser leído a través de una computadora tal y como se describe en la reivindicación 4, caracterizado además porque la transmisión de manera simultánea comprende anexar un identificador de sesión con características especiales a los datos de la sesión con características especiales de un identificador de la sesión maestra a los datos de la sesión maestra.
6. - Un medio que puede ser leído a través de una computadora tal y como se describe en la reivindicación 1, caracterizado además porque la creación de una sesión maestra comprende inicializar la sesión maestra usando un protocolo de capa de sesión (SIP), en donde el SIP usa una dirección de correo electrónico para inicializar la sesión maestra.
7. - Un sistema para comunicación en red, el sistema comprende: una pluralidad de puentes de transporte, cada puente de transporte corresponde a una configuración de dispositivo activo de red; y un módulo de conmutación que puede funcionar para elegir uno de los puentes de transporte para formar una conexión entre dos dispositivos de cómputo con base en la configuración del dispositivo activo de red. 8.- El sistema tal y como se describe en la reivindicación 7, caracterizado además porque la configuración del dispositivo activo de red comprende al menos un cortafuegos entre el primer dispositivo de cómputo y el segundo dispositivo de cómputo. 9.- El sistema tal y como se describe en la reivindicación 7, caracterizado además porque la configuración del dispositivo activo de red comprende al menos un traductor de dirección de red entre el primer dispositivo de cómputo y el segundo dispositivo de cómputo. 10.- El sistema tal y como se describe en la reivindicación 7, caracterizado además porque la pluralidad de puentes comprende al menos uno de: un puente de protocolo de datagrama del usuario fiable; un puente de protocolo de control de transmisión/ protocolo de Internet (TCP/IP); y un puente de panel de distribución. 11. - El sistema tal y como se describe en la reivindicación 7, caracterizado además porque comprende; una característica y una sesión maestra que puede funcionar para crear una sesión con características especiales asociada con la característica. 12. - Un sistema tal y como se describe en la reivindicación 11, caracterizado además porque comprende una capa de transporte que puede funcionar para transmitir de manera simultánea datos característicos y datos de sesión maestra a través y comunicar los datos que se envían de manera simultánea a través del puente de transporte seleccionado. 13. - Una pila de protocolo de transporte para que sea usada por una aplicación de mensajería instantánea, la pila de protocolo de transporte comprende: una capa de puente que comprende una pluralidad de módulos de puente, cada módulo de puente corresponde a una configuración de dispositivo activo de red; y un módulo de conmutación que puede funcionar para seleccionar de manera dinámica uno de los módulos de puente con base en la configuración de dispositivo activo de la red. 14. - Una pila de protocolo de transporte tal y como se describe en la reivindicación 13, caracterizado además porque comprende un módulo de detección que puede funcionar para detectar la configuración del dispositivo activo de la red. 15. - Una pila de protocolo de transporte tal y como se describe en la reivindicación 13, caracterizado además porque el módulo de detección comprende un servidor de eco. 16. - Una pila de protocolo de transporte tal y como se describe en la reivindicación 13, caracterizado además porque comprende una capa de transporte que puede funcionar para transmitir de manera simultánea datos desde una pluralidad de sesiones a través del módulo de puente seleccionado. 17. - Una pila de protocolo de transporte tal y como se describe en la reivindicación 13, caracterizado además porque comprende una sesión maestra que puede funcionar para crear una o más sesiones con características especiales que corresponden a las características de la aplicación de mensajería instantánea. 1
8. - Un medio que puede ser leído a través de una computadora que tiene almacenado en ésta instrucciones que pueden ser ejecutadas a través de una computadora para realizar un método que comprende: establecer una sesión de mensajería instantánea entre una primera computadora cliente y una segunda computadora cliente a través de un servidor de panel de distribución; establecer de manera automática una conexión de computadora a computadora; transmitir los primeros datos asociados con la sesión de mensajería instantánea a través del servidor del panel de distribución; y transmitir los segundos datos asociados con la sesión de mensajería instantánea a través de la conexión de computadora a computadora. 1
9. - Un medio que puede ser leído a través de una computadora tal y como se describe en la reivindicación 18, el método además comprende: determinar una configuración de dispositivo activo de red asociado con la primera computadora cliente y la segunda computadora cliente; y seleccionar un puente de computadora a computadora que corresponde a la configuración de red activa. 20. - Un medio que puede ser leído a través de una computadora tal y como se describe en la reivindicación 18, caracterizado además porque el puente de computadora a computadora comprende un puente de RUDP. 21. - Un medio que puede ser leído a través de una computadora tal y como se describe en la reivindicación 19, caracterizado además porque el puente de computadora a computadora comprende un puente de TCP/IP. 22.- El medio que puede ser leído a través de una computadora tal y como se describe en la reivindicación 18, caracterizado además porque comprende: transmitir una primera porción de un BLOB de los primeros datos a través del servidor del panel de distribución; y transmitir una porción posterior del blob de los primeros datos a través de la conexión de computadora a computadora.
MXPA04006451A 2003-07-01 2004-06-30 Sistema de transporte para mensajeria instantanea. MXPA04006451A (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/611,575 US7363378B2 (en) 2003-07-01 2003-07-01 Transport system for instant messaging

Publications (1)

Publication Number Publication Date
MXPA04006451A true MXPA04006451A (es) 2005-08-19

Family

ID=33435436

Family Applications (1)

Application Number Title Priority Date Filing Date
MXPA04006451A MXPA04006451A (es) 2003-07-01 2004-06-30 Sistema de transporte para mensajeria instantanea.

Country Status (8)

Country Link
US (3) US7363378B2 (es)
EP (3) EP2259513A1 (es)
JP (2) JP4634077B2 (es)
KR (1) KR101150110B1 (es)
CN (1) CN1578278B (es)
BR (1) BRPI0402437A (es)
CA (2) CA2782768C (es)
MX (1) MXPA04006451A (es)

Families Citing this family (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7546337B1 (en) 2000-05-18 2009-06-09 Aol Llc, A Delaware Limited Liability Company Transferring files
US7366779B1 (en) * 2000-06-19 2008-04-29 Aol Llc, A Delaware Limited Liability Company Direct file transfer between subscribers of a communications system
US8266677B2 (en) * 2000-12-20 2012-09-11 Intellisync Corporation UDP communication with a programmer interface over wireless networks
US20030235538A1 (en) * 2002-04-09 2003-12-25 Boehringer Ingelheim Pharma Gmbh & Co. Kg Method for the administration of an anticholinergic by inhalation
US7978716B2 (en) * 2003-11-24 2011-07-12 Citrix Systems, Inc. Systems and methods for providing a VPN solution
US7493371B1 (en) * 2004-03-31 2009-02-17 Network Appliance, Inc. Using a client-server connection protocol to establish a peer-to-peer connection
US7672255B2 (en) 2004-04-05 2010-03-02 Oomble, Inc. Mobile instant messaging conferencing method and system
US7961663B2 (en) * 2004-04-05 2011-06-14 Daniel J. LIN Peer-to-peer mobile instant messaging method and device
US7764637B2 (en) * 2004-04-05 2010-07-27 Daniel J. LIN Peer-to-peer mobile instant messaging method and device
US7773550B2 (en) * 2004-04-05 2010-08-10 Daniel J. LIN Peer-to-peer mobile data transfer method and device
US8495305B2 (en) 2004-06-30 2013-07-23 Citrix Systems, Inc. Method and device for performing caching of dynamically generated objects in a data communication network
US8739274B2 (en) * 2004-06-30 2014-05-27 Citrix Systems, Inc. Method and device for performing integrated caching in a data communication network
US7757074B2 (en) 2004-06-30 2010-07-13 Citrix Application Networking, Llc System and method for establishing a virtual private network
WO2006012610A2 (en) * 2004-07-23 2006-02-02 Citrix Systems, Inc. Systems and methods for optimizing communications between network nodes
AU2005266945A1 (en) * 2004-07-23 2006-02-02 Citrix Systems, Inc. A method and systems for securing remote access to private networks
US20060053485A1 (en) * 2004-09-08 2006-03-09 Chia-Hsin Li Network connection through NAT routers and firewall devices
US7805517B2 (en) * 2004-09-15 2010-09-28 Cisco Technology, Inc. System and method for load balancing a communications network
US8838795B2 (en) * 2004-12-03 2014-09-16 At&T Intellectual Property I, L.P. System, method, apparatus, and product for resource sharing
US7558862B1 (en) * 2004-12-09 2009-07-07 LogMeln, Inc. Method and apparatus for remotely controlling a computer with peer-to-peer command and data transfer
US20060253605A1 (en) * 2004-12-30 2006-11-09 Prabakar Sundarrajan Systems and methods for providing integrated client-side acceleration techniques to access remote applications
US8954595B2 (en) * 2004-12-30 2015-02-10 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP buffering
US8700695B2 (en) * 2004-12-30 2014-04-15 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP pooling
US8549149B2 (en) 2004-12-30 2013-10-01 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP multiplexing
US7810089B2 (en) 2004-12-30 2010-10-05 Citrix Systems, Inc. Systems and methods for automatic installation and execution of a client-side acceleration program
US8255456B2 (en) 2005-12-30 2012-08-28 Citrix Systems, Inc. System and method for performing flash caching of dynamically generated objects in a data communication network
WO2006079954A1 (en) * 2005-01-31 2006-08-03 Koninklijke Philips Electronics N.V. Method and terminal for selecting a communication path depending on the presence of nat devices
KR100666956B1 (ko) * 2005-03-08 2007-01-10 삼성전자주식회사 네트워크에서의 미디어 전송 장치 및 방법
US7543065B2 (en) 2005-03-15 2009-06-02 Microsoft Corporation Method and system for reducing the number of ports allocated by a relay
US8036140B2 (en) * 2005-04-22 2011-10-11 Microsoft Corporation Application programming interface for inviting participants in a serverless peer to peer network
US7957402B2 (en) * 2005-08-08 2011-06-07 American Megatrends, Inc. UDP to TCP bridge
US20070043820A1 (en) * 2005-08-18 2007-02-22 George David A System and method for obtaining remote instant messages
WO2007058633A1 (en) * 2005-11-21 2007-05-24 Cheh Ngee Goh An apparatus for communication and a method thereof
US9047588B2 (en) * 2005-12-21 2015-06-02 International Business Machines Corporation E-mail protocol for instant message
US7921184B2 (en) * 2005-12-30 2011-04-05 Citrix Systems, Inc. System and method for performing flash crowd caching of dynamically generated objects in a data communication network
US8301839B2 (en) * 2005-12-30 2012-10-30 Citrix Systems, Inc. System and method for performing granular invalidation of cached dynamically generated objects in a data communication network
US8676899B2 (en) * 2006-01-26 2014-03-18 International Business Machines Corporation Offline IM chat to avoid server connections
CN100518114C (zh) * 2006-05-29 2009-07-22 腾讯科技(深圳)有限公司 一种基于点对点的数据传输方法及系统
DE102006030613A1 (de) * 2006-07-03 2008-01-10 Combots Product Gmbh & Co. Kg Verfahren und Kommunikationssystem zur Steuerung des Datenflusses über Netzwerkknoten
US20090132712A1 (en) * 2007-11-19 2009-05-21 General Instrument Corporation Method and system for session mobility between end user communication devices
JP4703576B2 (ja) 2007-01-15 2011-06-15 株式会社東芝 コネクションを維持する装置、方法およびプログラム
US7715386B2 (en) * 2007-03-15 2010-05-11 Microsoft Corporation Reducing network traffic to teredo server
US7764691B2 (en) * 2007-03-15 2010-07-27 Microsoft Corporation Allowing IPv4 clients to communicate using teredo addresses when both clients are behind a NAT
US7693091B2 (en) * 2007-03-30 2010-04-06 Microsoft Corporation Teredo connectivity between clients behind symmetric NATs
US8194683B2 (en) * 2007-03-30 2012-06-05 Microsoft Corporation Teredo connectivity between clients behind symmetric NATs
EP1988696B1 (en) 2007-05-01 2010-09-29 Research In Motion Limited Method and system for communicating and displaying data with a voice call
CN101330431B (zh) * 2007-06-19 2011-04-06 阿里巴巴集团控股有限公司 一种即时信息存储方法和系统
US8631155B2 (en) * 2007-06-29 2014-01-14 Microsoft Corporation Network address translation traversals for peer-to-peer networks
TWI407727B (zh) * 2007-07-25 2013-09-01 Tencent Tech Shenzhen Co Ltd A Method and System of Data Transmission Based on Peer - to - Peer P2P
US8086678B2 (en) 2007-09-24 2011-12-27 Zipit Wireless, Inc. Device centric controls for a device controlled through a web portal
US8875237B2 (en) * 2007-10-31 2014-10-28 Microsoft Corporation Private network access using IPv6 tunneling
US20090149205A1 (en) * 2007-12-10 2009-06-11 Zipit Wireless Inc. System And Method For Regulating Data Messaging Between A Wireless Device And A Mobile Communication Device Using Short Message Service
US9246613B2 (en) * 2008-05-20 2016-01-26 Verizon Patent And Licensing Inc. Method and apparatus for providing online social networking for television viewing
US8612753B2 (en) * 2008-12-23 2013-12-17 Intel Corporation Method and apparatus for protected code execution on clients
WO2010135174A1 (en) 2009-05-19 2010-11-25 Zipit Wireless, Inc. System and method for coupling a wireless device to social networking services and a mobile communication device
US10826718B2 (en) 2009-05-19 2020-11-03 Xerox Corporation System and method for coupling a digital appliance to a monitoring service
US10740745B2 (en) 2009-05-19 2020-08-11 Zipit Wireless, Inc. System and method for coupling a wireless device to social networking services and a mobile communication device
CN101631127A (zh) * 2009-08-06 2010-01-20 中兴通讯股份有限公司 文件传输方法及客户端
WO2011133195A1 (en) 2010-04-22 2011-10-27 Zipit Wireless, Inc. System and method for administration and operation of one or more mobile electronic communications devices
US9838223B2 (en) 2010-05-11 2017-12-05 Chepro Corporation Bidirectional communication system and server apparatus used therein
US8627411B2 (en) 2010-06-17 2014-01-07 Microsoft Corporation Techniques to share binary content
US9436685B2 (en) 2010-12-23 2016-09-06 Microsoft Technology Licensing, Llc Techniques for electronic aggregation of information
US9679404B2 (en) 2010-12-23 2017-06-13 Microsoft Technology Licensing, Llc Techniques for dynamic layout of presentation tiles on a grid
US20120166953A1 (en) * 2010-12-23 2012-06-28 Microsoft Corporation Techniques for electronic aggregation of information
GB2489283A (en) 2011-03-24 2012-09-26 Sony Corp OFDM frequency domain channel estimation with virtual scattered pilots created in frequency notches to restore pattern before interpolation
US9715485B2 (en) 2011-03-28 2017-07-25 Microsoft Technology Licensing, Llc Techniques for electronic aggregation of information
US9535888B2 (en) * 2012-03-30 2017-01-03 Bmenu As System, method, software arrangement and computer-accessible medium for a generator that automatically identifies regions of interest in electronic documents for transcoding
US9294563B2 (en) * 2013-02-27 2016-03-22 Omnivision Technologies, Inc. Apparatus and method for level-based self-adjusting peer-to-peer media streaming
CN103472995B (zh) * 2013-09-10 2016-06-08 小米科技有限责任公司 一种消息展示的方法、装置及终端设备
US10320730B2 (en) 2013-09-10 2019-06-11 Xiaomi Inc. Method and device for displaying message
US20150140978A1 (en) * 2013-11-18 2015-05-21 Zeta Project Swiss GmbH Voice conversations in a unified and consistent multimodal communication framework
US20160036873A1 (en) * 2014-08-01 2016-02-04 Smart Technologies Ulc Custom input routing using messaging channel of a ucc system
US9665414B2 (en) * 2015-01-21 2017-05-30 Oracle International Corporation Communication protocol bridge for card computing devices
US10419497B2 (en) * 2015-03-31 2019-09-17 Bose Corporation Establishing communication between digital media servers and audio playback devices in audio systems
US10237236B2 (en) * 2015-06-25 2019-03-19 Microsoft Technology Licensing, Llc Media Session
US11151239B2 (en) * 2017-10-02 2021-10-19 Red Hat, Inc. Single sign-on management for multiple independent identity providers
US20210092103A1 (en) * 2018-10-02 2021-03-25 Arista Networks, Inc. In-line encryption of network data
US11240318B1 (en) * 2021-05-11 2022-02-01 Integrity Security Services Llc Systems and methods for virtual multiplexed connections
CN114679354A (zh) * 2022-04-06 2022-06-28 北京小米移动软件有限公司 网关设备、桥接方法及装置、存储介质

Family Cites Families (112)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5278955A (en) * 1990-06-18 1994-01-11 International Business Machines Corporation Open systems mail handling capability in a multi-user environment
JPH0484248A (ja) * 1990-07-26 1992-03-17 Nec Corp 前置通信処理装置
US5432907A (en) * 1992-05-12 1995-07-11 Network Resources Corporation Network hub with integrated bridge
US6289390B1 (en) * 1993-08-18 2001-09-11 Microsoft Corporation System and method for performing remote requests with an on-line service network
US5446888A (en) 1994-01-14 1995-08-29 Pyne; Charles F. Remote file transfer method and apparatus
JPH07311704A (ja) 1994-05-19 1995-11-28 Fujitsu Ltd ディレクトリシステム
WO1996017306A2 (en) * 1994-11-21 1996-06-06 Oracle Corporation Media server
WO1997019429A1 (en) 1995-11-20 1997-05-29 Motorola Inc. Displaying graphic messages in a radio receiver
US5802282A (en) * 1995-12-28 1998-09-01 Intel Corporation Recovering missing data during background data transfer in multipoint conferencing
US7013327B1 (en) 1996-02-16 2006-03-14 G&H Nevada -Tek Method and apparatus for computing within a wide area network
US6347085B2 (en) * 1996-08-16 2002-02-12 Netspeak Corporation Method and apparatus for establishing communications between packet-switched and circuit-switched networks
US5943478A (en) * 1997-04-04 1999-08-24 Flash Communications, Inc. System for immediate popup messaging across the internet
US5940390A (en) * 1997-04-10 1999-08-17 Cisco Technology, Inc. Mechanism for conveying data prioritization information among heterogeneous nodes of a computer network
US6003088A (en) * 1997-08-29 1999-12-14 International Business Machines Corporation Blocking IP datagrams in a multi-path channel point-to-point environment
US5987515A (en) * 1997-08-29 1999-11-16 International Business Machines Corporation Internet protocol assists using multi-path channel protocol
US6065062A (en) * 1997-12-10 2000-05-16 Cisco Systems, Inc. Backup peer pool for a routed computer network
US6052531A (en) 1998-03-25 2000-04-18 Symantec Corporation Multi-tiered incremental software updating
US6292880B1 (en) * 1998-04-15 2001-09-18 Inktomi Corporation Alias-free content-indexed object cache
US6252588B1 (en) 1998-06-16 2001-06-26 Zentek Technology, Inc. Method and apparatus for providing an audio visual e-mail system
US6463078B1 (en) * 1998-07-22 2002-10-08 Microsoft Corporation Method for switching protocols transparently in multi-user applications
US6262977B1 (en) * 1998-08-28 2001-07-17 3Com Corporation High availability spanning tree with rapid reconfiguration
JP2002525763A (ja) * 1998-09-23 2002-08-13 シーメンス アクチエンゲゼルシヤフト アクションに基づいて2つの状態の間の状態遷移が行われる、状態を有するシステムに対するアクションのシーケンスをもとめるための方法及び装置
US6490615B1 (en) * 1998-11-20 2002-12-03 International Business Machines Corporation Scalable cache
US6873616B1 (en) * 1998-12-28 2005-03-29 Nortel Networks Limited Quasi-deterministic gateway selection algorithm for multi-domain source routed networks
US6760775B1 (en) * 1999-03-05 2004-07-06 At&T Corp. System, method and apparatus for network service load and reliability management
MXPA01010798A (es) 1999-04-26 2003-09-04 Nokia Mobile Phones Ltd Terminal de radio para examinar "internet".
US6788692B1 (en) * 1999-05-03 2004-09-07 Nortel Networks Limited Network switch load balancing
TW428146B (en) 1999-05-05 2001-04-01 Inventec Corp Data file updating method by increment
US7286115B2 (en) 2000-05-26 2007-10-23 Tegic Communications, Inc. Directional input system with automatic correction
US6549937B1 (en) * 1999-07-21 2003-04-15 Microsoft Corporation System and method for multi-protocol communication in a computer network
EP1075119A3 (en) * 1999-08-03 2002-09-18 AT&T Corp. Real-time messaging system with hyperlinks to objects on an application server
US6434568B1 (en) * 1999-08-31 2002-08-13 Accenture Llp Information services patterns in a netcentric environment
US6535867B1 (en) * 1999-09-29 2003-03-18 Christopher J. F. Waters System and method for accessing external memory using hash functions in a resource limited device
ATE357025T1 (de) * 1999-10-18 2007-04-15 Eighting Kk Informationsverteilungssystem, -verfahren und durch rechner lesbares mediumspeicherverteilungssystem
DE69935339T2 (de) * 1999-12-02 2007-11-15 Sony Deutschland Gmbh Protokoll für sofortige Nachrichtenübermittlung
JP2001175550A (ja) 1999-12-07 2001-06-29 Kizna.Com Inc クライアントサーバシステム及びクライアントサーバシステムのデータ伝送方法並びにそのプログラムを記録した媒体
US6931003B2 (en) * 2000-02-09 2005-08-16 Bookline Flolmstead Llc Packet prioritization protocol for a large-scale, high speed computer network
US6993559B2 (en) 2000-02-14 2006-01-31 Bigbow.Com, Inc. System, method, apparatus and computer program product for operating a web site by electronic mail
US7031956B1 (en) 2000-02-16 2006-04-18 Verizon Laboratories Inc. System and method for synchronizing and/or updating an existing relational database with supplemental XML data
US6594665B1 (en) * 2000-02-18 2003-07-15 Intel Corporation Storing hashed values of data in media to allow faster searches and comparison of data
EP1130869B1 (en) * 2000-03-01 2005-06-01 Sony International (Europe) GmbH Management of user profile data
US20030014477A1 (en) 2000-03-22 2003-01-16 Oppenheimer David Mig Integrated system and method of providing online access to files
US6941344B2 (en) * 2000-04-07 2005-09-06 Andrew J. Prell Method for managing the simultaneous utilization of diverse real-time collaborative software applications
JP3855595B2 (ja) * 2000-04-25 2006-12-13 株式会社日立製作所 通信システム、通信方法及び通信装置
WO2001093503A2 (en) * 2000-05-31 2001-12-06 Snip, Llc Method and system for instant messaging
US6453294B1 (en) * 2000-05-31 2002-09-17 International Business Machines Corporation Dynamic destination-determined multimedia avatars for interactive on-line communications
US6807178B1 (en) * 2000-05-31 2004-10-19 Telefonaktiebolaget Lm Ericsson (Publ) Session dispatcher at a wireless multiplexer interface
WO2002003217A1 (en) * 2000-06-30 2002-01-10 Net2Phone System, method, and computer program product for resolving addressing in a network including a network address translator
ATE502477T1 (de) 2000-07-25 2011-04-15 America Online Inc Videonachrichtenübermittlung
US20020036990A1 (en) 2000-09-11 2002-03-28 Ben Chodor Still picture capture, editing and distribution system utilizing a publicly accessible wide area network
US7870196B2 (en) 2000-11-08 2011-01-11 Nokia Corporation System and methods for using an application layer control protocol transporting spatial location information pertaining to devices connected to wired and wireless internet protocol networks
US7222184B2 (en) 2000-11-29 2007-05-22 Ncr Corporation Method of downloading web content to a network kiosk in advance
KR100377936B1 (ko) 2000-12-16 2003-03-29 삼성전자주식회사 이동통신 단말기의 감정 아이콘 입력방법
AU2002234258A1 (en) 2001-01-22 2002-07-30 Sun Microsystems, Inc. Peer-to-peer network computing platform
US20020103898A1 (en) * 2001-01-31 2002-08-01 Moyer Stanley L. System and method for using session initiation protocol (SIP) to communicate with networked appliances
US20020107925A1 (en) 2001-02-05 2002-08-08 Robert Goldschneider Method and system for e-mail management
US6993012B2 (en) * 2001-02-20 2006-01-31 Innomedia Pte, Ltd Method for communicating audio data in a packet switched network
CA2761983C (en) * 2001-02-20 2012-11-27 Eyeball Networks Inc. Method and apparatus to permit data transmission to traverse firewalls
US20020194006A1 (en) 2001-03-29 2002-12-19 Koninklijke Philips Electronics N.V. Text to visual speech system and method incorporating facial emotions
US7080139B1 (en) 2001-04-24 2006-07-18 Fatbubble, Inc Method and apparatus for selectively sharing and passively tracking communication device experiences
JP2002330152A (ja) * 2001-04-27 2002-11-15 Fujitsu Ltd 障害時/増設時におけるスパニングツリー制御装置及び方法
US7171415B2 (en) 2001-05-04 2007-01-30 Sun Microsystems, Inc. Distributed information discovery through searching selected registered information providers
DE60224455D1 (de) 2001-05-11 2008-02-14 Nokia Corp Mobiler "Instant Messaging"- und Präsenzdienst
US7480707B2 (en) * 2001-05-16 2009-01-20 International Business Machines Corporation Network communications management system and method
US6983305B2 (en) * 2001-05-30 2006-01-03 Microsoft Corporation Systems and methods for interfacing with a user in instant messaging
US6813690B1 (en) * 2001-06-12 2004-11-02 Network Appliance, Inc. Caching media data using content-sensitive identifiers
US7149189B2 (en) 2001-07-17 2006-12-12 Mcafee, Inc. Network data retrieval and filter systems and methods
WO2003010728A1 (en) 2001-07-24 2003-02-06 Koninklijke Kpn N.V. Method and system and data source for processing of image data
US6987991B2 (en) 2001-08-17 2006-01-17 Wildseed Ltd. Emoticon input method and apparatus
US7765484B2 (en) 2001-09-28 2010-07-27 Aol Inc. Passive personalization of lists
US7633942B2 (en) * 2001-10-15 2009-12-15 Avaya Inc. Network traffic generation and monitoring systems and methods for their use in testing frameworks for determining suitability of a network for target applications
NO315679B1 (no) 2001-10-19 2003-10-06 Dmates As Rik kommunikasjon over internett
US8095668B2 (en) * 2001-11-09 2012-01-10 Rockstar Bidco Lp Middlebox control
US6983370B2 (en) * 2001-11-27 2006-01-03 Motorola, Inc. System for providing continuity between messaging clients and method therefor
JP2003167832A (ja) * 2001-11-29 2003-06-13 Minolta Co Ltd メッセージ処理システムおよびメッセージ処理装置
US7127613B2 (en) * 2002-02-25 2006-10-24 Sun Microsystems, Inc. Secured peer-to-peer network data exchange
US7233979B2 (en) * 2002-03-14 2007-06-19 Microsoft Corporation Instant messaging session invite for arranging peer-to-peer communication between applications
US7203356B2 (en) * 2002-04-11 2007-04-10 Canesta, Inc. Subject segmentation and tracking using 3D sensing technology for video compression in multimedia applications
US6629793B1 (en) 2002-04-26 2003-10-07 Westie Intellectual Properties Limited Partnership Emoticon keyboard
US7689649B2 (en) 2002-05-31 2010-03-30 Aol Inc. Rendering destination instant messaging personalization items before communicating with destination
US7779076B2 (en) 2002-05-31 2010-08-17 Aol Inc. Instant messaging personalization
US20030225848A1 (en) 2002-05-31 2003-12-04 Brian Heikes Remote instant messaging personalization items
US20030217142A1 (en) 2002-05-15 2003-11-20 Microsoft Corporation Method and system for supporting the communication of presence information regarding one or more telephony devices
US7552204B2 (en) 2002-05-15 2009-06-23 Microsoft Corporation Method and system for supporting the communication of presence information among computing devices of a network
US7486611B1 (en) * 2002-05-20 2009-02-03 Cisco Technology, Inc. Standby router protocol using optimal route metric
US20030225847A1 (en) 2002-05-31 2003-12-04 Brian Heikes Sending instant messaging personalization items
EP1556956B1 (en) * 2002-06-26 2018-03-07 Yahoo Holdings, Inc. System and method for communicating images between intercommunicating users
US6757722B2 (en) 2002-07-16 2004-06-29 Nokia Corporation System and method for providing partial presence notifications
US9497168B2 (en) * 2002-07-30 2016-11-15 Avaya Inc. Method and apparatus for supporting communications between a computing device within a network and an external computing device
ITTO20020724A1 (it) 2002-08-14 2004-02-15 Telecom Italia Lab Spa Procedimento e sistema per la trasmissione di messaggi su
US7657597B2 (en) 2002-09-26 2010-02-02 Sun Microsystems, Inc. Instant messaging using distributed indexes
US7353253B1 (en) 2002-10-07 2008-04-01 Webex Communicatons, Inc. Peer-to-peer messaging system
US7774410B2 (en) 2002-11-18 2010-08-10 Aol Inc. Handling a multimedia object associated with an electronic message
US7289520B2 (en) 2002-11-20 2007-10-30 Hewlett-Packard Development Company, L.P. Method, apparatus, and system for expressway routing among peers
US7523165B2 (en) 2002-12-24 2009-04-21 Telefonaktiebolaget L M Ericsson (Publ) Transmission of application information and commands using presence technology
US7185285B2 (en) 2003-02-19 2007-02-27 Microsoft Corporation User interface and content enhancements for real-time communication
US20040249958A1 (en) * 2003-06-04 2004-12-09 Ozdemir Hasan Timucin Method and apparatus for secure internet communications
US20040260841A1 (en) * 2003-06-19 2004-12-23 Mathew Tisson K. Method, apparatus, and system for internet protocol communication over intelligent platform management bus
US7296223B2 (en) 2003-06-27 2007-11-13 Xerox Corporation System and method for structured document authoring
WO2005017660A2 (en) 2003-07-01 2005-02-24 Apple Computer, Inc. Peer-to-peer content sharing
US7539727B2 (en) 2003-07-01 2009-05-26 Microsoft Corporation Instant messaging object store
JP4046654B2 (ja) 2003-07-04 2008-02-13 日本電信電話株式会社 P2p通信システム
US20050027839A1 (en) 2003-07-31 2005-02-03 International Business Machiness Corporation Method, system and program product for dynamic transmission in a messaging session
AU2003903994A0 (en) 2003-07-31 2003-08-14 Canon Kabushiki Kaisha Collaborative editing with automatic layout
US7315866B2 (en) 2003-10-02 2008-01-01 Agency For Science, Technology And Research Method for incremental authentication of documents
US7437374B2 (en) 2004-02-10 2008-10-14 International Business Machines Corporation Efficient XML schema validation of XML fragments using annotated automaton encoding
US20060015560A1 (en) 2004-05-11 2006-01-19 Microsoft Corporation Multi-sensory emoticons in a communication system
US20050273472A1 (en) 2004-06-04 2005-12-08 Prakash Reddy Verifying incremental updates to hierarchicaly structured information
US7437364B1 (en) 2004-06-30 2008-10-14 Google Inc. System and method of accessing a document efficiently through multi-tier web caching
TWI262678B (en) 2004-06-30 2006-09-21 Inst Information Industry Peer-to-peer communication system, method and machine-readable storage medium
US7302270B1 (en) 2004-08-02 2007-11-27 Cisco Technology, Inc. Time interval processing and annotation in presence systems
US7552430B2 (en) 2004-08-31 2009-06-23 Microsoft Corporation Patch sequencing

Also Published As

Publication number Publication date
US20080209051A1 (en) 2008-08-28
US20050005014A1 (en) 2005-01-06
US20120233339A1 (en) 2012-09-13
EP1494410B1 (en) 2013-08-14
CA2470013C (en) 2012-09-11
KR101150110B1 (ko) 2012-06-08
BRPI0402437A (pt) 2005-05-24
EP1494410A3 (en) 2005-03-09
CN1578278B (zh) 2019-07-16
CA2782768C (en) 2014-12-02
US8185635B2 (en) 2012-05-22
CA2782768A1 (en) 2005-01-01
EP2259514A1 (en) 2010-12-08
US7363378B2 (en) 2008-04-22
KR20050004079A (ko) 2005-01-12
JP2005027318A (ja) 2005-01-27
JP4634077B2 (ja) 2011-02-16
CA2470013A1 (en) 2005-01-01
JP2011054178A (ja) 2011-03-17
CN1578278A (zh) 2005-02-09
EP1494410A2 (en) 2005-01-05
EP2259513A1 (en) 2010-12-08

Similar Documents

Publication Publication Date Title
MXPA04006451A (es) Sistema de transporte para mensajeria instantanea.
US7860921B2 (en) Uniform network access
US20120042027A1 (en) NAT Traversal for Media Conferencing
US20040190549A1 (en) Allowing IPv4 clients to communicate over an IPv6 network when behind a network address translator with reduced server workload
US6879593B1 (en) Connections of nodes on different networks
KR20020042805A (ko) 통신 관리자가 장치된 컴퓨터 시스템에 의한액티브티-베이스 협력 방법 및 장치
EP1504360A1 (en) Instant messaging architecture and system for interoperability and presence management
US20060161680A1 (en) Communications Interchange System
US7730192B2 (en) Managing parallel requests in a communications environment supporting serial and parallel request handlers
US8601094B2 (en) Method and computer program product utilizing multiple UDP data packets to transfer a quantity of data otherwise in excess of a single UDP packet
US7680112B2 (en) Peer-to-peer communication system
MXPA06001530A (es) Sugerencias de enrutamiento.
WO2000070478A1 (en) Uniform network access
US6760771B1 (en) Method and system for optimally dispatching internetwork traffic
Christ Tcp/ip enabled legos
Pauly et al. TAPS Working Group B. Trammell Internet-Draft ETH Zurich Intended status: Informational C. Perkins Expires: March 12, 2018 University of Glasgow
CN112448966A (zh) 基于tcp/ip的网络聊天程序
WO2001099361A1 (en) Method and system for selecting transmission means
Jia et al. Interprocess Communication Using Message Passing
Pouffary RFC1859: ISO Transport Class 2 Non-use of Explicit Flow Control over TCP RFC1006 extension

Legal Events

Date Code Title Description
FG Grant or registration