US6822957B1 - Distributed network address translation for a network telephony system - Google Patents

Distributed network address translation for a network telephony system Download PDF

Info

Publication number
US6822957B1
US6822957B1 US09/707,708 US70770800A US6822957B1 US 6822957 B1 US6822957 B1 US 6822957B1 US 70770800 A US70770800 A US 70770800A US 6822957 B1 US6822957 B1 US 6822957B1
Authority
US
United States
Prior art keywords
network
port
phone
address
protocol
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related, expires
Application number
US09/707,708
Inventor
Guido M. Schuster
Michael S. Borella
David A. Grabelsky
Ikhlaq S. Sidhu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HP Inc
Hewlett Packard Enterprise Development LP
Original Assignee
3Com 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
Priority to US09/707,708 priority Critical patent/US6822957B1/en
Application filed by 3Com Corp filed Critical 3Com Corp
Assigned to 3COM CORPORATION reassignment 3COM CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BORELLA, MICHAEL S., GRABELSKY, DAVID A., SCHUSTER, GUIDO M., SIDHU, IKHLAQ S.
Assigned to 3COM CORPORATION reassignment 3COM CORPORATION CORRECTIVE ASSIGNMENT TO CORRECT THE SECOND ASSIGNOR'S EXECUTION DATE PREVIOUSLY RECORDED ON REEL 011927, FRAME 0962. ASSIGNOR HEREBY CONFIRMS THE ASSIGNMENT OF THE ENTIRE INTEREST. Assignors: BORELLA, MICHAEL S., GRABELSKY, DAVID A., SCHUSTER, GUIDO M., SIDHU, IKHLAQ S.
Publication of US6822957B1 publication Critical patent/US6822957B1/en
Application granted granted Critical
Assigned to HEWLETT-PACKARD COMPANY reassignment HEWLETT-PACKARD COMPANY MERGER (SEE DOCUMENT FOR DETAILS). Assignors: 3COM CORPORATION
Assigned to HEWLETT-PACKARD COMPANY reassignment HEWLETT-PACKARD COMPANY CORRECTIVE ASSIGNMENT TO CORRECT THE SEE ATTACHED Assignors: 3COM CORPORATION
Assigned to HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P. reassignment HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: HEWLETT-PACKARD COMPANY
Assigned to HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P. reassignment HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P. CORRECTIVE ASSIGNMENT PREVIUOSLY RECORDED ON REEL 027329 FRAME 0001 AND 0044. Assignors: HEWLETT-PACKARD COMPANY
Assigned to HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP reassignment HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Adjusted expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • 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/2517Translation of Internet protocol [IP] addresses using port numbers
    • 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/2521Translation architectures other than single NAT servers
    • H04L61/2532Clique of NAT servers
    • 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/2564NAT traversal for a higher-layer protocol, e.g. for session initiation protocol [SIP]
    • 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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates

