Abstract:
A method and system for filtering data packet traffic, e.g., Internet traffic, includes the steps of: ( 1 ) receiving a data packet from the data packet traffic; ( 2 ) determining whether the data packet from the data packet traffic includes data associated with a first protocol, e.g., IPv 6,  encapsulated within data associated with a second protocol, e.g., IPv 4;  ( 3 ) removing data associated with the second protocol from the data packet if the data packet includes data associated with the first protocol encapsulated within data associated with the second protocol; and ( 4 ) transmitting the data packet including data associated with only the first protocol or the second protocol. The method and system also operate in a reverse direction, i.e., for encapsulating data packets of a first protocol within data associated with a second protocol.

Description:
FIELD OF INVENTION  
         [0001]    The present invention relates to communications systems in general and more particularly to a method and system in which encapsulated IPv 6  data packets are transmitted as part of IPv 4  data packets.  
         BACKGROUND  
         [0002]    The continuing increase in Internet use over the past decade has required that Internet hardware and software engineers reconsider the capacity and scalability of the existing Internet Protocol (IP) transport. IP version  4  (“IPv 4 ”) is presently the dominant Internet protocol used for Internet communications. While IPv 4  has thus far proven sufficiently resilient and adaptable to handle the Internet&#39;s rapid growth, the scalability of IPv 4 &#39;s 32 bit addressing scheme is approaching its limit.  
           [0003]    IP version  6  (“IPv 6 ”) is designed to address the shortcomings of IPv 4 . As is known in the art, by using a 128 bit addressing scheme, IPv 6  provides a greater number of addresses than IPv 4 , thus allowing a greater number of IP devices to be connected to the Internet. IPv 6  also adds many improvements to IPv 4  in areas such as routing and network auto configuration. Accordingly, IPv 6  is expected to gradually replace IPv 4  over the next several years.  
           [0004]    In the meantime, however, IPv 4  and IPv 6  will coexist. Accordingly, methods and systems have been introduced that allow IPv 6  data packets to be encapsulated within IPv 4  data packets. The encapsulating of IPv 6  data packets into IPv 4  data packets is known in the art as IPv 6  tunneling. RFC 1933, (Network Working Group Request for Comment: 1933, R. Gilligan, E. Nordmark, Sun Microsystems Inc. April 1996, (ftp://ftp.ipv6.org/pub/rfc/rfc 1993.txt) which is hereby incorporated by reference herein in its entirety describes a method of IPv 6  tunneling wherein IPv 6  enabled routers and nodes handle both IPv 4  and IPv 6  traffic. In this way, features of IPv 6  may be realized within the constraints of existing IPv 4  hardware and software infrastructure.  
           [0005]    With reference to FIG. 1, a logical representation of an IPv 6  data packet  90  encapsulated within an IPv 4  data packet  100  is illustrated. As is shown, IPv 4  data packet  100  includes known IPv 4  header information  110  necessary for routing an IPv 4  packet through IPv 4  nodes and routers. The first four bits  120  of the IPv 4  header information  110  identify the IP version of data packet  90 , in this case, version  4 . Pursuant to RFC 1933, the IPv 4  data packet is identified as containing IPv 6  data packet  90 .  
           [0006]    With continued reference to FIG. 1, it is seen that in accordance with the method known in the art, IPv 6  data packet  90  is encapsulated in IPv 4  data packet  100  immediately after IPv 4  header information  110 . IPv 6  data packet  90  includes IPv 6  header information  150  followed by IPv 6  data payload  160 . As is shown, the first four bits  155  of IPv 6  header information  150  identify the IP version of the data packet, in this case, version  6 .  
           [0007]    With further reference to IPv 4  data packet  100 , it is seen that IPv 4  data packet  1100  may also include OSI Layer  4 - 7  header information  170 .  
           [0008]    [0008]FIG. 2 illustrates a known system for delivering an IPv 6  data packet encapsulated within an IPv 4  data packet, i.e., an encapsulated IPv 6  packet, to an IPv 6  enabled device. An IPv 6  enabled terminal device  200  delivers a pure IPv 6  data packet destined for one of IPv 6  devices  250  and  260  to a router  210  which encapsulates the pure IPv 6  packet in an IPv 4  packet data.  
           [0009]    The encapsulated IPv 6  packet is then tunneled through the IPv 4  network to a tunnel endpoint, i.e. IPv 4 /IPv 6  de-packetizer  230 , which removes the IPv 4  encapsulation from the IPv 6  data packet and delivers it to local IPv 6  network  240 . As is known in the art, tunnel endpoint  230  requires a valid unique IPv 4  address.  
           [0010]    With continued reference to FIG. 2, destination  220  may be a home or office and contains IPv 6  enabled devices  250  and  260 . IPv 6  enabled devices  250  and  260  each contain an IPv 6  stack which is known in the art and which allows an IP device to operate using IPv 6  data packets.  
           [0011]    As is shown in FIG. 2, the encapsulated IPv 6  data packet arrives at a communications modem  265  and is delivered to IPv 6  tunnel endpoint,  230 , having the IPv 4  address that is in the header of the encapsulated IPv 6  data packet.  
           [0012]    Thus, it is seen that one of the benefits of IPv 6 , i.e., increased addressing space, is not realized because a unique IPv 4  address is still required for the tunnel endpoint  230 .  
           [0013]    What is desired therefore is a method and system that allow IPv 6  devices to be deployed in existing environments where only a single IPv 4  address is available. What is further desired is a method and system that does not require an lPv 6  device to have the capability to read IPv 4  data packets.  
         SUMMARY  
         [0014]    The present invention is a method for filtering data packet traffic, e.g., Internet traffic, including the steps of: (1) receiving a data packet from the data packet traffic; (2) determining whether the data packet from the data packet traffic includes data associated with a first protocol, e.g., IPv 6 , encapsulated within data associated with a second protocol, e.g., IPv 4 ; (3) removing data associated with the second protocol from the data packet if the data packet includes data associated with the first protocol encapsulated within data associated with the second protocol; and (4) transmitting the data packet including data associated with only the first protocol or the second protocol as part of the data packet traffic. The method also operates in a reverse direction, i.e., for encapsulating data packets of a first protocol within data associated with a second protocol.  
           [0015]    Also described herein is a system implementing the above-described method for filtering data packet traffic including: (1) one or more input ports for receiving data packet traffic; (2) one or more output port for transmitting data packet traffic; (3) electronic memory; and (4) a logic device. The system is preferably a stand-alone device disposed between the Internet and an end-user device.  
           [0016]    The present invention provides a system and method that accepts both IPv 4  data packets having IPv 6  data packets encapsulated therein, i.e., encapsulated IPv 6  data packets, and IPv 4  data packets having no IPv 6  data packets therein, and thereafter directs the data packets to their respective IPv 4  and IPv 6  devices. The system and method preferably include an in-line IPv 4 /IPv 6  filter device connected between an Internet access communications modem, e.g., an xDSL modem, and one or more IPv 4  and/or IPv 6  devices. The in-line filter device intercepts all incoming IPv 4  packets from the modem and outputs respective IPv 4  and IPv 6  data packets to their respective IP device. The in-line filter device effectively separates the encapsulated IPv 6  traffic into its respective IPv 4  and IPv 6  protocols. 
       
    
    
     DESCRIPTION OF THE DRAWINGS  
       [0017]    Other objects and features of the present invention will be described hereinafter in detail by way of certain preferred embodiments with reference to the accompanying drawings, in which:  
         [0018]    [0018]FIG. 1 is an illustration of a conventional header of an IPv 6  data packet encapsulated within an IPv 4  data packet;  
         [0019]    [0019]FIG. 2 is a block diagram of a conventional system for delivering an IPv 6  data packet encapsulated within an IPv 4  data packet;  
         [0020]    [0020]FIG. 3 is a block diagram of an illustrative embodiment of the invention utilizing an IPv 4 /lPv 6  filter device;  
         [0021]    [0021]FIG. 4 is a block diagram of a flow chart of the filtering and forwarding procedure of the present invention; and  
         [0022]    [0022]FIG. 5 is a block diagram of an illustrative embodiment of an IPv 4 /lPv 6  filter device of the present invention. 
     
    
     DETAILED DESCRIPTION  
       [0023]    [0023]FIG. 3 illustrates an illustrative embodiment of the invention utilizing the above-described IPv 4 /IPv 6  filter device. As is shown, encapsulated IPv 6  data packet traffic  300  and IPv 4  data packet traffic  310  (having no IPv 6  traffic encapsulated therein) are directed through the Internet  320  to a remote home or office site  330  having multiple IPv 6  devices  340 ,  350  and  360  and a single IPv 4  device  370 . The encapsulated IPv 6  data packet traffic  300  and the IPv 4  traffic  310  share a common IPv 4  destination address, i.e., the address of IPv 4  device  370 . IPv 6  devices  340 ,  350  and  360  each have a unique IPv 6  address.  
         [0024]    With continued reference to FIG. 3, encapsulated IPv 6  data packet traffic  300  and IPv 4  data packet traffic  310  are delivered via an Internet connection  380  to communications modem  390 . It is understood that although communications modem  390  is represented as a DSL modem in FIG. 3, communications modem  390  can be any modem or communications device capable of signal conversion between the OSI Layer  1  physical parameters of modem input connection  380 , e.g., analog discrete multi-tone signals, and the OSI Layer  1  physical parameters of modem output connection  400 , e.g., Manchester NRZ digital signals.  
         [0025]    Communications modem  390  delivers, via connection  400 , encapsulated IPv 6  data packet traffic and IPv 4  data packet traffic to IPv 4 /IPv 6  filter device  410 . IPv 4 /IPv 6  filter device  410  accepts encapsulated IPv 6  data packets and IPv 4  data packets and, for each packet received, determines whether an IPV 6  packet is encapsulated within the IPv 4  packet. If there is an encapsulated IPv 6  data packet in the IPv 4  data packet being read, the IPv 4  header information and all other data relating to the IPv 4  packet are stripped away by IPv 4 /IPv 6  filter device  410  and the remaining IPv 6  data packet is delivered to the respective IPv 6  device.  
         [0026]    Alternately, if IPv 4 /IPv 6  filter device  410  determines that the IPv 4  data packet does not have an IPv 6  data packet encapsulated therein, the IPv 4  data packet is passed through IPv 4 /IPv 6  filter device  410  and delivered to IPv 4  device  370 .  
         [0027]    It is understood that IPv 4  device  370  is presented only for purposes of illustration. One skilled in the art will realize that IPv 4  destination device  370  is not necessary for the present system and method to operate as described above. IPv 6  devices  340 ,  350  and  360  may share a common IPv 4  address regardless of whether IPv 4  device  370  is present.  
         [0028]    [0028]FIG. 4 illustrates a flow chart of the filtering and forwarding procedure followed by lPv 4 /IPv 6  filter device  410 .  
         [0029]    At step  407 , the system checks for IPv 4  packets being delivered by communications modem  390  on communications line  405  using methods known in the art. When an IPv 4  packet is received, the system proceeds to step  408  and reads the protocol frame of the IPv 4  header to determine whether an IPv 6  data packet is encapsulated in the IPv 4  data packet.  
         [0030]    If, at step  408 , the system determines that the IPv 4  packet does not have an IPv 6  data packet encapsulated therein, the system then proceeds to step  420  and passes the IPv 4  data packet to IPv 4  device  370  through a dataport  380  connecting IPv 4 /IPv 6  filter device  410  as shown in step  420 , FIG. 3, and returns to step  407 .  
         [0031]    Alternately, if at step  408 , the system determines that the IPv 4  data packet does contain an IPv 6  data packet encapsulated therein, the system then proceeds to step  430  and strips the IPv 4  data packet of its IPv 4  header and other IPv 4  related information leaving only the formerly encapsulated IPv 6  packet. At step  440 , the system thereafter delivers the IPv 6  packet to its respective IPv 6  device ( 340 ,  350  or  360 ) through a data port ( 382 ,  384  or  386 ) connecting IPv 4 /IPv 6  filter device  410  to a respective IPv 6  device as shown in FIG. 3, and returns to step  407 .  
         [0032]    IPv 4 /lPv 6  filter device  410  operates in a similar manner in the reverse direction. In other words, IPv 4  data device  410  accepts IPv 4  data packets from IPv 4  device  370  and IPv 6  data packets from IPv 6  devices  340 ,  350  and  360  and delivers encapsulated IPv 6  data packets and IPv 4  data packets to communications modem  390  for transport to the Internet  330 . When IPv 4 /IPv 6  filter device  410  receives a data packet from one of IP devices  340 ,  350 ,  360  and  370 , IPv 4 /IPv 6  filter device  410  reads the first four bits in the header of the packet to determine whether the data packet is an IPv 4  or IPv 6  data packet. If the data packet is an IPv 4  data packet, IPV 4 /IPv 6  filter device  410  acts as a pass-through device, i.e., it passes the IPv 4  data packet to communications modem  390  without manipulating the data packet. However, if the data packet received is an IPv 6  data packet, IPv 4 /IPv 6  filter device  410  encapsulates the IPv 6  data packet in an IPv 4  data packet. The IPv 4  destination address for an IPv 6  data packet may be assigned, e.g., as a config-time option. IPv 4 /IPv 6  filter device  410  then passes the encapsulated IPv 6  data packet to communications modem  390 .  
         [0033]    As described above, the present method and system allow multiple IPv 6  devices to receive and send IPv 6  encapsulated data packets using a single IPv 4  address. Furthermore, using the present method and system, an IPv 6  enabled device ( 340 ,  350  and  360 ) need not include an IPv 4 /IPv 6  stack or any other hardware or software that reads and manipulates IPv 4  data packets.  
         [0034]    IPv 4 /IPv 6  filter device  410  is constructed using methods and devices known in the art. FIG. 5 illustrates an illustrative embodiment in logic block diagram form of IPv 4 /IPv 6  filter device  410 . IPv 4 /IPv 6  filter device  410  may include an embedded microprocessor, DSP, ASIC or any other programmable logic device  500  as well as static and/or dynamic electronic memory  510  connected to programmable logic device  500  for storing and executing the process described by the flowchart of FIG. 4. IPv 4 /IPv 6  filter device  410  is preferably a stand-alone device having appropriately configured input and output ports ( 520 ,  530 ,  540  and  550 ), e.g., RJ11, RJ-45 and/or serial pin cable connectors, providing an input connection from communications modem  390  and one or more output connections to IP devices  340 ,  350 ,  360  and  370 . In the preferred embodiment, the input and output ports ( 520 ,  530 ,  540  and  550 ) are bi-directional, allowing any port to send or receive data.  
         [0035]    Variations of IPv 4 /Pv 6  filter device  410  may be realized. IPv 4 /IPv 6  filter device  410  may have only one output which connects, e.g., to a broadcast device such as an Ethernet hub. In this way all of the IP data packets output by IPv 4 /IPv 6  filter device  410 , whether IPv 4  or IPv 6 , are broadcast to all of IP devices  340 ,  350 ,  360  and  370 . Each device may then determine, based on the version field of the IPv 4  or IPv 6  header respectively, whether that packet is directed to that particular type of device, i.e., to an IPv 4  or an IPv 6  device.  
         [0036]    Further variations of the above-described method and system may be realized and are within the scope of the present invention. For example, the functionality of IPv 4 /IPv 6  filter device  410  may be included with other network devices, e.g., an OSI Layer  1  device such as an xDSL modem  390  or an OSI Layer  2  device such as an Ethernet bridge or an end-user device such as the protocol stack or network card of a personal computer. In this way IPv 4  /IPv 6  filtering can be accomplished without the need for a separate physical device.  
         [0037]    Additional features may be realized in the process described by FIG. 4. The system, upon detecting an IP packet at step  405  may read the version field of the header and determine whether the data packet received is a non-encapsulated IPv 6  data packet, i.e., a pure IPv 6  data packet. Thus, IPv 4 /IPv 6  filter device  410  would be useful for filtering Internet traffic having IPv 4 , embedded IPv 6  and pure IPv 6  data packets. Similarly, in the reverse or encapsulating direction, IPv 4 /IPv 6  filter device, upon receiving a pure IPv 6  data packet, may pass that packet through to IPv 6  routers if IPv 4 /IPv 6  filter device knows such equipment and capability are available.  
         [0038]    It is thus apparent to one skilled in the art that many other variations of the present system and method may be realized without departing from the scope of the invention. Furthermore, the present invention is not limited to only filtering encapsulated IPv 6  data packets from IPv 4  data packets. Rather, the present method and system can be utilized to filter any type of encapsulated data whose format is identifiable in the encapsulating data packet.