Implementations consistent with the systems and methods described herein relate generally to computer and data communications and, more particularly, to techniques for detecting failures in computer and data communications.
Network service providers, such as Internet service providers (ISPs), typically allocate network resources upon creation of an IP session. For various reasons, an IP session may fail. Current methods of detecting failed connections in IP sessions do not provide timely detection and notification of IP session failures.
One aspect is directed to method that comprises establishing an IP session, establishing a BFD session within the established IP session, receiving BFD packets within the established BFD session, and determining that the established IP session is active based upon receiving the BFD packets. The method may further include establishing a BFD session between an IP edge device and a remote IP device, wherein either the IP edge device or the remote IP device may determine that the IP session is active. The method may further include transmitting and receiving BFD packets using one of a BFD asynchronous mode or BFD demand mode.
Another aspect is directed to a network device that comprises logic configured to: establish an IP session, establish a BFD session within the established IP session, receive BFD packets, and determine whether the IP session is active, based on a number of received BFD packets. The network device may be one of an IP edge device or a remote IP device. In another aspect, data received by the network device from the remote IP device determines whether the IP session is active. In another aspect, if data is not received by the network device within a predetermined time period set by an inactivity timer, the expiration of the inactivity timer may trigger transmission of BFD packets by the network device.
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate one or more embodiments and, together with the description, explain the system and methods. In the drawings,
The following detailed description of implementations consistent with systems and methods described herein refers to the accompanying drawings. The same reference numbers in different drawings may identify the same or similar elements. Also, the following detailed description does not limit the implementations. Instead, the scope of the systems and methods described herein is defined by the appended claims and their equivalents.
Access Network 110 may include any network capable of transferring a data unit. “Data unit,” as used herein, may refer to any type of machine-readable data having substantially any format that may be adapted for use in one or more networks, such as access network 110. A data unit may include packet data and/or non-packet data. Implementations of access network 110 may include a network that connects a network 140 to a router gateway 130. Access network 110 may be constructed as a Layer 2 network (data link layer) in the Open Systems Interconnection (OSI) reference model. Access Network 110 may be a hardwired network using wired conductors and/or optical fibers and/or may be a wireless network using free-space optical and/or radio frequency (RF) transmission paths. Implementations of networks and/or devices operating on networks described herein are not limited to any particular data type, and/or protocol.
Subscriber devices 120-1 through 120-N (collectively referred to as subscriber devices 120) may include any device capable of transmitting and/or receiving data from access network 110. For example, subscriber devices 120 may include a personal computer, a laptop computer, a personal digital assistant (PDA), a television, a telephone device, a video game console a web-enabled cellular telephone, or another computation or communication device. Subscriber devices 120 may connect to router gateway 130 via any type of connection, such as wired, wireless, and/or optical connections.
Router gateway 130 may include a device capable of receiving data from subscriber devices 120 and routing the data to/through access network 110. Router gateway 130 may also receive data from access network 110 and route the data to the appropriate subscriber device 120. In one implementation, router gateway 130 may be a public interface to access network 110. In another implementation, router gateway 130 may include a digital subscriber line access multiplexer (DSLAM). Router gateway 130 may operate in cooperation with servers 150 and 160 to provide respective communication services to subscriber devices 120, for example.
Network 140 may include any network capable of transferring a data unit as described above. Implementations of network 140 may include local area networks (LANs), public switched telephone network (PSTN), metropolitan area networks (MANs) and/or wide area networks (WANs), such as the Internet, that may operate using substantially any network protocol, such as Internet protocol (IP), asynchronous transfer mode (ATM), and/or synchronous optical network (SONET). Network 140 may include network devices, such as routers, switches, firewalls, and/or servers (not shown). Network 140 may be a hardwired network using wired conductors and/or optical fibers and/or may be a wireless network using free-space optical and/or radio frequency (RF) transmission paths. Implementations of networks and/or devices operating on networks described herein are not limited to any particular data type, and/or protocol.
Server 150 may include one or more processors or microprocessors enabled by software programs to perform functions, such as data storage and transmission, codex conversion, and interfacing with server 160 and IP edge device 170, for example. Server 150 may also include a data storage memory such as a random access memory (RAM) or another dynamic storage device that stores information such as subscriber device information for establishing IP and BFD sessions, as described in detail below.
Server 150 may also include a communication interface that may include any transceiver-like mechanism that enables server 150 to communicate with other devices and/or systems. For example, server 150 may include a modem or an Ethernet interface to a LAN. In addition, server 150 may include other mechanisms for communicating data via a network, such as a wireless network. For example, server 150 may include one or more radio frequency (RF) transmitters and receivers for transmitting and receiving (RF) signals.
Server 150 may include a computer device that stores and/or runs applications to validate, establish and monitor IP and BFD protocol sessions. Server 150 may also be configured as a RADIUS server to provide and/or aid in providing media content to subscribers associated with subscriber devices 120. For example, media content may be transmitted in an established static IP session in a DSL connection. Media content may include, for example, video-on-demand, live or pre-recorded television or radio broadcasts, streaming music, on-line gaming, or other voice and/or video content. In fact, media content may include any content that is stored or dynamically generated in real-time on one or multiple network devices.
Server 160 may include one or more processors or microprocessors enabled by software programs to perform functions, such as data storage and transmission, codex conversion, and interfacing with server 150 and IP edge device 170, for example. Server 160 may also include a data storage memory such as a random access memory (RAM) or another dynamic storage device that stores information. Server 160 may also include a communication interface that may include any transceiver-like mechanism that enables server 160 to communicate with other devices and/or systems. For example, server 160 may include a modem or an Ethernet interface to a LAN. In addition, server 160 may be configured as a DHCP server that stores and/or runs applications to provide network resources to subscriber devices 120.
IP Edge Device (IPED) 170 may include hardware or software logic to store information related to routing of data between servers 150 and 160 and subscriber devices 120, via router gateway 130 and access network 110. In one implementation, IPED 170 may establish and monitor IP and BFD protocol sessions, between for example, subscriber devices 120 and/or router gateway 130 and server 160. In another implementation, IPED 170 may be configured as a broadband network gateway or a BRAS server, for example.
IPED 170 may include computer devices that retrieve subscriber profile information from server 150, for example. Subscriber profile information may include a subscriber IP address and information necessary to validate and establish IP sessions and to establish and create BFD protocol sessions. IPED 170 may be implemented in hardware, software, or a combination of hardware and software. An exemplary IPED 170 is described below with reference to
Processor 220 may include any type of processor, microprocessor, or processing logic that may interpret and execute instructions. Memory 230 may include a random access memory (RAM) or another type of dynamic storage device that may store information and instructions for execution by processor 220. Memory 230 may also be used to store temporary variables or other intermediate information during execution of instructions by processor 220. ROM 240 may include a ROM device and/or another type of static storage device that may store static information and instructions for processor 220. Storage device 250 may include a magnetic disk and/or optical disk and its corresponding drive for storing information and/or instructions.
Input device 260 may include any mechanism or combination of mechanisms that permit an operator to input information to servers 150 and 160, such as a keyboard, a mouse, a microphone, a pen-based pointing device, and/or a biometric input device, such as a voice recognition device and/or a finger print scanning device. Output device 270 may include any mechanism or combination of mechanisms that outputs information to the operator, including a display, a printer, etc.
Communication interface 280 may include any transceiver-like mechanism that enables IPED 170 to communicate with other devices and/or systems, such as subscriber devices 120, router gateway 130, and servers 150 and 160. For example, communication interface 280 may include one or more interfaces, such as a first interface coupled to subscriber device 120 and/or a second interface coupled to access network 110, and/or a third interface coupled to network 140.
IPED 170 may perform certain functions in response to processor 220 executing software instructions contained in a computer-readable medium, such as memory 230. A computer-readable medium may be defined as one or more memory devices and/or carrier waves. In alternative embodiments, hardwired circuitry may be used in place of or in combination with software instructions to implement features consistent with principles of the embodiments. Thus, implementations consistent with principles of the embodiments are not limited to any specific combination of hardware circuitry and software.
Network interface logic 310 may include hardware or software to route data between subscriber devices 120 and servers 150 and 160 according to applicable network policies. In one implementation, network interface logic 310 may establish a network interface between subscriber devices 120 and network 110 upon receiving a connection request from subscriber devices 120. In one implementation, network interface logic 310 may configure a virtual router associated with an established network interface. Network interface logic 310 may assign network addresses to the respective network interfaces. In one implementation, the network interface may include routes for data transmissions to/from subscriber devices 120 and routes to/from servers 150 and 160. Network interface logic 310 may be implemented in communication interface 280 or elsewhere in IPED 170.
IP session management logic 320 may include hardware or software for IPED 170 to process instructions or data related to establishing and maintaining an IP session. For example, IP session management logic 320 may be implemented in processor 220 and may make IP session information available to another device, software module, or component operating in IPED 170, such as BFD session management logic 330. IP session management logic 320 may include IP session information that identifies one or more network parameters and policies related to subscriber device 120. In one implementation, IP session management logic 320 may include IP session information downloaded from server 150, via network interface logic 310, for example. An IP session may be established between IPED 170 and a remote IP device, such as router gateway 130 or subscriber device 120, for example.
BFD session management logic 330 may include hardware or software to process instructions or data related to establishing and maintaining Bidirectional Forwarding Detection (BFD) protocol sessions. In one implementation, BFD session management logic 330 may notify network interface logic 310 and/or servers 150 and 160 of the creation and/or deletion of a BDF session. Bidirectional Forwarding Detection protocols enable data transfer between devices in the forwarding plane. In one implementation, BFD session management logic 330 may receive BFD session parameters and policies from server 150, via network interface logic 310. In another implementation, BFD session management logic 330 may automatically create a BFD session in response to the creation of an IP session. BFD session management logic 330 may store parameters relating to establishing and maintaining a BFD session such as a BFD session enable flag, a BFD mode (asynchronous or demand), a frequency or time period between BFD packet transmissions, a number of BFD packet polls unanswered indicating an IP session or connection failure and an alarms enable flag.
In BFD asynchronous mode for example, IPED 170 may begin to transmit BFD Control packets using BFD protocols (act 430). For example, BFD Control packets may be transmitted from IPED 170 to router gateway 130 every 30 seconds. Router gateway 130 may also begin to transmit BFD Control packets to IPED 170 within the established BFD session (act 430). The frequency of BFD Control packets may be determined from the BFD session parameters contained in server 150 and/or IPED 170. In one embodiment, the IPED 170 and router gateway 130 may have different frequencies of transmitting BFD Control packets to one another. In another embodiment, the frequency of transmitting BFD Control packets may be manually adjusted, for example.
In accordance with the established BFD session parameters for example, IPED 170 may determine that an IP session is active based on receiving BFD Control packets (act 440). For example, IPED 170 may receive a BFD Control packet every 30 seconds from router gateway 130. If the IPED 170 does not receive BFD Control packets from router gateway 130 for 90 seconds, (3 polling periods) for example, IPED 170 may determine a failed connection and/or IP session (act 440). In response to this determination (act 440), the IP session may be terminated by IPED 170. IPED 170 may also determine that an IP session is inactive if a predetermined number of BFD Control packets are not received. For example, 3 failed receptions of BFD Control packets may determine that an IP session is inactive.
In another implementation, router gateway 130 may determine that the IP session is active upon receiving BFD Control packets from IPED 170 (act 440). For example, in the established IP and BFD sessions (acts 410 and 420), IPED 170 may transmit BFD Control packets to router gateway 130 (act 430). Router gateway 130 may determine that the IP session is active based on receiving BFD Control packets from IPED 170 (act 440). Router gateway 130 may also determine that an IP session is inactive based upon not having received a predetermined number of BFD Control packets from IPED 170, or may determine that an IP session is inactive when a BFD Control packet has not been received for a predetermined period of time, for example.
In the above embodiments, once an IP session is determined to be inactive, appropriate action may be taken, such as notifying an administrator or automatically attempting to renew the IP session.
BFD demand mode may be used. In demand mode, IPED 170 may transmit BFD Echo packets using BFD protocols (act 530). For example, BFD “Echo packets” may be transmitted from IPED 170 to router gateway 130 (act 530). Echo packets are packets that are automatically transmitted back to IPED 170 from router gateway 130, without requiring control and negotiation of transmission parameters from router gateway 130. The BFD Echo packet originally transmitted from IPED 170 may then be automatically transmitted from router gateway 130 back to IPED 170. IPED 170 may then determine that the IP session is active upon reception of the BFD Echo packet from router gateway 130 (act 540).
In another embodiment, router gateway 130 may be configured to transmit BFD Echo packets to IPED 170. For example, once the IP and BFD sessions are established (acts 510 and 520), router gateway 130 may transmit BFD Echo packets to IPED (act 530). The BFD Echo packet originally transmitted from router gateway 130 may then be automatically transmitted from IPED 170 back to router gateway 130. Router gateway 130 may then determine that the IP session is active upon reception of the BFD Echo packet from IPED 170 (act 540).
In exemplary process 600, an inactivity timer may be enabled in IPED 170 upon establishing the IP and BFD sessions (acts 610 and 620). An inactivity timer enabled in IPED 170 may set a predetermined period of time that may generate an alert when no data has been received from router gateway 130 for the predetermined period of time, for example. The time period may be manually configured or may be set by stored parameters upon establishment of the IP and BFD sessions. If, for example, IPED 170 receives data from subscriber device 120 and/or router gateway 130, the inactivity timer on IPED may be reset for the predetermined period of time, for example, 30 seconds. As long as IPED 170 receives data from subscriber device 120 and/or router gateway 130 within the predetermined period of time, the inactivity timer may not expire. If for example, no data has been received from subscriber device 120 and/or router gateway 130 within the predetermined period of time, the inactivity timer on IPED 170 may expire. In demand mode, the expiration of the inactivity timer may instigate BFD packets to be transmitted from IPED 170 to router gateway 130 (act 630).
In demand mode, IPED 170 may transmit BFD packets as Echo packets or Control packets using BFD protocols (act 630). As described above, BFD “Echo packets” may be transmitted from IPED 170 to router gateway 130 and may be automatically transmitted back to IPED 170 from router gateway 130, without requiring control and negotiation of transmission parameters from router gateway 130. A BFD Echo packet may be transmitted from IPED 170 may then be automatically transmitted from router gateway 130 back to IPED 170 (act 630), for example. IPED 170 may then determine that the IP session is active based upon reception of the BFD Echo packet from router gateway 130 (act 640). In this embodiment, IPED 170 may also determine that an IP session is active based on receiving data from subscriber device 120 and/or router gateway 130 (act 640), without transmitting BFD Echo packets (act 630). If for example, the inactivity timer expires, and BFD Echo packets are not received back by IPED 170, the IP session may be determined to be inactive (act 640).
Also using demand mode in another exemplary embodiment, IPED 170 may transmit BFD Control packets using BFD protocols (act 630). A BFD Control packet may be transmitted from IPED 170 in response to the expiration of an inactivity timer, for example. The BFD Control packet transmitted from IPED 170 may then be received by router gateway 130, for example. Upon receiving BFD Control packets from IPED 170, router gateway 130 may determine that the IP session is active (act 640). If for example, the inactivity timer expires, and BFD Control packets are transmitted from IPED 170 and the BFD Control packets are not received by router gateway 130, the IP session may be determined to be inactive (act 640). As described above for example, as long as IPED 170 receives data from router gateway 130 within the predetermined time period of the inactivity timer, the IP session may be determined to be active (act 640), without sending BFD Control packets to router gateway 130 (act 630).
In all of the exemplary embodiments described above relating to process 600, once an IP session is determined to be inactive, appropriate action may be taken, such as notifying an administrator or automatically attempting to renew the IP session.
The foregoing description of exemplary embodiments provides illustration and description, but is not intended to be exhaustive or to limit embodiments to the precise form disclosed. Modifications and variations are possible in light of the above teachings or may be acquired from practice of the embodiments. For example, while a series of acts has been described with regard to
For example, implementations consistent with principles of the embodiments can be implemented using devices and configurations other than those illustrated in the figures and described in the specification without departing from the spirit of the embodiments. Devices and/or components may be added and/or removed from the implementations of
No element, act, or instruction used in the description of the embodiments should be construed as critical or essential, unless explicitly described as such. Also, as used herein, the article “a” is intended to include one or more items. Where only one item is intended, the term “one” or similar language is used. Further, the phrase “based on,” as used herein is intended to mean “based, at least in part, on” unless explicitly stated otherwise.
The scope of the systems and methods described herein is defined by the claims and their equivalents.
Number | Name | Date | Kind |
---|---|---|---|
7499395 | Rahman et al. | Mar 2009 | B2 |
7561527 | Katz et al. | Jul 2009 | B1 |
20060209685 | Rahman et al. | Sep 2006 | A1 |
20060285500 | Booth et al. | Dec 2006 | A1 |
20070165515 | Vasseur | Jul 2007 | A1 |
20070180104 | Filsfils et al. | Aug 2007 | A1 |
20070180105 | Filsfils et al. | Aug 2007 | A1 |
20070189177 | Zhai | Aug 2007 | A1 |
20070207591 | Rahman et al. | Sep 2007 | A1 |
20070280102 | Vasseur et al. | Dec 2007 | A1 |
20090016213 | Lichtwald | Jan 2009 | A1 |