Definitions

  • the present invention relates to network telephony systems. More particularly, the present invention relates to providing distributed network address translation for a network telephony system.
  • IP telephony As the quality of network telephony systems has improved, there has been a migration of users from the traditional Public Switched Telephone Network (PSTN) to network telephony systems.
  • PSTN Public Switched Telephone Network
  • Internet telephony With the proliferation of the Internet, Internet telephony has enabled distantly located users to communicate with one another using data protocols underlying the Internet. For example, the Internet Protocol suite along with various signaling protocols has made IP telephony a popular form of network telephony.
  • Session Initiation Protocol is a signaling protocol that may be used to assist with call set-up, management, and teardown.
  • Other signaling protocols such as the ITU-T H.323, MEGACO, and MGCP protocols, may also be used to implement various signaling functions. While these network telephony systems have provided advantages in cost and flexibility, certain challenges have arisen. In particular, problems have arisen that are due, in part, to the success of the Internet as a whole.
  • IP Internet Protocol
  • IP version 4 IP version 4
  • IPv6 IP version 6
  • NAT Network Address Translation
  • 3Com Corporation the assignee of the present invention.
  • NAT interferes with the end-to-end routing principal of the Internet, which specifies that packets flow end-to-end between network devices without the contents of any packet changing along a transmission route (see e.g., Routing in the Internet , by C. Huitema, Prentice Hall, 1995).
  • Current versions of NAT replace a private network address in a data packet header with an external network address on outbound traffic, and replace an external address in a data packet header with a private network address on inbound traffic.
  • NAT File Transfer Protocol
  • NAT potentially requires that support for many different internal network protocols be specifically programmed into a translation mechanism for external protocols in a NAT device, such as a NAT router.
  • a router translates differences between network protocols and routes data packets to an appropriate network node or network device.
  • Computational burdens placed on a NAT router may be significant and may degrade network performance, especially if several NAT-enabled stub networks share the same NAT router.
  • a NAT router translates every inbound and outbound data packet. This may result in delays, and thus, degradation of call quality for a network telephony system. Call quality is typically a primary concern in network telephony systems.
  • TCP Transmission Control Protocol
  • UDP User Datagram Protocol
  • TCP provides a connection-oriented, end-to-end reliable protocol designed to fit into a layered hierarchy of protocols that supports multi-network applications.
  • UDP provides a transaction-oriented datagram protocol, where delivery and duplicate packet protection are not guaranteed.
  • NAT When NAT is used to translate a TCP/IP or UDP/IP data packet, the packet's IP, TCP, or UDP checksums are recalculated.
  • a port in a TCP or UDP header is translated, the packet's TCP or UDP checksums are also recalculated. This further increases the computational cost of translation in a NAT router.
  • a new length may result for the data packet and a possible change in a TCP sequence number.
  • a running sequence number offset i.e., a delta
  • This delta must be applied to future traffic, further increasing computational time in a NAT router.
  • a NAT router In addition to TCP or UDP, a NAT router must be able to translate addresses and/or ports, change lengths, and maintain sequence numbers for a number of different protocols that may transmit an IP address or port number (e.g., SIP, FTP, H.323, H.324, CUSeeMe, RealAudio, Internet Relay Chat, and others).
  • SIP SIP
  • FTP FTP
  • H.323, H.324, CUSeeMe RealAudio
  • Internet Relay Chat Internet Relay Chat
  • NAT breaks some of the functionality of SIP and other signaling protocols.
  • a SIP-based network phone typically advertises a local IP address, even to network devices located outside the local network. This local IP address is likely to be completely different from an external address provided by a NAT device.
  • problems may arise while negotiating a media channel to exchange media (such as voice data) between two network phones located remotely from one another.
  • a method for distributed network address translation in a network telephony system requests at least one locally unique port from a first network device.
  • the first network phone and the first network device are located on a first network.
  • the first network phone receives, with the first protocol, the at least one locally unique port from the first network device.
  • At least one default or ephemeral port on the first network phone is replaced with the at least one locally unique port.
  • a combination network address is created for the first network phone with the at least one locally unique port and a common external network address, thereby identifying the first network phone for communications with a second network device located on a second network.
  • the second network device may, for example, be a second network phone.
  • the first protocol is a Port Allocation Protocol, such as the Realm Specific Internet Protocol.
  • the method additionally includes the first network phone sending a request to the first network device on the first network.
  • the first network device routes the request to the second network.
  • the first network device receives a reply on the first network for the first network phone on the common external network address for the first network from the combination network address.
  • the first network device routes the reply to the first network phone using the at least one locally unique port from the combination network address.
  • a method for distributed network address translation on a network telephony system requests, with a first protocol, at least one locally unique port from a first network device.
  • the first network phone and the first network device are located on a first network.
  • the first network phone receives, with the first protocol, the at least one locally unique port from the first network device.
  • a higher level protocol layer in a layered protocol stack on the first network phone creates, for a second network device on a second network, a request including a common external network address and a local port on the first network phone.
  • the higher level protocol layer forwards the request to a lower level protocol layer in the first network phone.
  • the lower level protocol layer translates the local port in the request to a locally unique port on the first network phone.
  • the first network phone sends the request to a third network device on the first network.
  • the third network device forwards the request to the second network device.
  • the method additionally includes the third network device receiving a response on the common external network address for the first network phone from the second network device.
  • the response includes the common external network address and the locally unique port for the first network phone.
  • the third network device sends the response to the first network phone.
  • the lower level protocol layer in the first network phone translates the locally unique port in the response to the local port for the first network phone.
  • the lower level protocol layer forwards the response to the higher level protocol layer on the first network phone.
  • a system for distributed network address translation in a network telephony system includes a first network phone on a first network, with a combination network address from a Port Allocation Protocol.
  • the combination network address allows distributed network address translation and includes a locally unique port on the first network and a common external network address for the first network.
  • the first network phone is operable to transmit an request, including the combination network address.
  • the system also includes a second network phone on a second network, operable to receive the invite request and to transmit a response to the first network phone.
  • the response also includes the combination network address.
  • FIG. 1 is a simplified block diagram illustrating a network telephony system according to an exemplary embodiment of the present invention
  • FIG. 2 is a block diagram illustrating a layered protocol stack for distributed network address translation in a network telephony system according to an exemplary embodiment of the present invention
  • FIG. 3 is a block diagram illustrating a Port Allocation Protocol (PAP) according to an exemplary embodiment of the present invention
  • FIG. 4 is a block diagram illustrating a PAP request message layout according to an exemplary embodiment of the present invention.
  • FIG. 5 is a block diagram illustrating a PAP response message layout according to an exemplary embodiment of the present invention.
  • FIG. 6 is a block diagram illLIstrating a PAP invalidate message layout according to an exemplary embodiment of the present invention.
  • FIG. 7 is a block diagram illustrating a combination network address layout for a combination network address according to an exemplary embodiment of the present invention.
  • FIG. 8 is a block diagram illustrating a port-to-internal address table layout maintained by a router or other device implementing PAP, according to an exemplary embodiment of the present invention
  • FIG. 9 is a flow diagram illustrating a method for enabling distributed network address translation in a network telephony system, according to an exemplary embodiment of the present invention.
  • FIG. 10 is a flow diagram illustrating a method for distributed network address translation in a network telephony system, according to an exemplary embodiment of the present invention.
  • FIG. 11 illustrates a SPTT layout for use in a network telephony system, according to an exemplary embodiment of the present invention
  • FIG. 12 illustrates an IPATT layout for use in a network telephony system, according to an exemplary embodiment of the present invention
  • FIG. 13 illustrates a method for outbound distributed network address translation using port translation, for use in a network telephony system, according to an exemplary embodiment of the present invention.
  • FIG. 14 is a flow diagram illustrating a method for inbound distributed network address translation using port translation, for use in a network telephony system, according to an exemplary embodiment of the present invention.
  • FIG. 1 is a simplified block diagram illustrating a network telephony system 10 according to an exemplary embodiment of the present invention.
  • System 10 includes a first computer network 12 with multiple network devices ( 14 , 16 , 18 , 20 , 22 , 24 ) and a router 26 to route data packets to another external computer network.
  • the multiple network devices include any of computers ( 14 , 18 ), printers 16 , telephony proxy servers 24 , hand-held devices 20 , network phones 22 , and/or other network devices not illustrated in FIG. 1.
  • a typical network telephony system will likely include many network phones similar to network phone 22 . In addition, other network phones may exist on external computer networks.
  • First computer network 12 has an external common network address 28 (e.g., an IP address 198.10.20.30) to identify first network 12 to an external computer network, such as a second computer network 30 and/or a third computer network 32 external to first computer network 12 .
  • the multiple network devices ( 14 , 16 , 18 , 20 , 22 , 24 , and 26 ) have an internal network address for first computer network 12 (e.g., 10.0.0.X, explained below).
  • a network access service provider 34 with a router 36 routes data packets to/from first computer network 12 to second computer network 30 and/or third computer network 32 through a second network switch 38 and/or a third network switch 40 .
  • first network 12 is a Small Office/Home Office (SOHO) Local Area Network (LAN), also called a “Legacy” LAN
  • second network 30 is an internet, such as the public Internet
  • third network 32 is a Public Switched Telephone Network (PSTN).
  • PSTN Public Switched Telephone Network
  • the second computer network 30 may contain additional access networks having one or more network phones similar to network phone 22 .
  • a second network phone 39 is shown linked to second network 30
  • second network phone 39 may alternatively be linked to an access network linked to or composing the second network 30 .
  • Other network types and network components may also be used and the present invention is not limited to the network types and network components described in the illustrative embodiment of FIG. 1 .
  • An operating environment for network devices and routers of various embodiments of the present invention may include a processing system with at least one high speed Central Processing Unit (CPU) and a memory.
  • CPU Central Processing Unit
  • a memory may be any type of memory.
  • CPU Central Processing Unit
  • FIG. 1 An operating environment for network devices and routers of various embodiments of the present invention.
  • FIG. 1 An operating environment for network devices and routers of various embodiments of the present invention.
  • CPU Central Processing Unit
  • acts and symbolically represented operations include the manipulation of electrical signals by the CPU.
  • the electrical system represents data bits which cause a resulting transformation or reduction of the electrical signal representation, and the maintenance of data bits at memory locations in a memory system to thereby reconfigure or otherwise alter the CPU's operation, as well as other processing of signals.
  • the memory locations where data bits are maintained are physical locations that have particular electrical, magnetic, optical, or organic properties corresponding to the data bits.
  • the data bits may also be maintained on a computer readable medium including magnetic disks, optical disks, and any other volatile (e.g., Random Access Memory (RAM)) or non-volatile (e.g. Read-Only Memory (ROM)) mass storage system readable by the CPU.
  • the computer readable medium includes cooperating or interconnected computer readable media, which exist exclusively on the processing system or which are distributed among multiple interconnected processing systems that may be local or remote to the processing system.
  • router 26 translates an internal network address, such as an internal IP address, used on first network 12 to an external network address, such as an IP address for outgoing traffic to second network 30 or third network 32 .
  • Router 26 also translates an external network address to an internal network address for incoming traffic from second network 30 or third network 32 .
  • a NAT router may assume the entire computational burden for network address translation. For large stub networks or 50 or more network devices, the NAT router may become a bottleneck. In the worst case, every packet passing through the NAT router will require address translation.
  • NAT The IP Network Address Translator
  • IETF Internet Engineering Taskforce
  • RFC-1631 Request for Comments
  • NAT Bypass for ‘End 2 End’ Sensitive Applications by G. Tsirtsis and A.
  • the network phone 22 may be used to place and receive network telephony calls.
  • Other devices such as PC 14 or PC 18 may be configured with appropriate software, firmware, and/or hardware to function as a network phone.
  • the proxy server 24 may be used to perform routing of signaling requests and responses, such as routing of an inbound requests from the second network phone 39 located on second network 30 , where the inbound request is directed to network phone 22 .
  • the system 10 utilizes the SIP signaling protocol.
  • SIP Session Initiation Protocol
  • IETF RFC 2543 March 1999
  • Schulzrinne H. and Rosenberg J. “The Session Initiation Protocol: Internet—Centric Signaling,” IEEE Communications Magazine, October 2000, Vol. 38, No. 10.
  • Other signaling protocols such as H-323, MGCP, MEGACO, and other standard or proprietary techniques may alternatively be used.
  • network phones such as network phones 22 and 39 may each contain a SIP client and a SIP server.
  • the proxy server 24 may also contain a SIP client and a SIP server.
  • Additional user agents may be included in the network 10 , as may additional proxy servers.
  • system 10 may also include other servers, such as registration servers, redirect servers, and/or location servers. One or more of these server types may be combined into one physical device.
  • a typical implementation for SIP-based IP telephony is a system of SIP-based network phones such as the 3Com® SIP phone, offered by 3Com Corporation, the assignee of the present invention.
  • Another typical implementation includes one or more personal computers with software to perform SIP user agent functions, and user interface hardware, such as microphones and speakers to serve as means for communicating voice information.
  • user interface hardware such as microphones and speakers to serve as means for communicating voice information.
  • Other user interfaces such as those used for video and/or other types of communication data, may also be used and are intended to be within the scope of the present invention.
  • the system 10 may be used to implement IP telephony, as well as other telephony-related functions. Further details on how such a system operates may be found by referring to the following patent applications, assigned to the assignee of the present invention, and incorporated by reference herein:
  • a first user (the caller) located at network phone 22 may call a second user (the callee) located at the second network phone 39 on the second network 30 according to the following procedure, described in IETF RFC 2543.
  • the network phone 22 transmits an INVITE request to a proxy server located on the second network 30 .
  • the INVITE request includes a FROM field to set forth the caller's SIP address and a TO field to set forth the callee's SIP address.
  • the proxy server will typically be located in the same domain as is specified in the FROM field.
  • the proxy server 124 may use a location service locally or remotely located to the proxy server 124 to determine the location of the callee, identified in the INVITE request.
  • the callee may have recently moved from one location to a second location (which may be on the second network 30 or elsewhere).
  • the proxy server determines that the second user is located at the second network phone 39 , the proxy server transmits an INVITE request to the second network phone 39 .
  • the INVITE request may simply be a forwarded version of the INVITE request from the network phone 22 , containing the SIP addresses of the caller and the callee.
  • the second network phone 39 may transmit a response message to the proxy server.
  • the proxy server may then transmit a response message back to the network phone 22 . If the transmitted response message is a success response (i.e.
  • the network phone 22 may send an ACK message (not shown) back to the second network phone 39 to complete the call initiation process.
  • the ACK message may be sent through the same path as the INVITE request and response messages, or it may be sent directly from the network phone 22 to the second network phone 39 , bypassing the proxy server.
  • the call is connected and data (including voice information, etc.) can flow on a data channel between the network phone 22 and the second network phone 39 .
  • SIP includes two major architectural elements: the user agent (UA) and the network server.
  • the UA resides at the SIP end stations, (e.g. the network phones 22 and 39 ), and contains two parts: a user agent client (UAC), which is responsible for issuing SIP requests, and a user agent server (UAS), which responds to such requests.
  • UAC user agent client
  • UAS user agent server
  • the various network server types may be combined into a single server. Not all server types are needed to implement the various embodiments of the present invention.
  • the communication services to be provided will determine which servers are present in the communication system. In the example illustrated in FIG. 1, only a proxy server is shown.
  • the present invention may be implemented in systems of varying complexity, having different combinations of server types and quantities.
  • SIP UAC Session Initiation Protocol
  • SIP proxy server acting as an end-user location discovery agent
  • SIP UAS Session Initiation Protocol
  • a successful SIP invitation consists of two requests: INVITE followed by ACK.
  • the INVITE message contains a user identifier to identify the callee, a caller user identifier to identify the caller, and a session description that informs the called party what type of media the caller can accept and where it wishes the media data to be sent.
  • User identifiers in SIP requests are known as SIP addresses.
  • SIP addresses are referred to as SIP Universal Resource Indicators (SIP-URIs), which are of the form sip: user@host.domain. Other addressing conventions may also be used.
  • a user may initiate a registration process, such as by entering information into the network phone 22 , or by transmitting user attributes from a portable information device (such as a Personal Digital Assistant (PDA)) to the network phone 22 to enable registration.
  • the network phone 22 formats a REGISTER request that includes the user's SIP URI (or the SIP URI of the user's portable information device) in the TO field, the network phone's SIP URI in the FROM field, and the SIP URI of a registration server (which may be colocated with the proxy server 24 shown in FIG. 1) in the REQUEST-URI field and sends the REGISTER request to the registration server.
  • the registration server registers the user's SIP URI with the IP address of the network phone 22 and returns a 200 OK response to the network phone 22 .
  • a user's portable information device may be assigned a device address, such as an IP address, that is different from the device address of the network phone 22 . If a signaling protocol other than SIP is used, then the procedure may vary somewhat from the embodiment described above, which utilizes SIP.
  • Redirect servers may be used to process an INVITE message by sending back the SIP-URI where the callee is reachable.
  • Proxy servers perform application layer routing of the SIP requests and responses.
  • a proxy server can either be stateful or stateless.
  • a stateful proxy holds information about the call during the entire time the call is up, while a stateless proxy processes a message without saving information contained in the message.
  • proxies can be either forking or non-forking.
  • a forking proxy can, for example, ring several phones at once until somebody takes the call.
  • Registrar servers are used to record the SIP address (SIP URI) and the associated IP address.
  • the most common use of a registrar server is for the UAC to notify the registrar where a particular SIP URI can be reached for a specified amount of time.
  • the proxy or redirect server handles the request accordingly.
  • the network phone 22 in the system 10 preferably has a pre-programmed device identifier (e.g. phone number), represented as a SIP-URI of the form sip: user@domain.
  • a pre-programmed device identifier e.g. phone number
  • the network phone 22 sends a SIP REGISTER message to the default registrar.
  • the default registrar for the network phone 22 may be the proxy server 24 .
  • the proxy server 24 will forward the call to the appropriate destination. If a network phone is moved to a new location, all calls to the associated SIP URI will still be properly routed to that device.
  • the system 10 provides device mobility in the sense that calls will “follow” the network phone according to its SIP URI. This is especially useful if the network phone 22 is running the DHCP (Dynamic Host Configuration Protocol) so that when the location is changed, the IP address is also automatically changed.
  • DHCP Dynamic Host Configuration Protocol
  • the network phone 22 may be operable to communicate voice signals as voice-over-data packets on a voice-over-data channel.
  • the network phone 22 may also be operable to communicate additional types of data, such as video data, on one or more additional data channels.
  • Voice-over-data functionality preferably conforms to a protocol for formatting voice signals as digital data streams. While any suitable protocol may be used, the media (voice signal) is preferably transported via the Real Time Protocol (RTP), inside User Datagram Protocol (UDP) packets.
  • RTP Real Time Protocol
  • UDP User Datagram Protocol
  • IP Internet Protocol
  • DNAT Distributed Network Address Translation
  • DNAT is described in Borella et al., “Realm Specific IP: Protocol Specification,” ⁇ draft-ietf-nat-rsip-protocol-07.txt>, July 2000, and in Borella et al., “Realm Specific IP: Framework,” ⁇ draft-ietf-nat-rsip-framework-05.txt>, July 2000, both of which are incorporated by reference herein, and both of which may be accessed at the IETF web site (www.ietf.org).
  • DNAT Distributed Network Address Translation
  • Network devices ( 14 , 16 , 18 , 20 , 22 , 24 ) on first computer network 12 request a set of locally unique ports from router 26 for external communications with external network 30 or third network 32 .
  • Network devices ( 14 , 16 , 18 , 20 , 22 , 24 ) replace local or default or ephemeral ports with the locally unique ports and use a combination network address including the locally unique port and a common external network address (e.g., an IP address) for communications with the external network 30 and 32 .
  • a default port is typically statically assigned.
  • An ephemeral port is typically dynamically assigned for a duration of time.
  • the communications with the external networks 30 and 32 may include one or more calls and/or call signaling completed as part of a network telephony call.
  • FIG. 2 is a block diagram illustrating a layered protocol stack 42 for distributed network address translation in a network telephony system according to an exemplary embodiment of the present invention.
  • Layered Protocol stack 42 is described with respect to Internet Protocol suites comprising from lowest-to-highest, a link, network, transport, and application layer. However, more or fewer layers could also be used, and different layer designations could also be used for the layers in protocol stack 42 (e.g., layering based on the Open Systems Interconnection (“OSI”) model).
  • OSI Open Systems Interconnection
  • Network devices ( 14 , 16 , 18 , 20 , 22 , 24 ) are connected to first network 12 with a link layer 44 .
  • Link layer 44 includes Network Interface Card (“NIC”) drivers for the hardware network devices connecting the network devices to computer network 12 .
  • NIC Network Interface Card
  • Above link layer 44 is a network layer 46 .
  • Network layer 46 includes an IP layer 48 .
  • IP 48 is an addressing protocol designed to route traffic within a network or between networks.
  • IP layer 48 hereinafter IP 48 , is described in Internet Engineering Task Force (“IETF”) Request For Comments (“RFC”) RFC-791, incorporated herein by reference.
  • IP 48 In addition to IP 48 , three other protocol layers are used in network layer 46 : Internet Control Message Protocol (“ICMP”) layer 50 , Port Allocation Protocol (“PAP”) layer 52 and Internet Group Management Protocol (“IGMP”) layer. However, more or fewer protocols could also be used.
  • ICMP Internet Control Message Protocol
  • PAP Port Allocation Protocol
  • IGMP Internet Group Management Protocol
  • ICMP layer 50 is used for network management.
  • the main functions of ICMP 50 include error reporting, reachability testing (e.g., “pinging”) congestion control, route-change notification, performance, subnet addressing and other maintenance.
  • reachability testing e.g., “pinging”
  • route-change notification e.g., performance, subnet addressing
  • RFC-792 incorporated herein by reference.
  • PAP layer 52 allocates locally unique ports to a network device, such as the network phone 22 .
  • PAP layer 52 is a separate protocol layer in network layer 46 .
  • PAP layer 52 is implemented as part of ICMP layer 50 and is not a separate protocol layer. PAP layer 52 is explained below.
  • IGMP layer 54 is responsible for User Datagram Protocol (“UDP”) broadcasting or multicasting, such as sending UDP packets to an IP 48 device or to multiple IP devices on a network.
  • UDP User Datagram Protocol
  • IGMP 54 can also be used with a Transmission Control Protocol.
  • RFC-1112 incorporated herein by reference.
  • Transmission layer 56 includes a Transmission Control Protocol (“TCP”) layer 58 and a UDP layer 60 .
  • TCP layer 58 hereinafter TCP 58 , provides a connection-oriented, end-to-end reliable protocol designed to fit into a layered hierarchy of protocols which support multi-network applications.
  • TCP 58 provides for reliable inter-process communication between pairs of processes in network devices attached to distinct but interconnected networks. For more information on TCP 58 , see RFC-793, incorporated herein by reference.
  • UDP layer 60 provides a connectionless mode of communications with datagrams in an interconnected set of computer networks.
  • UDP 60 provides a transaction-oriented datagram protocol, where delivery and duplicate packet protection are not guaranteed.
  • RFC-768 incorporated herein by reference.
  • UDP 60 is used in many typical network telephony systems.
  • Protocol stack 42 need not include both TCP 58 and UDP 60 . Either TCP 58 or UDP 60 can be used without the other. If only TCP 58 is used, then IGMP 54 and UDP 60 may be removed from protocol stack 42 . If only UDP 60 is used, IGMP 50 and TCP 58 may be removed from protocol stack 42 . However, UDP 60 can also be used with ICMP 50 and IGMP 54 without TCP 50 .
  • Above transmission layer 56 is an application layer 62 where application programs to carry out desired functionality for a network device reside.
  • the application programs for network phone 22 may include network telephony application programs, such as a SIP application 63 .
  • Other applications are also likely to be present in application layer 62 .
  • FIG. 3 is a block diagram illustrating a Port Allocation Protocol (“PAP”) 64 according to an exemplary embodiment of the present invention.
  • PAP 64 is implemented in a separate PAP layer 54 or as an integral part of ICMP 50 in protocol stack 42 (FIG. 2 ).
  • PAP 64 includes a PAP request message 66 , a PAP response message 68 , a PAP invalidate message 70 and a combination network address 72 .
  • PAP request message 66 is sent from network device ( 14 , 16 , 18 , 20 , 22 , 24 ) to router 26 to request a block of locally unique port numbers.
  • PAP 64 is used with another network device (e.g., a port server or other network device separate from router 26 ).
  • PAP 64 could be used with the proxy server 24 .
  • Fields in the PAP messages ( 66 , 68 , 70 ) follow standard ICMP 50 message format. Other message layouts (i.e., Non-ICMP 50 message format) and more or fewer messages could also be used for PAP 64 messages.
  • FIG. 4 is a block diagram illustrating a PAP request message layout 74 according to an exemplary embodiment of the present invention.
  • Type-field 76 is one-byte and has a value of 32.
  • Code-field 78 is one-byte and has a value of zero for ports under 10,000 and a value of 128 for ports above 10,000.
  • Checksum-field 80 is two-bytes, and has a value of a 1's complement sum of the entire PAP request message 66 layout 74 .
  • a 1's complement for a value written in binary or base-2 i.e., has only zero's and one's
  • a 1's complement of 110 2 is 001 2 .
  • Ports-requested-field 82 is one-byte and has a variable value indicating a number of locally unique ports requested by a network device. By default, ports-requested-field 82 is 16 or 32, which is a reasonable number for most network devices. Other default numbers could also be used. Unused-field 84 is three-bytes and has a value of zero. Other layouts, values, and field sizes could also be used for PAP request message 66 .
  • a network device (such as network phone 22 ) transmits PAP request message 66 upon being powered-on (“booted up”).
  • PAP 64 is associated with Dynamic Host Configuration Protocol (“DHCP”) or BOOTstrap Protocol (“BOOTP”).
  • DHCP is a protocol for passing configuration information such as IP 48 addresses to hosts on an IP 48 network.
  • DHCP see RFC-1541, incorporated herein by reference.
  • the format of DHCP messages is based on the format of BOOTP messages described in RFC-951 and RFC-1542, incorporated herein by reference. From a network device's point of view, DHCP is an extension of the BOOTP mechanism.
  • network devices ( 14 , 16 , 18 , 20 , 22 , 24 ) request locally unique ports after boot-up when a protocol layer in layered protocol stack 42 makes an initial request for an external network (e.g., 30 or 32 ).
  • Network devices ( 14 , 16 , 18 , 20 , 22 , 24 ) may also request locally unique ports when the number of locally unique ports required exceeds the number of locally unique ports allocated.
  • PAP request message 66 is sent from a network device ( 14 , 16 , 18 , 20 , 22 , 24 ) to router 26 after attaching an IP 48 header or other message header.
  • a PAP response message 68 is sent from router 26 back to network devices ( 14 , 16 , 18 , 20 , 22 , 24 ), either confirming or denying the request included in PAP request message 66 .
  • FIG. 5 is a block diagram illustrating a PAP response message layout 86 according to an exemplary embodiment of the present invention.
  • Type-field 88 is one-byte and has value of 32.
  • Code-field 90 is one-byte and has a value of zero for failure and one for success.
  • Checksum-field 92 is two-bytes, and is a 16-bit 1's complement sum of the entire PAP response message 68 .
  • Lowest-port-field 94 is two-bytes and is the lowest locally unique port number allocated in a block of locally unique ports.
  • Total-ports-field 96 is one-byte and is the total number of locally unique ports allocated to the network device.
  • Unused-field 98 is one-byte and has a value of zero.
  • Other layouts, values, and field sizes could also be used for PAP response message 68 .
  • a network device Upon receiving a successful PAP response message 68 , a network device saves the block of locally unique ports that it may use.
  • the locally unique ports are saved in a data structure with a flag-field indicating whether the locally unique port is allocated or unused.
  • Table 1 is pseudo-code for an exemplary data structure to store locally unique port information. Other data structures or layouts could also be used.
  • the one or more locally unique ports are allocated to protocols and applications in layered protocol stack 42 on a network device to replace local or default ports.
  • the network device may send another PAP request message 66 for fewer ports. If router 26 cannot allocate a large enough block of contiguous locally unique ports for the network device, it may send a PAP response 68 with a success code, but allocate fewer locally unique ports than requested.
  • FIG. 6 is a block diagram illustrating a PAP invalidate message layout 100 .
  • a PAP invalidate message 70 is used to invalidate or de-allocate a block of locally unique ports currently allocated to a network device.
  • Type-field 102 is one-byte and has a value of 32.
  • Code-field 104 is one-byte and has a value of two.
  • Checksum-field 106 is two-bytes and is a 1's complement sum of the entire PAP invalidate message 72 .
  • Port-field 108 is one-byte and has a value of a locally unique port number used by the network device.
  • Unused-field 110 is three-bytes and has a value of zero.
  • Other layouts, values and field sizes could also be used for PAP invalidate message 70 .
  • router 26 should send PAP invalidate messages 70 to invalidate all locally unique ports in use upon reboot to help prevent this problem.
  • a network device ( 14 , 16 , 18 , 20 , 22 , 24 ) also sends a PAP invalidate message 70 when it no longer needs a locally unique port.
  • FIG. 7 is a block diagram illustrating a combination network address layout 112 for combination network address 72 .
  • Combination network address layout 112 includes a common external network address 114 such as an IP 48 address (e.g., common network address 28 ), and a locally unique port 116 obtained by sending a PAP request message 66 and receiving a PAP response message 68 from a network device.
  • Network devices 14 , 16 , 18 , 20 , 22 , 24
  • Common external network address 114 identifies first computer network 12 to an external second computer network (e.g., 30 or 32 ).
  • TCP 58 provides a source port field and a source address field in a TCP header. For more information on TCP headers, see RFC-793. Since local or default port identifiers are selected independently by each TCP 58 stack in a network, they are typically not unique. To provide for unique addresses, a local Internet address identifying TCP 58 can be concatenated with a local port identifier and a remote Internet address and a remote port identifier to create a “socket” that will be unique throughout all networks connected together.
  • the source port in a header is given a locally unique port obtained with PAP 64 and given a common external network address. Together they uniquely identify applications and protocols on network devices ( 14 , 16 , 18 , 20 , 22 , 24 ) on first computer network 12 to second external computer network (e.g., 30 or 32 ) with a value conceptually similar to the socket used by TCP 58 .
  • UDP 60 also has a source port field in a UDP header.
  • the UDP 60 source port is an optional field that, when used, indicates a port of the sending process, and may be assumed to be the port to which a reply should be addressed in the absence of any other information. If not used, a value of zero is inserted.
  • a UDP 60 header also has a source address field.
  • a locally unique port can also be used in a UDP 60 header.
  • PAP 64 is used to create a combination network address 72 that is used in TCP 58 and/or UDP 60 header fields.
  • the combination network address 72 is stored in other message header fields understood by router 26 (i.e., non-IP 48 TCP 58 or UDP 60 fields), first computer network 12 , second computer network 30 , and third computer network 32 .
  • router 26 allocates blocks of locally unique ports to network devices ( 14 , 16 , 18 , 20 , 22 , 24 ). However, other network devices could also be used to allocate locally unique ports (e.g., a port server or the proxy server 24 ). Router 26 maintains a port-to-internal network address table as locally unique parts are allocated. Router 26 also has an internal table indicating internal network addresses for all network devices ( 14 , 16 , 18 , 20 , 22 , 24 ) on first computer network 12 . In an illustrative embodiment of the present invention, the internal network addresses for first computer network 12 are IP 48 addresses. For example, PC 14 has an internal IP address of 10.0.0.5 (FIG.
  • the internal addresses are preferably not published on the external computer network (e.g., the Internet or an intranet). Other internal network addresses could also be used (e.g., Medium Access Control (“MAC”) protocol addresses).
  • MAC Medium Access Control
  • FIG. 8 is a block diagram illustrating a port-to-internal address table 118 layout maintained by router 26 (or another device implementing PAP 64 ). Other layouts and more or fewer rows and columns could also be used.
  • Port-to-internal address table 118 layout has three columns: an internal-network-address column 120 , a lowest-port column 122 , and a number-of-ports column 124 .
  • a second network device has been allocated ports 1057 - 1072 for use with internal network address 10.0.0.3 (e.g., computer 18 ).
  • An internal network address may have several entries in port-to-internal address table 118 .
  • FIG. 9 is a flow diagram illustrating a method 130 for enabling distributed network address translation in a network telephony system, according to an exemplary embodiment of the present invention.
  • a first network device such as network phone 22
  • a second network device such as router 26 or proxy server 24
  • the locally unique ports are used to replace default ports in protocol layers in layered protocol stack 42 on the first network device.
  • the locally unique ports are used to create a combination network address comprising a locally unique port and a common external address to communicate with a second external computer network without address translation.
  • the first network device receives the one or more locally unique ports from the second network device.
  • the first network device replaces one or more local or default ports used in layered protocol stack 42 with one or more locally unique ports.
  • the first network device constructs one or more combination network addresses using the one or more locally unique ports and a common external network address used to identify the first computer network on the second external computer network.
  • the first network device is any of network devices ( 14 , 16 , 18 , 20 , 22 , 24 ), the second network device is router 26 or proxy server 24 , the first computer network is first computer network 12 (e.g., SOHO LAN), the first protocol is PAP 64 , and the second external computer network is any of second computer network 30 (e.g., the Internet or an intranet) or third computer network 32 (e.g., PSTN).
  • the combination network address includes a common IP 48 address (e.g., common network address 28 ) identifying network devices on first computer network 12 to a second external computer network (e.g., 30 or 32 ).
  • the present invention is not limited to the networks, network devices, network addresses, or protocols described and others may also be used.
  • other telephony servers such as redirect, registrar, or location servers
  • the locally unique ports are used for entities such as protocols and applications in layered protocol stack 42 on a network device ( 14 , 16 , 18 , 20 , 22 , 24 ) and are locally unique on first computer network 12 .
  • the locally unique ports will identify a network device on first computer network 12 .
  • TCP 58 typically has a default source port assigned to the TCP stack (e.g., 1234 ).
  • a network device uses a locally unique port to replace a default or local port in a protocol layer in layered protocol stack 42 .
  • network phone 22 with internal IP 48 address 10.0.0.5 is assigned thirty-two locally unique ports in the range of 1026 - 1057 .
  • Network phone 22 may assign locally unique port “1026” to TCP 58 to use as a source port.
  • the original default port for TCP 58 was 1234 .
  • Combination network address 112 illustrated in FIG. 7 is then assigned to TCP 58 on network device 22 for communications with an external network (e.g., 30 or 32 ).
  • Other locally unique ports are assigned to other protocols and applications in layered protocol stack 42 on a network device to replace other local ports.
  • ports may also be used with UDP 60 , in a similar manner. Many network telephony systems use UDP 60 for communicating voice data between two or more parties.
  • locally unique ports are assigned to protocol layers in layered protocol stack 42 when a network device boots up.
  • locally unique ports are assigned to protocol layers in layered protocol stack when a protocol layer makes a request for an external network (e.g., 30 or 32 ).
  • locally unique ports are assigned dynamically or “on-the-fly” in an individual protocol layer as a protocol layer makes a request for an external network (e.g., 30 or 32 ). Other techniques may also be used.
  • the locally unique ports with common external network address 28 as combination network address 112 uniquely identify a network device to an external network (e.g., 30 or 32 ).
  • Network interface card device drivers in link layer 44 maintain the actual internal IP 48 address of a network device.
  • FIG. 10 is a flow diagram illustrating a method 140 for distributed network address translation in a network telephony system, according to an exemplary embodiment of the present invention.
  • a request is sent from a first network device on a first computer network to a second network device on the first computer network.
  • the request is for a second external network and includes a combination network address identifying the first network device on the first network.
  • the combination network is constructed with method 130 (FIG. 9) and includes a locally unique port and a common external address to identify the first computer network to the second external network.
  • the second network device routes the request from the first computer network to the second external network.
  • the second network device on the first computer network receives a response from the external second computer network at the external network address identifying the first network from the combination network address.
  • the second network device on the first computer network routes the response to the first network device on the first computer network using the locally unique port from the combination network address.
  • the first network device is any of network devices ( 14 , 16 , 18 , 20 , 22 , 24 ), the second network device is router 26 and/or proxy server 24 , the first computer network is SOHO LAN 12 , and the second computer network is second computer network 30 or third computer network 32 .
  • the combination network address includes a locally unique port obtained with PAP 64 and an external IP 48 address for an external network such as the Internet, an intranet, or another computer network.
  • the present invention is not limited to the networks, network devices, network address or protocol described and others may also be used.
  • Method 140 is illustrated with a specific example using TCP 58 /IP 48 layers from layered protocol stack 42 .
  • Other protocol layers in layered protocol stack 42 could also be used.
  • network phone 22 sends a TCP 58 request to a second network phone 39 .
  • the request may be a TCP 58 request (such as a TCP-based SIP Invite request) for second network phone 39 at external IP 48 address 192.200.20.3 on second computer network 30 .
  • Table 2 illustrates an exemplary request data packet sent at step 142 .
  • the source IP 48 address is common external network address 28 (e.g., 198.10.20.30) and the source port is locally unique port- 1032 obtained via PAP 64 with method 130 and assigned to TCP 58 .
  • locally unique port- 1032 replaces local port 1234 for TCP 58 when network phone 22 was booted up.
  • local port 1234 is replaced with a locally unique port such as locally unique port- 1032 whenever a protocol layer in layered protocol stack makes the request.
  • the locally unique port along with the common external address compose combination network address 112 .
  • the default TCP 58 port of 1234 has been replaced with locally unique port- 1032 .
  • the destination IP address is 192.200.20.3 for second network phone 39 (FIG. 1) on second external network 30 and the destination port is well known Internet port 80 .
  • a network interface card device driver in link layer 44 in layered protocol stack 42 , an outer IP 48 header is added to route the request to router 26 .
  • Network interface card device drivers maintain the local internal network address (e.g., 10.0.0. ⁇ ) for a network device for internal communications.
  • Table 3 illustrates an exemplary data packet with an outer IP 48 header added for router 26 .
  • a network interface card device driver adds the outer IP 48 header including a source IP 48 address for network phone 22 of 10.0.0.5 and a destination IP 48 address of 10.0.0.7 for router 26 .
  • router 26 receives the request data packet, strips the outer IP 48 header, and sends the request data packet to external network 30 .
  • router 26 receives a response packet from an external network (e.g., 30 ).
  • An exemplary response data packet is illustrated in Table 4.
  • Router 26 receives the response packet from external second network 30 at step 146 with destination IP 48 address set to common external network address 198.10.20.30 and destination port set to locally unique port- 1032 .
  • Router 26 uses port-to-internal network address table (FIG. 8) to map destination port- 1032 to internal IP 48 address 10.0.0.5 for network phone 22 .
  • Router 26 adds an outer IP 48 header to route the response data packet back to network phone 22 .
  • Table 5 illustrates an exemplary sponse packet with outer IP 48 header added by router 26 .
  • Outer IP 48 header has a source internal IP 48 address of 10.0.0.7 for router 26 and a destination internal IP 48 address of 10.0.0.5 for network phone 22 on computer network 12 .
  • router 26 routes the response data packet to network phone 22 with the outer IP 48 header.
  • a network interface card device driver in link layer 44 in layered protocol stack 42 strips the outer IP 48 header and forwards the response data packet to network layer 46 .
  • Network phone 22 sends a request to an external network and receives a response from the external network using DNAT and a locally unique port allocated with PAP 64 .
  • Router 26 does not translate any source/destination IP 48 addresses or source/destination ports. Thus, DNAT is accomplished without network address translation at router 26 .
  • An illustrative embodiment of the present invention is described with respect to a single common external network address identifying multiple network devices on first computer network 12 and used in combination network address 112 with a locally unique port.
  • the present invention is not limited to a single common external network address and can also be practiced with multiple common external network addresses as long as the number of multiple common external network addresses remains a reasonably small number (e.g., preferably less than ten).
  • router 26 routes data packets from a network device ( 14 , 16 , 18 , 20 , 22 , 24 ) on first computer network 12 to a second external computer network such as second computer network 30 or third computer network 32 using the combination network address.
  • router 26 is no longer required to support multiple application protocols from layered protocol stack 42 . This assists in avoiding call quality problems due to delays caused by excessive processing at router 26 .
  • Router 26 also routes data packets from the second external computer network back to a network device on the first computer network using the locally unique port in the combination network address. Router 26 is no longer required to replace an internal network address with an external network address for outbound traffic, and replace an external network address with an internal network address for inbound traffic.
  • DNAT eases the computational burden of network address translation from router 26 and does not violate the Internet principal of providing end-to-end transmission of data packets between network devices without alterations. This is particularly beneficial to SIP-based network telephony systems because it enables encrypted conversations and/or other exchanges of data between users of the network telephony system.
  • DNAT is accomplished without substantially modifying protocols or applications in layered protocol stack 42 above link layer 44 .
  • a link layer 44 in network devices ( 14 , 16 , 18 , 20 , 22 , 24 ) is used to translate default or local ports “on-the-fly” to/from locally unique ports reserved by a network device with PAP 64 .
  • link layer 44 supports multiple protocols from layered protocol stack 42 above link layer 44 for DNAT with port translation.
  • network phone 22 (FIG. 1) with internal IP 48 address 10.0.0.5 makes a TCP 58 /IP 48 request from a network device on second computer network 30 (e.g., the Internet) at external IP 48 address 192.200.20.3 (i.e., second network phone 39 , FIG. 1 ).
  • the initial TCP 58 packet reaching network interface card device driver in link layer 44 of layered protocol stack 42 is illustrated in Table 6.
  • the local source port for TCP 58 is 1234 , the destination port is well known port 80 for the Internet, the source IP 48 address is common external network address 28 and the destination address is external IP 48 address for second network phone 39 (FIG. 1 ).
  • application and/or protocol local default ports are modified by a network device to use a locally unique port obtained via PAP 64 in protocol layers above link layer 44 .
  • ports in protocol layers above link layer 44 in layered protocol stack 42 are not modified.
  • Network interface card device drivers in link layer 44 instead provide port and address translation.
  • a network interface card device driver will determine that a connection is being initiated.
  • An entry in a Source Port Translation Table (“SPTT”) in a network interface card device driver is created.
  • SPTT Source Port Translation Table
  • FIG. 11 illustrates a SPTT layout 150 for use in a network telephony system, according to an exemplary embodiment of the present invention.
  • Local-port field 152 is two-bytes and is the port number used by TCP 58 of a network device.
  • Global-port 154 field is two-bytes and is a locally unique port number used for external communications allocated by PAP 64 .
  • Protocol-field 156 is one-byte and has a value of zero for TCP 58 and a value of one for UDP 60 .
  • Timestamp-field 158 is four-bytes and has a value of a current system time in milliseconds updated every time the current entry is used.
  • TCP 58 source port 1234 is translated into a locally unique port allocated by PAP 64 by a network interface card device driver in link layer 44 .
  • TCP 58 source port 1234 is not translated in TCP 58 layer or any other protocol layer above the link layer in layered protocol stack 42 .
  • An entry is added to SPTT 150 .
  • Table 7 illustrates an exemplary SPTT 150 table entry.
  • an outer IP 48 header is added to the data packet.
  • the outer IP header is used for routing.
  • the outer IP header has the internal address of the network device as a source IP 48 address (e.g., 10.0.0.5) and the internal network address of router 26 (e.g., 10.0.0.7) as a destination address.
  • Table 8 illustrates the data packet with the outer IP 48 header.
  • router 26 Upon receiving the data packet illustrated in Table 4, router 26 examines the source port (e.g., 1032 ) and the outer IP 48 source address (e.g., 10.0.0.5) to ensure a network device is using a valid locally unique port assigned to the network device.
  • source port e.g., 1032
  • outer IP 48 source address e.g. 10.0.0.5
  • FIG. 12 illustrates an IPATT layout 160 for use in a network telephony system, according to an exemplary embodiment of the present invention. Other layouts, field sizes, and values could also be used.
  • Destination port-field 162 is two-bytes and holds a locally unique port obtained with PAP 64 .
  • Internal destination IP address-field 164 is four-bytes and is the internal IP 48 address (e.g., 10.0.0.5) of a network device using the locally unique port in destination port-field 162 .
  • Protocol-field 166 is one-byte and has a value of zero for TCP 58 or a value of one for UDP 60 .
  • Timestamp-field 168 is four-bytes and has a value of a current system time in milliseconds updated every time this entry is used.
  • Table 9 illustrates an exemplary IPATT 160 table entry.
  • Table 9 illustrates that locally unique port- 1032 is associated with internal IP 48 address 10.0.0.5 (e.g., network phone 22 ) for TCP 58 protocol.
  • Router 26 strips off the outer IP 48 header illustrated in Table 4 and sends the data packet comprising the inner IP 48 header and TCP 58 header to external network 30 .
  • a response data packet arrives from an external network on common external network address 28 (e.g., 198.10.20.30).
  • An arriving packet contains the headers illustrated in Table 10.
  • Router 26 looks up destination port 1032 (i.e., locally unique port 1032 ) in IPATT 158 (Table 9) and finds local network address 10.0.0.5 (e.g., network phone 22 ). Router 26 then creates an outer IP 48 header such as the exemplary IP 48 header illustrated in Table 11. The outer IP 48 header has a source IP 48 address for router 26 and a destination IP 48 address for network phone 22 .
  • Router 26 then transmits the data packet illustrated in Table 11 to the appropriate network device (e.g., network phone 22 at internal address 10.0.0.5).
  • a network interface card driver looks up the destination port (e.g., 1032 ) in SPTT 148 (e.g., Table 7), finding a mapping to TCP 58 port 1234 .
  • Locally unique port- 1032 is re-translated back to default TCP 58 local port 1234 in link layer 44 . No translation is done above link layer 44 .
  • Outer IP 48 header is then stripped.
  • the data packet is forwarded to IP 48 in network layer 46 .
  • Table 12 illustrates the forwarded data packet.
  • the end of the connection is detected by both router 26 and network device 22 .
  • the entries in the SPTT 148 and IPATT 160 tables are removed from router 26 and the network interface card driver.
  • FIG. 13 is a flow diagram illustrating a method 170 for outbound distributed network address translation using port translation, for use in a network telephony system, according to an exemplary embodiment of the present invention.
  • a network interface card device driver in link layer 44 receives a data packet from network layer 46 packet (e.g., Table 6).
  • the network interface card device driver determines whether a destination network address (e.g., 192.200.20.3) is for an external network (e.g., 30 or 32 ).
  • a destination network address e.g., 192.200.20.3
  • the network interface card device driver adds an outer IP 48 header to the data packet with the source address set to the network device's internal IP 48 address (e.g., 10.0.0.5) and the destination address set to the router 26 internal address (e.g., 10.0.0.7).
  • a local source port for the application or protocol from the header e.g., TCP 58 port 1234
  • a locally unique port e.g., 1032
  • PAP 64 with SPTT 150 e.g., Table 7
  • an outer IP 48 header is added to the data packet with the destination address in the outer IP 48 header copied from the inner IP 48 destination address.
  • the data packet with the outer IP 48 header is transmitted to network interface card hardware, which forwards the data packet to router 26 at step 180 .
  • the local or default source port is preferably not translated to a locally unique port for internal communications.
  • method 170 distributed network address translation is done by a network interface card device driver, and no port translation occurs above link layer 44 .
  • Other software, firmware and/or hardware modules or drivers in link layer 44 besides a network interface card device driver could also be used to translate ports with method 170 .
  • FIG. 14 is a flow diagram illustrating a method 184 for inbound distributed network address translation using port translation, for use in a network telephony system, according to an exemplary embodiment of the present invention.
  • a data packet is received on a network interface card driver in link layer 44 (e.g., Table 11) from router 26 .
  • Router 26 received the data packet from external network 30 or 32 and added an outer IP 48 header.
  • a test is conducted to determine if the source IP 48 address from the inner IP 48 header is an external IP 48 address. If so, at step 190 the destination port from the inner IP 48 header is translated from a locally unique port to a local port (e.g., 1032 ⁇ 1234 ) using SPATT 158 (Table 7).
  • the outer IP 48 header is stripped off.
  • the data packet (e.g., Table 12) is forwarded to network layer 46 .
  • the source IP 48 address is for internal network 12 . If it is determined that the source IP 48 address is for internal network 12 , then at step 196 the source IP address from the outer IP 48 header is copied to the inner source IP address. At step 192 , the outer IP 48 header is stripped off. At step 194 , the data packet is forwarded to network layer 46 .
  • the default or local source port is preferably not translated to a locally unique port for internal communications.
  • method 184 distributed network address translation is done by a network interface card device driver, and no port translation occurs above link layer 44 .
  • Other software or hardware modules or drivers in link layer 44 besides a network interface card device driver could also translate ports with method 184 .
  • DNAT (FIG. 9 & FIG. 10) does port translation in individual protocol layers in layered protocol stack 42 .
  • the port translation may be done at boot up time for a network device, or dynamically in a protocol layer when a protocol layer makes a request to an external network (e.g., 30 or 32 ).
  • DNAT with port translation does port translation in link layer 44 on a network device. No ports are translated in protocol layers above link layer 44 .
  • link layer 44 supports multiple protocols from layered protocol stack 42 above link layer 44 for DNAT with port translation. For outbound data, a local port assigned to an application or protocol is translated to a locally unique port on-the-fly in link layer 44 . For inbound data, the network device translates a locally unique port back to a local port on-the-fly in link layer 44 .
  • DNAT with on-the-fly port translation in link layer 44 may place more computational overhead on a network device than DNAT with port translation in individual protocol layers (FIG. 10 ).
  • DNAT with port translation in individual protocol layers and DNAT with on-the-fly port translation in link layer 44 are preferred over non-distributed network address translation in router 26 with methods known in the prior art since computational costs for translation are distributed among a number of network devices and not concentrated in router 26 . As a result, the likelihood of degradation of voice transmission quality is lessened.
  • Another advantage of using DNAT in a network telephony system is that conversations and/or other exchanges of data may be encrypted between two or more parties.
  • DNAT may be implemented according to RSIP, described in Borella et al., “Realm Specific IP: Protocol Specification,” ⁇ draft-ietf-nat-rsip-protocol-07.txt>, July 2000, and in Borella et al., “Realm Specific IP: Framework,” ⁇ draft-ietf-nat-rsip-framework-05.txt>, both of which may be accessed at the IETF web site (www.ietf.org).
  • RSIP allows an RSIP host (such as a network device on LAN 12 ) to establish registration with an RSIP gateway, such as the router 26 .
  • the RSIP host may, for example, register with the RSIP gateway and request a specific locally unique port.
  • the proxy server 24 may function as an RSIP host, and the router 26 may function as an RSIP gateway.
  • the proxy server 24 registers with the router 26 to obtain a specified port.
  • the specified port is a locally unique port, and is preferably a well-known port, such as Port 5060 , the well-known port for the Session Initiation Protocol (SIP).
  • SIP Session Initiation Protocol
  • the combination address assigned to the proxy server 24 includes the common external address 28 and the locally unique port, which is Port 5060 in this case. Then, all incoming calls addressed to the combination address go through the router 26 to the proxy server 24 .
  • the proxy server may receive an incoming request from an external network phone located on an external network.
  • the request includes the common external address 28 and the specified port (Port 5060 ).
  • the proxy server 24 may then proxy the incoming call to the appropriate network phone, such as the network phone 22 , using the call signaling protocol (e.g. SIP).
  • each network phone also may obtain a locally unique port, and may provide a combination address to the proxy server 24 to enable the mapping of incoming calls. Other addressing schemes may also be used.
  • Network phones on LAN 12 such as network phone 22 , preferably also utilize the proxy server 24 when initiating outgoing calls.
  • the proxy server 24 when initiating outgoing calls.
  • this embodiment has been described in terms of RSIP, other implementations of DNAT may be used.
  • other call signaling protocols besides SIP
  • specific ports may be used.
  • the proxy server 24 functions as a redirect server.
  • a network phone such as the network phone 22
  • boots up it obtains a locally unique port.
  • the network phone then has a combination address composed of the common external network address 28 and the locally unique port.
  • the network phone registers with a registration server, which may, for example, be co-located with a proxy server or redirect server.
  • a registration server which may, for example, be co-located with a proxy server or redirect server.
  • the proxy server 24 includes a registration server and a redirect server.
  • a remote network phone such as the network phone 39
  • the proxy server 24 sends a SIP redirect message to the remote network phone, notifying the network phone of the external common address and the port of the network phone being called.
  • no network phones on LAN 12 are allowed to use port 5060 , the well-known port for SIP.
  • Illustrative embodiments of the present invention can also be used to support Virtual Private Networks (“VPNs”).
  • VPNs Virtual Private Networks
  • DNAT also allows a local network to efficiently switch between external network service providers (e.g., Internet service providers) by changing the common external address for an external network assigned to a local network.
  • DNAT also allows a local network to purchase a smaller block of external network addresses, providing cost savings on the local network.

Abstract

System and method for distributed network address translation in a network telephony system. A first network phone with a first protocol, requests at least one locally unique port from a first network device. The first network phone and the first network device are located on a first network. The first network phone receives, with the first protocol, the at least one locally unique port from the first network device. At least one default or ephemeral port on the first network phone is replaced with the at least one locally unique port. A combination network address is created for the first network phone with the at least one locally unique port and a common external network address, thereby identifying the first network phone for communications with a second network device located on a second network. The second network device may, for example, be a second network phone. In a preferred embodiment, the first protocol is a Port Allocation Protocol, such as the Realm Specific Internet Protocol.

Description

PRIORITY
This application is a continuation-in-part of U.S. patent application Ser. No. 09/035,600 filed Mar. 5, 1998, now U.S. Pat. No. 6,353,618 titled “Method and Protocol for Distributed Network Address Translation,” and naming as inventors Michael S. Borella, David Grabelsky, Ikhlaq Sidhu, and Brian D. Petry.
FIELD OF THE INVENTION
The present invention relates to network telephony systems. More particularly, the present invention relates to providing distributed network address translation for a network telephony system.
BACKGROUND OF THE INVENTION
As the quality of network telephony systems has improved, there has been a migration of users from the traditional Public Switched Telephone Network (PSTN) to network telephony systems. With the proliferation of the Internet, Internet telephony has enabled distantly located users to communicate with one another using data protocols underlying the Internet. For example, the Internet Protocol suite along with various signaling protocols has made IP telephony a popular form of network telephony.
Session Initiation Protocol (SIP) is a signaling protocol that may be used to assist with call set-up, management, and teardown. Other signaling protocols, such as the ITU-T H.323, MEGACO, and MGCP protocols, may also be used to implement various signaling functions. While these network telephony systems have provided advantages in cost and flexibility, certain challenges have arisen. In particular, problems have arisen that are due, in part, to the success of the Internet as a whole.
The Internet Protocol (IP) is an addressing protocol designed to route traffic within a network or between networks. Current versions of IP such as IP version 4 (IPv4) are becoming obsolete because of limited address space. With a 32-bit address-field, it is possible to assign 232 different addresses, which amounts to more than 4 billion possible addresses. Unique IP numbers are typically assigned to network devices (such as network phones) using IP, whether or not the network is connected to the Internet. Most organizations, such as corporations and universities, have multiple networks using IP, with multiple network devices assigned IP addresses. With the explosive growth of the Internet and intranets, IP addresses using a 32-bit address-field may soon be exhausted. IP version 6 (IPv6) proposes the use of a 128-bit address-field for IP addresses. However, a large number of legacy networks, including a large number of Internet nodes, will still be using older versions of IP with a 32-bit address space for many years to come.
Network Address Translation (NAT) has been proposed to extend the lifetime of IPv4 and earlier versions of IP by allowing a small home or office network to exist behind a single IP address. The single IP address is used for communication with external networks such as the Internet. Internally, the small home or office network uses private addressing. When a device or node using private addressing desires to communicate with the external world, a private address is translated to a common IP address by a NAT device. Network telephony systems may be located on networks having NAT routing devices. For example, SIP-aware routers with NAT functionality have been proposed by 3Com Corporation, the assignee of the present invention.
There are several problems associated with using NAT to extend the life of IP. NAT interferes with the end-to-end routing principal of the Internet, which specifies that packets flow end-to-end between network devices without the contents of any packet changing along a transmission route (see e.g., Routing in the Internet, by C. Huitema, Prentice Hall, 1995). Current versions of NAT replace a private network address in a data packet header with an external network address on outbound traffic, and replace an external address in a data packet header with a private network address on inbound traffic. This type of address translation is computationally expensive, causes security problems by preventing certain types of encryption from being used, and/or breaks a number of existing applications in a network that cannot do NAT (e.g., File Transfer Protocol (“FTP”)). Because encryption may be desired in a network telephony system, NAT is therefore not an optimal solution.
Current versions of NAT may have problems scaling beyond a small network containing a few dozen nodes or devices because of the computational and other resources required. This may be unacceptable for organizations planning to implement large network telephony systems. NAT potentially requires that support for many different internal network protocols be specifically programmed into a translation mechanism for external protocols in a NAT device, such as a NAT router. As is known in the art, a router translates differences between network protocols and routes data packets to an appropriate network node or network device. Computational burdens placed on a NAT router may be significant and may degrade network performance, especially if several NAT-enabled stub networks share the same NAT router. In a worst case scenario, a NAT router translates every inbound and outbound data packet. This may result in delays, and thus, degradation of call quality for a network telephony system. Call quality is typically a primary concern in network telephony systems.
As is known in the art, Transmission Control Protocol (TCP) and User Datagram Protocol (UDP) are often used over IP in computer networks. TCP provides a connection-oriented, end-to-end reliable protocol designed to fit into a layered hierarchy of protocols that supports multi-network applications. UDP provides a transaction-oriented datagram protocol, where delivery and duplicate packet protection are not guaranteed. When NAT is used to translate a TCP/IP or UDP/IP data packet, the packet's IP, TCP, or UDP checksums are recalculated. When a port in a TCP or UDP header is translated, the packet's TCP or UDP checksums are also recalculated. This further increases the computational cost of translation in a NAT router.
When an IP address or port is translated with NAT, a new length may result for the data packet and a possible change in a TCP sequence number. A running sequence number offset (i.e., a delta) must then be maintained throughout the remainder of the connection. This delta must be applied to future traffic, further increasing computational time in a NAT router. In addition to TCP or UDP, a NAT router must be able to translate addresses and/or ports, change lengths, and maintain sequence numbers for a number of different protocols that may transmit an IP address or port number (e.g., SIP, FTP, H.323, H.324, CUSeeMe, RealAudio, Internet Relay Chat, and others). Thus, it is desirable to provide NAT without large computational burdens in a NAT router.
Besides being computationally expensive, NAT breaks some of the functionality of SIP and other signaling protocols. For example, a SIP-based network phone typically advertises a local IP address, even to network devices located outside the local network. This local IP address is likely to be completely different from an external address provided by a NAT device. Similarly, problems may arise while negotiating a media channel to exchange media (such as voice data) between two network phones located remotely from one another.
It would desirable to provide network address translation in a network telephony system while avoiding some of the problems of a NAT implementation.
SUMMARY OF THE INVENTION
In accordance with an illustrative embodiment of the present invention, some of the problems associated with addressing in a network telephony system are addressed.
According to one embodiment, a method for distributed network address translation in a network telephony system is provided. A first network phone with a first protocol, requests at least one locally unique port from a first network device. The first network phone and the first network device are located on a first network. The first network phone receives, with the first protocol, the at least one locally unique port from the first network device. At least one default or ephemeral port on the first network phone is replaced with the at least one locally unique port. A combination network address is created for the first network phone with the at least one locally unique port and a common external network address, thereby identifying the first network phone for communications with a second network device located on a second network. The second network device may, for example, be a second network phone. In a preferred embodiment, the first protocol is a Port Allocation Protocol, such as the Realm Specific Internet Protocol.
In another embodiment, the method additionally includes the first network phone sending a request to the first network device on the first network. The first network device routes the request to the second network. The first network device receives a reply on the first network for the first network phone on the common external network address for the first network from the combination network address. The first network device routes the reply to the first network phone using the at least one locally unique port from the combination network address.
In yet another embodiment, a method for distributed network address translation on a network telephony system is provided. A first network phone requests, with a first protocol, at least one locally unique port from a first network device. The first network phone and the first network device are located on a first network. The first network phone receives, with the first protocol, the at least one locally unique port from the first network device. A higher level protocol layer in a layered protocol stack on the first network phone creates, for a second network device on a second network, a request including a common external network address and a local port on the first network phone. The higher level protocol layer forwards the request to a lower level protocol layer in the first network phone. The lower level protocol layer translates the local port in the request to a locally unique port on the first network phone. The first network phone sends the request to a third network device on the first network. The third network device forwards the request to the second network device.
In still yet another embodiment, the method additionally includes the third network device receiving a response on the common external network address for the first network phone from the second network device. The response includes the common external network address and the locally unique port for the first network phone. The third network device sends the response to the first network phone. The lower level protocol layer in the first network phone translates the locally unique port in the response to the local port for the first network phone. The lower level protocol layer forwards the response to the higher level protocol layer on the first network phone.
In another embodiment of the present invention, a system for distributed network address translation in a network telephony system is provided. The system includes a first network phone on a first network, with a combination network address from a Port Allocation Protocol. The combination network address allows distributed network address translation and includes a locally unique port on the first network and a common external network address for the first network. The first network phone is operable to transmit an request, including the combination network address. The system also includes a second network phone on a second network, operable to receive the invite request and to transmit a response to the first network phone. The response also includes the combination network address.
BRIEF DESCRIPTION OF THE DRAWINGS
Preferred embodiments of the present invention are described with reference to the following drawings, wherein:
FIG. 1 is a simplified block diagram illustrating a network telephony system according to an exemplary embodiment of the present invention;
FIG. 2 is a block diagram illustrating a layered protocol stack for distributed network address translation in a network telephony system according to an exemplary embodiment of the present invention;
FIG. 3 is a block diagram illustrating a Port Allocation Protocol (PAP) according to an exemplary embodiment of the present invention;
FIG. 4 is a block diagram illustrating a PAP request message layout according to an exemplary embodiment of the present invention;
FIG. 5 is a block diagram illustrating a PAP response message layout according to an exemplary embodiment of the present invention;
FIG. 6 is a block diagram illLIstrating a PAP invalidate message layout according to an exemplary embodiment of the present invention;
FIG. 7 is a block diagram illustrating a combination network address layout for a combination network address according to an exemplary embodiment of the present invention;
FIG. 8 is a block diagram illustrating a port-to-internal address table layout maintained by a router or other device implementing PAP, according to an exemplary embodiment of the present invention;
FIG. 9 is a flow diagram illustrating a method for enabling distributed network address translation in a network telephony system, according to an exemplary embodiment of the present invention;
FIG. 10 is a flow diagram illustrating a method for distributed network address translation in a network telephony system, according to an exemplary embodiment of the present invention;
FIG. 11 illustrates a SPTT layout for use in a network telephony system, according to an exemplary embodiment of the present invention;
FIG. 12 illustrates an IPATT layout for use in a network telephony system, according to an exemplary embodiment of the present invention;
FIG. 13 illustrates a method for outbound distributed network address translation using port translation, for use in a network telephony system, according to an exemplary embodiment of the present invention; and
FIG. 14 is a flow diagram illustrating a method for inbound distributed network address translation using port translation, for use in a network telephony system, according to an exemplary embodiment of the present invention.
DETAILED DESCRIPTION OF THE PRESENTLY PREFERRED EMBODIMENT(S)
Exemplary Network Telephony System
FIG. 1 is a simplified block diagram illustrating a network telephony system 10 according to an exemplary embodiment of the present invention. System 10 includes a first computer network 12 with multiple network devices (14, 16, 18, 20, 22, 24) and a router 26 to route data packets to another external computer network. The multiple network devices include any of computers (14, 18), printers 16, telephony proxy servers 24, hand-held devices 20, network phones 22, and/or other network devices not illustrated in FIG. 1. A typical network telephony system will likely include many network phones similar to network phone 22. In addition, other network phones may exist on external computer networks. First computer network 12 has an external common network address 28 (e.g., an IP address 198.10.20.30) to identify first network 12 to an external computer network, such as a second computer network 30 and/or a third computer network 32 external to first computer network 12. The multiple network devices (14, 16, 18, 20, 22, 24, and 26) have an internal network address for first computer network 12 (e.g., 10.0.0.X, explained below). A network access service provider 34 with a router 36 routes data packets to/from first computer network 12 to second computer network 30 and/or third computer network 32 through a second network switch 38 and/or a third network switch 40. In one embodiment of the present invention, first network 12 is a Small Office/Home Office (SOHO) Local Area Network (LAN), also called a “Legacy” LAN, second network 30 is an internet, such as the public Internet, and third network 32 is a Public Switched Telephone Network (PSTN). The second computer network 30 may contain additional access networks having one or more network phones similar to network phone 22. For example, although a second network phone 39 is shown linked to second network 30, second network phone 39 may alternatively be linked to an access network linked to or composing the second network 30. Other network types and network components may also be used and the present invention is not limited to the network types and network components described in the illustrative embodiment of FIG. 1.
An operating environment for network devices and routers of various embodiments of the present invention may include a processing system with at least one high speed Central Processing Unit (CPU) and a memory. In accordance with the practices of persons skilled in the art of computer programming, the present invention is described below with reference to acts and symbolic representations of operations that are performed by the processing system, unless indicated otherwise. Such acts and operations are referred to as being “computer-executed” or “CPU-executed.”
It will be appreciated that acts and symbolically represented operations include the manipulation of electrical signals by the CPU. The electrical system represents data bits which cause a resulting transformation or reduction of the electrical signal representation, and the maintenance of data bits at memory locations in a memory system to thereby reconfigure or otherwise alter the CPU's operation, as well as other processing of signals. The memory locations where data bits are maintained are physical locations that have particular electrical, magnetic, optical, or organic properties corresponding to the data bits.
The data bits may also be maintained on a computer readable medium including magnetic disks, optical disks, and any other volatile (e.g., Random Access Memory (RAM)) or non-volatile (e.g. Read-Only Memory (ROM)) mass storage system readable by the CPU. The computer readable medium includes cooperating or interconnected computer readable media, which exist exclusively on the processing system or which are distributed among multiple interconnected processing systems that may be local or remote to the processing system. In network address translation schemes known in the art, router 26 translates an internal network address, such as an internal IP address, used on first network 12 to an external network address, such as an IP address for outgoing traffic to second network 30 or third network 32. Router 26 also translates an external network address to an internal network address for incoming traffic from second network 30 or third network 32. A NAT router may assume the entire computational burden for network address translation. For large stub networks or 50 or more network devices, the NAT router may become a bottleneck. In the worst case, every packet passing through the NAT router will require address translation. For more information on network address translation for the Internet protocol, see “The IP Network Address Translator (NAT),” Internet Engineering Taskforce (IETF) Request for Comments (RFC), RFC-1631, and “NAT Bypass for ‘End 2 End’ Sensitive Applications,” by G. Tsirtsis and A. O'Niell, IETF Internet Draft, <draft-tsirtsis-nat-bypass-00.txt>, January, 1998. The IETF World-Wide Web site on the Internet can be reached at the Uniform Resource Locator “www.ietforg.”
In the network telephone system 10, the network phone 22 may be used to place and receive network telephony calls. Other devices, such as PC 14 or PC 18 may be configured with appropriate software, firmware, and/or hardware to function as a network phone. For purposes of illustration, the description herein will be described with reference to the network phone 22 as used in a SIP-based network telephony system. The proxy server 24 may be used to perform routing of signaling requests and responses, such as routing of an inbound requests from the second network phone 39 located on second network 30, where the inbound request is directed to network phone 22.
Session Initiation Protocol
In a preferred embodiment, the system 10 utilizes the SIP signaling protocol. SIP is described in Handley, et al., “SIP: Session Initiation Protocol,” IETF RFC 2543, March 1999, which is incorporated by reference herein. Also incorporated by reference herein is Schulzrinne H. and Rosenberg J., “The Session Initiation Protocol: Internet—Centric Signaling,” IEEE Communications Magazine, October 2000, Vol. 38, No. 10. Other signaling protocols, such as H-323, MGCP, MEGACO, and other standard or proprietary techniques may alternatively be used.
In a SIP implementation, network phones such as network phones 22 and 39 may each contain a SIP client and a SIP server. The proxy server 24 may also contain a SIP client and a SIP server. Additional user agents may be included in the network 10, as may additional proxy servers. In addition, system 10 may also include other servers, such as registration servers, redirect servers, and/or location servers. One or more of these server types may be combined into one physical device. A typical implementation for SIP-based IP telephony is a system of SIP-based network phones such as the 3Com® SIP phone, offered by 3Com Corporation, the assignee of the present invention. Another typical implementation includes one or more personal computers with software to perform SIP user agent functions, and user interface hardware, such as microphones and speakers to serve as means for communicating voice information. Other user interfaces, such as those used for video and/or other types of communication data, may also be used and are intended to be within the scope of the present invention.
The system 10 may be used to implement IP telephony, as well as other telephony-related functions. Further details on how such a system operates may be found by referring to the following patent applications, assigned to the assignee of the present invention, and incorporated by reference herein:
“System and Method for Providing Fault Tolerance in a Network Telephony System,” to Tripathi, Ser. No. 09/685,286;
“System and Method for Providing Access to a Content Server,” to Schuster, et al., Ser. No. 09/677,077;
“System and Method for Providing Telephone Service Having Private Branch Exchange Features in a Data Network Telephony System” to Schuster et al., Ser. No. 09/515,365;
“System and Method for Providing a Wireless Data Network Telephone System” to Schuster et al., Ser. No. 09/515,798;
“System and Method for Accessing a Network Server Using a Portable Information Devices Through a Network Based Telecommunication System” to Schuster et al., Ser. No. 09/515,969;
“System and Method for Accessing Radio Programs Using a Data Network Telephone in a Network Based Telecommunication System” to Schuster et al., Ser. No. 09/516,269;
“System and Method for Providing Local Information in a Data Network Telephony System” to Schuster et al., Ser. No. 515,366;
“System and Method for Enabling a Portable Information Device for Use in a Data Network Telephone System” to Schuster et al, Ser. No. 09/515,795;
“Dialing Token for Initiating a Telephone Connection in a Data Network Telephone System” to Schuster et al, Ser. No. 09/515,364;
“Personalized Call Announcement on a Data Network Telephony System” to Schuster, et al., Ser. No. 09/515,387;
“Personalizing a Data Network Appliance on a Data Network Telephony System” to Schuster, et al., Ser. No. 09/515,970;
“Proximity-Based Registration on a Data Network Telephony System” to Schuster, et al., Ser. No. 09/515,796;
“System and Method for Providing User Mobility Services on a Telephony Network” to Schuster, et al., Ser. No. 09/451,388;
“System and Method for Providing Call-Handling Services on a Telephony Network” to Schuster, et al., Ser. No. 09/470,879;
“Method, Apparatus and Communications System for Companion Information and Network Appliances” to Wang, et al., Ser. No. 09/181,431;
“System and Method for Controlling Telephone Service Using a Wireless Personal Information Device” to Schuster, et al., Ser. No. 09/406,321;
“System and Method for Advertising Using Data Network Telephone Connections” to Schuster, et al., Ser. No. 09/406,320;
“System and Method for Providing User-Configured Telephone Service in a Data Network Telephony System” to Sidhu, et al., Ser. No. 09/405,283;
“System and Method for Accessing a Network Server Using a Portable Information Device Through a Network Based Telecommunication System” to Schuster, et al., Ser. No. 09/406,322;
“System and Method for Interconnecting Portable Information Devices Through a Network Based Telecommunication System” to Schuster, et al., Ser. No. 09/406,152;
“System and Method for Enabling Encryption on a Telephony Network” to Schuster, et al., Ser. No. 405,981;
“System and Method for Associating Notes with a Portable Information Device on a Network Telephony Call” to Schuster, et al., Ser. No. 09/406,151;
“System and Method for Providing Shared Workspace Services over a Telephony Network” to Schuster, et al., Ser. No. 09/406,298;
“System and Method for Providing Service Provider Configurations for Telephones in a Data Network Telephony System” to Schuster, et al., Ser. No. 09/406,066;
System and Method for Using a Portable Information Device to Establish a Conference Call on a Telephone Network” to Schuster, et al., Ser. No. 09/406,128;
“Multiple ISP Support for Data Over Cable Networks” to Ali Akgun, et al., Ser. No. 09/321,941;
“Method and System for Provisioning Network Addresses in a Data-Over-Cable System” to Ali Akgun, et al., Ser. No. 09/218,793; and
“Network Access Methods, Including Direct Wireless to Internet Access” to Yingchun Xu, et al., Ser. No. 08/887,313.
Exemplary Network Telephony Call Sequence
A first user (the caller) located at network phone 22 may call a second user (the callee) located at the second network phone 39 on the second network 30 according to the following procedure, described in IETF RFC 2543. The network phone 22 transmits an INVITE request to a proxy server located on the second network 30. The INVITE request includes a FROM field to set forth the caller's SIP address and a TO field to set forth the callee's SIP address. The proxy server will typically be located in the same domain as is specified in the FROM field. The proxy server 124 may use a location service locally or remotely located to the proxy server 124 to determine the location of the callee, identified in the INVITE request. For example, the callee may have recently moved from one location to a second location (which may be on the second network 30 or elsewhere). When the proxy server determines that the second user is located at the second network phone 39, the proxy server transmits an INVITE request to the second network phone 39. The INVITE request may simply be a forwarded version of the INVITE request from the network phone 22, containing the SIP addresses of the caller and the callee. Upon receiving the INVITE request, the second network phone 39 may transmit a response message to the proxy server. The proxy server may then transmit a response message back to the network phone 22. If the transmitted response message is a success response (i.e. represented by a SIP “200 OK” response), then the network phone 22 may send an ACK message (not shown) back to the second network phone 39 to complete the call initiation process. The ACK message may be sent through the same path as the INVITE request and response messages, or it may be sent directly from the network phone 22 to the second network phone 39, bypassing the proxy server. After the call has been initiated using the SIP signaling protocol, the call is connected and data (including voice information, etc.) can flow on a data channel between the network phone 22 and the second network phone 39.
SIP includes two major architectural elements: the user agent (UA) and the network server. The UA resides at the SIP end stations, (e.g. the network phones 22 and 39), and contains two parts: a user agent client (UAC), which is responsible for issuing SIP requests, and a user agent server (UAS), which responds to such requests. There are three different network server types: a redirect server, a proxy server, and a registrar. The various network server types may be combined into a single server. Not all server types are needed to implement the various embodiments of the present invention. The communication services to be provided will determine which servers are present in the communication system. In the example illustrated in FIG. 1, only a proxy server is shown. The present invention may be implemented in systems of varying complexity, having different combinations of server types and quantities.
The example described above involves a SIP UAC issuing a request, a SIP proxy server acting as an end-user location discovery agent, and a SIP UAS accepting the call. A successful SIP invitation consists of two requests: INVITE followed by ACK. The INVITE message contains a user identifier to identify the callee, a caller user identifier to identify the caller, and a session description that informs the called party what type of media the caller can accept and where it wishes the media data to be sent. User identifiers in SIP requests are known as SIP addresses. SIP addresses are referred to as SIP Universal Resource Indicators (SIP-URIs), which are of the form sip: user@host.domain. Other addressing conventions may also be used.
To be reachable at the first network phone 22, a user may initiate a registration process, such as by entering information into the network phone 22, or by transmitting user attributes from a portable information device (such as a Personal Digital Assistant (PDA)) to the network phone 22 to enable registration. The network phone 22 formats a REGISTER request that includes the user's SIP URI (or the SIP URI of the user's portable information device) in the TO field, the network phone's SIP URI in the FROM field, and the SIP URI of a registration server (which may be colocated with the proxy server 24 shown in FIG. 1) in the REQUEST-URI field and sends the REGISTER request to the registration server. The registration server registers the user's SIP URI with the IP address of the network phone 22 and returns a 200 OK response to the network phone 22. As another alternative, a user's portable information device may be assigned a device address, such as an IP address, that is different from the device address of the network phone 22. If a signaling protocol other than SIP is used, then the procedure may vary somewhat from the embodiment described above, which utilizes SIP.
The message sequence described above applies to the case where the SIP URI for the registration server is known. Other approaches to registration are possible, such as broadcasting to the registration multicast address “sip.mcast.net” (224.0.1.75), and are discussed in further detail in IETF RFC 2543.
Once the user's SIP URI is registered with the registration server, subsequent calls to the user's SIP URI are resolved to the address of the network phone 22, to which the user is registered. Thus, if a call is placed to the user's SIP URI, the network phone 22 will alert the user of an incoming call.
Redirect servers may be used to process an INVITE message by sending back the SIP-URI where the callee is reachable. Proxy servers perform application layer routing of the SIP requests and responses. A proxy server can either be stateful or stateless. A stateful proxy holds information about the call during the entire time the call is up, while a stateless proxy processes a message without saving information contained in the message. Furthermore, proxies can be either forking or non-forking. A forking proxy can, for example, ring several phones at once until somebody takes the call. Registrar servers are used to record the SIP address (SIP URI) and the associated IP address. The most common use of a registrar server is for the UAC to notify the registrar where a particular SIP URI can be reached for a specified amount of time. When an INVITE request arrives for the SIP URI used in a REGISTER message, the proxy or redirect server handles the request accordingly.
The network phone 22 in the system 10 preferably has a pre-programmed device identifier (e.g. phone number), represented as a SIP-URI of the form sip: user@domain. An example is sip: 1234567890@sample.com. After power-up, the network phone 22 sends a SIP REGISTER message to the default registrar. Referring back to FIG. 1, the default registrar for the network phone 22 may be the proxy server 24. When a call arrives at the proxy server 24 for a registered SIP URI, the proxy server 24 will forward the call to the appropriate destination. If a network phone is moved to a new location, all calls to the associated SIP URI will still be properly routed to that device. In other words, the system 10 provides device mobility in the sense that calls will “follow” the network phone according to its SIP URI. This is especially useful if the network phone 22 is running the DHCP (Dynamic Host Configuration Protocol) so that when the location is changed, the IP address is also automatically changed.
An advantage of the system 10 is that once the call is established between two or more network phones, the network 12, the second network 30, and/or the third network 32 provide data connectivity for up to a plurality of data communications channels. For example, the network phone 22 may be operable to communicate voice signals as voice-over-data packets on a voice-over-data channel. The network phone 22 may also be operable to communicate additional types of data, such as video data, on one or more additional data channels. Voice-over-data functionality preferably conforms to a protocol for formatting voice signals as digital data streams. While any suitable protocol may be used, the media (voice signal) is preferably transported via the Real Time Protocol (RTP), inside User Datagram Protocol (UDP) packets. The Internet Protocol (IP) is also preferably used. RTP is described in H. Schulzrinne et al., “RTP: A Transport Protocol for Real-Time Applications,” IETF RFC 1889, January. 1996, which is incorporated herein by reference.
In a preferred embodiment of the present invention, Distributed Network Address Translation (DNAT) is used. One implementation of DNAT is described in Borella et al., “Realm Specific IP: Protocol Specification,” <draft-ietf-nat-rsip-protocol-07.txt>, July 2000, and in Borella et al., “Realm Specific IP: Framework,” <draft-ietf-nat-rsip-framework-05.txt>, July 2000, both of which are incorporated by reference herein, and both of which may be accessed at the IETF web site (www.ietf.org). Network devices (14, 16, 18, 20, 22, 24) on first computer network 12 request a set of locally unique ports from router 26 for external communications with external network 30 or third network 32. Network devices (14, 16, 18, 20, 22, 24) replace local or default or ephemeral ports with the locally unique ports and use a combination network address including the locally unique port and a common external network address (e.g., an IP address) for communications with the external network 30 and 32. A default port is typically statically assigned. An ephemeral port is typically dynamically assigned for a duration of time. The communications with the external networks 30 and 32 may include one or more calls and/or call signaling completed as part of a network telephony call.
DNAT Protocol Stack
FIG. 2 is a block diagram illustrating a layered protocol stack 42 for distributed network address translation in a network telephony system according to an exemplary embodiment of the present invention. Layered Protocol stack 42 is described with respect to Internet Protocol suites comprising from lowest-to-highest, a link, network, transport, and application layer. However, more or fewer layers could also be used, and different layer designations could also be used for the layers in protocol stack 42 (e.g., layering based on the Open Systems Interconnection (“OSI”) model).
Network devices (14, 16, 18, 20, 22, 24) are connected to first network 12 with a link layer 44. Link layer 44 includes Network Interface Card (“NIC”) drivers for the hardware network devices connecting the network devices to computer network 12. Above link layer 44 is a network layer 46. Network layer 46, includes an IP layer 48. As is known in the art, IP 48 is an addressing protocol designed to route traffic within a network or between networks. IP layer 48, hereinafter IP 48, is described in Internet Engineering Task Force (“IETF”) Request For Comments (“RFC”) RFC-791, incorporated herein by reference.
In addition to IP 48, three other protocol layers are used in network layer 46: Internet Control Message Protocol (“ICMP”) layer 50, Port Allocation Protocol (“PAP”) layer 52 and Internet Group Management Protocol (“IGMP”) layer. However, more or fewer protocols could also be used.
ICMP layer 50, hereinafter ICMP 50, is used for network management. The main functions of ICMP 50 include error reporting, reachability testing (e.g., “pinging”) congestion control, route-change notification, performance, subnet addressing and other maintenance. For more information on ICMP 50, see RFC-792, incorporated herein by reference.
PAP layer 52 allocates locally unique ports to a network device, such as the network phone 22. In one embodiment of the present invention, PAP layer 52, is a separate protocol layer in network layer 46. In another embodiment of the present invention, PAP layer 52 is implemented as part of ICMP layer 50 and is not a separate protocol layer. PAP layer 52 is explained below.
IGMP layer 54, hereinafter IGMP 54, is responsible for User Datagram Protocol (“UDP”) broadcasting or multicasting, such as sending UDP packets to an IP 48 device or to multiple IP devices on a network. IGMP 54 can also be used with a Transmission Control Protocol. For more information on IGMP 54, see RFC-1112, incorporated herein by reference.
Above network layer 46 is a transmission layer 56. Transmission layer 56 includes a Transmission Control Protocol (“TCP”) layer 58 and a UDP layer 60. TCP layer 58, hereinafter TCP 58, provides a connection-oriented, end-to-end reliable protocol designed to fit into a layered hierarchy of protocols which support multi-network applications. TCP 58 provides for reliable inter-process communication between pairs of processes in network devices attached to distinct but interconnected networks. For more information on TCP 58, see RFC-793, incorporated herein by reference.
UDP layer 60, hereinafter UDP 60, provides a connectionless mode of communications with datagrams in an interconnected set of computer networks. UDP 60 provides a transaction-oriented datagram protocol, where delivery and duplicate packet protection are not guaranteed. For more information on UDP 60, see RFC-768, incorporated herein by reference. UDP 60 is used in many typical network telephony systems.
Protocol stack 42 need not include both TCP 58 and UDP 60. Either TCP 58 or UDP 60 can be used without the other. If only TCP 58 is used, then IGMP 54 and UDP 60 may be removed from protocol stack 42. If only UDP 60 is used, IGMP 50 and TCP 58 may be removed from protocol stack 42. However, UDP 60 can also be used with ICMP 50 and IGMP 54 without TCP 50.
Above transmission layer 56 is an application layer 62 where application programs to carry out desired functionality for a network device reside. For example, the application programs for network phone 22 may include network telephony application programs, such as a SIP application 63. Other applications are also likely to be present in application layer 62.
DNAT Protocol
FIG. 3 is a block diagram illustrating a Port Allocation Protocol (“PAP”) 64 according to an exemplary embodiment of the present invention. PAP 64 is implemented in a separate PAP layer 54 or as an integral part of ICMP 50 in protocol stack 42 (FIG. 2). PAP 64 includes a PAP request message 66, a PAP response message 68, a PAP invalidate message 70 and a combination network address 72. In an illustrative embodiment of the present invention, PAP request message 66 is sent from network device (14, 16, 18, 20, 22, 24) to router 26 to request a block of locally unique port numbers. In another embodiment of the present invention, PAP 64 is used with another network device (e.g., a port server or other network device separate from router 26). For example, PAP 64 could be used with the proxy server 24. Fields in the PAP messages (66, 68, 70) follow standard ICMP 50 message format. Other message layouts (i.e., Non-ICMP 50 message format) and more or fewer messages could also be used for PAP 64 messages.
FIG. 4 is a block diagram illustrating a PAP request message layout 74 according to an exemplary embodiment of the present invention. Type-field 76 is one-byte and has a value of 32. Code-field 78 is one-byte and has a value of zero for ports under 10,000 and a value of 128 for ports above 10,000. Checksum-field 80 is two-bytes, and has a value of a 1's complement sum of the entire PAP request message 66 layout 74. As is known in the art, a 1's complement for a value written in binary or base-2 (i.e., has only zero's and one's) is the inverse of an existing one or zero. For example, a 1's complement of 1102 is 0012.
Ports-requested-field 82 is one-byte and has a variable value indicating a number of locally unique ports requested by a network device. By default, ports-requested-field 82 is 16 or 32, which is a reasonable number for most network devices. Other default numbers could also be used. Unused-field 84 is three-bytes and has a value of zero. Other layouts, values, and field sizes could also be used for PAP request message 66.
In one embodiment of the present invention, a network device (such as network phone 22) transmits PAP request message 66 upon being powered-on (“booted up”). PAP 64 is associated with Dynamic Host Configuration Protocol (“DHCP”) or BOOTstrap Protocol (“BOOTP”). DHCP is a protocol for passing configuration information such as IP 48 addresses to hosts on an IP 48 network. For more information on DHCP, see RFC-1541, incorporated herein by reference. The format of DHCP messages is based on the format of BOOTP messages described in RFC-951 and RFC-1542, incorporated herein by reference. From a network device's point of view, DHCP is an extension of the BOOTP mechanism.
In another embodiment of the present invention, network devices (14, 16, 18, 20, 22, 24) request locally unique ports after boot-up when a protocol layer in layered protocol stack 42 makes an initial request for an external network (e.g., 30 or 32). Network devices (14, 16, 18, 20, 22, 24) may also request locally unique ports when the number of locally unique ports required exceeds the number of locally unique ports allocated.
PAP request message 66 is sent from a network device (14, 16, 18, 20, 22, 24) to router 26 after attaching an IP 48 header or other message header. A PAP response message 68 is sent from router 26 back to network devices (14, 16, 18, 20, 22, 24), either confirming or denying the request included in PAP request message 66.
FIG. 5 is a block diagram illustrating a PAP response message layout 86 according to an exemplary embodiment of the present invention. Type-field 88 is one-byte and has value of 32. Code-field 90 is one-byte and has a value of zero for failure and one for success. Checksum-field 92 is two-bytes, and is a 16-bit 1's complement sum of the entire PAP response message 68. Lowest-port-field 94 is two-bytes and is the lowest locally unique port number allocated in a block of locally unique ports. Total-ports-field 96 is one-byte and is the total number of locally unique ports allocated to the network device. Unused-field 98 is one-byte and has a value of zero. Other layouts, values, and field sizes could also be used for PAP response message 68.
Upon receiving a successful PAP response message 68, a network device saves the block of locally unique ports that it may use. The locally unique ports are saved in a data structure with a flag-field indicating whether the locally unique port is allocated or unused. Table 1 is pseudo-code for an exemplary data structure to store locally unique port information. Other data structures or layouts could also be used.
TABLE 1
struct locally_unique_ports
{
int port_number;
flag status:1; /* one bit flag, 0 = unused, 1 = allocated */
} gu_ports[MAX_GU];
int number_of_gu_ports; /* number of locally unique ports allocated */
The one or more locally unique ports are allocated to protocols and applications in layered protocol stack 42 on a network device to replace local or default ports. Upon receiving an unsuccessful PAP response message 68, the network device may send another PAP request message 66 for fewer ports. If router 26 cannot allocate a large enough block of contiguous locally unique ports for the network device, it may send a PAP response 68 with a success code, but allocate fewer locally unique ports than requested.
FIG. 6 is a block diagram illustrating a PAP invalidate message layout 100. A PAP invalidate message 70 is used to invalidate or de-allocate a block of locally unique ports currently allocated to a network device. Type-field 102 is one-byte and has a value of 32. Code-field 104 is one-byte and has a value of two. Checksum-field 106 is two-bytes and is a 1's complement sum of the entire PAP invalidate message 72. Port-field 108 is one-byte and has a value of a locally unique port number used by the network device. Unused-field 110 is three-bytes and has a value of zero. Other layouts, values and field sizes could also be used for PAP invalidate message 70.
It is possible that two network devices may be allocated overlapping blocks of locally unique port numbers as a result of a crash or reboot by router 26 (or other device implementing PAP 64). Router 26 should send PAP invalidate messages 70 to invalidate all locally unique ports in use upon reboot to help prevent this problem. A network device (14, 16, 18, 20, 22, 24) also sends a PAP invalidate message 70 when it no longer needs a locally unique port.
FIG. 7 is a block diagram illustrating a combination network address layout 112 for combination network address 72. Other layouts could also be used. Combination network address layout 112 includes a common external network address 114 such as an IP 48 address (e.g., common network address 28), and a locally unique port 116 obtained by sending a PAP request message 66 and receiving a PAP response message 68 from a network device. Network devices (14, 16, 18, 20, 22, 24) use combination network address 72 for communications with external second network 30 or third network 32. Common external network address 114 identifies first computer network 12 to an external second computer network (e.g., 30 or 32).
As is known in the art, to identify separate data streams, TCP 58 provides a source port field and a source address field in a TCP header. For more information on TCP headers, see RFC-793. Since local or default port identifiers are selected independently by each TCP 58 stack in a network, they are typically not unique. To provide for unique addresses, a local Internet address identifying TCP 58 can be concatenated with a local port identifier and a remote Internet address and a remote port identifier to create a “socket” that will be unique throughout all networks connected together.
In an illustrative embodiment of the present invention, the source port in a header is given a locally unique port obtained with PAP 64 and given a common external network address. Together they uniquely identify applications and protocols on network devices (14, 16, 18, 20, 22, 24) on first computer network 12 to second external computer network (e.g., 30 or 32) with a value conceptually similar to the socket used by TCP 58.
As is also known in the art, UDP 60 also has a source port field in a UDP header. For more information on UDP 60 headers, see RFC-768. The UDP 60 source port is an optional field that, when used, indicates a port of the sending process, and may be assumed to be the port to which a reply should be addressed in the absence of any other information. If not used, a value of zero is inserted. A UDP 60 header also has a source address field. A locally unique port can also be used in a UDP 60 header.
In an illustrative embodiment of the present invention, PAP 64 is used to create a combination network address 72 that is used in TCP 58 and/or UDP 60 header fields. In another embodiment of the present invention, the combination network address 72 is stored in other message header fields understood by router 26 (i.e., non-IP 48 TCP 58 or UDP 60 fields), first computer network 12, second computer network 30, and third computer network 32.
In an illustrative embodiment of the present invention, router 26 allocates blocks of locally unique ports to network devices (14, 16, 18, 20, 22, 24). However, other network devices could also be used to allocate locally unique ports (e.g., a port server or the proxy server 24). Router 26 maintains a port-to-internal network address table as locally unique parts are allocated. Router 26 also has an internal table indicating internal network addresses for all network devices (14, 16, 18, 20, 22, 24) on first computer network 12. In an illustrative embodiment of the present invention, the internal network addresses for first computer network 12 are IP 48 addresses. For example, PC 14 has an internal IP address of 10.0.0.5 (FIG. 1), printer 16, 10.0.0.2, PC 18, 10.0.0.3, hand-held computer 20, 10.0.0.4, network phone 22, 10.0.0.5, proxy server 24, 10.0.0.6, and router 26, 10.0.0.7 in FIG. 1. The internal addresses are preferably not published on the external computer network (e.g., the Internet or an intranet). Other internal network addresses could also be used (e.g., Medium Access Control (“MAC”) protocol addresses).
FIG. 8 is a block diagram illustrating a port-to-internal address table 118 layout maintained by router 26 (or another device implementing PAP 64). Other layouts and more or fewer rows and columns could also be used. Port-to-internal address table 118 layout has three columns: an internal-network-address column 120, a lowest-port column 122, and a number-of-ports column 124. A second network device has been allocated ports 1057-1072 for use with internal network address 10.0.0.3 (e.g., computer 18). An internal network address may have several entries in port-to-internal address table 118.
Distributed Network Address Translation
FIG. 9 is a flow diagram illustrating a method 130 for enabling distributed network address translation in a network telephony system, according to an exemplary embodiment of the present invention. At step 132, a first network device (such as network phone 22) on a first computer network uses a first protocol to request one or more locally unique ports from a second network device (such as router 26 or proxy server 24) on the first computer network. The locally unique ports are used to replace default ports in protocol layers in layered protocol stack 42 on the first network device. In addition, the locally unique ports are used to create a combination network address comprising a locally unique port and a common external address to communicate with a second external computer network without address translation. At step 134, the first network device receives the one or more locally unique ports from the second network device. At step 136, the first network device replaces one or more local or default ports used in layered protocol stack 42 with one or more locally unique ports. At step 138, the first network device constructs one or more combination network addresses using the one or more locally unique ports and a common external network address used to identify the first computer network on the second external computer network.
In an illustrative embodiment of the present invention, the first network device is any of network devices (14, 16, 18, 20, 22, 24), the second network device is router 26 or proxy server 24, the first computer network is first computer network 12 (e.g., SOHO LAN), the first protocol is PAP 64, and the second external computer network is any of second computer network 30 (e.g., the Internet or an intranet) or third computer network 32 (e.g., PSTN). The combination network address includes a common IP 48 address (e.g., common network address 28) identifying network devices on first computer network 12 to a second external computer network (e.g., 30 or 32). The present invention is not limited to the networks, network devices, network addresses, or protocols described and others may also be used. In addition, other telephony servers (such as redirect, registrar, or location servers) may bc substituted for proxy server 24.
The locally unique ports are used for entities such as protocols and applications in layered protocol stack 42 on a network device (14, 16, 18, 20, 22, 24) and are locally unique on first computer network 12. The locally unique ports will identify a network device on first computer network 12. For example, TCP 58 typically has a default source port assigned to the TCP stack (e.g., 1234). After allocation with method 130, a network device uses a locally unique port to replace a default or local port in a protocol layer in layered protocol stack 42. As is illustrated in FIG. 8, network phone 22 with internal IP 48 address 10.0.0.5 is assigned thirty-two locally unique ports in the range of 1026-1057. Network phone 22 may assign locally unique port “1026” to TCP 58 to use as a source port. The original default port for TCP 58 was 1234. Combination network address 112 illustrated in FIG. 7 is then assigned to TCP 58 on network device 22 for communications with an external network (e.g., 30 or 32). Other locally unique ports are assigned to other protocols and applications in layered protocol stack 42 on a network device to replace other local ports. As was discussed above, ports may also be used with UDP 60, in a similar manner. Many network telephony systems use UDP 60 for communicating voice data between two or more parties.
In one embodiment of the present invention, locally unique ports are assigned to protocol layers in layered protocol stack 42 when a network device boots up. In another embodiment of the present invention, locally unique ports are assigned to protocol layers in layered protocol stack when a protocol layer makes a request for an external network (e.g., 30 or 32). In yet another embodiment of the present invention, locally unique ports are assigned dynamically or “on-the-fly” in an individual protocol layer as a protocol layer makes a request for an external network (e.g., 30 or 32). Other techniques may also be used.
The locally unique ports with common external network address 28 as combination network address 112 uniquely identify a network device to an external network (e.g., 30 or 32). Network interface card device drivers in link layer 44 maintain the actual internal IP 48 address of a network device.
FIG. 10 is a flow diagram illustrating a method 140 for distributed network address translation in a network telephony system, according to an exemplary embodiment of the present invention. At step 142, a request is sent from a first network device on a first computer network to a second network device on the first computer network. The request is for a second external network and includes a combination network address identifying the first network device on the first network. The combination network is constructed with method 130 (FIG. 9) and includes a locally unique port and a common external address to identify the first computer network to the second external network. At step 144, the second network device routes the request from the first computer network to the second external network. At step 146, the second network device on the first computer network receives a response from the external second computer network at the external network address identifying the first network from the combination network address. At step 148, the second network device on the first computer network routes the response to the first network device on the first computer network using the locally unique port from the combination network address.
In an illustrative embodiment of the present invention, the first network device is any of network devices (14, 16, 18, 20, 22, 24), the second network device is router 26 and/or proxy server 24, the first computer network is SOHO LAN 12, and the second computer network is second computer network 30 or third computer network 32. The combination network address includes a locally unique port obtained with PAP 64 and an external IP 48 address for an external network such as the Internet, an intranet, or another computer network. The present invention is not limited to the networks, network devices, network address or protocol described and others may also be used.
Method 140 is illustrated with a specific example using TCP 58/IP 48 layers from layered protocol stack 42. Other protocol layers in layered protocol stack 42 could also be used. At step 142, network phone 22 sends a TCP 58 request to a second network phone 39. For example, the request may be a TCP 58 request (such as a TCP-based SIP Invite request) for second network phone 39 at external IP 48 address 192.200.20.3 on second computer network 30. Table 2 illustrates an exemplary request data packet sent at step 142.
TABLE 2
IP 48 Header TCP 58 Header
SRC IP: 198.10.20.30 SRC Port: 1032
DST IP: 192.200.20.3 DST Port:  80
The source IP 48 address is common external network address 28 (e.g., 198.10.20.30) and the source port is locally unique port-1032 obtained via PAP 64 with method 130 and assigned to TCP 58. In one embodiment of the present invention, locally unique port-1032 replaces local port 1234 for TCP 58 when network phone 22 was booted up. In another embodiment of the present invention, local port 1234 is replaced with a locally unique port such as locally unique port-1032 whenever a protocol layer in layered protocol stack makes the request. The locally unique port along with the common external address compose combination network address 112. In the illustrative example, the default TCP 58 port of 1234 has been replaced with locally unique port-1032. The destination IP address is 192.200.20.3 for second network phone 39 (FIG. 1) on second external network 30 and the destination port is well known Internet port 80. When the request reaches a network interface card device driver in link layer 44, in layered protocol stack 42, an outer IP 48 header is added to route the request to router 26. Network interface card device drivers maintain the local internal network address (e.g., 10.0.0. ×) for a network device for internal communications. Table 3 illustrates an exemplary data packet with an outer IP 48 header added for router 26.
TABLE 3
Outer IP 48 header Inner IP 48 header TCP 58 header
SRC IP: 10.0.0.5 SRC IP: 198.10.20.30 SRC Port: 1032
DST IP: 10.0.0.7 DST IP: 192.200.20.3 SRC Port:  80
A network interface card device driver adds the outer IP 48 header including a source IP 48 address for network phone 22 of 10.0.0.5 and a destination IP 48 address of 10.0.0.7 for router 26. At step 144, router 26 receives the request data packet, strips the outer IP 48 header, and sends the request data packet to external network 30.
At step 146, router 26 receives a response packet from an external network (e.g., 30). An exemplary response data packet is illustrated in Table 4.
TABLE 4
IP 48 Header TCP 58 Header
SRC IP: 192.200.20.3 SRC Port:  80
DST IP: 198.10.20.30 DST Port: 1032
Router 26 receives the response packet from external second network 30 at step 146 with destination IP 48 address set to common external network address 198.10.20.30 and destination port set to locally unique port-1032. Router 26 uses port-to-internal network address table (FIG. 8) to map destination port-1032 to internal IP 48 address 10.0.0.5 for network phone 22. Router 26 adds an outer IP 48 header to route the response data packet back to network phone 22. Table 5 illustrates an exemplary sponse packet with outer IP 48 header added by router 26.
TABLE 5
Outer IP 48 header Inner IP 48 header TCP 58 header
SRC IP: 10.0.0.7 SRC IP: 192.200.20.3 SRC Port:  80
DST IP: 10.0.05 DST IP: 198.10.20.30 SRC Port: 1032
Outer IP 48 header has a source internal IP 48 address of 10.0.0.7 for router 26 and a destination internal IP 48 address of 10.0.0.5 for network phone 22 on computer network 12. At step 148, router 26 routes the response data packet to network phone 22 with the outer IP 48 header. A network interface card device driver in link layer 44 in layered protocol stack 42 strips the outer IP 48 header and forwards the response data packet to network layer 46.
Network phone 22 sends a request to an external network and receives a response from the external network using DNAT and a locally unique port allocated with PAP 64. Router 26 does not translate any source/destination IP 48 addresses or source/destination ports. Thus, DNAT is accomplished without network address translation at router 26.
An illustrative embodiment of the present invention is described with respect to a single common external network address identifying multiple network devices on first computer network 12 and used in combination network address 112 with a locally unique port. However, the present invention is not limited to a single common external network address and can also be practiced with multiple common external network addresses as long as the number of multiple common external network addresses remains a reasonably small number (e.g., preferably less than ten).
Distributed network address translation using method 130 (FIG. 9) and method 132 (FIG. 10) eases the computational burden of network address translation at router 26 and allows multiple network devices to use a single or a small number of external network addresses known to an external network such as the Internet or an intranet. Instead of providing network address translation, router 26 routes data packets from a network device (14, 16, 18, 20, 22, 24) on first computer network 12 to a second external computer network such as second computer network 30 or third computer network 32 using the combination network address. In addition, router 26 is no longer required to support multiple application protocols from layered protocol stack 42. This assists in avoiding call quality problems due to delays caused by excessive processing at router 26.
Router 26 also routes data packets from the second external computer network back to a network device on the first computer network using the locally unique port in the combination network address. Router 26 is no longer required to replace an internal network address with an external network address for outbound traffic, and replace an external network address with an internal network address for inbound traffic. Thus, DNAT according to the present invention eases the computational burden of network address translation from router 26 and does not violate the Internet principal of providing end-to-end transmission of data packets between network devices without alterations. This is particularly beneficial to SIP-based network telephony systems because it enables encrypted conversations and/or other exchanges of data between users of the network telephony system.
DNAT with Port Translation
In another embodiment of the present invention, DNAT is accomplished without substantially modifying protocols or applications in layered protocol stack 42 above link layer 44. However, in such an embodiment, a link layer 44 in network devices (14, 16, 18, 20, 22, 24) is used to translate default or local ports “on-the-fly” to/from locally unique ports reserved by a network device with PAP 64. In addition, link layer 44 supports multiple protocols from layered protocol stack 42 above link layer 44 for DNAT with port translation.
As an example, suppose network phone 22 (FIG. 1) with internal IP 48 address 10.0.0.5 makes a TCP 58/IP 48 request from a network device on second computer network 30 (e.g., the Internet) at external IP 48 address 192.200.20.3 (i.e., second network phone 39, FIG. 1). The initial TCP 58 packet reaching network interface card device driver in link layer 44 of layered protocol stack 42 is illustrated in Table 6.
TABLE 6
IP 48 Header TCP 58 Header
SRC IP 198.10.20.30 SRC Port: 1234
DST IP 192.200.20.3 DST Port:  80
The local source port for TCP 58 is 1234, the destination port is well known port 80 for the Internet, the source IP 48 address is common external network address 28 and the destination address is external IP 48 address for second network phone 39 (FIG. 1).
In the illustrative embodiment discussed above using methods 130 and 140 of FIGS. 9 and 10, application and/or protocol local default ports are modified by a network device to use a locally unique port obtained via PAP 64 in protocol layers above link layer 44. However, for DNAT with port translation, ports in protocol layers above link layer 44 in layered protocol stack 42 are not modified. Network interface card device drivers in link layer 44 instead provide port and address translation. In such an embodiment, a network interface card device driver will determine that a connection is being initiated. An entry in a Source Port Translation Table (“SPTT”) in a network interface card device driver is created.
FIG. 11 illustrates a SPTT layout 150 for use in a network telephony system, according to an exemplary embodiment of the present invention. Other layouts, field sizes, and values could also be used. Local-port field 152 is two-bytes and is the port number used by TCP 58 of a network device. Global-port 154 field is two-bytes and is a locally unique port number used for external communications allocated by PAP 64. Protocol-field 156 is one-byte and has a value of zero for TCP 58 and a value of one for UDP 60. Timestamp-field 158 is four-bytes and has a value of a current system time in milliseconds updated every time the current entry is used.
TCP 58 source port 1234 is translated into a locally unique port allocated by PAP 64 by a network interface card device driver in link layer 44. TCP 58 source port 1234 is not translated in TCP 58 layer or any other protocol layer above the link layer in layered protocol stack 42. An entry is added to SPTT 150. Table 7 illustrates an exemplary SPTT 150 table entry.
TABLE 7
Local Port Locally Unique Port Protocol Timestamp
1234 1030 1 (TCP) 10023
After translation by the network interface card driver, an outer IP 48 header is added to the data packet. The outer IP header is used for routing. The outer IP header has the internal address of the network device as a source IP 48 address (e.g., 10.0.0.5) and the internal network address of router 26 (e.g., 10.0.0.7) as a destination address. Table 8 illustrates the data packet with the outer IP 48 header.
TABLE 8
Outer IP 48 Header Inner IP 48 Header TCP 58 Header
SRC IP 10.0.0.1 SRC IP 198.10.20.30 SRC port 1032
DST IP 10.0.0.7 DST IP 192.200.20.3 DST port  80
Upon receiving the data packet illustrated in Table 4, router 26 examines the source port (e.g., 1032) and the outer IP 48 source address (e.g., 10.0.0.5) to ensure a network device is using a valid locally unique port assigned to the network device.
Router 26 maintains an IP Address Translation Table (“IPATT”). FIG. 12 illustrates an IPATT layout 160 for use in a network telephony system, according to an exemplary embodiment of the present invention. Other layouts, field sizes, and values could also be used. Destination port-field 162 is two-bytes and holds a locally unique port obtained with PAP 64. Internal destination IP address-field 164 is four-bytes and is the internal IP 48 address (e.g., 10.0.0.5) of a network device using the locally unique port in destination port-field 162. Protocol-field 166 is one-byte and has a value of zero for TCP 58 or a value of one for UDP 60. Timestamp-field 168 is four-bytes and has a value of a current system time in milliseconds updated every time this entry is used. Table 9 illustrates an exemplary IPATT 160 table entry.
TABLE 9
Destination Port Internal Destination IP
(locally unique port) 48 Address Protocol Timestamp
1032 10.0.0.5 1 (TCP) 10048
Table 9 illustrates that locally unique port-1032 is associated with internal IP 48 address 10.0.0.5 (e.g., network phone 22) for TCP 58 protocol.
Router 26 strips off the outer IP 48 header illustrated in Table 4 and sends the data packet comprising the inner IP 48 header and TCP 58 header to external network 30.
A response data packet arrives from an external network on common external network address 28 (e.g., 198.10.20.30). An arriving packet contains the headers illustrated in Table 10.
TABLE 10
IP 48 Header TCP 58 Header
SRC IP 192.200.20.3 SRC Port:  80
DST IP 198.10.20.30 DST Port: 1032
Router 26 looks up destination port 1032 (i.e., locally unique port 1032) in IPATT 158 (Table 9) and finds local network address 10.0.0.5 (e.g., network phone 22). Router 26 then creates an outer IP 48 header such as the exemplary IP 48 header illustrated in Table 11. The outer IP 48 header has a source IP 48 address for router 26 and a destination IP 48 address for network phone 22.
TABLE 11
Outer IP 48 Header Inner IP 48 Header TCP 58 Header
SRC IP 10.0.0.7 SRC IP 192.200.20.3 SRC port  80
DST IP 10.0.0.5 DST IP 198.10.20.30 DST port 1032
Router 26 then transmits the data packet illustrated in Table 11 to the appropriate network device (e.g., network phone 22 at internal address 10.0.0.5). Upon receiving the data packet, a network interface card driver looks up the destination port (e.g., 1032) in SPTT 148 (e.g., Table 7), finding a mapping to TCP 58 port 1234. Locally unique port-1032 is re-translated back to default TCP 58 local port 1234 in link layer 44. No translation is done above link layer 44. Outer IP 48 header is then stripped. The data packet is forwarded to IP 48 in network layer 46. Table 12 illustrates the forwarded data packet.
TABLE 12
Inner IP 48 header TCP 58 header
SRC IP 192.200.20.3 SRC Port  80
DST IP 198.10.20.30 DST Port 1234
The end of the connection is detected by both router 26 and network device 22. Upon detecting the end of the connection, the entries in the SPTT 148 and IPATT 160 tables are removed from router 26 and the network interface card driver.
FIG. 13 is a flow diagram illustrating a method 170 for outbound distributed network address translation using port translation, for use in a network telephony system, according to an exemplary embodiment of the present invention. At step 172, a network interface card device driver in link layer 44 receives a data packet from network layer 46 packet (e.g., Table 6). At step 174, the network interface card device driver determines whether a destination network address (e.g., 192.200.20.3) is for an external network (e.g., 30 or 32). If so, at step 176, the network interface card device driver adds an outer IP 48 header to the data packet with the source address set to the network device's internal IP 48 address (e.g., 10.0.0.5) and the destination address set to the router 26 internal address (e.g., 10.0.0.7). At step 178, a local source port for the application or protocol from the header (e.g., TCP 58 port 1234) is translated into a locally unique port (e.g., 1032) obtained via PAP 64 with SPTT 150 (e.g., Table 7). At step 180, the data packet with the outer IP 48 header is transmitted to network interface card hardware, which forwards the data packet to router 26.
If it is determined at step 174 that the destination network address is for internal network 12, then at step 182, an outer IP 48 header is added to the data packet with the destination address in the outer IP 48 header copied from the inner IP 48 destination address. The data packet with the outer IP 48 header is transmitted to network interface card hardware, which forwards the data packet to router 26 at step 180. The local or default source port is preferably not translated to a locally unique port for internal communications.
Using method 170, distributed network address translation is done by a network interface card device driver, and no port translation occurs above link layer 44. Other software, firmware and/or hardware modules or drivers in link layer 44 besides a network interface card device driver could also be used to translate ports with method 170.
FIG. 14 is a flow diagram illustrating a method 184 for inbound distributed network address translation using port translation, for use in a network telephony system, according to an exemplary embodiment of the present invention. At step 186, a data packet is received on a network interface card driver in link layer 44 (e.g., Table 11) from router 26. Router 26 received the data packet from external network 30 or 32 and added an outer IP 48 header. At step 188, a test is conducted to determine if the source IP 48 address from the inner IP 48 header is an external IP 48 address. If so, at step 190 the destination port from the inner IP 48 header is translated from a locally unique port to a local port (e.g., 10321234) using SPATT 158 (Table 7). At step 192, the outer IP 48 header is stripped off. At step 192, the data packet (e.g., Table 12) is forwarded to network layer 46.
If it is determined that the source IP 48 address is for internal network 12, then at step 196 the source IP address from the outer IP 48 header is copied to the inner source IP address. At step 192, the outer IP 48 header is stripped off. At step 194, the data packet is forwarded to network layer 46. The default or local source port is preferably not translated to a locally unique port for internal communications.
Using method 184, distributed network address translation is done by a network interface card device driver, and no port translation occurs above link layer 44. Other software or hardware modules or drivers in link layer 44 besides a network interface card device driver could also translate ports with method 184.
DNAT (FIG. 9 & FIG. 10) does port translation in individual protocol layers in layered protocol stack 42. The port translation may be done at boot up time for a network device, or dynamically in a protocol layer when a protocol layer makes a request to an external network (e.g., 30 or 32).
In contrast, DNAT with port translation (FIG. 13 & FIG. 14) does port translation in link layer 44 on a network device. No ports are translated in protocol layers above link layer 44. In addition, link layer 44 supports multiple protocols from layered protocol stack 42 above link layer 44 for DNAT with port translation. For outbound data, a local port assigned to an application or protocol is translated to a locally unique port on-the-fly in link layer 44. For inbound data, the network device translates a locally unique port back to a local port on-the-fly in link layer 44. DNAT with on-the-fly port translation in link layer 44 (FIGS. 13 & 14) may place more computational overhead on a network device than DNAT with port translation in individual protocol layers (FIG. 10).
Both DNAT with port translation in individual protocol layers and DNAT with on-the-fly port translation in link layer 44 (FIGS. 13 & 14) are preferred over non-distributed network address translation in router 26 with methods known in the prior art since computational costs for translation are distributed among a number of network devices and not concentrated in router 26. As a result, the likelihood of degradation of voice transmission quality is lessened. Another advantage of using DNAT in a network telephony system is that conversations and/or other exchanges of data may be encrypted between two or more parties.
Implementing DNAT in a SIP-based Telephony System
As was described above with reference to FIG. 1, DNAT may be implemented according to RSIP, described in Borella et al., “Realm Specific IP: Protocol Specification,” <draft-ietf-nat-rsip-protocol-07.txt>, July 2000, and in Borella et al., “Realm Specific IP: Framework,” <draft-ietf-nat-rsip-framework-05.txt>, both of which may be accessed at the IETF web site (www.ietf.org). RSIP allows an RSIP host (such as a network device on LAN 12) to establish registration with an RSIP gateway, such as the router 26. The RSIP host may, for example, register with the RSIP gateway and request a specific locally unique port.
In a first exemplary embodiment, the proxy server 24 may function as an RSIP host, and the router 26 may function as an RSIP gateway. The proxy server 24 registers with the router 26 to obtain a specified port. The specified port is a locally unique port, and is preferably a well-known port, such as Port 5060, the well-known port for the Session Initiation Protocol (SIP). The combination address assigned to the proxy server 24 includes the common external address 28 and the locally unique port, which is Port 5060 in this case. Then, all incoming calls addressed to the combination address go through the router 26 to the proxy server 24. Because SIP-based network phones will typically use port 5060 for SIP calls (because Port 5060 is the well-known port for SIP), incoming calls are likely to be addressed to the combination address of the proxy server 24. Upon registering with the router 26, the proxy server may receive an incoming request from an external network phone located on an external network. The request includes the common external address 28 and the specified port (Port 5060). The proxy server 24 may then proxy the incoming call to the appropriate network phone, such as the network phone 22, using the call signaling protocol (e.g. SIP). In this embodiment, each network phone also may obtain a locally unique port, and may provide a combination address to the proxy server 24 to enable the mapping of incoming calls. Other addressing schemes may also be used. Network phones on LAN 12, such as network phone 22, preferably also utilize the proxy server 24 when initiating outgoing calls. In addition, although this embodiment has been described in terms of RSIP, other implementations of DNAT may be used. Similarly, other call signaling protocols (besides SIP) and specific ports may be used.
In alternate embodiment, the proxy server 24 functions as a redirect server. When a network phone, such as the network phone 22, boots up, it obtains a locally unique port. The network phone then has a combination address composed of the common external network address 28 and the locally unique port. The network phone registers with a registration server, which may, for example, be co-located with a proxy server or redirect server. For exemplary purposes, it will be assumed that the proxy server 24 includes a registration server and a redirect server. Then, when a remote network phone, such as the network phone 39, initiates a call to proxy server 24 (by sending an invite request, in order to reach a network phone on the LAN 12), the proxy server 24 sends a SIP redirect message to the remote network phone, notifying the network phone of the external common address and the port of the network phone being called. In this embodiment, no network phones on LAN 12 are allowed to use port 5060, the well-known port for SIP. Although this embodiment has been described in terms of RSIP, other implementations of DNAT may be used. Similarly, other call signaling protocols (besides SIP) and specific ports may be used.
The various embodiments of the present invention described above offer several advantages over the prior art. Network address translation and the large computational burden is removed from a router and distributed to individual network devices using a port allocation protocol to allocate locally unique ports. A router is no longer required to support multiple individual protocols. DNAT port translation is done on a source and/or destination network device. Thus, DNAT with port translation does not violate the Internet principle recommending that packets flow end-to-end between network devices without changing the contents of any packet along a transmission route. Illustrative embodiments of the present invention can support multicasting with a router serving as a proxy for internal network devices that wish to join an existing multicast session.
Illustrative embodiments of the present invention can also be used to support Virtual Private Networks (“VPNs”).
DNAT also allows a local network to efficiently switch between external network service providers (e.g., Internet service providers) by changing the common external address for an external network assigned to a local network. DNAT also allows a local network to purchase a smaller block of external network addresses, providing cost savings on the local network.
It should be understood that the programs, processes, methods and apparatus described herein are not related or limited to any particular type of computer or network apparatus (hardware or software), unless indicated otherwise. Various types of general purpose or specialized computer apparatus may be used with or perform operations in accordance with the teachings described herein.
In view of the wide variety of embodiments to which the principles of the present invention can be applied, it should be understood that the illustrated embodiments are exemplary only, and should not be taken as limiting the scope of the present invention. For example, the steps of the flow diagrams may be taken in sequences other than those described, and more or fewer elements may be used in the block diagrams.
The claims should not be read as limited to the described order or elements unless stated to that effect. In addition, use of the term “means” in any claim is intended to invoke 35 U.S.C. §112, paragraph 6, and any claim without the word “means” is not so intended. Therefore, all embodiments that come within the scope and spirit of the following claims and equivalents thereto are claimed as the invention.
Preferred and alternative embodiments of the present invention have been illustrated and described. It will be understood, however, that changes and modifications may be made to the invention without deviating from its true spirit and scope, as defined by the following claims.

