A client device 102 may use a modem 104 to connect via a physical network 106 to a network protocol manager 108. The network protocol manager 108 may manage network traffic between the client 102 and a server or host 110 that may provide connection to a wide area network, such as the Internet 112.
The client 102 may be any electronic device that connects to a network, such as a personal computer, personal digital assistant (PDA), smart phone, any of the exemplary devices described in
The physical connection 106 is supported by a physical interface or interfaces available at the modem 104. For example, a cable modem supports traffic over a cable television connection, whereas a DSL modem supports traffic over a telephone line connection. The physical connection 106 may be a cable television connection, a telephone connection, a 3G wireless connection, a WiFi connection, etc. In some embodiments, more than one hop may be needed to reach a particular server or host 110. For example, a WiFi connection in a coffee shop may connect first to a local network protocol manager for the wireless session and then may connect via a broadband wired connection to a second network protocol manager (not depicted) in order to reach the server or host 110.
As with the modem 104, the network protocol manager 108 is capable of supporting the physical connection 106 associated with the data connection to the modem 104. The server or host 110 may be a back-end supporting service, such as an Internet service provider (ISP) or may be a destination, such as a sales support system for an enterprise or entertainment programming for a music service. The connection to the Internet 112 may be optional, depending on the type of relationship the client 102 has with the server or host 110. For example, if the server or host is an enterprise server, the employee-users may not have access to the Internet 112 via the server or host 110.
The modem 104 may include a processor 113 and communication ports 114 and 116 for coupling to the physical connection 106 and the client 102, respectively. In some embodiments, particularly when the modem 104 includes a router function, multiple client-side ports, such as port 116, may exist. A memory 118 may store executable instructions and data, such as protocol data and session information, as described in more detail below. The memory 118 may include volatile memory, non-volatile memory, or both. Examples of non-volatile memory include hard disk drives, flash memory, NVRAM, and EEPROM, to name a few.
The network protocol manager 108 may include a processor 120, communication ports 122 and 124 for connection to the server or host 110 and the physical connection 106, respectively. The processor may also be coupled to a memory 126 that stores executable instructions and data, such as protocol data and session information. A memory 118 may store executable instructions and data, such as protocol data and session information, as described in more detail below. The memory 126 may include volatile memory, non-volatile memory, or both. Examples of non-volatile memory include hard disk drives, flash memory, NVRAM, and EEPROM.
A first message 206 may be sent from the client 202 to the server 204. The first message 206 may be an initial request for connection. For the exemplary protocol, the message may be a PPPoE Active Discovery Initiation (PADI) message. The PADI message may include a media access control (MAC) address of the client, that is, a hardware-oriented address either assigned by a manufacturer or set during a configuration cycle. A second message 208 from the server 204 to the client 202 may be a PPPoE Active Discovery Offer (PADO) message which is sent in response to the PAD message 206. The PADO message 208 may contain the MAC address of the client, as well as a MAC address of a server-side entity, such as a DSL access concentrator (roughly equivalent to the network protocol manager 108 of
More than one server may respond to the PADI message with PADO messages, thereby offering their services. The client may determine which of the servers it wishes to connect with and may send a third message 210, a PPPoE Active Discovery Request (PADR) message to the chosen server 204. The PADR message will include the MAC address of the selected server. The chosen server 204 may then confirm the selection by sending a fourth message 212, a PPPoE Active Discovery Session-confirmation (PADS) message in response to the PADR message 210.
The messages 206, 208, 210 and 212 make up the discovery stage of the PPPoE session. The discovery stage includes the client 202 finding and selecting a server 204 and the server 204 identifying itself and accepting a session with the client 202. A session stage 222 establishes the point-to-point protocol on top of the Ethernet communication used for discovery and supports normal data traffic between the client 202 and the chosen server 204. For example, the session stage may begin with a number of point-to-point (PPP) messages 216, after which standard data traffic 218 may be supported, represented by ellipsis 220. To relate to the exemplary embodiment of
To leave the session stage 220, either side may tear down the PPP session, represented by a tear down message 224. The tear-down process returns client and server pointers and registers to their quiescent state, that is, hardware and software resources used by both sides during the session may be deactivated or unlocked, so that they may used again for another session, between the same parties or between different parties. To illustrate a client-initiated teardown, a fifth message 226, such as a PPPoE Active Discovery Termination (PADT) message may be sent from the client 202 to the chosen server 204. Upon receiving the PADT message, the chosen server 204 is available for re-discovery by the client 202, as indicated by bracket 228.
At some point in the set up or data traffic phases of the session, an improper termination event 266 may occur. The improper termination event 266 may be a loss of connectivity over the physical connection, a power outage at a modem or protocol manager, etc. Other improper termination events 266 may include packet synchronization errors, timeout errors, loss of connectivity between with endpoints, etc. Among other effects of the improper termination event 266, no termination message is sent, such as the teardown message 224 of the PADR message 226 of
Following an improper termination event 266, the server 204 may impose a timeout period 268, during which incoming PADI messages 270 and 272 from the client are ignored. The timeout period may provide some protection from a denial of service (DOS) attack if multiple clients are spoofing a MAC address and sending multiple PADI messages. At the conclusion of the timeout period 268, PADI messages may again be accepted at the server-side 252.
Because only the genuine client 302 is likely to have both the MAC address of the server and the session identifier of the previous session (see Table 1, above), the server 304 is at a low risk of a DOS attack. The server 304 may determine that the PADT message 312 is genuine by comparing the session information in the message 312 to locally-stored information about previous sessions for known client-side devices. If the PADT session information matches, the PADT message 312 may be considered as representing the missing termination message from the previous, improperly terminated session. The total timeout period, periods 308 plus 310, may then be terminated immediately after the first portion of the timeout period 308, shortened by the unexpended timeout period 310. A PADI message 314 may then be accepted, starting a new session discovery stage 322, often saving several seconds or more of reconnection time.
The remainder of the flow may be followed as normal, including a PADO message 316, a PADR message 318, and a PADS message 320. The session stage 326 may include message traffic 324 such as described above.
In some embodiments, the PADT message 312, with information about the previous session, may be sent even if no timeout period is active because either the previous session terminated normally, as shown in
At a block 406, the network protocol manager 108 may receive a message from a client, for illustration, the client 104 of the session referenced at the block 402. At a block 408, a check may be made to determine if a timeout period is active for the client-side device sending the message. If no timeout period is active for the client device, the “no” branch from the block 408 may be taken to a block 410. At the block 410, the network protocol manager 108 can determine if the message is a termination message and, if so, can simply ignore the termination message and at a block 412, wait for and process session initiation messages from that client device.
If, at the block 408, a timeout period is active for that client device the “yes” branch from the block 408 may be taken to a block 414. If it is determined at the block 414 that the message is a termination message and that the termination message is valid, that is, a session identifier in the termination message matches the session identifier stored at the block 402 for that client device identifier, the “yes” branch from the block 414 may be taken to a block 416 and the timeout period may be stopped immediately. Processing may continue at the block 412 and an incoming session initiation message may be processed normally.
If, at block 414, the termination message is found not to be valid, the “no” branch from block 414 may be taken to a block 418 and the timeout period may be enforced until its scheduled end before continuing to the block 412 to accept a new session message from the client device. Processing may continue at the block 402 and data related to the newly established session may be stored.
Because the client has no definitive knowledge of the state of a network protocol manager at the server side, that is, whether a timeout period is active, the client may proactively generate and send a termination message for the previous communication session. The goal of sending such termination message is to cut short any active timeout period that may be active at the server-side and expedite the establishment of the new communication session. At a block 450, data stored regarding the previous communication session at the block 442 may be used to generate a session termination message for the previous session. For example, in one embodiment, a PADT message using data stored at the block 442 may be generated and sent to the server-side device. For simplicity, sending a session termination message for the previous session at the beginning of a new session may be done whether or not the previous session was normally terminated or not. In another embodiment, the client-side device, such as the modem 102, may determine if a time period between the blocks 444 and 446 is known to be longer than a server-side device timeout period. If so, and a timeout period could not be active at the server-side device, then the client may choose not to send the session termination message for the previous session because it would have no effect.
At a block 452, the protocol for establishing a new session may be followed. In one embodiment, a PADI message may be sent to begin the new session establishment procedure.
The embodiment described uses PPPoE to illustrate the proactive use of a session termination message to reduce session connection times. However, the technique applies equally to any other communication session where a timeout period may be activated if a communication session is not properly terminated.
HDTV 420 may communicate with mass data storage 427 that stores data in a nonvolatile manner such as optical and/or magnetic storage devices. The mass storage device may be a mini HDD that includes one or more platters having a diameter that is smaller than approximately 1.8″. HDTV 420 may be connected to memory 428 such as RAM, ROM, low latency nonvolatile memory such as flash memory and/or other suitable electronic data storage. HDTV 420 also may support connections with a WLAN via a WLAN network interface 429.
Referring now to
Cellular phone 450 may communicate with mass data storage 464 that stores data in a nonvolatile manner such as optical and/or magnetic storage devices for example hard disk drives HDD and/or DVDs. The HDD may be a mini HDD that includes one or more platters having a diameter that is smaller than approximately 1.8″. Cellular phone 450 may be connected to memory 466 such as RAM, ROM, low latency nonvolatile memory such as flash memory and/or other suitable electronic data storage. Cellular phone 450 also may support connections with a WLAN via a WLAN network interface 468.
Referring now to
Set top box 480 may communicate with mass data storage 490 that stores data in a nonvolatile manner. Mass data storage 490 may include optical and/or magnetic storage devices for example hard disk drives HDD and/or DVDs. The HDD may be a mini HDD that includes one or more platters having a diameter that is smaller than approximately 1.8″. Set top box 480 may be connected to memory 494 such as RAM, ROM, low latency nonvolatile memory such as flash memory and/or other suitable electronic data storage. Set top box 480 also may support connections with a WLAN via a WLAN network interface 496. The fast recover from connection termination method may be implemented in the signal processing and/or control circuits 484, the WLAN network interface 496, or both, for example.
Referring now to
Media player 500 may communicate with mass data storage 510 that stores data such as compressed audio and/or video content in a nonvolatile manner. In some implementations, the compressed audio files include files that are compliant with MP3 format or other suitable compressed audio and/or video formats. The mass data storage may include optical and/or magnetic storage devices for example hard disk drives HDD and/or DVDs. The HDD may be a mini HDD that includes one or more platters having a diameter that is smaller than approximately 1.8″. Media player 500 may be connected to memory 514 such as RAM, ROM, low latency nonvolatile memory such as flash memory and/or other suitable electronic data storage. Media player 500 also may support connections with a WLAN via a WLAN network interface 516. Still other implementations in addition to those described above are contemplated.
Referring to
VoIP phone 550 may communicate with mass data storage 556 that stores data in a nonvolatile manner such as optical and/or magnetic storage devices, for example hard disk drives HDD and/or DVDs. The HDD may be a mini HDD that includes one or more platters having a diameter that is smaller than approximately 1.8″. VoIP phone 550 may be connected to memory 557, which may be a RAM, ROM, low latency nonvolatile memory such as flash memory and/or other suitable electronic data storage. VoIP phone 550 is configured to establish communications link with a VoIP network (not shown) via the Wi-Fi communication module 566.
The various blocks, operations, and techniques described above may be implemented in hardware, firmware, software, or any combination of hardware, firmware, and/or software. When implemented in software, the software may be stored in any computer readable memory such as on a magnetic disk, an optical disk, or other storage medium, in a RAM or ROM or flash memory of a computer, processor, hard disk drive, optical disk drive, tape drive, etc. Likewise, the software may be delivered to a user or a system via any known or desired delivery method including, for example, on a computer readable disk or other transportable computer storage mechanism or via communication media. Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, radio frequency, infrared and other wireless media. Thus, the software may be delivered to a user or a system via a communication channel such as a telephone line, a DSL line, a cable television line, a wireless communication channel, the Internet, etc. (which are viewed as being the same as or interchangeable with providing such software via a transportable storage medium). When implemented in hardware, the hardware may comprise one or more of discrete components, an integrated circuit, an application-specific integrated circuit (ASIC), etc.
While the present invention has been described with reference to specific examples, which are intended to be illustrative only and not to be limiting of the invention, it will be apparent to those of ordinary skill in the art that changes, additions or deletions in addition to those explicitly described above may be made to the disclosed embodiments without departing from the spirit and scope of the invention.
This application claims priority to U.S. Provisional Application No. 60/829,626, entitled “PPPoE CONNECTION FAST RECOVERY,” filed on Oct. 16, 2006, which is hereby incorporated by reference herein in its entirety.
Number | Date | Country | |
---|---|---|---|
60829626 | Oct 2006 | US |