Claims (41)

We claim:
1. A method for distributed network address translation on a network telephony system, comprising in combination:
requesting at a first network phone with a first protocol, at least one locally unique port from a first network device, wherein the first network phone and the first network device are located on a first network;
receiving at the first network phone with the first protocol, the at least one locally unique port from the first network device;
replacing at least one default or ephemeral port on the first network phone with the at least one locally unique port; and
creating a combination network address for the first network phone with the at least one locally unique port and a common external network address, thereby identifying the first network phone for communications with a second network device located on a second network.
2. A computer readable medium having stored therein instructions for causing a central processing unit to execute the method of claim 1.
3. The method of claim 1, wherein the first protocol is a Port Allocation Protocol (PAP) comprising:
a PAP request message;
a PAP response message;
a PAP invalidate message; and
at least one PAP combination network address including at least one PAP locally unique port and at least one PAP external network address for the first network.
4. The method of claim 1, wherein the common external network address is an Internet Protocol address and the at least one locally unique port is a Port Allocation Protocol port.
5. The method of claim 1, wherein the at least one locally unique port allows distributed network address translation to be used on the first network phone.
6. The method of claim 1, wherein the at least one default or ephemeral port is selected from the group consisting of a Transmission Control Protocol port and a User Datagram Protocol port.
7. The method of claim 1, wherein the first network device is selected from the group consisting of a router, a port server, and a proxy server.
8. The method of claim 1, wherein the second network device is selected from the group consisting of a second network phone and a proxy server.
9. The method of claim 1, wherein the method further comprises:
registering a specified port to a proxy server on the first network;
receiving at the proxy server a request from the second network device; and
mapping the request from the proxy server to the first network phone.
10. The method of claim 9, wherein the first network operates according to the SIP signaling protocol, wherein the first network phone is a SIP network phone, wherein the proxy server is a SIP proxy server, and wherein the specified port is Port 5060.
11. The method of claim 1, wherein the method further comprises:
receiving at a redirect server a request from the second network device; and
sending a redirect message from the redirect server to the second network device, wherein the redirect message includes the combination network address for the first network phone.
12. The method of claim 11, wherein the first network operates according to the SIP signaling protocol, wherein the first network phone is a SIP network phone, and wherein the redirect server is a SIP redirect server.
13. The method of claim 1, further comprising:
sending a request from the first network phone to the first network device on the first network, wherein the request is routed from the first network device to the second network;
receiving a response from the first network device at the first network phone, wherein the response is routed from the first network device to the first network phone using the at least one locally unique port from the combination network address.
14. The method of claim 1, wherein the first network is a local area network and the second network is selected from the group consisting of a public internet, the Internet, an intranet, or a public switched telephone network.
15. The method of claim 1, wherein the second network device is a second network phone, further comprising initiating an encrypted network telephony call between the first network phone and the second network phone, using the combination network address.
16. A method for distributed network address translation on a network telephony system, comprising in combination:
requesting at a first network phone with a first protocol, at least one locally unique port from a first network device, wherein the first network phone and the first network device are located on a first network;
receiving at the first network phone with the first protocol, the at least one locally unique port from the first network device;
creating a request in a higher level protocol layer in a layered protocol stack on the first network phone, for a second network device on a second network, wherein the request includes a common external network address and a local port on the first network phone;
forwarding the request from the higher level protocol layer to a lower level protocol layer in the first network phone;
translating the local port in the request to a locally unique port in the lower level protocol layer on the first network phone;
sending the request from the first network phone to a third network device on the first network; and
forwarding the request from the third network device to the second network device.
17. The method of claim 16, further comprising:
receiving a response on the third network device on the common external network address for the first network phone from the second network device, wherein the response includes the common external network address and the locally unique port for the first network phone;
sending the response from the third network device to the first network phone;
translating the locally unique port in the response to the local port for the first network phone in the lower level protocol layer on the first network phone; and
forwarding the response to the higher level protocol layer on the first network phone.
18. A computer readable medium having stored therein instructions for causing a central processing unit to execute the method of claim 17.
19. The method of claim 16, wherein the first protocol is a Port Allocation Protocol (PAP) comprising:
a PAP request message;
a PAP response message;
a PAP invalidate message; and
at least one PAP combination network address including at least one PAP locally unique port and at least one PAP external network address for the first network.
20. The method of claim 16, wherein the third network device is included within the first network device.
21. The method of claim 16, wherein the first network device is a router on the first network.
22. The method of claim 16, wherein the common external network address is an Internet Protocol address and the locally unique port is a Port Allocation Protocol port.
23. The method of claim 16, wherein the locally unique port allows distributed network address translation to be used on the first network phone.
24. The method of claim 16, wherein the local port is selected from the group consisting of a Transmission Control Protocol port and a User Datagram Protocol port.
25. The method of claim 16, wherein the first network device is selected from the group consisting of a router, a port server, a proxy server, and a redirect server.
26. The method of claim 16, wherein the second network device is selected from the group consisting of a second network phone and a proxy server.
27. The method of claim 16, wherein the first network is a local area network and the second network is selected from the group consisting of a public internet, the Internet, an intranet, or a public switched telephone network.
28. The method of claim 16, wherein the second network device is a second network phone, further comprising initiating an encrypted network telephony call between the first network phone and the second network phone, using the common external network address and the locally unique port.
29. A method for distributed network address translation in a network telephony system, comprising in combination:
registering a proxy server with a router to register a specified port to the proxy server, wherein the proxy server and the router are located on a first network having at least one common external network address, and wherein the proxy server is operable to access at least one network address corresponding to at least one network phone on the first network;
receiving at the proxy server at least one request from an external network phone located on an external network, wherein the request includes the at least one common external network address and the specified port; and
proxying the at least one request to the at least one network phone on the first network.
30. The method of claim 29, wherein the network telephony system operates according to the SIP signaling protocol, wherein the proxy server is a SIP proxy server, wherein the router is a DNAT router, wherein one or more of the at least one network phone is a SIP network phone, wherein the request is a SIP Invite request, and wherein the specified port is a well-known port.
31. The method of claim 1, wherein the well-known port is Port 5060.
32. A method for distributed network address translation in a network telephony system, comprising in combination:
obtaining at least one locally unique port respectively for at least one network phone on a first network, wherein at least one common external network address is associated with the first network;
registering the at least one network phone with a registration server;
receiving at a redirect server at least one request from an external network phone located on an external network, wherein the redirect server is registered to a specified port, wherein the request includes the at least one common external network address and the specified port; and
sending a redirect message from the redirect server to the external network phone.
33. The method of claim 32, wherein the network telephony system operates according to the SIP signaling protocol, wherein the registration server is a SIP registrar, wherein the redirect server is a SIP redirect server, wherein the router is a DNAT router, wherein one or more of the at least one network phone is a SIP network phone, wherein the request is a SIP Invite request, and wherein the specified port is a well-known port.
34. The method of claim 33, wherein the well-known port is Port 5060.
35. A system for distributed network address translation in a network telephony system, comprising in combination:
a first network phone on a first network, with a combination network address from a Port Allocation Protocol, wherein the combination network address allows distributed network address translation and includes a locally unique port on the first network and a common external network address for the first network, wherein the first network phone is operable to transmit a request, and wherein the request includes the combination network address; and
a second network phone on a second network, operable to receive the request and to transmit a response to the first network phone, wherein the response includes the combination network address.
36. The system of claim 35, wherein the first protocol is a Port Allocation Protocol (PAP) comprising:
a PAP request message;
a PAP response message;
a PAP invalidate message; and
at least one PAP combination network address including at least one PAP locally unique port and at least one PAP external network address for the first network.
37. The system of claim 35, wherein the common external network address is an Internet Protocol address and the locally unique port is a Port Allocation Protocol port.
38. The system of claim 35, wherein the locally unique port allows distributed network address translation to be used on the first network phone.
39. The system of claim 35, wherein the local port is selected from the group consisting of a Transmission Control Protocol port and a User Datagram Protocol port.
40. The system of claim 35, wherein the first network is a local area network and the second network is selected from the group consisting of a public internet, the Internet, an intranet, or a public switched telephone network.
41. The system of claim 35, wherein the request and the response are used to initiate an encrypted network telephony call between the first network phone and the second network phone, using the common external network address and the locally unique port.
US09/707,708 1998-03-05 2000-11-07 Distributed network address translation for a network telephony system Expired - Fee Related US6822957B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US09/707,708 US6822957B1 (en) 1998-03-05 2000-11-07 Distributed network address translation for a network telephony system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/035,600 US6353614B1 (en) 1998-03-05 1998-03-05 Method and protocol for distributed network address translation
US09/707,708 US6822957B1 (en) 1998-03-05 2000-11-07 Distributed network address translation for a network telephony system

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US09/035,600 Continuation-In-Part US6353614B1 (en) 1998-03-05 1998-03-05 Method and protocol for distributed network address translation

Publications (1)

Publication Number Publication Date
US6822957B1 true US6822957B1 (en) 2004-11-23

Family

ID=21883673

Family Applications (4)

Application Number Title Priority Date Filing Date
US09/035,600 Expired - Fee Related US6353614B1 (en) 1998-03-05 1998-03-05 Method and protocol for distributed network address translation
US09/136,484 Expired - Lifetime US6697354B1 (en) 1998-03-05 1998-08-19 Method and system for distributed network address translation for mobile network devices
US09/707,708 Expired - Fee Related US6822957B1 (en) 1998-03-05 2000-11-07 Distributed network address translation for a network telephony system
US10/067,006 Expired - Fee Related US6567405B1 (en) 1998-03-05 2002-02-04 Method and protocol for distributed network address translation

Family Applications Before (2)

Application Number Title Priority Date Filing Date
US09/035,600 Expired - Fee Related US6353614B1 (en) 1998-03-05 1998-03-05 Method and protocol for distributed network address translation
US09/136,484 Expired - Lifetime US6697354B1 (en) 1998-03-05 1998-08-19 Method and system for distributed network address translation for mobile network devices

Family Applications After (1)

Application Number Title Priority Date Filing Date
US10/067,006 Expired - Fee Related US6567405B1 (en) 1998-03-05 2002-02-04 Method and protocol for distributed network address translation

Country Status (1)

Country Link
US (4) US6353614B1 (en)

Cited By (105)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020002623A1 (en) * 2000-06-29 2002-01-03 Oki Data Corporation Image communication apparatus, image communication system and image communication method
US20020095496A1 (en) * 2001-01-17 2002-07-18 Antes Mark L. Methods, systems and computer program products for transferring security processing between processors in a cluster computing environment
US20020095603A1 (en) * 2001-01-17 2002-07-18 Godwin James Russell Methods, systems and computer program products for providing data from network secure communications in a cluster computing environment
US20020114333A1 (en) * 2001-02-20 2002-08-22 Innomedia Pte Ltd. Real time streaming media communication system
US20020124189A1 (en) * 2001-03-02 2002-09-05 Steve Bakke Voice firewall
US20020129165A1 (en) * 2001-03-12 2002-09-12 Dingsor Andrew D. Network address translation and port mapping
US20020133582A1 (en) * 2000-12-21 2002-09-19 Atsushi Shibata Network management system
US20020136370A1 (en) * 2001-03-20 2002-09-26 Gallant John Kenneth Shared dedicated access line (DAL) gateway routing discrimination
US20020141384A1 (en) * 2001-03-28 2002-10-03 Fu-Hua Liu System and method for determining a connectionless communication path for communicating audio data through an address and port translation device
US20020141389A1 (en) * 2001-04-03 2002-10-03 Fangman Richard E. System and method for routing IP packets
US20020141352A1 (en) * 2001-04-03 2002-10-03 Fangman Richard E. System and method for configuring an IP telephony device
US20020154624A1 (en) * 2001-04-18 2002-10-24 Hitachi. Ltd. Method of translating protecol at translator, method of providing protocol translation information at translation server, and address translation server
US20020186685A1 (en) * 2001-06-11 2002-12-12 O'brien James D. Voice over internet protocol real time protocol routing
US20030007486A1 (en) * 2001-06-14 2003-01-09 March Sean W. Network address and/or port translation
US20030018813A1 (en) * 2001-01-17 2003-01-23 Antes Mark L. Methods, systems and computer program products for providing failure recovery of network secure communications in a cluster computing environment
US20030033418A1 (en) * 2001-07-19 2003-02-13 Young Bruce Fitzgerald Method of implementing and configuring an MGCP application layer gateway
US20030093481A1 (en) * 2001-11-09 2003-05-15 Julian Mitchell Middlebox control
US20030093563A1 (en) * 2001-10-10 2003-05-15 Young Bruce Fitzgerald Method and system for implementing and managing a multimedia access network device
US20030110292A1 (en) * 2001-12-07 2003-06-12 Yukiko Takeda Address translator, message processing method and euipment
US20030152090A1 (en) * 2002-02-12 2003-08-14 Alcatel Telecommunication/access system for dealing with deifferent address lengths
US20030161295A1 (en) * 2002-02-28 2003-08-28 Shah Tushar Ramesh Method and apparatus for voice over IP network address translation
US20030202510A1 (en) * 2002-04-26 2003-10-30 Maxxan Systems, Inc. System and method for scalable switch fabric for computer network
US20040062382A1 (en) * 2002-10-01 2004-04-01 Nortel Networks Limited Multimedia augmented call coverage
US20040064559A1 (en) * 2002-09-26 2004-04-01 Lockheed Martin Corporation Method and apparatus for dynamic assignment of network protocol addresses
US20040062230A1 (en) * 2002-10-01 2004-04-01 Nortel Networks Limited Integrating multimedia capabilities with legacy networks
US20040062232A1 (en) * 2002-10-01 2004-04-01 Nortel Networks Limited Automated attendant multimedia session
US20040088537A1 (en) * 2002-10-31 2004-05-06 Microsoft Corporation Method and apparatus for traversing a translation device with a security protocol
US20040139227A1 (en) * 2003-01-15 2004-07-15 Yutaka Takeda Relayed network address translator (NAT) traversal
US20040153858A1 (en) * 2002-12-23 2004-08-05 Hwang Shaw Hwa Direct peer-to-peer transmission protocol between two virtual networks
US20040158606A1 (en) * 2003-02-10 2004-08-12 Mingtar Tsai Transmission method of multimedia data over a network
US20040170158A1 (en) * 2002-12-16 2004-09-02 Gemini Mobile Technologies, Inc. Stateless message routing
US20040205777A1 (en) * 2002-07-05 2004-10-14 Anthony Zalenski System and method for using multiple communication protocols in memory limited processors
US20040205192A1 (en) * 2003-03-12 2004-10-14 Microsoft Corporation End-point identifiers in SIP
US20040246949A1 (en) * 1999-06-14 2004-12-09 Mci Worldcom. Inc. Internet protocol transport of PSTN-to-PSTN telephony services
US20040252683A1 (en) * 2000-06-30 2004-12-16 Kennedy Thomas Scott System, method , and computer program product for resolving addressing in a network including a network address translator
US20040258239A1 (en) * 1999-11-08 2004-12-23 Gallant John K. Method and system for dynamic gateway selection in an IP telephony network
US20050002506A1 (en) * 2003-07-02 2005-01-06 Doug Bender System and method for routing telephone calls over a voice and data network
US20050015492A1 (en) * 2003-06-26 2005-01-20 Microsoft Corporation Method and system for distributing load by redirecting traffic
US20050044159A1 (en) * 2001-10-19 2005-02-24 Aki Niemi Messaging system
US20050105525A1 (en) * 2003-11-10 2005-05-19 Institute For Information Industry Method of detecting the type of network address translator
US20050135386A1 (en) * 2003-12-18 2005-06-23 Shores William N. Interface call signaling protocol
US20050152368A1 (en) * 2004-01-13 2005-07-14 Infineon-Admtek Co., Ltd. Method and apparatus for network address translation based on pure hardware architecture
US20050201414A1 (en) * 2004-03-11 2005-09-15 Ali Awais Dynamically adapting the transmission rate of packets in real-time VoIP communications to the available bandwidth
US20050243981A1 (en) * 2004-04-28 2005-11-03 International Business Machines Corporation Enhanced media resource protocol messages
US20050246450A1 (en) * 2004-04-28 2005-11-03 Yutaka Enko Network protocol processing device
US20050259638A1 (en) * 1999-06-07 2005-11-24 Burg Frederick M Voice -over-IP enabled chat
US20050286494A1 (en) * 2004-06-29 2005-12-29 Michael Hollatz Method and apparatus for dynamic VoIP phone protocol selection
US20060002301A1 (en) * 2001-04-04 2006-01-05 Changwen Liu Transferring transmission control protocol packets
US20060031393A1 (en) * 2004-01-28 2006-02-09 Cooney John M System and method of binding a client to a server
US20060034296A1 (en) * 2004-08-16 2006-02-16 I2 Telecom International, Inc. System and method for sharing an IP address
US20060089966A1 (en) * 2004-10-05 2006-04-27 Telefonaktiebolaget Lm Ericsson (Publ) Maintaining cached terminal data
US20060222181A1 (en) * 2005-03-30 2006-10-05 Wu Hsiu C Method for transporting real-time audio and video data
US20060274749A1 (en) * 2001-06-27 2006-12-07 Intel Corporation Method enabling network address translation of incoming session initiation protocol connections base on dynamic host configuration protocol address assignments
US20070094412A1 (en) * 2001-06-14 2007-04-26 Nortel Networks Limited Providing telephony services to terminals behind a firewall and/or a network address translator
US20070133521A1 (en) * 2005-12-14 2007-06-14 Mcmaster John P System and method for managing telecommunications
US20070248081A1 (en) * 2004-10-20 2007-10-25 I2Telecom International, Inc. Portable VoIP Service Access Module
US7296093B1 (en) 2001-12-31 2007-11-13 Ciphermax, Inc. Network processor interface system
US7295561B1 (en) 2002-04-05 2007-11-13 Ciphermax, Inc. Fibre channel implementation using network processors
US7307995B1 (en) 2002-04-05 2007-12-11 Ciphermax, Inc. System and method for linking a plurality of network switches
US20070286142A1 (en) * 2006-06-07 2007-12-13 Rajat Prakash Pn code based addressing methods and apparatus for airlink communications
US7339927B1 (en) * 2001-07-18 2008-03-04 Cisco Technology, Inc. Method and system for providing an accurate address of a device on a network
US7363381B2 (en) 2003-01-09 2008-04-22 Level 3 Communications, Llc Routing calls through a network
US7366894B1 (en) * 2002-06-25 2008-04-29 Cisco Technology, Inc. Method and apparatus for dynamically securing voice and other delay-sensitive network traffic
US7369537B1 (en) * 2001-07-18 2008-05-06 Global Ip Solutions, Inc. Adaptive Voice-over-Internet-Protocol (VoIP) testing and selecting transport including 3-way proxy, client-to-client, UDP, TCP, SSL, and recipient-connect methods
US7379970B1 (en) 2002-04-05 2008-05-27 Ciphermax, Inc. Method and system for reduced distributed event handling in a network environment
US20080151875A1 (en) * 2006-12-22 2008-06-26 Pyung-Bin Lim VoIP service system using NAT and method of processing packet therein
WO2008084386A1 (en) * 2007-01-12 2008-07-17 Truecontext Corporation Methods and system for orchestrating services and data sharing on mobile devices
US7406038B1 (en) 2002-04-05 2008-07-29 Ciphermax, Incorporated System and method for expansion of computer network switching system without disruption thereof
US20080205399A1 (en) * 2004-09-30 2008-08-28 Christophe Delesalle Method and System for Routing in Communication Networks Between a First Node and a Second Node
US20080240675A1 (en) * 2007-03-27 2008-10-02 Adam Berger Coordinating Audio/Video Items Stored On Devices
US7443834B1 (en) * 2001-12-20 2008-10-28 Nortel Networks Limited Combining multimedia services with traditional telephony
US7443865B1 (en) * 2002-04-04 2008-10-28 Cisco Technology, Inc. Multiple network connections from a single PPP link with network address translation
US7447901B1 (en) 2002-06-25 2008-11-04 Cisco Technology, Inc. Method and apparatus for establishing a dynamic multipoint encrypted virtual private network
US7492775B2 (en) 1999-07-29 2009-02-17 Verizon Business Global Llc Address definition for IP telephony services
US20090156222A1 (en) * 2007-12-17 2009-06-18 I2Telecom International, Inc. Systems and methods of making a call
US7590144B1 (en) * 2003-05-13 2009-09-15 Advanced Digital Broadcast Holdings S.A. Network router apparatus and method
US7624195B1 (en) * 2003-05-08 2009-11-24 Cisco Technology, Inc. Method and apparatus for distributed network address translation processing
US7706371B1 (en) * 2005-07-07 2010-04-27 Cisco Technology, Inc. Domain based routing for managing devices operating behind a network address translator
US7764777B2 (en) 2000-05-04 2010-07-27 Telemaze Llc Branch calling and caller ID based call routing telephone features
US7773585B2 (en) 1999-11-08 2010-08-10 Verizon Business Global Llc Internet protocol telephony voice/video message deposit and retrieval
US7844039B2 (en) 1999-11-08 2010-11-30 Verizon Business Global Llc Methods for providing prepaid telephony service via an internet protocol network system
US20100303078A1 (en) * 2009-06-01 2010-12-02 The Regents Of The University Of Michigan Method for extending the use of single ipv4 addresses to multiple network end-hosts
US7860114B1 (en) 1999-11-08 2010-12-28 Verizon Business Global Llc Method and system for dynamic gateway selection in an IP telephony network
US20110026700A1 (en) * 2006-12-08 2011-02-03 Bce Inc. Method, system and apparatus for providing calling name identification
US7924822B2 (en) * 2003-10-15 2011-04-12 Vonage Network Llc Method and apparatus for enhanced internet telephony
US20110235656A1 (en) * 2008-06-02 2011-09-29 Ncolas Pigeon Method and device for allocating mac addresses in a carrier-current communication network
US8098651B1 (en) 2001-07-27 2012-01-17 Rockstar Bidco, LP Integrating multimedia capabilities with circuit-switched calls
US8107460B1 (en) 2006-08-14 2012-01-31 Voxpath Networks, Inc. System and method for IP telephony paging
US20120136976A1 (en) * 2010-11-29 2012-05-31 Telefonaktiebolaget L M Ericsson (Publ) Identification of a private device in a public network
US8359028B1 (en) 2010-06-15 2013-01-22 Sprint Spectrum L.P. Mitigating the impact of handoffs through comparison of historical call lengths
US8391858B1 (en) 2010-06-15 2013-03-05 Sprint Spectrum L.P. Mitigating the impact of handoffs through comparison of non-preferred wireless coverage areas
US8565129B1 (en) 2010-09-01 2013-10-22 Sprint Spectrum L.P. Supporting simple IP with address translation in a proxy mobile IP gateway
US8649355B1 (en) 2010-09-01 2014-02-11 Sprint Spectrum L.P. Supporting simple IP with address translation in a wireless communication device
US8732296B1 (en) * 2009-05-06 2014-05-20 Mcafee, Inc. System, method, and computer program product for redirecting IRC traffic identified utilizing a port-independent algorithm and controlling IRC based malware
US8804758B2 (en) 2004-03-11 2014-08-12 Hipcricket, Inc. System and method of media over an internet protocol communication
US20140330886A1 (en) * 2000-12-19 2014-11-06 Rockstar Consortium Us Lp Distributed network address translation control
US8892724B1 (en) 2010-10-08 2014-11-18 Sprint Spectrum L.P. Assigning a type of address based on expected port utilization
US9185606B1 (en) 2012-10-12 2015-11-10 Sprint Spectrum L.P. Assignment of wireless network resources
US9281996B1 (en) 1999-11-08 2016-03-08 Verizon Patent And Licensing Inc. Method and system for dynamic gateway selection in an IP telephony network
US9325663B2 (en) 2014-09-15 2016-04-26 Sprint Communications Company L.P. Discovery of network address allocations and translations in wireless communication systems
US9609489B2 (en) 2014-10-24 2017-03-28 Sprint Communications Company L.P. Distribution of media content identifiers to wireless communication devices
US9967734B1 (en) 2014-11-24 2018-05-08 Sprint Communications Company, L.P. Content delivery network request handling in wireless communication systems
US10015235B2 (en) 2014-10-23 2018-07-03 Sprint Communications Company L.P. Distribution of media content to wireless communication devices
US10200856B2 (en) 2014-10-02 2019-02-05 Sprint Communications Company L.P. Content-delivery footprint and capabilities data transfer from wireless communication devices
US20190230149A1 (en) * 2013-01-07 2019-07-25 Aeris Communications, Inc. Radio module as web-controllable remote sensor

Families Citing this family (278)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4440455C2 (en) * 1994-11-03 1996-09-12 Krone Ag Mounting device for RJ connecting elements of communications and data technology (patch panel)
US7113508B1 (en) * 1995-11-03 2006-09-26 Cisco Technology, Inc. Security system for network address translation systems
JP3641112B2 (en) * 1997-09-05 2005-04-20 株式会社東芝 Packet relay device, mobile computer device, mobile computer management device, packet relay method, packet transmission method, and mobile computer location registration method
US7450560B1 (en) * 1998-03-05 2008-11-11 3Com Corporation Method for address mapping in a network access system and a network access device for use therewith
US6353614B1 (en) 1998-03-05 2002-03-05 3Com Corporation Method and protocol for distributed network address translation
US7032242B1 (en) 1998-03-05 2006-04-18 3Com Corporation Method and system for distributed network address translation with network security features
US6226751B1 (en) * 1998-04-17 2001-05-01 Vpnet Technologies, Inc. Method and apparatus for configuring a virtual private network
EP0964558A1 (en) * 1998-06-08 1999-12-15 THOMSON multimedia Method for accessing internet applications from home network devices
SE519523C2 (en) * 1998-06-30 2003-03-11 Ericsson Telefon Ab L M Mobile LAN where hosts connected to the LAN can perform packet data communication with hosts in external networks
US6745243B2 (en) * 1998-06-30 2004-06-01 Nortel Networks Limited Method and apparatus for network caching and load balancing
US6870845B1 (en) * 1998-08-04 2005-03-22 At&T Corp. Method for providing privacy by network address translation
US6717949B1 (en) * 1998-08-31 2004-04-06 International Business Machines Corporation System and method for IP network address translation using selective masquerade
JP3327225B2 (en) * 1998-10-29 2002-09-24 三菱マテリアル株式会社 Network address translator and recording medium thereof
CA2349520C (en) 1998-10-30 2011-05-17 Science Applications International Corporation An agile network protocol for secure communications with assured system availability
US7418504B2 (en) * 1998-10-30 2008-08-26 Virnetx, Inc. Agile network protocol for secure communications using secure domain names
US6502135B1 (en) 1998-10-30 2002-12-31 Science Applications International Corporation Agile network protocol for secure communications with assured system availability
US6839759B2 (en) 1998-10-30 2005-01-04 Science Applications International Corp. Method for establishing secure communication link between computers of virtual private network without user entering any cryptographic information
US10511573B2 (en) 1998-10-30 2019-12-17 Virnetx, Inc. Agile network protocol for secure communications using secure domain names
US7502361B2 (en) * 1998-11-13 2009-03-10 Alcatel-Lucent Usa Inc. Subnetwork layer for a multimedia mobile network
US7194554B1 (en) 1998-12-08 2007-03-20 Nomadix, Inc. Systems and methods for providing dynamic network authorization authentication and accounting
US8713641B1 (en) 1998-12-08 2014-04-29 Nomadix, Inc. Systems and methods for authorizing, authenticating and accounting users having transparent computer access to a network using a gateway device
US8266266B2 (en) 1998-12-08 2012-09-11 Nomadix, Inc. Systems and methods for providing dynamic network authorization, authentication and accounting
US6584096B1 (en) * 1998-12-30 2003-06-24 Nortel Networks Limited Method and apparatus for connecting a home network to the internet
US6535511B1 (en) 1999-01-07 2003-03-18 Cisco Technology, Inc. Method and system for identifying embedded addressing information in a packet for translation between disparate addressing systems
US6501746B1 (en) * 1999-01-08 2002-12-31 Cisco Technology, Inc. Mobile IP dynamic home address resolution
GB9900970D0 (en) * 1999-01-15 1999-03-10 British Telecomm Communications network
US7107614B1 (en) * 1999-01-29 2006-09-12 International Business Machines Corporation System and method for network address translation integration with IP security
US6615357B1 (en) * 1999-01-29 2003-09-02 International Business Machines Corporation System and method for network address translation integration with IP security
US6738382B1 (en) * 1999-02-24 2004-05-18 Stsn General Holdings, Inc. Methods and apparatus for providing high speed connectivity to a hotel environment
US6507908B1 (en) * 1999-03-04 2003-01-14 Sun Microsystems, Inc. Secure communication with mobile hosts
US6563824B1 (en) * 1999-04-20 2003-05-13 3Com Corporation Apparatus and methods for determining the correct workstation within a LAN for a LAN modem to route a packet
US7110390B1 (en) * 1999-04-20 2006-09-19 Mci, Inc. Communication controller for providing multiple access using a single telephone line
US6731642B1 (en) 1999-05-03 2004-05-04 3Com Corporation Internet telephony using network address translation
JP3764016B2 (en) * 1999-05-10 2006-04-05 財団法人流通システム開発センタ− Integrated IP transfer network
GB2352586B (en) * 1999-06-07 2004-03-10 Nec Corp Handover between mobile networks
US6957346B1 (en) 1999-06-15 2005-10-18 Ssh Communications Security Ltd. Method and arrangement for providing security through network address translations using tunneling and compensations
US7042872B1 (en) * 1999-06-30 2006-05-09 Alcatel Method and apparatus for managing remote IP network elements through SONET network elements
US6772232B1 (en) * 1999-08-26 2004-08-03 Hewlett-Packard Development Company, L.P. Address assignment procedure that enables a device to calculate addresses of neighbor devices
FI19991847A (en) * 1999-08-31 2001-02-28 Nokia Networks Oy Utilization of subscriber data in a telecommunications system
JP3387041B2 (en) * 1999-09-30 2003-03-17 富士通株式会社 Protocol conversion device, communication device, communication program storage medium, and communication system
US6922404B1 (en) * 1999-10-14 2005-07-26 Nortel Networks Limited Mobile IP extensions rationalization (MIER)
US7184418B1 (en) * 1999-10-22 2007-02-27 Telcordia Technologies, Inc. Method and system for host mobility management protocol
US6781982B1 (en) 1999-10-26 2004-08-24 3Com Corporation Method and system for allocating persistent private network addresses between private networks
US6768743B1 (en) * 1999-10-26 2004-07-27 3Com Corporation Method and system for address server redirection for multiple address networks
US6708219B1 (en) 1999-10-26 2004-03-16 3Com Corporation Method and system for dual-network address utilization
US6886103B1 (en) * 1999-10-28 2005-04-26 Lucent Technologies Inc. Method and apparatus for extending network address translation for unsupported protocols
US6963982B1 (en) * 1999-10-28 2005-11-08 Lucent Technologies Inc. Method and apparatus for application-independent end-to-end security in shared-link access networks
US7023863B1 (en) * 1999-10-29 2006-04-04 3Com Corporation Apparatus and method for processing encrypted packets in a computer network device
US6581108B1 (en) * 1999-11-30 2003-06-17 Lucent Technologies Inc. Managing multiple private data networks using network and payload address translation
US7809382B2 (en) * 2000-04-11 2010-10-05 Telecommunication Systems, Inc. Short message distribution center
US8073477B2 (en) 2000-04-11 2011-12-06 Telecommunication Systems, Inc. Short message distribution center
US6996621B1 (en) * 1999-12-07 2006-02-07 3Com Corporation Method for supporting secondary address delivery on remote access servers
US6798782B1 (en) 1999-12-10 2004-09-28 Sun Microsystems, Inc. Truly anonymous communications using supernets, with the provision of topology hiding
US7336790B1 (en) 1999-12-10 2008-02-26 Sun Microsystems Inc. Decoupling access control from key management in a network
US7765581B1 (en) * 1999-12-10 2010-07-27 Oracle America, Inc. System and method for enabling scalable security in a virtual private network
US6938169B1 (en) 1999-12-10 2005-08-30 Sun Microsystems, Inc. Channel-specific file system views in a private network using a public-network infrastructure
US6970941B1 (en) * 1999-12-10 2005-11-29 Sun Microsystems, Inc. System and method for separating addresses from the delivery scheme in a virtual private network
US6870842B1 (en) 1999-12-10 2005-03-22 Sun Microsystems, Inc. Using multicasting to provide ethernet-like communication behavior to selected peers on a network
US6977929B1 (en) 1999-12-10 2005-12-20 Sun Microsystems, Inc. Method and system for facilitating relocation of devices on a network
US7908481B1 (en) 1999-12-17 2011-03-15 Avaya Inc. Routing data to one or more entities in a network
US7171492B1 (en) 2000-02-24 2007-01-30 Utstarcom, Inc. Method and application programming interface for assigning multiple network addresses
US7058973B1 (en) * 2000-03-03 2006-06-06 Symantec Corporation Network address translation gateway for local area networks using local IP addresses and non-translatable port addresses
US6948074B1 (en) 2000-03-09 2005-09-20 3Com Corporation Method and system for distributed generation of unique random numbers for digital tokens
NO313950B1 (en) * 2000-03-14 2002-12-30 Ericsson Telefon Ab L M Kommunikasjonsidentifikatormetode
US7065578B2 (en) * 2000-03-20 2006-06-20 At&T Corp. Service selection in a shared access network using policy routing
US6804232B1 (en) 2000-03-27 2004-10-12 Bbnt Solutions Llc Personal area network with automatic attachment and detachment
US7301952B2 (en) * 2000-04-06 2007-11-27 The Distribution Systems Research Institute Terminal-to-terminal communication connection control method using IP transfer network
US7522911B2 (en) * 2000-04-11 2009-04-21 Telecommunication Systems, Inc. Wireless chat automatic status tracking
US7814208B2 (en) * 2000-04-11 2010-10-12 Science Applications International Corporation System and method for projecting content beyond firewalls
US6996628B2 (en) * 2000-04-12 2006-02-07 Corente, Inc. Methods and systems for managing virtual addresses for virtual networks
US7181542B2 (en) * 2000-04-12 2007-02-20 Corente, Inc. Method and system for managing and configuring virtual private networks
US7028333B2 (en) * 2000-04-12 2006-04-11 Corente, Inc. Methods and systems for partners in virtual networks
US7085854B2 (en) * 2000-04-12 2006-08-01 Corente, Inc. Methods and systems for enabling communication between a processor and a network operations center
US7181766B2 (en) * 2000-04-12 2007-02-20 Corente, Inc. Methods and system for providing network services using at least one processor interfacing a base network
US7047424B2 (en) * 2000-04-12 2006-05-16 Corente, Inc. Methods and systems for hairpins in virtual networks
US6992995B2 (en) * 2000-04-17 2006-01-31 Telcordia Technologies, Inc. Telecommunication enhanced mobile IP architecture for intra-domain mobility
US6992994B2 (en) * 2000-04-17 2006-01-31 Telcordia Technologies, Inc. Methods and systems for a generalized mobility solution using a dynamic tunneling agent
US6891811B1 (en) * 2000-04-18 2005-05-10 Telecommunication Systems Inc. Short messaging service center mobile-originated to HTTP internet communications
US6629137B1 (en) * 2000-04-26 2003-09-30 Telefonaktiebolaget L.M. Ericsson Network interface devices methods system and computer program products for connecting networks using different address domains through address translation
US6604147B1 (en) * 2000-05-09 2003-08-05 Lucent Technologies Inc. Scalable IP edge router
EP2858309B1 (en) 2000-06-16 2016-03-23 Fujitsu Limited Communication device having VPN accomodation function
US7003555B1 (en) * 2000-06-23 2006-02-21 Cloudshield Technologies, Inc. Apparatus and method for domain name resolution
US7126947B2 (en) * 2000-06-23 2006-10-24 Broadcom Corporation Switch having external address resolution interface
US6982953B1 (en) * 2000-07-11 2006-01-03 Scorpion Controls, Inc. Automatic determination of correct IP address for network-connected devices
SG101985A1 (en) * 2000-07-12 2004-02-27 Distribution Systems Res Inst Integrated information communication system
US7197046B1 (en) * 2000-08-07 2007-03-27 Shrikumar Hariharasubrahmanian Systems and methods for combined protocol processing protocols
US6996631B1 (en) * 2000-08-17 2006-02-07 International Business Machines Corporation System having a single IP address associated with communication protocol stacks in a cluster of processing systems
US6691227B1 (en) * 2000-09-08 2004-02-10 Reefedge, Inc. Location-independent packet routing and secure access in a short-range wireless networking environment
US20020101859A1 (en) * 2000-09-12 2002-08-01 Maclean Ian B. Communicating between nodes in different wireless networks
US20020078238A1 (en) * 2000-09-14 2002-06-20 Troxel Gregory Donald Routing messages between nodes at a foreign sub-network
US7028099B2 (en) * 2000-09-14 2006-04-11 Bbnt Solutions Llc Network communication between hosts
US20020075866A1 (en) * 2000-09-14 2002-06-20 Troxel Gregory Donald Delivering messages to a node at a foreign network
US6996084B2 (en) * 2000-09-14 2006-02-07 Bbnt Solutions Llc Publishing node information
US6654838B1 (en) * 2000-09-25 2003-11-25 Siemens Information & Communication Networks, Inc. Methods for performing bit sensitive parallel bus peer addressing
US6816912B1 (en) * 2000-12-01 2004-11-09 Utstarcom, Inc. Method and system for tunnel optimized call setup for mobile nodes
US7372868B2 (en) * 2000-12-14 2008-05-13 Intel Corporation Mobile agent connectivity
US7072981B1 (en) * 2000-12-21 2006-07-04 Cisco Technology, Inc. Preallocation of client network address translation addresses for client-server networks
US7031275B1 (en) 2000-12-28 2006-04-18 Utstarcom, Inc. Address management for mobile nodes
US7089328B1 (en) 2000-12-29 2006-08-08 Cisco Technology, Inc. Method allocation scheme for maintaining server load balancers services in a high throughput environment
US20020105954A1 (en) * 2001-02-02 2002-08-08 Craig Peter Alan Dynamic update proxy
US7120701B2 (en) * 2001-02-22 2006-10-10 Intel Corporation Assigning a source address to a data packet based on the destination of the data packet
US20020138622A1 (en) * 2001-03-21 2002-09-26 Motorola, Inc. Apparatus and method of using long lived addresses in a private network for push messaging to mobile devices
US7533409B2 (en) * 2001-03-22 2009-05-12 Corente, Inc. Methods and systems for firewalling virtual private networks
BR0208493A (en) * 2001-03-28 2005-12-13 Qualcomm Inc Power control for point-to-multipoint services provided in communication systems
US8121296B2 (en) * 2001-03-28 2012-02-21 Qualcomm Incorporated Method and apparatus for security in a data processing system
US9100457B2 (en) * 2001-03-28 2015-08-04 Qualcomm Incorporated Method and apparatus for transmission framing in a wireless communication system
US8077679B2 (en) * 2001-03-28 2011-12-13 Qualcomm Incorporated Method and apparatus for providing protocol options in a wireless communication system
US20020194378A1 (en) * 2001-04-05 2002-12-19 George Foti System and method of hiding an internet protocol (IP) address of an IP terminal during a multimedia session
US20020147814A1 (en) * 2001-04-05 2002-10-10 Gur Kimchi Multimedia devices over IP
US6983319B1 (en) * 2001-04-06 2006-01-03 Permeo Technologies, Inc. Dynamic port management
US20020154635A1 (en) * 2001-04-23 2002-10-24 Sun Microsystems, Inc. System and method for extending private networks onto public infrastructure using supernets
EP2234407A1 (en) * 2001-06-08 2010-09-29 The Distribution Systems Research Institute Terminal-to-terminal communication connection control system for IP full service
GB2378359B (en) * 2001-07-03 2004-03-31 Samsung Electronics Co Ltd Method of transmitting data from server of virtual private network to mobile node
WO2003013679A1 (en) * 2001-08-03 2003-02-20 Nokia Corporation A method, system and terminal for synchronising a plurality of terminals
US7139836B1 (en) * 2001-08-08 2006-11-21 Stephen Clark Purcell One-way transaction tagging in a switch crossbar
KR100433621B1 (en) * 2001-08-09 2004-05-31 한국전자통신연구원 Multi layer internet protocol(MLIP) for peer to peer service of private internet and method for transmitting/receiving the MLIP packet
US20040120527A1 (en) * 2001-08-20 2004-06-24 Hawkes Philip Michael Method and apparatus for security in a data processing system
US7185362B2 (en) * 2001-08-20 2007-02-27 Qualcomm, Incorporated Method and apparatus for security in a data processing system
CA2455492C (en) * 2001-08-24 2010-10-12 John Robert King Apparatus and method of coordinating network events
US6658260B2 (en) 2001-09-05 2003-12-02 Telecommunication Systems, Inc. Inter-carrier short messaging service providing phone number only experience
US7000029B2 (en) * 2001-09-12 2006-02-14 Tropic Networks Inc. Method and system for automatic address allocation in a network and network protocol therefor
US7010608B2 (en) * 2001-09-28 2006-03-07 Intel Corporation System and method for remotely accessing a home server while preserving end-to-end security
US7269663B2 (en) * 2001-09-28 2007-09-11 Intel Corporation Tagging packets with a lookup key to facilitate usage of a unified packet forwarding cache
US7697523B2 (en) * 2001-10-03 2010-04-13 Qualcomm Incorporated Method and apparatus for data packet transport in a wireless communication system using an internet protocol
US7020464B2 (en) * 2001-10-09 2006-03-28 Microsoft Corporation System and method for providing agent-free and no-packet overhead mobility support with transparent session continuity for mobile devices
US7352868B2 (en) 2001-10-09 2008-04-01 Philip Hawkes Method and apparatus for security in a data processing system
US7246166B1 (en) * 2001-10-09 2007-07-17 Nortel Networks Limited Establishing a communications path via a multi-homed communications network
US7649829B2 (en) * 2001-10-12 2010-01-19 Qualcomm Incorporated Method and system for reduction of decoding complexity in a communication system
US20120027008A1 (en) * 2001-10-12 2012-02-02 Spice I2I Limited Addressing Techniques For Voice Over Internet Protocol Router
JP4105520B2 (en) * 2001-10-24 2008-06-25 富士通株式会社 Address translation device and address translation method
US6901395B2 (en) * 2001-11-05 2005-05-31 Qualcomm Incorporated Method and apparatus for preferred roaming list compression
US20030088652A1 (en) * 2001-11-07 2003-05-08 Matsushita Electric Industrial Co., Ltd. Network reconfiguration control device and network reconfiguration control method
US7146418B2 (en) * 2001-11-16 2006-12-05 Microsoft Corporation Method and system for providing transparent mobility support
US7187921B1 (en) * 2001-12-10 2007-03-06 Bellsouth Intellectual Property Corporation Apparatus, system and method for forwarding data sent to a wireless device to another address
SE522998C2 (en) * 2001-12-14 2004-03-23 Hotsip Ab Procedure, gateway and computer software product to send a instant message between two users
JP3885585B2 (en) * 2001-12-28 2007-02-21 松下電器産業株式会社 Router device and network system using the same
US20030145082A1 (en) * 2002-01-25 2003-07-31 Son Yong Ho NAT device with LAN monitor for remote management
US20030144027A1 (en) * 2002-01-25 2003-07-31 Uranga Antonio Rufus Method, system, and program product for telephony as means for communication with peripheral device
US7376734B2 (en) * 2002-02-14 2008-05-20 Panduit Corp. VOIP telephone location system
US7395354B2 (en) * 2002-02-21 2008-07-01 Corente, Inc. Methods and systems for resolving addressing conflicts based on tunnel information
TW588532B (en) * 2002-03-29 2004-05-21 Realtek Semiconductor Corp Management device and method of NAT/NAPT session
US7203957B2 (en) * 2002-04-04 2007-04-10 At&T Corp. Multipoint server for providing secure, scaleable connections between a plurality of network devices
US20030191843A1 (en) * 2002-04-04 2003-10-09 Joel Balissat Secure network connection for devices on a private network
US7188365B2 (en) * 2002-04-04 2007-03-06 At&T Corp. Method and system for securely scanning network traffic
KR100425325B1 (en) * 2002-04-13 2004-03-30 삼성전자주식회사 Method for managing IP using NAT in mobile network and apparatus thereof
US7525949B1 (en) 2002-05-07 2009-04-28 Cisco Technology, Inc. Forwarding for network devices
CN1232080C (en) 2002-05-15 2005-12-14 华为技术有限公司 Method of providing internal service apparatus in network for saving IP address
US8108554B1 (en) 2002-05-16 2012-01-31 F5 Networks, Inc. Method and system for automatically mapping secure network address translations
JP3952860B2 (en) * 2002-05-30 2007-08-01 株式会社日立製作所 Protocol converter
US7937471B2 (en) * 2002-06-03 2011-05-03 Inpro Network Facility, Llc Creating a public identity for an entity on a network
US8072979B2 (en) * 2002-06-07 2011-12-06 The Distribution Systems Research Institute Terminal-to-terminal communication control system for IP full service
US7191331B2 (en) * 2002-06-13 2007-03-13 Nvidia Corporation Detection of support for security protocol and address translation integration
US6823461B2 (en) * 2002-06-27 2004-11-23 Nokia Corporation Method and system for securely transferring context updates towards a mobile node in a wireless network
US7701958B2 (en) * 2002-07-02 2010-04-20 Qualcomm Incorporated Communication system supporting transition between network communications protocols
US20040006641A1 (en) * 2002-07-02 2004-01-08 Nischal Abrol Use of multi-format encapsulated internet protocol messages in a wireless telephony network
NO317294B1 (en) * 2002-07-11 2004-10-04 Birdstep Tech Asa Seamless Ip mobility across security boundaries
ATE339048T1 (en) * 2002-07-15 2006-09-15 Siemens Ag HOME AGENT OPTIMIZATION FOR HANDLING MOBILE IP AND STATIC MPLS (MULTI-PROTOCOL LABEL SWITCHING)
US7139828B2 (en) * 2002-08-30 2006-11-21 Ip Dynamics, Inc. Accessing an entity inside a private network
US8234358B2 (en) * 2002-08-30 2012-07-31 Inpro Network Facility, Llc Communicating with an entity inside a private network using an existing connection to initiate communication
KR100886550B1 (en) * 2002-09-17 2009-03-02 삼성전자주식회사 Apparatus and method for allocating the ip address
US6957067B1 (en) 2002-09-24 2005-10-18 Aruba Networks System and method for monitoring and enforcing policy within a wireless network
US7685317B2 (en) * 2002-09-30 2010-03-23 Intel Corporation Layering mobile and virtual private networks using dynamic IP address management
US7752334B2 (en) 2002-10-15 2010-07-06 Nomadix, Inc. Intelligent network address translator and methods for network address translation
US20040122976A1 (en) * 2002-10-24 2004-06-24 Ashutosh Dutta Integrated mobility management
GB2395091A (en) * 2002-11-06 2004-05-12 Nokia Corp Connection set-up to facilitate global mobile communications roaming over a packet switching network
US7574738B2 (en) 2002-11-06 2009-08-11 At&T Intellectual Property Ii, L.P. Virtual private network crossovers based on certificates
US7756956B2 (en) * 2002-11-14 2010-07-13 Canon Development Americas, Inc. Mimic support address resolution
US7707310B2 (en) * 2002-11-20 2010-04-27 Cisco Technology, Inc. Mobile IP registration supporting port identification
JP4003634B2 (en) * 2002-12-17 2007-11-07 株式会社日立製作所 Information processing device
US20040199789A1 (en) * 2002-12-30 2004-10-07 Shaw Terry D. Anonymizer data collection device
US7467227B1 (en) * 2002-12-31 2008-12-16 At&T Corp. System using policy filter decision to map data traffic to virtual networks for forwarding the traffic in a regional access network
US7599655B2 (en) * 2003-01-02 2009-10-06 Qualcomm Incorporated Method and apparatus for broadcast services in a communication system
US7023847B2 (en) * 2003-01-15 2006-04-04 Thomson Licensing Network address translation based mobility management
JP4110977B2 (en) * 2003-01-21 2008-07-02 松下電器産業株式会社 server
US9137670B2 (en) * 2003-02-18 2015-09-15 Hewlett-Packard Development Company, L.P. Method for detecting rogue devices operating in wireless and wired computer network environments
US7295524B1 (en) 2003-02-18 2007-11-13 Airwave Wireless, Inc Methods, apparatuses and systems facilitating management of airspace in wireless computer network environments
US8503437B2 (en) * 2003-03-13 2013-08-06 Verizon Business Global Llc Integrated customer premises equipment device
KR20040082655A (en) * 2003-03-19 2004-09-30 삼성전자주식회사 Mobile ip communication system by use of dual stack transition mechanism and method thereof
US20040249974A1 (en) * 2003-03-31 2004-12-09 Alkhatib Hasan S. Secure virtual address realm
US7949785B2 (en) 2003-03-31 2011-05-24 Inpro Network Facility, Llc Secure virtual community network system
US20040249973A1 (en) * 2003-03-31 2004-12-09 Alkhatib Hasan S. Group agent
CN100431299C (en) * 2003-04-01 2008-11-05 艾利森电话股份有限公司 Method and system for centrally allocating addresses and port numbers
US6938851B2 (en) * 2003-04-23 2005-09-06 International Business Machines Corporation Tape path roller guide and method for making
US7349951B2 (en) * 2003-05-12 2008-03-25 Hewlett-Packard Development Company, L.P. Systems and methods for accessing a printing service
US20040230646A1 (en) * 2003-05-12 2004-11-18 James Clough Systems and methods for discovering a public printing service
JP4260116B2 (en) * 2003-05-22 2009-04-30 富士通株式会社 Secure virtual private network
US20040246514A1 (en) * 2003-06-05 2004-12-09 James Clough Systems and methods for printing using a public printing service
US8098818B2 (en) * 2003-07-07 2012-01-17 Qualcomm Incorporated Secure registration for a multicast-broadcast-multimedia system (MBMS)
US8718279B2 (en) * 2003-07-08 2014-05-06 Qualcomm Incorporated Apparatus and method for a secure broadcast system
IL156924A (en) * 2003-07-15 2009-05-04 Tadiran Telecom Ltd Communication between users located behind nat device
US7739394B2 (en) * 2003-07-29 2010-06-15 At&T Intellectual Property I, L.P. Bi-level addressing for internet protocol broadband access
US20050141431A1 (en) 2003-08-06 2005-06-30 Caveney Jack E. Network managed device installation and provisioning technique
US8724803B2 (en) * 2003-09-02 2014-05-13 Qualcomm Incorporated Method and apparatus for providing authenticated challenges for broadcast-multicast communications in a communication system
US7372843B1 (en) * 2003-09-23 2008-05-13 Cisco Technology, Inc. System and method for compressing information flows in a network environment
WO2005043937A2 (en) * 2003-10-23 2005-05-12 Panduit Corporation System to guide and monitor the installation and revision of network cabling of an active jack network system
US7207846B2 (en) * 2003-11-24 2007-04-24 Panduit Corp. Patch panel with a motherboard for connecting communication jacks
US7584420B2 (en) * 2004-02-12 2009-09-01 Lockheed Martin Corporation Graphical authoring and editing of mark-up language sequences
US7545782B2 (en) 2004-02-19 2009-06-09 Belair Networks, Inc. Mobile station traffic routing
GB2411494B (en) * 2004-02-27 2006-04-12 Toshiba Res Europ Ltd Protocol stack with modification facility
US7546082B2 (en) * 2004-03-02 2009-06-09 Telcordia Technologies, Inc. Application-layer multicast for mobile users in diverse networks
US8144595B1 (en) 2004-03-25 2012-03-27 Verizon Corporate Services Group Inc. Variable translucency no-sight routing for AD-HOC networks
EP1743490B1 (en) * 2004-05-03 2011-09-14 Panduit Corporation Powered patch panel
US20050259600A1 (en) * 2004-05-18 2005-11-24 Samsung Electronics Co., Ltd. Translation bridge between ethernet and 1394A local links for consumer electronics devices
FR2871013B1 (en) * 2004-06-01 2007-02-23 Alcatel Sa ROUTING FOR DETECTION OF SERVERS WITHIN A COMMUNICATION NETWORK
US20050271047A1 (en) * 2004-06-02 2005-12-08 Huonder Russell J Method and system for managing multiple overlapping address domains
US7912072B1 (en) * 2004-06-21 2011-03-22 Nortel Networks Limited Communication with a remote device
US8285855B2 (en) * 2004-08-02 2012-10-09 Microsoft Corporation System, method and user interface for network status reporting
JP4773446B2 (en) * 2004-08-24 2011-09-14 パンドウィット・コーポレーション System and method for managing a network
US20080052281A1 (en) * 2006-08-23 2008-02-28 Lockheed Martin Corporation Database insertion and retrieval system and method
US8332485B1 (en) 2005-03-04 2012-12-11 Cisco Technology, Inc. Lock optimization and lock prediction approaches for reducing client-server messages
US20060221955A1 (en) * 2005-04-05 2006-10-05 Mark Enright IP addressing in joined private networks
US20060256814A1 (en) * 2005-05-13 2006-11-16 Lockheed Martin Corporation Ad hoc computer network
US7599289B2 (en) * 2005-05-13 2009-10-06 Lockheed Martin Corporation Electronic communication control
US20060256770A1 (en) * 2005-05-13 2006-11-16 Lockheed Martin Corporation Interface for configuring ad hoc network packet control
US20060256717A1 (en) * 2005-05-13 2006-11-16 Lockheed Martin Corporation Electronic packet control system
US7853962B1 (en) 2005-05-31 2010-12-14 Cisco Technology, Inc. Method and apparatus for optimization of remote procedure call communications
US9225584B1 (en) * 2005-07-28 2015-12-29 Marvell International Ltd. Alternative network address port translation
US20070044156A1 (en) * 2005-08-19 2007-02-22 Ejamming, Inc. Method and apparatus for verifying firewall and router configuration for peer-to-peer applications
US7716307B1 (en) 2005-10-21 2010-05-11 Cisco Technology, Inc. Method and apparatus for reducing client-server messages associated with opening a file
US7636767B2 (en) * 2005-11-29 2009-12-22 Cisco Technology, Inc. Method and apparatus for reducing network traffic over low bandwidth links
US8547843B2 (en) * 2006-01-20 2013-10-01 Saisei Networks Pte Ltd System, method, and computer program product for controlling output port utilization
US20070171825A1 (en) * 2006-01-20 2007-07-26 Anagran, Inc. System, method, and computer program product for IP flow routing
JP5132059B2 (en) * 2006-01-30 2013-01-30 富士通株式会社 Packet relay method and packet relay system
US9519888B2 (en) * 2006-05-08 2016-12-13 Telecommunication Systems, Inc. End use transparent email attachment handling to overcome size and attachment policy barriers
WO2007133503A2 (en) * 2006-05-08 2007-11-22 Telecommunication Systems, Inc. Automatically updated instant messaging (im) presence of roaming im user
US20070297001A1 (en) * 2006-06-22 2007-12-27 Brian Podl Multi-function peripheral remote alert notification system and method
US8572721B2 (en) * 2006-08-03 2013-10-29 Citrix Systems, Inc. Methods and systems for routing packets in a VPN-client-to-VPN-client connection via an SSL/VPN network appliance
US7769869B2 (en) * 2006-08-21 2010-08-03 Citrix Systems, Inc. Systems and methods of providing server initiated connections on a virtual private network
US8849961B2 (en) * 2006-09-06 2014-09-30 Nokia Corporation Mobile network optimized method for keeping an application IP connection always on
US8055759B2 (en) * 2006-09-18 2011-11-08 Tropos Networks, Inc. Determination of link qualities between an access point and a plurality of clients
US8099105B2 (en) * 2006-09-19 2012-01-17 Telecommunication Systems, Inc. Device based trigger for location push event
US8817813B2 (en) 2006-10-02 2014-08-26 Aruba Networks, Inc. System and method for adaptive channel scanning within a wireless network
US8312507B2 (en) 2006-10-17 2012-11-13 A10 Networks, Inc. System and method to apply network traffic policy to an application session
US8584199B1 (en) 2006-10-17 2013-11-12 A10 Networks, Inc. System and method to apply a packet routing policy to an application session
US7881318B2 (en) * 2007-02-28 2011-02-01 Microsoft Corporation Out-of-band keep-alive mechanism for clients associated with network address translation systems
US7693084B2 (en) * 2007-02-28 2010-04-06 Microsoft Corporation Concurrent connection testing for computation of NAT timeout period
JP4924157B2 (en) * 2007-03-30 2012-04-25 富士ゼロックス株式会社 Identifier assigning device, identifier assigning system, and identifier assigning program
US7996543B2 (en) * 2007-08-16 2011-08-09 Xcastlabs Client-to-client direct RTP exchange in a managed client-server network
US20090055517A1 (en) * 2007-08-21 2009-02-26 D-Link Corporation Method for a plug-and-play network device to acquire dual internet protocol addresses
US9369294B2 (en) * 2007-12-14 2016-06-14 Telecommunication Systems, Inc. Reverse 911 using multicast session internet protocol (SIP) conferencing of voice over internet protocol (VoIP) users
US8693369B2 (en) * 2008-03-31 2014-04-08 Orange Method of routing a data packet in a network and an associated device
US8578005B1 (en) 2008-08-13 2013-11-05 Sprint Spectrum L.P. Systems and methods for providing update notifications to mobile devices using mobile-IP extensions
US8005098B2 (en) * 2008-09-05 2011-08-23 Cisco Technology, Inc. Load balancing across multiple network address translation (NAT) instances and/or processors
US8924486B2 (en) * 2009-02-12 2014-12-30 Sierra Wireless, Inc. Method and system for aggregating communications
GB2478470B8 (en) 2008-11-17 2014-05-21 Sierra Wireless Inc Method and apparatus for network port and netword address translation
US8228848B2 (en) * 2008-11-17 2012-07-24 Sierra Wireless, Inc. Method and apparatus for facilitating push communication across a network boundary
US8675661B1 (en) * 2009-05-07 2014-03-18 Sprint Communications Company L.P. Allocating IP version fields to increase address space
US8769057B1 (en) 2009-05-07 2014-07-01 Sprint Communications Company L.P. Employing a hierarchy of servers to resolve fractional IP addresses
US8170014B1 (en) * 2009-07-22 2012-05-01 Cisco Technology, Inc. Multiple NAT traversal protocol
US8554178B1 (en) 2009-07-22 2013-10-08 Sprint Spectrum L.P. Methods and systems for efficient deployment of communication filters
WO2011044164A1 (en) * 2009-10-06 2011-04-14 Nortel Networks Limited System and protocols for inter-mobility access gateway tunneling for fast handoff transition
US8661156B2 (en) * 2010-11-22 2014-02-25 International Business Machines Corporation Transport layer connection
DE102011078894A1 (en) * 2011-07-08 2013-01-10 Off Script GmbH Device for logical separation for routing and desired tunneling transmission of device-related technical parameters of e.g. document output system, has protocol filter gateway guiding technical device-related data into separate network
US9510256B2 (en) * 2011-09-20 2016-11-29 Wildfire.Exchange, Inc. Seamless handoff, offload, and load balancing in integrated Wi-Fi/small cell systems
US9055117B1 (en) * 2011-09-27 2015-06-09 Amazon Technologies, Inc. Distributed network address translation
US8929854B2 (en) 2011-10-27 2015-01-06 Telecommunication Systems, Inc. Emergency text messaging
EP2748750B1 (en) 2011-11-15 2020-03-18 Nicira Inc. Firewalls in logical networks
US9118618B2 (en) 2012-03-29 2015-08-25 A10 Networks, Inc. Hardware-based packet editor
US9338225B2 (en) 2012-12-06 2016-05-10 A10 Networks, Inc. Forwarding policies on a virtual service network
US9306837B1 (en) * 2013-03-08 2016-04-05 Cisco Technology, Inc. Source IP-based pruning of traffic toward dually-connected overlay hosts in a data communications environment
US9992107B2 (en) 2013-03-15 2018-06-05 A10 Networks, Inc. Processing data packets using a policy based network path
WO2014179753A2 (en) 2013-05-03 2014-11-06 A10 Networks, Inc. Facilitating secure network traffic by an application delivery controller
US9781075B1 (en) * 2013-07-23 2017-10-03 Avi Networks Increased port address space
US9942152B2 (en) 2014-03-25 2018-04-10 A10 Networks, Inc. Forwarding data packets using a service-based forwarding policy
US9338091B2 (en) 2014-03-27 2016-05-10 Nicira, Inc. Procedures for efficient cloud service access in a system with multiple tenant logical networks
US9825854B2 (en) 2014-03-27 2017-11-21 Nicira, Inc. Host architecture for efficient cloud service access
US9794186B2 (en) 2014-03-27 2017-10-17 Nicira, Inc. Distributed network address translation for efficient cloud service access
EP2955904B1 (en) * 2014-06-10 2016-10-19 Siemens Aktiengesellschaft Allocation of network addresses for network participants
US10498619B2 (en) 2014-07-08 2019-12-03 Hewlett Packard Enterprise Development Lp Discovering connection of passive cables
US10362375B2 (en) * 2014-07-08 2019-07-23 Hewlett Packard Enterprise Development Lp Discovering connection of passive cables
US10404809B2 (en) * 2014-08-29 2019-09-03 Google Llc Systems and methods for adaptive associative routing for mobile messaging
US9683438B2 (en) 2014-09-18 2017-06-20 Baker Hughes Incorporation Communication between downhole tools and a surface processor using a network
US9445256B1 (en) 2014-10-22 2016-09-13 Sprint Spectrum L.P. Binding update forwarding between packet gateways
US10268467B2 (en) 2014-11-11 2019-04-23 A10 Networks, Inc. Policy-driven management of application traffic for providing services to cloud-based applications
US10021066B2 (en) * 2015-05-18 2018-07-10 Morgan Stanley Clustered server sharing
US9936430B1 (en) 2016-03-07 2018-04-03 Sprint Spectrum L.P. Packet gateway reassignment
US10182006B2 (en) * 2016-10-18 2019-01-15 Avaya Inc. Internet protocol address selection in session initiation protocol communications
CN114531417B (en) * 2020-10-30 2023-09-22 华为技术有限公司 Communication method and device

Citations (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4313035A (en) 1980-01-18 1982-01-26 Bell Telephone Laboratories, Incorporated Method of providing person locator service
US4953198A (en) 1989-07-05 1990-08-28 At&T Company Public cordless telephone
US5159592A (en) 1990-10-29 1992-10-27 International Business Machines Corporation Network address management for a wired network supporting wireless communication to a plurality of mobile users
US5227778A (en) 1991-04-05 1993-07-13 Digital Equipment Corporation Service name to network address translation in communications network
EP0578374A1 (en) 1992-06-29 1994-01-12 Nortel Networks Corporation Method and apparatus for providing a personal locator, access control and asset tracking service using an in-building telephone network
US5428663A (en) 1991-10-09 1995-06-27 At&T Corp. Incoming communications forwarding technique utilizing a called party location indicator
US5448623A (en) 1991-10-10 1995-09-05 Space Systems/Loral, Inc. Satellite telecommunications system using network coordinating gateways operative with a terrestrial communication system
WO1995034985A1 (en) 1994-06-13 1995-12-21 Alcatel Sel Aktiengesellschaft Method of selecting one of at least two telecommunications terminals and a suitable telecommunications terminal
US5497339A (en) 1993-11-15 1996-03-05 Ete, Inc. Portable apparatus for providing multiple integrated communication media
EP0704788A2 (en) 1994-09-22 1996-04-03 AT&T Corp. Communication apparatus
US5526489A (en) 1993-03-19 1996-06-11 3Com Corporation System for reverse address resolution for remote network device independent of its physical address
US5550984A (en) 1994-12-07 1996-08-27 Matsushita Electric Corporation Of America Security system for preventing unauthorized communications between networks by translating communications received in ip protocol to non-ip protocol to remove address and routing services information
US5557658A (en) 1991-06-20 1996-09-17 Quantum Systems, Inc. Communications marketing system
US5563937A (en) 1994-03-18 1996-10-08 At&T Method and system for multi-channel data automatic call distribution
US5606594A (en) 1994-01-27 1997-02-25 Dell Usa, L.P. Communication accessory and method of telecommunicating for a PDA
US5636216A (en) 1994-04-08 1997-06-03 Metricom, Inc. Method for translating internet protocol addresses to other distributed network addressing schemes
US5646945A (en) 1994-03-15 1997-07-08 Alcatel N.V. Telecommunications system and telecommunications terminal equipment
WO1997031492A1 (en) 1996-02-21 1997-08-28 International Business Machines Corporation Distributed architecture for services in a telephony system
WO1997033421A1 (en) 1996-03-06 1997-09-12 Bell Communications Research, Inc. Personal communications internetworking
WO1998000988A2 (en) 1996-07-01 1998-01-08 Ericsson Inc. Method and apparatus for communicating information on mobile station position within a cellular telephone network
US5708655A (en) 1996-06-14 1998-01-13 Telefonaktiebolaget L M Ericsson Publ Method and apparatus for addressing a wireless communication station with a dynamically-assigned address
WO1998004065A1 (en) 1996-07-24 1998-01-29 Bell Communications Research, Inc. System and method for providing customer contact services through a customer contact services node/internet gateway
US5727057A (en) 1994-12-27 1998-03-10 Ag Communication Systems Corporation Storage, transmission, communication and access to geographical positioning data linked with standard telephony numbering and encoded for use in telecommunications and related services
WO1998010538A1 (en) 1996-09-09 1998-03-12 Leblanc Frederick W Location of a mobile station using a plurality of commercial wireless infrastructures
US5732216A (en) 1996-10-02 1998-03-24 Internet Angles, Inc. Audio message exchange system
US5732074A (en) 1996-01-16 1998-03-24 Cellport Labs, Inc. Mobile portable wireless communication system
WO1998016051A1 (en) 1996-10-07 1998-04-16 Mitel Corporation Network control of telephony services using downloadable applications
US5742905A (en) 1994-09-19 1998-04-21 Bell Communications Research, Inc. Personal communications internetworking
WO1998021911A1 (en) 1996-11-12 1998-05-22 Telefonaktiebolaget Lm Ericsson (Publ) Device for routing information updates
WO1998030008A1 (en) 1996-12-31 1998-07-09 Mci Communications Corporation Internet phone system and directory search engine using same
US5793763A (en) 1995-11-03 1998-08-11 Cisco Technology, Inc. Security system for network address translation systems
EP0858202A2 (en) 1997-02-10 1998-08-12 Nokia Mobile Phones Ltd. A graphic user interface for use with a telephone directory
WO1998037665A1 (en) 1997-02-02 1998-08-27 Fonefriend Systems, Inc. Internet switch box, system and method for internet telephony
US5812819A (en) 1995-06-05 1998-09-22 Shiva Corporation Remote access apparatus and method which allow dynamic internet protocol (IP) address management
EP0869688A2 (en) 1997-04-04 1998-10-07 Nokia Mobile Phones Ltd. A method and means for transmitting a service page in a communication system
US5838665A (en) 1996-03-11 1998-11-17 Integrated Technology, Inc. Data network telephone adaptor device
EP0881848A2 (en) 1997-05-29 1998-12-02 Casio Computer Co., Ltd. Communication system
US5850433A (en) 1996-05-01 1998-12-15 Sprint Communication Co. L.P. System and method for providing an on-line directory service
US5867660A (en) 1995-05-11 1999-02-02 Bay Networks, Inc. Method and apparatus for communicating between a network workstation and an internet
US5872847A (en) 1996-07-30 1999-02-16 Itt Industries, Inc. Using trusted associations to establish trust in a computer network
US5875405A (en) 1994-12-27 1999-02-23 Nec Corporation Method and system for registering abbreviated dialing numbers
WO1999012365A1 (en) 1997-08-29 1999-03-11 Telia Ab (Publ) Communication system including means for transmitting internet addresses via sms
US5894473A (en) 1996-02-29 1999-04-13 Ericsson Inc. Multiple access communications system and method using code and time division
US5894595A (en) 1994-08-01 1999-04-13 At&T Corp Personal mobile communication system
WO1999019988A2 (en) 1997-10-09 1999-04-22 Infogear Technology Corporation Method and system for network access over a low bandwidth link
EP0918423A2 (en) 1997-10-15 1999-05-26 Nokia Mobile Phones Ltd. Mobile phone for Internet applications
US5915008A (en) 1995-10-04 1999-06-22 Bell Atlantic Network Services, Inc. System and method for changing advanced intelligent network services from customer premises equipment
US5918172A (en) 1996-09-27 1999-06-29 Highwaymaster Communications, Inc. Multiple number assignment module communication
WO1999035802A2 (en) 1998-01-07 1999-07-15 Microsoft Corp System for delivering data content over a low bit rate transmission channel
US5930700A (en) 1995-11-29 1999-07-27 Bell Communications Research, Inc. System and method for automatically screening and directing incoming calls
US5933778A (en) 1996-06-04 1999-08-03 At&T Wireless Services Inc. Method and apparatus for providing telecommunication services based on a subscriber profile updated by a personal information manager
US5938757A (en) 1989-06-02 1999-08-17 Ludo Arden Bertsch Programmable distributed appliance control system
WO1999045687A1 (en) 1995-01-26 1999-09-10 Yablon Jay R Enhanced system for transferring, storing and using signalling information in a switched telephone network
US5960340A (en) 1996-02-28 1999-09-28 At&T Corporation Automatic cellular telephone registration for universal telephone number service
DE19813179A1 (en) 1998-03-25 1999-09-30 Siemens Ag Internet-telephone with telephone acting as client for Internet applications
US5970059A (en) 1995-01-10 1999-10-19 Nokia Telecommunications Oy Packet radio system and methods for a protocol-independent routing of a data packet in packet radio networks
US5991394A (en) 1995-04-21 1999-11-23 Rockwell International Corporation Method and system for establishing voice communications using a computer network
US6006272A (en) 1998-02-23 1999-12-21 Lucent Technologies Inc. Method for network address translation
US6011782A (en) 1997-05-08 2000-01-04 At&T Corp. Method for managing multicast addresses for transmitting and receiving multimedia conferencing information on an internet protocol (IP) network
US6031904A (en) 1996-10-23 2000-02-29 Nortel Networks Corporation Service order mechanism for telephone subscriber
US6055236A (en) 1998-03-05 2000-04-25 3Com Corporation Method and system for locating network services with distributed network address translation
US6075992A (en) 1997-10-22 2000-06-13 Ericsson Inc. Apparatus and method for automatically handling initiation of a call by a portable intelligent communications device
US6157950A (en) * 1997-12-05 2000-12-05 Encanto Networks, Inc. Methods and apparatus for interfacing a computer or small network to a wide area network such as the internet
US6161134A (en) 1998-10-30 2000-12-12 3Com Corporation Method, apparatus and communications system for companion information and network appliances
US6163598A (en) 1997-12-24 2000-12-19 Nortel Networks Limited Interactive graphic payphone
US6175860B1 (en) 1997-11-26 2001-01-16 International Business Machines Corporation Method and apparatus for an automatic multi-rate wireless/wired computer network
US6216158B1 (en) 1999-01-25 2001-04-10 3Com Corporation System and method using a palm sized computer to control network devices
US6240097B1 (en) 1997-06-12 2001-05-29 Coherence Technology Corporation Method and apparatus for data channelization and hardware-based network operation and control
US6243379B1 (en) * 1997-04-04 2001-06-05 Ramp Networks, Inc. Connection and packet level multiplexing between network links
WO2001050578A1 (en) 2000-01-03 2001-07-12 Tridelta Industries, Inc. Mechanically commutated switched reluctance motor
US6301609B1 (en) 1999-07-07 2001-10-09 Lucent Technologies Inc. Assignable associate priorities for user-definable instant messaging buddy groups
US20010030950A1 (en) 2000-01-31 2001-10-18 Chen Steven Chien-Young Broadband communications access device
US6308201B1 (en) 1999-04-08 2001-10-23 Palm, Inc. System and method for sharing data among a plurality of personal digital assistants
US6404766B1 (en) * 1995-12-29 2002-06-11 Hitachi, Ltd. Network data communication system
US6411965B2 (en) 1989-08-23 2002-06-25 Edisync Systems Llc Remote multi-user editing system and method transmitting edit display information
US6496477B1 (en) 1999-07-09 2002-12-17 Texas Instruments Incorporated Processes, articles, and packets for network path diversity in media over packet applications

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0529512A3 (en) 1991-08-23 1993-06-16 Fujitsu Limited Method and system for generating random number sequences
JPH07170288A (en) 1993-12-15 1995-07-04 Hitachi Ltd Voice communication system and voice communication method
JP3247540B2 (en) 1994-05-12 2002-01-15 株式会社日立製作所 Packetized communication device and switching device
US5526353A (en) 1994-12-20 1996-06-11 Henley; Arthur System and method for communication of audio data over a packet-based network
US5793657A (en) 1995-04-11 1998-08-11 Nec Corporation Random number generating apparatus and random number generating method in a multiprocessor system
JP2666769B2 (en) 1995-05-16 1997-10-22 日本電気株式会社 Internet protocol routing method and apparatus
US5737333A (en) 1995-06-23 1998-04-07 Lucent Technologies Inc. Method and apparatus for interconnecting ATM-attached hosts with telephone-network attached hosts
US5751971A (en) 1995-07-12 1998-05-12 Cabletron Systems, Inc. Internet protocol (IP) work group routing
US6185184B1 (en) 1995-09-25 2001-02-06 Netspeak Corporation Directory server for providing dynamically assigned network protocol addresses
IL115967A (en) 1995-11-12 1999-05-09 Phonet Communication Ltd Network based distributed pbx system
US5835723A (en) 1995-12-28 1998-11-10 Intel Corporation Dynamic assignment of multicast addresses
US5892924A (en) 1996-01-31 1999-04-06 Ipsilon Networks, Inc. Method and apparatus for dynamically shifting between routing and switching packets in a transmission network
CN1216657A (en) * 1996-04-24 1999-05-12 北方电讯有限公司 Internet protocol filter
US5862331A (en) 1996-06-21 1999-01-19 Sun Microsystems, Inc. Name service system and method for automatic updating on interconnected hosts
US5950195A (en) 1996-09-18 1999-09-07 Secure Computing Corporation Generalized security policy management system and method
US6069889A (en) 1996-10-02 2000-05-30 International Business Machines Corporation Aggregation of data flows on switched network paths
US6101543A (en) 1996-10-25 2000-08-08 Digital Equipment Corporation Pseudo network adapter for frame capture, encapsulation and encryption
US5867495A (en) 1996-11-18 1999-02-02 Mci Communications Corporations System, method and article of manufacture for communications utilizing calling, plans in a hybrid network
JPH10154995A (en) * 1996-11-20 1998-06-09 Fujitsu Ltd Gateway system and method for relaying packet
US6104711A (en) 1997-03-06 2000-08-15 Bell Atlantic Network Services, Inc. Enhanced internet domain name server
US5889774A (en) 1997-03-14 1999-03-30 Efusion, Inc. Method and apparatus for selecting an internet/PSTN changeover server for a packet based phone call
US6137791A (en) * 1997-03-25 2000-10-24 Ericsson Telefon Ab L M Communicating packet data with a mobile station roaming within an incompatible mobile network
US6115751A (en) 1997-04-10 2000-09-05 Cisco Technology, Inc. Technique for capturing information needed to implement transmission priority routing among heterogeneous nodes of a computer network
US6172986B1 (en) 1997-05-13 2001-01-09 Hitachi, Ltd. Mobile node, mobile agent and network system
US6079021A (en) 1997-06-02 2000-06-20 Digital Equipment Corporation Method and apparatus for strengthening passwords for protection of computer systems
US6134591A (en) 1997-06-18 2000-10-17 Client/Server Technologies, Inc. Network security and integration method and system
US6212183B1 (en) 1997-08-22 2001-04-03 Cisco Technology, Inc. Multiple parallel packet routing lookup
US6058421A (en) 1998-02-04 2000-05-02 3Com Corporation Method and system for addressing network host interfaces from a cable modem using DHCP
US6353614B1 (en) 1998-03-05 2002-03-05 3Com Corporation Method and protocol for distributed network address translation
US6058431A (en) * 1998-04-23 2000-05-02 Lucent Technologies Remote Access Business Unit System and method for network address translation as an external service in the access server of a service provider
US6195705B1 (en) * 1998-06-30 2001-02-27 Cisco Technology, Inc. Mobile IP mobility agent standby protocol
US6269099B1 (en) 1998-07-01 2001-07-31 3Com Corporation Protocol and method for peer network device discovery
US6266707B1 (en) * 1998-08-17 2001-07-24 International Business Machines Corporation System and method for IP network address translation and IP filtering with dynamic address resolution
US6212563B1 (en) 1998-10-01 2001-04-03 3Com Corporation Method and system for setting and managing externally provided internet protocol addresses using the dynamic host configuration protocol
US6708219B1 (en) 1999-10-26 2004-03-16 3Com Corporation Method and system for dual-network address utilization
US6353891B1 (en) 2000-03-20 2002-03-05 3Com Corporation Control channel security for realm specific internet protocol

Patent Citations (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4313035A (en) 1980-01-18 1982-01-26 Bell Telephone Laboratories, Incorporated Method of providing person locator service
US5938757A (en) 1989-06-02 1999-08-17 Ludo Arden Bertsch Programmable distributed appliance control system
US4953198A (en) 1989-07-05 1990-08-28 At&T Company Public cordless telephone
US6411965B2 (en) 1989-08-23 2002-06-25 Edisync Systems Llc Remote multi-user editing system and method transmitting edit display information
US5159592A (en) 1990-10-29 1992-10-27 International Business Machines Corporation Network address management for a wired network supporting wireless communication to a plurality of mobile users
US5227778A (en) 1991-04-05 1993-07-13 Digital Equipment Corporation Service name to network address translation in communications network
US5557658A (en) 1991-06-20 1996-09-17 Quantum Systems, Inc. Communications marketing system
US5428663A (en) 1991-10-09 1995-06-27 At&T Corp. Incoming communications forwarding technique utilizing a called party location indicator
US5448623A (en) 1991-10-10 1995-09-05 Space Systems/Loral, Inc. Satellite telecommunications system using network coordinating gateways operative with a terrestrial communication system
EP0578374A1 (en) 1992-06-29 1994-01-12 Nortel Networks Corporation Method and apparatus for providing a personal locator, access control and asset tracking service using an in-building telephone network
US5526489A (en) 1993-03-19 1996-06-11 3Com Corporation System for reverse address resolution for remote network device independent of its physical address
US5497339A (en) 1993-11-15 1996-03-05 Ete, Inc. Portable apparatus for providing multiple integrated communication media
US5606594A (en) 1994-01-27 1997-02-25 Dell Usa, L.P. Communication accessory and method of telecommunicating for a PDA
US5646945A (en) 1994-03-15 1997-07-08 Alcatel N.V. Telecommunications system and telecommunications terminal equipment
US5563937A (en) 1994-03-18 1996-10-08 At&T Method and system for multi-channel data automatic call distribution
US5636216A (en) 1994-04-08 1997-06-03 Metricom, Inc. Method for translating internet protocol addresses to other distributed network addressing schemes
WO1995034985A1 (en) 1994-06-13 1995-12-21 Alcatel Sel Aktiengesellschaft Method of selecting one of at least two telecommunications terminals and a suitable telecommunications terminal
US5894595A (en) 1994-08-01 1999-04-13 At&T Corp Personal mobile communication system
US5742905A (en) 1994-09-19 1998-04-21 Bell Communications Research, Inc. Personal communications internetworking
EP0704788A2 (en) 1994-09-22 1996-04-03 AT&T Corp. Communication apparatus
US5550984A (en) 1994-12-07 1996-08-27 Matsushita Electric Corporation Of America Security system for preventing unauthorized communications between networks by translating communications received in ip protocol to non-ip protocol to remove address and routing services information
US5727057A (en) 1994-12-27 1998-03-10 Ag Communication Systems Corporation Storage, transmission, communication and access to geographical positioning data linked with standard telephony numbering and encoded for use in telecommunications and related services
US5875405A (en) 1994-12-27 1999-02-23 Nec Corporation Method and system for registering abbreviated dialing numbers
US5970059A (en) 1995-01-10 1999-10-19 Nokia Telecommunications Oy Packet radio system and methods for a protocol-independent routing of a data packet in packet radio networks
WO1999045687A1 (en) 1995-01-26 1999-09-10 Yablon Jay R Enhanced system for transferring, storing and using signalling information in a switched telephone network
US5991394A (en) 1995-04-21 1999-11-23 Rockwell International Corporation Method and system for establishing voice communications using a computer network
US5867660A (en) 1995-05-11 1999-02-02 Bay Networks, Inc. Method and apparatus for communicating between a network workstation and an internet
US5812819A (en) 1995-06-05 1998-09-22 Shiva Corporation Remote access apparatus and method which allow dynamic internet protocol (IP) address management
US5915008A (en) 1995-10-04 1999-06-22 Bell Atlantic Network Services, Inc. System and method for changing advanced intelligent network services from customer premises equipment
US5793763A (en) 1995-11-03 1998-08-11 Cisco Technology, Inc. Security system for network address translation systems
US5930700A (en) 1995-11-29 1999-07-27 Bell Communications Research, Inc. System and method for automatically screening and directing incoming calls
US6404766B1 (en) * 1995-12-29 2002-06-11 Hitachi, Ltd. Network data communication system
US5732074A (en) 1996-01-16 1998-03-24 Cellport Labs, Inc. Mobile portable wireless communication system
WO1997031492A1 (en) 1996-02-21 1997-08-28 International Business Machines Corporation Distributed architecture for services in a telephony system
US5960340A (en) 1996-02-28 1999-09-28 At&T Corporation Automatic cellular telephone registration for universal telephone number service
US5894473A (en) 1996-02-29 1999-04-13 Ericsson Inc. Multiple access communications system and method using code and time division
WO1997033421A1 (en) 1996-03-06 1997-09-12 Bell Communications Research, Inc. Personal communications internetworking
US5838665A (en) 1996-03-11 1998-11-17 Integrated Technology, Inc. Data network telephone adaptor device
US5850433A (en) 1996-05-01 1998-12-15 Sprint Communication Co. L.P. System and method for providing an on-line directory service
US5933778A (en) 1996-06-04 1999-08-03 At&T Wireless Services Inc. Method and apparatus for providing telecommunication services based on a subscriber profile updated by a personal information manager
US5708655A (en) 1996-06-14 1998-01-13 Telefonaktiebolaget L M Ericsson Publ Method and apparatus for addressing a wireless communication station with a dynamically-assigned address
WO1998000988A2 (en) 1996-07-01 1998-01-08 Ericsson Inc. Method and apparatus for communicating information on mobile station position within a cellular telephone network
WO1998004065A1 (en) 1996-07-24 1998-01-29 Bell Communications Research, Inc. System and method for providing customer contact services through a customer contact services node/internet gateway
US5872847A (en) 1996-07-30 1999-02-16 Itt Industries, Inc. Using trusted associations to establish trust in a computer network
WO1998010538A1 (en) 1996-09-09 1998-03-12 Leblanc Frederick W Location of a mobile station using a plurality of commercial wireless infrastructures
US5918172A (en) 1996-09-27 1999-06-29 Highwaymaster Communications, Inc. Multiple number assignment module communication
US5732216A (en) 1996-10-02 1998-03-24 Internet Angles, Inc. Audio message exchange system
WO1998016051A1 (en) 1996-10-07 1998-04-16 Mitel Corporation Network control of telephony services using downloadable applications
US6031904A (en) 1996-10-23 2000-02-29 Nortel Networks Corporation Service order mechanism for telephone subscriber
WO1998021911A1 (en) 1996-11-12 1998-05-22 Telefonaktiebolaget Lm Ericsson (Publ) Device for routing information updates
WO1998030008A1 (en) 1996-12-31 1998-07-09 Mci Communications Corporation Internet phone system and directory search engine using same
WO1998037665A1 (en) 1997-02-02 1998-08-27 Fonefriend Systems, Inc. Internet switch box, system and method for internet telephony
EP0858202A2 (en) 1997-02-10 1998-08-12 Nokia Mobile Phones Ltd. A graphic user interface for use with a telephone directory
EP0869688A2 (en) 1997-04-04 1998-10-07 Nokia Mobile Phones Ltd. A method and means for transmitting a service page in a communication system
US6243379B1 (en) * 1997-04-04 2001-06-05 Ramp Networks, Inc. Connection and packet level multiplexing between network links
US6011782A (en) 1997-05-08 2000-01-04 At&T Corp. Method for managing multicast addresses for transmitting and receiving multimedia conferencing information on an internet protocol (IP) network
EP0881848A2 (en) 1997-05-29 1998-12-02 Casio Computer Co., Ltd. Communication system
US6240097B1 (en) 1997-06-12 2001-05-29 Coherence Technology Corporation Method and apparatus for data channelization and hardware-based network operation and control
WO1999012365A1 (en) 1997-08-29 1999-03-11 Telia Ab (Publ) Communication system including means for transmitting internet addresses via sms
WO1999019988A2 (en) 1997-10-09 1999-04-22 Infogear Technology Corporation Method and system for network access over a low bandwidth link
EP0918423A2 (en) 1997-10-15 1999-05-26 Nokia Mobile Phones Ltd. Mobile phone for Internet applications
US6075992A (en) 1997-10-22 2000-06-13 Ericsson Inc. Apparatus and method for automatically handling initiation of a call by a portable intelligent communications device
US6175860B1 (en) 1997-11-26 2001-01-16 International Business Machines Corporation Method and apparatus for an automatic multi-rate wireless/wired computer network
US6157950A (en) * 1997-12-05 2000-12-05 Encanto Networks, Inc. Methods and apparatus for interfacing a computer or small network to a wide area network such as the internet
US6163598A (en) 1997-12-24 2000-12-19 Nortel Networks Limited Interactive graphic payphone
WO1999035802A2 (en) 1998-01-07 1999-07-15 Microsoft Corp System for delivering data content over a low bit rate transmission channel
US6006272A (en) 1998-02-23 1999-12-21 Lucent Technologies Inc. Method for network address translation
US6055236A (en) 1998-03-05 2000-04-25 3Com Corporation Method and system for locating network services with distributed network address translation
DE19813179A1 (en) 1998-03-25 1999-09-30 Siemens Ag Internet-telephone with telephone acting as client for Internet applications
US6161134A (en) 1998-10-30 2000-12-12 3Com Corporation Method, apparatus and communications system for companion information and network appliances
US6216158B1 (en) 1999-01-25 2001-04-10 3Com Corporation System and method using a palm sized computer to control network devices
US6308201B1 (en) 1999-04-08 2001-10-23 Palm, Inc. System and method for sharing data among a plurality of personal digital assistants
US6301609B1 (en) 1999-07-07 2001-10-09 Lucent Technologies Inc. Assignable associate priorities for user-definable instant messaging buddy groups
US6496477B1 (en) 1999-07-09 2002-12-17 Texas Instruments Incorporated Processes, articles, and packets for network path diversity in media over packet applications
WO2001050578A1 (en) 2000-01-03 2001-07-12 Tridelta Industries, Inc. Mechanically commutated switched reluctance motor
US20010030950A1 (en) 2000-01-31 2001-10-18 Chen Steven Chien-Young Broadband communications access device

Non-Patent Citations (84)

* Cited by examiner, † Cited by third party
Title
"Understanding Packet Voice Protocols"; The International Engineering Consortium; http://www.iec.org.
3COM SIP Solutions 1.0 benefits brochure. (4 total pages).
Anquetil, L.P. et al., Media Gateway Control Protocol and Voice Over IP Gateways. MGCP and VoIP Gateways Will Offer Seamless Interworking of New VoIP Networks with Today's Telephone Networks, Electrical Communication, (Apr. 1, 1999), pps. 151-157.
Borella, M., Grabelsky, D., Lo, J., Tuniguchi, K., Internet Engineering Task Force, Internet Draft, "Realm Specific IP: Protocol Specification <draft-ietf-nat-rsip-protocol-.06.txt>", Mar. 2000, pp. 1-48.
Borella, M., Lo, J., Grabelsky, D., Montenegro, G., IETF Proceedings presentation, Realm Specific IP: Protocol Specification <draft-nat-rsip-protocol-00.txt>, Apr. 9, 1999 (13 pages).
Borella, M., Lo, J., Grabelsky, D., Montenegro, G., Internet Engineering Task Force, Internet Draft, "Realm Specific IP: Framework <draft-ietf-nat-rsip-framework-.04.txt>", Mar. 2000, pp. 1-30.
Borella, M., Lo, J., Grabelsky, D., Montenegro, G., Internet Engineering Task Force, Internet Draft, "Realm Specific IP: Framework <draft-ietf-nat-rsip-framework-.05.txt>", Jul. 2000, pp. 1-30.
Borella, M., Montenegro, G., RSIP: Address Sharing with End-To-End Security, USENIX Conference, San Francisco, California, Mar. 9, 2000, pp. 1-9.
Borella, Michael, Technology Update-Protocol Helps Stretch IPv4 Addresses, "Network World", vol. 17, No. 3, Jan. 17, 2000, p. 43.
Broella, M., Grabelsky, D., Lo, J., Tuniguchi, K., Internet Engineering Task Force, Internet Draft, "Realm Specific IP: Protocol Specification <draft-ietf-nat-rsip-protocol-.07.txt>", Jul. 2000, pp. 1-49.
Dalgic, Ismail et al., True Number Portability and Advanced Call Screening in a SIP-Based IP Telephony System, IEEE Communications Magazine, vol. 37, No. 7, (Jul. 1999), pps. 96-101.
Dalgic, Ismail; Borella, Michael; Dean, Rick; Grabiec, Jacek; Mahler, Jerry; Schuster, Guido; and Sidhu, Ikhlaq, True Number Portability and Advanced Call Screening in a SIP-Based IP Telephony System, IEEE Communications Magazine, vol. 37, No. 7, Jul. 1999, pp. 96-101. (8 total pages).
G. Montene, Internet Engineering Task Force, Internet Draft, "Negotiated Address Reuse" (NAR), <draft-montenegro-aatn-nar-00.txt>, May 1998, pp. 1 to 22.
George Tsirtsis, Alan O'Neill, Internet Engineering Task Force, Internet Draft, "NAT Bypass for End 2 End 'Sensitive' Applications," <draft-tsirtsis-nat-bypass-00.txt>, Jan. 1998, pp. 1 to 5.
George Tsirtsis, Pyda Srishuresh, Internet Engineering Task Force, Internet Draft, "Network Address Translation-Protocol Translation" (NAT-PT), <draft-ietf-ngtrans-natpt-04.txt>, Jan. 1999, pp. 1 to 13.
Gessler, Stefan et al., PDAs as Mobile WWW Browsers, Computer Networks and ISDN Systems, vol. 28, No. 1, (Dec. 1995), pps. 53-59.
Handley/Schulzrinne/Schooler/Rosenberg, SIP: Session Initiation Protocol, Network Working Group, Request for Comments (RFC) 2543, Mar. 1999. (153 pages).
Handley/Schulzrinne/Schooler/Rosenburg, SIP: Session Initiation Protocol, Internet Engineering Task Force, draft-ietf-sip-rfc2543bis-02.ps. Sep. 4, 2000. (131 pages).
Hansson, Allan et al., Phone Doubler-A Step Towards Integrated Internet and Telephone Communities, Ericsson Review, No. 4, 1997, pps. 142-152.
IETF Mar. 1999 Proceedings, 2.7.10 Network Address Translators (nat), pp. 1-13.
International Search Report for PCT Application Serial No. PCT/US00/26094, Dated Jan. 31, 2001.
International Search Report for PCT Application Serial No. PCT/US00/26594, Dated Feb. 6, 2001.
International Search Report for PCT Application Serial No. PCT/US00/26618, Dated Feb. 19, 2001.
International Search Report for PCT Application Serial No. PCT/US00/26649, Dated Feb. 6, 2001.
International Search Report for PCT Application Serial No. PCT/US00/26650, Dated Feb. 19, 2001.
International Search Report for PCT Application Serial No. PCT/US00/41020, Dated Feb. 21, 2001.
Jeffrey Lo, K. Taniguchi, Internet Engineering Task Force, Internet Draft, "IP Host Network Address (and port) Translation," <draft-ietf-nat-hnat-00.txt>, Nov. 1998, pp. 1 to 13.
K. Egevang, and P. Francis, Internet Engineering Task Force, ("IETF"), Request for Comments ("RFC") RFC-1631, "The IP Network Address Translator (NAT)", May 1994, pp. 1-10.
Kent, Stephen, Evaluating Certification Authority Security, Aerospace Conference, 1998 IEEE, Online, vol. 4, pp. 319-327 (Mar. 21-23, 1998).
Marsan, Carolyn Duffy, The Next Best Things to Ipv6? Network World Fusion at http://www.nbwfusion.com/news/1999/0920ipv6.html, Mar. 29, 2000, pp. 1-3.
Michael Borella, David Grabelsky, Ikhlaq Sidhu, Brian Petry, Internet Engineering Task Force, Internet Draft, "Distributed Network Address Translation," <draft-borella-aatn-dnat-01.txt>, Oct. 1998, pp. 1 to 21.
Montenegro, G., Internet Engineering Task Force, Internet Draft, "RSIP Support for End-to-End IPsec," <draft-ietf-nat-rsip-ipsec-04.txt>, Jul. 2000, pp. 1 to 17.
Myers, Brad A.; Stiel, Herb; and Gargiulo, Robert, Collaboration Using Multiple PDAs Connected to a PC, Proceedings of the ACM 1998 conference on Computer supported cooperative work, Nov. 14-18, 1998, Seattle, WA. (total 11 pages).
P. Srisuresh, G. Tsirtsis, P. Akkiraju, A. Heffernan, Internet Engineering Task Force, Internet Draft, "DNS Extensions to Network Address Translators" (DNS_ALG), <draft-ietf-nat-dns-alg-01.txt>, Oct. 1998, pp. 1 to 24.
P. Srisuresh, Internet Engineering Task Force, Internet Draft "Security for IP Network Address Translator (NAT) Domains," <draft-nat-security-00.txt.>, Nov. 1998, pp. 1 to 11.
P. Srisuresh, K. Eg, Internet Engineering Task Force, Internet Draft, "The IP Network Address Translator" (NAT), <draft-rfced-info-srisuresh-05.txt>, Feb. 1998, pp. 1 to 24.
P. Srisuresh, K. Egev, Internet Engineering Task Force, Internet Draft, "Traditional IP Network Address Translator (Traditional NAT)," <draft-ietf-nat-traditional-01.txt>, Oct. 1998, pp. 1 to 17.
P. Srisuresh, Matt Holdrege, Internet Engineering Task Force, Internet Draft, "IP Network Address Translator (NAT) Terminology and Considerations," <draft-ietf-nat-terminology-01.txt>, Aug. 1999, pp. 1 to 30.
P. Srisuresh, Matt Holdrege, Internet Engineering Task Force, Internet Draft, "IP Network Address Translator (NAT) Terminology and Considerations," <draft-ietf-nat-terminology-01.txt>, Oct. 1998, pp. 1 to 28.
Pepper, David J. et al., The Call Manager System: A Platform for Intelligent Telecommunications Services, Speech Communication, vol. 23, (1997), pps. 129-139.
Praveen Akkiraju, Yakov Rekhter, Internet Engineering Task Force, Internet Draft, "A Multihoming Solution Using NATs" <draft-akkiraju-nat-multihoming-00.txt>, Nov. 1998, pp. 1 to 32.
R. G. Moskowitz, Internet Engineering Task Force, Internet Draft, "Network Address Translation Issues with IPsec," <draft-monskowitz-net66-vpn-00.txt>, Feb. 6, 1998, p. 1 to 8.
R. Thay, N. Doraswa and R. Gle, Internet Engineering Task Force, Internet Draft "IP Security," <draft-ietf-ipsec-doc-roadmap-02.txt.>, Nov. 1997, pp. 1 to 12.
Rosenberg, Jonathan D. and Shockey, Richard, The Session Initiation Protocol (SIP): A Key Component for Internet Telephony, ComputerTelephony.com, Jun. 2000, pp. 124-139.
Sidhu, Ikhlaq and Bezaitis, Andrew, Eat or be eaten, www.americasnetwork.com/issues/99issues/991101/991191_eat.htm, printed May 10, 2000. (6 total pages).
T. Hain, Internet Engineering Task Force, Internet Draft, "Architectural Implications of NAT," <draft-iab-nat-implications-02.txt>, Oct. 1998, pp. 1 to 14.
Terry, Douglas B. et al. Managing Stored Voice In the Etherphone System, Operating Systems Review (SIGOPS), US, ACM Head Quarter, New York, NY. vol. 21, No. % (Nov. 8, 1987), pps. 103-104, XP 000005196.
Terry, Douglas B. et al. Managing Stored Voice In the Etherphone System, Xerox Palo Alto Research Center vol. 1, (Feb. 1998), pps. 3-27, XP 000032477.
Thayer, Rodney, Bulletproof IP With Authentication and Encryption IPSec Adds a Layer of Armor to IP, Data Communications, vol. 26, No. 16, pp. 55-58, 60 (Nov. 21, 1997).
U.S. patent application Ser. No. 09/405,283, Schuster et al., filed Sep. 27, 1999.
U.S. patent application Ser. No. 09/405,981, Schuster et al., filed Sep. 27, 1999.
U.S. patent application Ser. No. 09/406,066, Schuster et al., filed Sep. 27, 1999.
U.S. patent application Ser. No. 09/406,128, Schuster et al., filed Sep. 27, 1999.
U.S. patent application Ser. No. 09/406,151, Schuster et al., filed Sep. 27, 1999.
U.S. patent application Ser. No. 09/406,152, Schuster et al., filed Sep. 27, 1999.
U.S. patent application Ser. No. 09/406,231, Schuster et al., filed Sep. 27, 1999.
U.S. patent application Ser. No. 09/406,298, Schuster et al., filed Sep. 27, 1999.
U.S. patent application Ser. No. 09/406,320, Schuster et al., filed Sep. 27, 1999.
U.S. patent application Ser. No. 09/406,322, Schuster et al., filed Sep. 27, 1999.
U.S. patent application Ser. No. 09/451,388, Schuster et al., filed Nov. 30, 1999.
U.S. patent application Ser. No. 09/470,879, Schuster et al., filed Dec. 22, 1999.
U.S. patent application Ser. No. 09/515,364, Schuster et al., filed Feb. 29, 2000.
U.S. patent application Ser. No. 09/515,365, Schuster et al., filed Feb. 29, 2000.
U.S. patent application Ser. No. 09/515,366, Schuster et al., filed Feb. 29, 2000.
U.S. patent application Ser. No. 09/515,387, Schuster et al., filed Feb. 29, 2000.
U.S. patent application Ser. No. 09/515,795, Schuster et al., filed Feb. 29, 2000.
U.S. patent application Ser. No. 09/515,796, Schuster et al., filed Feb. 29, 2000.
U.S. patent application Ser. No. 09/515,797, Schuster et al., filed Feb. 29, 2000.
U.S. patent application Ser. No. 09/515,798, Schuster et al., filed Feb. 29, 2000.
U.S. patent application Ser. No. 09/515,969, Schuster et al., filed Feb. 29, 2000.
U.S. patent application Ser. No. 09/515,970, Schuster et al., filed Feb. 29, 2000.
U.S. patent application Ser. No. 09/516,269, Schuster et al., filed Feb. 29, 2000.
U.S. patent application Ser. No. 09/584,924, Schuster et al., filed May 31, 2000.
U.S. patent application Ser. No. 09/584,927, Schuster et al., filed May 31, 2000.
U.S. patent application Ser. No. 09/677,077, Schuster et al., filed Sep. 29, 2000.
U.S. patent application Ser. No. 09/726,993, Schuster et al., filed Nov. 30, 2000.
U.S. patent application Ser. No. 09/728,833, Schuster et al., filed Nov. 30, 2000.
W.T. Teo, S.W. Yeow, R. Singh, Internet Engineering Task Force, Internet Draft, "IP Relocation Through Twice Network Address Translators," <draft-ietf-nat-rnat-00.txt<, Feb. 1999, pp. 1 to 20.
W.T. Teo, S.W. Yeow, R. Singh, Internet Engineering Task Force, Internet Draft, "Reverse Twice Network Address Translators" (RAT), <draft-teoyeow-mip-rat-01.txt>, Dec. 1998, pp. 1 to 20.
W.T. Teo, Y. Li, Internet Engineering Task Force, Internet Draft, "Mobile IP Extension for Private Internets Support," <draft-teoyli-mobileip-mvpn-02.txt>, Feb. 1999, pp. 1 to 24.
Watanabe, H. et al., Development of the BTRON-BrainPad, Proceedings 13<th >Tron Project International Symposium, Online!, (Dec. 4-7, 1996), pps. 95-103.
Watanabe, H. et al., Development of the BTRON-BrainPad, Proceedings 13th Tron Project International Symposium, Online!, (Dec. 4-7, 1996), pps. 95-103.
Yakov Rekhter, Internet Engineering Task Force, Internet Draft, "Implications of NATs on the TCP/IP Architecture," <draft-ietf-nat-arch-implications-00.txt>, Feb. 1999, pp. 1 to 7.
Zellweger, Polle T. et al. An Overview of the Etherphone System and Its Applications, Xerox Palo Alto Research Center (Mar. 1988), pps. 160-168, XP 000617541.

Cited By (224)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7660294B2 (en) * 1999-06-07 2010-02-09 At&T Intellectual Property Ii, L.P. Voice-over-IP enabled chat
US20050259638A1 (en) * 1999-06-07 2005-11-24 Burg Frederick M Voice -over-IP enabled chat
US8891410B2 (en) 1999-06-07 2014-11-18 At&T Intellectual Property Ii, L.P. Voice-over-IP enabled chat
US8687625B2 (en) 1999-06-14 2014-04-01 Verizon Business Global Llc Internet protocol transport of PSTN-to-PSTN telephony services
US20040246949A1 (en) * 1999-06-14 2004-12-09 Mci Worldcom. Inc. Internet protocol transport of PSTN-to-PSTN telephony services
US7653081B2 (en) * 1999-06-14 2010-01-26 Verizon Business Global Llc Internet protocol transport of PSTN-to-PSTN telephony services
US7492775B2 (en) 1999-07-29 2009-02-17 Verizon Business Global Llc Address definition for IP telephony services
US8731158B2 (en) 1999-11-08 2014-05-20 Verizon Business Global Llc Methods for providing prepaid telephony service via an internet protocol network system
US8923276B2 (en) 1999-11-08 2014-12-30 Tekla Pehr Llc Internet protocol telephony voice/video message deposit and retrieval
US7860114B1 (en) 1999-11-08 2010-12-28 Verizon Business Global Llc Method and system for dynamic gateway selection in an IP telephony network
US8509393B2 (en) 1999-11-08 2013-08-13 Tekla Pehr Llc Internet protocol telephony voice/video message deposit and retrieval
US7844039B2 (en) 1999-11-08 2010-11-30 Verizon Business Global Llc Methods for providing prepaid telephony service via an internet protocol network system
US8743892B2 (en) 1999-11-08 2014-06-03 Verizon Business Global Llc Method and system for dynamic gateway selection in an IP telephony network
US20040258239A1 (en) * 1999-11-08 2004-12-23 Gallant John K. Method and system for dynamic gateway selection in an IP telephony network
US9281996B1 (en) 1999-11-08 2016-03-08 Verizon Patent And Licensing Inc. Method and system for dynamic gateway selection in an IP telephony network
US7773585B2 (en) 1999-11-08 2010-08-10 Verizon Business Global Llc Internet protocol telephony voice/video message deposit and retrieval
US7764777B2 (en) 2000-05-04 2010-07-27 Telemaze Llc Branch calling and caller ID based call routing telephone features
US9083719B2 (en) 2000-05-04 2015-07-14 Focal Ip, Llc Controller for the intelligent interconnection of two communication networks, and method of use for same
US8175240B2 (en) 2000-05-04 2012-05-08 Telemaze Llc Tandem access controller within the public switched telephone network
US8848894B2 (en) 2000-05-04 2014-09-30 Focal Ip, Llc Tandem access controller within the public switched telephone network
US8155298B2 (en) 2000-05-04 2012-04-10 Telemaze Llc Tandem access controller within the public switched telephone network
US8718252B2 (en) 2000-05-04 2014-05-06 Focal Ip, Llc Tandem access controller within the public switched telephone network
US8457113B2 (en) 2000-05-04 2013-06-04 Telemaze Llc Branch calling and caller ID based call routing telephone features
US7430613B2 (en) * 2000-06-29 2008-09-30 Oki Data Corporation Image communication apparatus, image communication system and image communication method
US20020002623A1 (en) * 2000-06-29 2002-01-03 Oki Data Corporation Image communication apparatus, image communication system and image communication method
US7797433B2 (en) * 2000-06-30 2010-09-14 Net2Phone System, method, and computer program product for resolving addressing in a network including a network address translator
US20040252683A1 (en) * 2000-06-30 2004-12-16 Kennedy Thomas Scott System, method , and computer program product for resolving addressing in a network including a network address translator
US20140330886A1 (en) * 2000-12-19 2014-11-06 Rockstar Consortium Us Lp Distributed network address translation control
US20020133582A1 (en) * 2000-12-21 2002-09-19 Atsushi Shibata Network management system
US7315888B2 (en) * 2000-12-21 2008-01-01 Hitachi, Ltd. Network management system
US7146432B2 (en) * 2001-01-17 2006-12-05 International Business Machines Corporation Methods, systems and computer program products for providing failure recovery of network secure communications in a cluster computing environment
US8972475B2 (en) 2001-01-17 2015-03-03 International Business Machines Corporation Network secure communications in a cluster computing environment
US6941366B2 (en) 2001-01-17 2005-09-06 International Business Machines Corporation Methods, systems and computer program products for transferring security processing between processors in a cluster computing environment
US20020095603A1 (en) * 2001-01-17 2002-07-18 Godwin James Russell Methods, systems and computer program products for providing data from network secure communications in a cluster computing environment
US7340530B2 (en) 2001-01-17 2008-03-04 International Business Machines Corporation Methods, for providing data from network secure communications in a cluster computing environment
US20080098126A1 (en) * 2001-01-17 2008-04-24 International Business Machines Corporation Network secure communications in a cluster computing environment
US20030018813A1 (en) * 2001-01-17 2003-01-23 Antes Mark L. Methods, systems and computer program products for providing failure recovery of network secure communications in a cluster computing environment
US20020095496A1 (en) * 2001-01-17 2002-07-18 Antes Mark L. Methods, systems and computer program products for transferring security processing between processors in a cluster computing environment
US7072341B2 (en) * 2001-02-20 2006-07-04 Innomedia Pte, Ltd Real time streaming media communication system
US20020114333A1 (en) * 2001-02-20 2002-08-22 Innomedia Pte Ltd. Real time streaming media communication system
US7100202B2 (en) * 2001-03-02 2006-08-29 Tekelec Voice firewall
US20020124189A1 (en) * 2001-03-02 2002-09-05 Steve Bakke Voice firewall
US7509435B2 (en) * 2001-03-12 2009-03-24 International Business Machines Corporation Network Address Translation and Port Mapping
US20020129165A1 (en) * 2001-03-12 2002-09-12 Dingsor Andrew D. Network address translation and port mapping
US20020136370A1 (en) * 2001-03-20 2002-09-26 Gallant John Kenneth Shared dedicated access line (DAL) gateway routing discrimination
US7289522B2 (en) * 2001-03-20 2007-10-30 Verizon Business Global Llc Shared dedicated access line (DAL) gateway routing discrimination
US20020141384A1 (en) * 2001-03-28 2002-10-03 Fu-Hua Liu System and method for determining a connectionless communication path for communicating audio data through an address and port translation device
US6928082B2 (en) * 2001-03-28 2005-08-09 Innomedia Pte Ltd System and method for determining a connectionless communication path for communicating audio data through an address and port translation device
US20020141352A1 (en) * 2001-04-03 2002-10-03 Fangman Richard E. System and method for configuring an IP telephony device
US8804705B2 (en) * 2001-04-03 2014-08-12 Voxpath Networks, Inc. System and method for configuring an IP telephony device
US8363647B2 (en) * 2001-04-03 2013-01-29 Voxpath Networks, Inc. System and method for configuring an IP telephony device
US7068647B2 (en) * 2001-04-03 2006-06-27 Voxpath Networks, Inc. System and method for routing IP packets
US20130114589A1 (en) * 2001-04-03 2013-05-09 Voxpath Networks, Inc System and method for configuring an ip telephony device
US20020141389A1 (en) * 2001-04-03 2002-10-03 Fangman Richard E. System and method for routing IP packets
US20060002301A1 (en) * 2001-04-04 2006-01-05 Changwen Liu Transferring transmission control protocol packets
US7305480B2 (en) * 2001-04-18 2007-12-04 Hitachi, Ltd. Method and system for persistent translation between protocols
US8520574B2 (en) 2001-04-18 2013-08-27 Hitachi, Ltd. Method of translating protocol at translator, method of providing protocol translation information at translation server, and address translation server
US8014328B2 (en) 2001-04-18 2011-09-06 Hitachi, Ltd. Method of translating protocol at translator, method of providing protocol translation information at translation server, and address translation server
US20020154624A1 (en) * 2001-04-18 2002-10-24 Hitachi. Ltd. Method of translating protecol at translator, method of providing protocol translation information at translation server, and address translation server
US20050190790A1 (en) * 2001-04-18 2005-09-01 Hitachi, Ltd. Method of translating protocol at translator, method of providing protocol translation information at translation server, and address translation server
US7760674B2 (en) 2001-04-18 2010-07-20 Hitachi, Ltd. Method of translating protocol at translator, method of providing protocol translation information at translation server, and address translation server
US20100293285A1 (en) * 2001-04-18 2010-11-18 Hitachi, Ltd. Method of translating protocol at translator, method of providing protocol translation information at translation server, and address translation server
US20020186685A1 (en) * 2001-06-11 2002-12-12 O'brien James D. Voice over internet protocol real time protocol routing
US20080181202A1 (en) * 2001-06-11 2008-07-31 Level 3 Communications, Llc Voice over internet protocol real time protocol routing
US8780893B2 (en) 2001-06-11 2014-07-15 Level 3 Communications, Llc Voice over internet protocol real time protocol routing
US7369535B2 (en) * 2001-06-11 2008-05-06 Level 3 Communications, Llc Voice over Internet Protocol real time protocol routing
US8374167B2 (en) 2001-06-11 2013-02-12 Level 3 Communications, Llc Voice over internet protocol real time protocol routing
US8484359B2 (en) 2001-06-14 2013-07-09 Rockstar Consortium Us Lp Providing telephony services to terminals behind a firewall and/or a network address translator
US20070192508A1 (en) * 2001-06-14 2007-08-16 Nortel Networks Limited Providing network address translation information
US20070094412A1 (en) * 2001-06-14 2007-04-26 Nortel Networks Limited Providing telephony services to terminals behind a firewall and/or a network address translator
US8108553B2 (en) * 2001-06-14 2012-01-31 Rockstar Bidco, LP Providing network address translation information
US7068655B2 (en) * 2001-06-14 2006-06-27 Nortel Networks Limited Network address and/or port translation
US20030007486A1 (en) * 2001-06-14 2003-01-09 March Sean W. Network address and/or port translation
US8244876B2 (en) 2001-06-14 2012-08-14 Rockstar Bidco, LP Providing telephony services to terminals behind a firewall and/or a network address translator
US20060274749A1 (en) * 2001-06-27 2006-12-07 Intel Corporation Method enabling network address translation of incoming session initiation protocol connections base on dynamic host configuration protocol address assignments
US20080140848A1 (en) * 2001-07-18 2008-06-12 Cisco Technology, Inc. Method and System for Providing an Accurate Address of a Device on a Network
US7369537B1 (en) * 2001-07-18 2008-05-06 Global Ip Solutions, Inc. Adaptive Voice-over-Internet-Protocol (VoIP) testing and selecting transport including 3-way proxy, client-to-client, UDP, TCP, SSL, and recipient-connect methods
US8224995B2 (en) 2001-07-18 2012-07-17 Cisco Technology, Inc. Method and system for providing an accurate address of a device on a network
US7339927B1 (en) * 2001-07-18 2008-03-04 Cisco Technology, Inc. Method and system for providing an accurate address of a device on a network
US20030033418A1 (en) * 2001-07-19 2003-02-13 Young Bruce Fitzgerald Method of implementing and configuring an MGCP application layer gateway
US8098651B1 (en) 2001-07-27 2012-01-17 Rockstar Bidco, LP Integrating multimedia capabilities with circuit-switched calls
US8711707B2 (en) 2001-07-27 2014-04-29 Apple Inc. Integrating multimedia capabilities with circuit-switched calls
US7274684B2 (en) * 2001-10-10 2007-09-25 Bruce Fitzgerald Young Method and system for implementing and managing a multimedia access network device
US20030093563A1 (en) * 2001-10-10 2003-05-15 Young Bruce Fitzgerald Method and system for implementing and managing a multimedia access network device
US20050044159A1 (en) * 2001-10-19 2005-02-24 Aki Niemi Messaging system
US8095668B2 (en) * 2001-11-09 2012-01-10 Rockstar Bidco Lp Middlebox control
US20030093481A1 (en) * 2001-11-09 2003-05-15 Julian Mitchell Middlebox control
US7761597B2 (en) * 2001-12-07 2010-07-20 Hitachi, Ltd. Address translator, message processing method and equipment
US20030110292A1 (en) * 2001-12-07 2003-06-12 Yukiko Takeda Address translator, message processing method and euipment
US7788408B2 (en) 2001-12-07 2010-08-31 Hitachi, Ltd. Address translator, message processing method and equipment
US7443834B1 (en) * 2001-12-20 2008-10-28 Nortel Networks Limited Combining multimedia services with traditional telephony
US7296093B1 (en) 2001-12-31 2007-11-13 Ciphermax, Inc. Network processor interface system
US8761198B2 (en) * 2002-02-12 2014-06-24 Alcatel Lucent Telecommunication/access system for dealing with different address lengths
US20030152090A1 (en) * 2002-02-12 2003-08-14 Alcatel Telecommunication/access system for dealing with deifferent address lengths
US7224687B2 (en) * 2002-02-28 2007-05-29 Lucent Technologies Inc. Method and apparatus for voice over IP network address translation
US20030161295A1 (en) * 2002-02-28 2003-08-28 Shah Tushar Ramesh Method and apparatus for voice over IP network address translation
US7443865B1 (en) * 2002-04-04 2008-10-28 Cisco Technology, Inc. Multiple network connections from a single PPP link with network address translation
US7379970B1 (en) 2002-04-05 2008-05-27 Ciphermax, Inc. Method and system for reduced distributed event handling in a network environment
US7307995B1 (en) 2002-04-05 2007-12-11 Ciphermax, Inc. System and method for linking a plurality of network switches
US7295561B1 (en) 2002-04-05 2007-11-13 Ciphermax, Inc. Fibre channel implementation using network processors
US7406038B1 (en) 2002-04-05 2008-07-29 Ciphermax, Incorporated System and method for expansion of computer network switching system without disruption thereof
US20030202510A1 (en) * 2002-04-26 2003-10-30 Maxxan Systems, Inc. System and method for scalable switch fabric for computer network
US7447901B1 (en) 2002-06-25 2008-11-04 Cisco Technology, Inc. Method and apparatus for establishing a dynamic multipoint encrypted virtual private network
US7366894B1 (en) * 2002-06-25 2008-04-29 Cisco Technology, Inc. Method and apparatus for dynamically securing voice and other delay-sensitive network traffic
US7917948B2 (en) 2002-06-25 2011-03-29 Cisco Technology, Inc. Method and apparatus for dynamically securing voice and other delay-sensitive network traffic
US7957401B2 (en) 2002-07-05 2011-06-07 Geos Communications, Inc. System and method for using multiple communication protocols in memory limited processors
US20040205777A1 (en) * 2002-07-05 2004-10-14 Anthony Zalenski System and method for using multiple communication protocols in memory limited processors
US7412515B2 (en) * 2002-09-26 2008-08-12 Lockheed Martin Corporation Method and apparatus for dynamic assignment of network protocol addresses
US20040064559A1 (en) * 2002-09-26 2004-04-01 Lockheed Martin Corporation Method and apparatus for dynamic assignment of network protocol addresses
US7920546B2 (en) 2002-10-01 2011-04-05 Nortel Networks Limited Automated attendant multimedia session
US9264544B2 (en) 2002-10-01 2016-02-16 Rpx Clearinghouse Llc Automated attendant multimedia session
US20040062230A1 (en) * 2002-10-01 2004-04-01 Nortel Networks Limited Integrating multimedia capabilities with legacy networks
US20040062232A1 (en) * 2002-10-01 2004-04-01 Nortel Networks Limited Automated attendant multimedia session
US7050565B2 (en) 2002-10-01 2006-05-23 Nortel Networks Limited Multimedia augmented call coverage
US8848693B2 (en) 2002-10-01 2014-09-30 Rockstar Consortium Us Lp Automated attendant multimedia session
US20110164611A1 (en) * 2002-10-01 2011-07-07 Nortel Networks Limited Automated attendant multimedia session
US7646761B2 (en) 2002-10-01 2010-01-12 Nortel Networks Limited Integrating multimedia capabilities with legacy networks
US20040062382A1 (en) * 2002-10-01 2004-04-01 Nortel Networks Limited Multimedia augmented call coverage
US20040088537A1 (en) * 2002-10-31 2004-05-06 Microsoft Corporation Method and apparatus for traversing a translation device with a security protocol
US7346770B2 (en) * 2002-10-31 2008-03-18 Microsoft Corporation Method and apparatus for traversing a translation device with a security protocol
US20040170158A1 (en) * 2002-12-16 2004-09-02 Gemini Mobile Technologies, Inc. Stateless message routing
US7606252B2 (en) * 2002-12-16 2009-10-20 Gemini Mobile Technologies, Inc. Stateless message routing
US20040153858A1 (en) * 2002-12-23 2004-08-05 Hwang Shaw Hwa Direct peer-to-peer transmission protocol between two virtual networks
US7363381B2 (en) 2003-01-09 2008-04-22 Level 3 Communications, Llc Routing calls through a network
US20040139227A1 (en) * 2003-01-15 2004-07-15 Yutaka Takeda Relayed network address translator (NAT) traversal
US7899932B2 (en) * 2003-01-15 2011-03-01 Panasonic Corporation Relayed network address translator (NAT) traversal
US20040158606A1 (en) * 2003-02-10 2004-08-12 Mingtar Tsai Transmission method of multimedia data over a network
US20090177784A1 (en) * 2003-03-12 2009-07-09 Microsoft Corporation End-point identifiers in sip
US20040205192A1 (en) * 2003-03-12 2004-10-14 Microsoft Corporation End-point identifiers in SIP
US8024470B2 (en) 2003-03-12 2011-09-20 Microsoft Corporation End-point identifiers in SIP
US9432239B2 (en) 2003-03-12 2016-08-30 Microsoft Technology Licensing, Llc End-point identifiers in SIP
US8402146B2 (en) 2003-03-12 2013-03-19 Microsoft Corporation End-point identifiers in SIP
US7412521B2 (en) * 2003-03-12 2008-08-12 Microsoft Corporation End-point identifiers in SIP
US7653745B1 (en) 2003-05-08 2010-01-26 Cisco Technology, Inc. Method and apparatus for distributed network address translation processing
US7624195B1 (en) * 2003-05-08 2009-11-24 Cisco Technology, Inc. Method and apparatus for distributed network address translation processing
US20100074267A1 (en) * 2003-05-13 2010-03-25 Advanced Digital Broadcast Holdings Network router apparatus and method
US8050283B2 (en) 2003-05-13 2011-11-01 Patrick Ladd Network router apparatus and method
US7590144B1 (en) * 2003-05-13 2009-09-15 Advanced Digital Broadcast Holdings S.A. Network router apparatus and method
US9723093B2 (en) 2003-06-26 2017-08-01 Microsoft Technology Licensing, Llc Method and system for distributing load by redirecting traffic
US20050015492A1 (en) * 2003-06-26 2005-01-20 Microsoft Corporation Method and system for distributing load by redirecting traffic
US20090282149A1 (en) * 2003-06-26 2009-11-12 Microsoft Corporation Method and system for distributing load by redirecting traffic
US8713092B2 (en) 2003-06-26 2014-04-29 Microsoft Corporation Method and system for distributing load by redirecting traffic
US7543061B2 (en) * 2003-06-26 2009-06-02 Microsoft Corporation Method and system for distributing load by redirecting traffic
US8379634B2 (en) 2003-07-02 2013-02-19 Augme Technologies, Inc. System and methods to route calls over a voice and data network
US20090323920A1 (en) * 2003-07-02 2009-12-31 I2 Telecom International, Inc. System and methods to route calls over a voice and data network
US8792479B2 (en) 2003-07-02 2014-07-29 Hipcricket, Inc. System and methods to route calls over a voice and data network
US7606217B2 (en) 2003-07-02 2009-10-20 I2 Telecom International, Inc. System and method for routing telephone calls over a voice and data network
US20050002506A1 (en) * 2003-07-02 2005-01-06 Doug Bender System and method for routing telephone calls over a voice and data network
US7924822B2 (en) * 2003-10-15 2011-04-12 Vonage Network Llc Method and apparatus for enhanced internet telephony
US20050105525A1 (en) * 2003-11-10 2005-05-19 Institute For Information Industry Method of detecting the type of network address translator
US7359382B2 (en) * 2003-11-10 2008-04-15 Institute For Information Industry Method of detecting the type of network address translator
US20050135386A1 (en) * 2003-12-18 2005-06-23 Shores William N. Interface call signaling protocol
US20050286542A1 (en) * 2003-12-18 2005-12-29 Shores William N Interface call signaling protocol
US7142537B2 (en) * 2003-12-18 2006-11-28 Motorola, Inc. Interface call signaling protocol
US7746869B2 (en) * 2004-01-13 2010-06-29 Infineon Technologies Ag Method and apparatus for network address translation based on pure hardware architecture
US20050152368A1 (en) * 2004-01-13 2005-07-14 Infineon-Admtek Co., Ltd. Method and apparatus for network address translation based on pure hardware architecture
US20060031393A1 (en) * 2004-01-28 2006-02-09 Cooney John M System and method of binding a client to a server
US9401974B2 (en) 2004-01-28 2016-07-26 Upland Software Iii, Llc System and method of binding a client to a server
US7676599B2 (en) 2004-01-28 2010-03-09 I2 Telecom Ip Holdings, Inc. System and method of binding a client to a server
US8606874B2 (en) 2004-01-28 2013-12-10 Hipcricket, Inc. System and method of binding a client to a server
US7460480B2 (en) 2004-03-11 2008-12-02 I2Telecom International, Inc. Dynamically adapting the transmission rate of packets in real-time VoIP communications to the available bandwidth
US8842568B2 (en) 2004-03-11 2014-09-23 Hipcricket, Inc. Method and system of renegotiating end-to-end voice over internet protocol CODECs
US8335232B2 (en) 2004-03-11 2012-12-18 Geos Communications IP Holdings, Inc., a wholly owned subsidiary of Augme Technologies, Inc. Method and system of renegotiating end-to-end voice over internet protocol CODECs
US8804758B2 (en) 2004-03-11 2014-08-12 Hipcricket, Inc. System and method of media over an internet protocol communication
US20050201414A1 (en) * 2004-03-11 2005-09-15 Ali Awais Dynamically adapting the transmission rate of packets in real-time VoIP communications to the available bandwidth
US7552225B2 (en) * 2004-04-28 2009-06-23 International Business Machines Corporation Enhanced media resource protocol messages
US20050246450A1 (en) * 2004-04-28 2005-11-03 Yutaka Enko Network protocol processing device
US20050243981A1 (en) * 2004-04-28 2005-11-03 International Business Machines Corporation Enhanced media resource protocol messages
US7206864B2 (en) 2004-04-28 2007-04-17 Hitachi, Ltd. Network protocol processing device
US20050286494A1 (en) * 2004-06-29 2005-12-29 Michael Hollatz Method and apparatus for dynamic VoIP phone protocol selection
US7995611B2 (en) * 2004-06-29 2011-08-09 Apsect Software, Inc. Method and apparatus for dynamic VoIP phone protocol selection
US7782878B2 (en) * 2004-08-16 2010-08-24 I2Telecom Ip Holdings, Inc. System and method for sharing an IP address
US20060034296A1 (en) * 2004-08-16 2006-02-16 I2 Telecom International, Inc. System and method for sharing an IP address
US20080205399A1 (en) * 2004-09-30 2008-08-28 Christophe Delesalle Method and System for Routing in Communication Networks Between a First Node and a Second Node
US8411580B2 (en) * 2004-10-05 2013-04-02 Telefonaktiebolaget L M Ericsson (Publ) Maintaining cached terminal data
US20060089966A1 (en) * 2004-10-05 2006-04-27 Telefonaktiebolaget Lm Ericsson (Publ) Maintaining cached terminal data
US20080025291A1 (en) * 2004-10-20 2008-01-31 I2 Telecom International, Inc. Portable VoIP Service Access Module
US20070248081A1 (en) * 2004-10-20 2007-10-25 I2Telecom International, Inc. Portable VoIP Service Access Module
US20060222181A1 (en) * 2005-03-30 2006-10-05 Wu Hsiu C Method for transporting real-time audio and video data
US7706371B1 (en) * 2005-07-07 2010-04-27 Cisco Technology, Inc. Domain based routing for managing devices operating behind a network address translator
US20070133521A1 (en) * 2005-12-14 2007-06-14 Mcmaster John P System and method for managing telecommunications
US8416751B2 (en) 2006-06-07 2013-04-09 Qualcomm Incorporated Method and apparatus used for airlink communications
US8098662B2 (en) 2006-06-07 2012-01-17 Qualcomm Incorporated Method and apparatus for using short addresses in a communication system
US8134952B2 (en) * 2006-06-07 2012-03-13 Qualcomm Incorporated PN code based addressing methods and apparatus for airlink communications
US20070286142A1 (en) * 2006-06-07 2007-12-13 Rajat Prakash Pn code based addressing methods and apparatus for airlink communications
US8259702B2 (en) 2006-06-07 2012-09-04 Qualcomm Incorporated Efficient over the air address methods and apparatus
US20070286151A1 (en) * 2006-06-07 2007-12-13 Rajat Prakash Method and apparatus used for airlink communications
US20080008111A1 (en) * 2006-06-07 2008-01-10 Rajat Prakash Method and apparatus for using short addresses in a communication system
US20070286152A1 (en) * 2006-06-07 2007-12-13 Rajat Prakash Efficient over the air address methods and apparatus
US8107460B1 (en) 2006-08-14 2012-01-31 Voxpath Networks, Inc. System and method for IP telephony paging
US20110026700A1 (en) * 2006-12-08 2011-02-03 Bce Inc. Method, system and apparatus for providing calling name identification
US9060067B2 (en) * 2006-12-08 2015-06-16 Bce Inc. Method, system and apparatus for providing calling name identification
US20080151875A1 (en) * 2006-12-22 2008-06-26 Pyung-Bin Lim VoIP service system using NAT and method of processing packet therein
US9203688B2 (en) * 2006-12-22 2015-12-01 Samsung Electronics Co., Ltd. VoIP service system using NAT and method of processing packet therein
WO2008084386A1 (en) * 2007-01-12 2008-07-17 Truecontext Corporation Methods and system for orchestrating services and data sharing on mobile devices
US9401966B2 (en) 2007-01-12 2016-07-26 ProntoForms Corporation Methods and system for orchestrating services and data sharing on mobile devices
US20100049874A1 (en) * 2007-01-12 2010-02-25 Marc Chene Methods and system for orchestrating services and data sharing on mobile devices
US20080240675A1 (en) * 2007-03-27 2008-10-02 Adam Berger Coordinating Audio/Video Items Stored On Devices
US9276965B2 (en) 2007-12-17 2016-03-01 Hipcricket, Inc. Systems and methods of making a call
US20090156222A1 (en) * 2007-12-17 2009-06-18 I2Telecom International, Inc. Systems and methods of making a call
US8504048B2 (en) 2007-12-17 2013-08-06 Geos Communications IP Holdings, Inc., a wholly owned subsidiary of Augme Technologies, Inc. Systems and methods of making a call
US8842697B2 (en) * 2008-06-02 2014-09-23 Sagem Communications Sas Method and device for allocating MAC addresses in a carrier-current communication network
US20110235656A1 (en) * 2008-06-02 2011-09-29 Ncolas Pigeon Method and device for allocating mac addresses in a carrier-current communication network
US8732296B1 (en) * 2009-05-06 2014-05-20 Mcafee, Inc. System, method, and computer program product for redirecting IRC traffic identified utilizing a port-independent algorithm and controlling IRC based malware
US20100303078A1 (en) * 2009-06-01 2010-12-02 The Regents Of The University Of Michigan Method for extending the use of single ipv4 addresses to multiple network end-hosts
US8274918B2 (en) 2009-06-01 2012-09-25 The Regents Of The University Of Michigan Method for extending the use of single IPv4 addresses to multiple network end-hosts
US8391858B1 (en) 2010-06-15 2013-03-05 Sprint Spectrum L.P. Mitigating the impact of handoffs through comparison of non-preferred wireless coverage areas
US8359028B1 (en) 2010-06-15 2013-01-22 Sprint Spectrum L.P. Mitigating the impact of handoffs through comparison of historical call lengths
US8649355B1 (en) 2010-09-01 2014-02-11 Sprint Spectrum L.P. Supporting simple IP with address translation in a wireless communication device
US8565129B1 (en) 2010-09-01 2013-10-22 Sprint Spectrum L.P. Supporting simple IP with address translation in a proxy mobile IP gateway
US8892724B1 (en) 2010-10-08 2014-11-18 Sprint Spectrum L.P. Assigning a type of address based on expected port utilization
US8719449B2 (en) * 2010-11-29 2014-05-06 Telefonaktiebolaget L M Ericsson (Publ) Identification of a private device in a public network
US20120136976A1 (en) * 2010-11-29 2012-05-31 Telefonaktiebolaget L M Ericsson (Publ) Identification of a private device in a public network
US9185606B1 (en) 2012-10-12 2015-11-10 Sprint Spectrum L.P. Assignment of wireless network resources
US20190230149A1 (en) * 2013-01-07 2019-07-25 Aeris Communications, Inc. Radio module as web-controllable remote sensor
US10862950B2 (en) * 2013-01-07 2020-12-08 Aeris Communications, Inc. Radio module as web-controllable remote sensor
US9705794B2 (en) 2014-09-15 2017-07-11 Sprint Communications Company L.P. Discovery of network address allocations and translations in wireless communication systems
US9325663B2 (en) 2014-09-15 2016-04-26 Sprint Communications Company L.P. Discovery of network address allocations and translations in wireless communication systems
US11240658B2 (en) 2014-10-02 2022-02-01 Sprint Communications Company L.P. Content-delivery footprint and capabilities data transfer from wireless communication devices
US10200856B2 (en) 2014-10-02 2019-02-05 Sprint Communications Company L.P. Content-delivery footprint and capabilities data transfer from wireless communication devices
US10015235B2 (en) 2014-10-23 2018-07-03 Sprint Communications Company L.P. Distribution of media content to wireless communication devices
US9609489B2 (en) 2014-10-24 2017-03-28 Sprint Communications Company L.P. Distribution of media content identifiers to wireless communication devices
US9967734B1 (en) 2014-11-24 2018-05-08 Sprint Communications Company, L.P. Content delivery network request handling in wireless communication systems
US10567950B2 (en) 2014-11-24 2020-02-18 Sprint Communications Company L.P. Content delivery network request handling in wireless communication systems

Also Published As

Publication number Publication date
US6697354B1 (en) 2004-02-24
US6567405B1 (en) 2003-05-20
US6353614B1 (en) 2002-03-05

Similar Documents

Publication Publication Date Title
US6822957B1 (en) Distributed network address translation for a network telephony system
US8468259B2 (en) Middlebox control
US6708219B1 (en) Method and system for dual-network address utilization
JP3972733B2 (en) Address translation device, address translation system, and SIP server
US7467214B2 (en) Invoking protocol translation in a multicast network
US6768743B1 (en) Method and system for address server redirection for multiple address networks
JP5475763B2 (en) Method for receiving data packets from IPv4 domain in IPv6 domain, and related devices and access equipment
US20070217408A1 (en) Address Resolution Device, Address Resolution Method, And Communication System Including The Same
EP1614252B1 (en) Method and system for centrally allocating addresses and port numbers
US20020085561A1 (en) Method and system for supporting global IP telephony system
US7450560B1 (en) Method for address mapping in a network access system and a network access device for use therewith
US20040090958A1 (en) Method for transmitting and receiving packets to support internet handover service in wired and wireless combined network
US20050201304A1 (en) Signaling mediation agent
WO2002009387A1 (en) Sip sessions between ipv4 and ipv6 clients and sip based call setup in 3gpp ip multimedia subsystem with nat in place
WO2003088625A1 (en) Method and system for enabling connections into networks with local address realms
US8184622B2 (en) Integrated internet telephony system and signaling method thereof
EP1187426B1 (en) Method for using a unique IP address in a private IP address domain
KR100433621B1 (en) Multi layer internet protocol(MLIP) for peer to peer service of private internet and method for transmitting/receiving the MLIP packet
JP7264960B2 (en) Method and system for enhancing communication between IPv6-only SIP clients and IPv4-only servers or clients
US20080046571A1 (en) Pervasive inter-domain dynamic host configuration
Chen et al. Design of SIP application level gateway for IPv6 translation
KR100438182B1 (en) Method of different IP-address attaching for gatekeeper and NAT-PT
Sisalem et al. SIP and IPv6: why and how?
Santos Private realm gateway
KR20040066333A (en) Domain name service message processing system on complex network

Legal Events

Date Code Title Description
AS Assignment

Owner name: 3COM CORPORATION, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SCHUSTER, GUIDO M.;BORELLA, MICHAEL S.;GRABELSKY, DAVID A.;AND OTHERS;REEL/FRAME:011927/0962;SIGNING DATES FROM 20010320 TO 20010604

AS Assignment

Owner name: 3COM CORPORATION, CALIFORNIA

Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE SECOND ASSIGNOR'S EXECUTION DATE PREVIOUSLY RECORDED ON REEL 011927, FRAME 0962;ASSIGNORS:SCHUSTER, GUIDO M.;BORELLA, MICHAEL S.;GRABELSKY, DAVID A.;AND OTHERS;REEL/FRAME:012171/0608;SIGNING DATES FROM 20010320 TO 20010606

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FPAY Fee payment

Year of fee payment: 4

AS Assignment

Owner name: HEWLETT-PACKARD COMPANY, CALIFORNIA

Free format text: MERGER;ASSIGNOR:3COM CORPORATION;REEL/FRAME:024630/0820

Effective date: 20100428

AS Assignment

Owner name: HEWLETT-PACKARD COMPANY, CALIFORNIA

Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE SEE ATTACHED;ASSIGNOR:3COM CORPORATION;REEL/FRAME:025039/0844

Effective date: 20100428

AS Assignment

Owner name: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P., TEXAS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HEWLETT-PACKARD COMPANY;REEL/FRAME:027329/0044

Effective date: 20030131

AS Assignment

Owner name: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P., TEXAS

Free format text: CORRECTIVE ASSIGNMENT PREVIUOSLY RECORDED ON REEL 027329 FRAME 0001 AND 0044;ASSIGNOR:HEWLETT-PACKARD COMPANY;REEL/FRAME:028911/0846

Effective date: 20111010

FPAY Fee payment

Year of fee payment: 8

AS Assignment

Owner name: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, TEXAS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.;REEL/FRAME:037079/0001

Effective date: 20151027

REMI Maintenance fee reminder mailed
LAPS Lapse for failure to pay maintenance fees
STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20161123