throbber
UTILITY
`SERIAL
`NUMBER
`
`PATENT DATE
`
`SERIAL NUMBER
`0(;)/:;:::42, :]2::1
`
`FILING DATE
`04/24/97
`
`PATENT
`NUMBER
`
`SUBCLASS
`
`GROUP ART UNIT:
`~(J!';'\'
`.
`,,, . .f., .
`r)L:I,·
`
`RUCE ANTHONY WOOTTON, RALEIGH, NC; ~ILLIAM 8. COLVIN, MI~TON. CANADA.
`
`**CONTINUING DATA**************~******
`VERIFIED PROVISIONAL APPLICATION NO. 60/015~945 04/24/96
`.-,~f?A( ...... _/,/
`I
`
`//'
`
`**FOREIGN APPLICATIQNS************
`VERIFIE[:a
`
`,.'
`
`B+\-e (
`
`STATE OR SHEETS TOTAL
`AS
`FILED COUNTRY DRWGS. CLAIMS
`:32
`,"',
`...... NC
`...:.;-,
`
`FOnllgn prlorlty 01 aImed
`35 USC 119 oondltlona mat
`
`Verlfled and
`FO
`WASHINGTON HARBOUR
`3000 K STREET NW
`SUITE 500 POBOX 2569&
`WASHI~GTON[:aC-20d67-8696
`
`FILING FEE
`INDEP.
`CLAIMS RECEIVED
`
`ATTORNEY'S
`DOCKET NO.
`
`PARTS OF APPLICATION
`FILED SEPARATELY
`
`(,
`
`'?~(UN If::.. ,j LH-
`
`Assistant ExamIner
`
`Total Claims
`'.:3 -J
`r7'
`
`,'"
`
`Sheets Drwg.
`r;(.' .
`
`Print Fig.
`r---
`I. .'
`
`/
`. Ajit Patel
`~/
`:'rhH~r\l EXI.Hninm
`
`ISSUE
`BATCH
`Examiner NUMBER
`
`Label
`Area
`
`WARNING: The Information disclosed herein may be restricted. UnaLithorl;;:ed dlsolosure may be prohibited
`by the United States Code Tltle 35. Sections 122, 181 and 368. P08gesslon outside the U,S,
`, i,' palent & Trademark Office Is restricted to authorl;;:ed employees and contractors only.
`'\ ,;,1
`.
`,,'.'
`
`I
`
`().
`f)
`hl~p
`
`Form PTI~
`
`,
`
`(Rev. 8~"V~rM! IJ.
`QC _i6~~
`
`(FACE)
`
`Google Ex. 1402, pg. 1
`
`

`
`.
`
`('
`
`",', ~2 0.51. PTO
`'
`"':~,'06842328
`11~!I~I~I~I~llllnllllt, " •
`
`4..' , Date
`Entered
`or
`Counted
`
`.
`-- -~~-- ----
`PATENT APPI..lCATION
`
`__
`
`I'
`. . . _ ' : ____ "~";
`--- --------,
`"
`'
`!
`
`'"
`
`1 ' "1 '
`
`1 1 .1_
`
`APPROVED FOR LICENSE. Q"
`- "Jt;j~] F ~ )'"f,
`I
`",
`,) <" "g. I
`I
`__ INITIALS
`' ,
`- ' " " I ' )
`
`"
`
`,
`
`:
`
`1 111111 11111 Iml 1111111111 11111 11111 11111 11111111
`08842328
`
`'
`
`CONTENTS
`
`Date
`Received
`or
`Mailed
`
`__ ~ __ ~ 4.~,~~~~~~~ ____ _
`jV~W 5.~~~~~~~~~
`_______ 6.~~~~~----~~~'
`
`~ ______ 7'~~~~~4-__ ~~~~~~~ ____ _
`
`__ ~'--~ 8.~~~~ ______ ~~~
`
`~.-
`
`.
`
`- -'" .1(1 -1,2 ~-Prt1-'
`_I--+D/...:.....;! if=~_ 9. -Lf+~~~-;(----r--,..~-----.
`,r;;t;l5 #c:7v/
`_ _ _ 1~~
`11. ~.(.....LJt;Iu:..::.........-+--b-"::=....-.--~:.::x:::: ;!; 5-~c)
`..§/f ::::.rJ 2;1
`.-s:- g! DQ
`
`,,r{',
`
`", i
`
`-
`
`I
`,~,~
`"t",\ ,:'Ul) 13.
`\', "")\ :{,; 4';'
`'I '. ;. (,,:-'-::-
`______ 14. :pTOl.-'d-r (
`________ 15. ____________ __
`
`-""
`"
`
`_____ 16. ______________ _
`
`__ ___ 17. _______________ __._--__
`
`_____ 18. ______________ _
`
`____ _ 19. _ ____________ __
`
`____ 20. _--:--_____ ----.:... __ __
`
`_ - - -21 . _____ - - - - - -
`____ _ 22. ___ _ ____ _ _ _ _ __
`
`---'-____ 23. __ _________ _
`
`____ -24. __ ___ __ - - - -
`
`'---_____ ---25. ______ ______ __
`
`_
`
`, .....,...., _ _ _ _ 26. _ _ ______ ~_-_
`
`______ 27. _~----_----- ____ .,......;...-. _
`_____ 28. _ _________ _
`
`____ 29. __ _________ --'--
`
`_....:--__ -30. __ _________ _
`
`_
`
`----..-_____ 31. _____ ___ ___ _
`
`__ ...0..--__ 32. - _____ .l......-___ --~- ___ ---"-----,~
`(FRONT)
`
`Google Ex. 1402, pg. 2
`
`

`
`United States Patent [19]
`Wootton et al.
`
`[54]
`
`INTERNET PROTOCOL FILTER
`
`[75]
`
`Inventors: Bruce Anthony Wootton, Raleigh,
`N.C.; William G. Colvin, Milton,
`Canada
`
`[73] Assignee: Nortel Networks Corporation,
`Montreal, Canada
`
`[21] Appl. No.: 08/842,328
`
`[22] Filed:
`
`Apr. 24, 1997
`
`Related U.S. Application Data
`[60] Provisional application No. 60/015,945, Apr. 24, 1996.
`Int. CI.7
`..................••.••..•.••.••............•..•.•••• H04L 12/56
`[51]
`[52] U.S. CI ........................... 370/392; 370/390; 370/401;
`713/201
`[58] Field of Search ..................................... 370/351, 352,
`370/355, 389, 390, 392, 393, 400, 401,
`402, 409; 395/200.6, 200.62, 200.68, 200.72;
`713/201
`
`[56]
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`5,309,437
`5,383,179
`5,400,334
`5,606,668
`5,623,601
`5,778,174
`5,781,550
`5,793,763
`5,826,014
`5,835,726
`
`........................ 370/401
`5/1994 Perlman et al.
`1/1995 Saini et al. .............................. 370/393
`3/1995 Hayssen .................................. 370/245
`2/1997 Shwed.
`4/1997 Vu.
`7/1998 Cain.
`........................ 370/401
`7/1998 Templin et al.
`8/1998 Mayes et al. ........................... 370/389
`10/1998 Coley et al. .
`11/1998 Shwed et al. .
`
`FOREIGN PATENT DOCUMENTS
`o 465 201
`
`1/1992 European Pat. Off ..
`
`OlliER PUBLICATIONS
`
`Axner, "Differing Approaches to Virtual LANs", Business
`Communications Review, Dec. 1993, pp. 42-45.
`Bryan, "Build a Firewall", Byte, Apr. 1995, pp. 91-96.
`Bryan, "Firewalls for Sale", Byte, Apr. 1995, pp. 99-104.
`
`111111111111111111111111111111111111111111111111111111111111111111111111111
`US006128298A
`[11] Patent Number:
`[45] Date of Patent:
`
`6,128,298
`Oct. 3, 2000
`
`Carl-Mitchell, et aI., "Building Internet Firewalls", UnLy(cid:173)
`World, Feb. 1992, pp. 93-103.
`Chapman, "Network (In)Security Through IP Packet Filter(cid:173)
`ing", UNIX Security Symposium III Proceedings, Balti(cid:173)
`more, MD, Sep. 14-16, 1992, pp. 63-76.
`Cheswick, "The Design of a Secure Internet Gateway",
`USENIX Summer Conference, Anaheim, CA, luI. 11-15,
`1990, pp. 233-237.
`Ho, "Implementation of a Secure Gateway on Hughes
`Aircraft's Engineering Design Network", 15th Conference
`on Local Computer Networks, IEEE, Minneapolis, MN.,
`Sep. 30-0ct. 3, 1990, pp. 180-182.
`Hoover, "Securing the Enterprise, Firewalls Can Keep You
`from Getting Burned" ,Internet World, Feb. 1995, pp. 39-47.
`Koblas, et aI., "SOCKS", UNIX Security Symposium III
`Proceedings, Baltimore, MD, Sep. 14-16, 1992, pp. 77-83.
`Lottor, "TCP Port Service Multiplexer (TCPMUX)", Inter(cid:173)
`net rfc 1078 (1988), pp. 1,2.
`Luotonen, et aI., "World-Wide Web Proxies", Computer
`Networks and ISDN Systems 27 (1994), pp. 147-154.
`
`(List continued on next page.)
`
`Primary Examiner-Ajit Patel
`Assistant Examiner---:f3ob A. Phunkulh
`Attorney, Agent, or Firm-Foley & Lardner
`
`[57]
`
`ABSTRACT
`
`The IP filter, embodying the present invention, is a commu(cid:173)
`nications device designed to provide public network or
`Internet access to nodes of private networks, advantageously
`without requiring the private nodes on such networks to
`register public Internet addresses. The IP filter presents a
`single IP address to the Internet and uses a plurality of IP
`ports to solve the problem of IP address conservation. It
`initiates sessions by assigning private side IP sessions to a
`unique port of the IP filter's public address. The IP filter
`effects a translation between a source port number for the
`private network and a destination port number for the public
`network for communication therebetween. Benefits of the IP
`filter include private node security and conservation of
`Internet-registered addresses.
`
`32 Claims, 2 Drawing Sheets-
`
`INTERNET
`-----
`PUBLIC
`NETWORK
`
`Google Ex. 1402, pg. 3
`
`

`
`6,128,298
`Page 2
`
`OlliER PUBLICATIONS
`
`Marotta, et aI., "Internetworking Data Services", 16,h Con(cid:173)
`ference on Local 'computer Networks, IEEE, Minneapolis,
`MN, Oct. 14-17,1991, pp. 223--229.
`Panzieri, et aI., "Interfacing UNIX to Data Communications
`Networks", IEEE Transactions on Software Engineering,
`vol. SE-U, Oct. 1985, pp. 1016-1032.
`Schauer, et aI., "An Internet Gatekeeper", UNIX Security
`Symposium III Proceedings, Baltimore, MD, Sep. 14-16,
`1992, pp. 49-61.
`Schroeder, et al. "Autonet: A High Speed, Self-Configuring
`Local Area Network Using Point-to-Point Links", IEEE
`Journal onSelectedAreas in Communications, vol. 9, No.8,
`Oct. 1991, pp. 1318-1334.
`Shapiro, "Structure and Encapsulation in Distribution Sys(cid:173)
`tems: The Proxy Principle", The 6'h International Confer(cid:173)
`ence on Distributed Computing Systems, IEEE, Cambridge,
`MA, May 19-23, 1986, pp. 198-204.
`Snyder, "Choosing the Right Firewall to Defend Your Net(cid:173)
`work" Network World, vol. 12, No. 10, Mar. 5, 1995, p. 1.
`Stephensen, "A Blueprint for Firewalls", LAN Magazine,
`Feb. 1995, pp. 63--70.
`Tam, et al. "CAPNET-An Approach to Ultra High Speed
`Network", IEEE International Conference on Communica(cid:173)
`tions, 1990, pp. 323.1.1-323.1.7.
`
`Tolly, "Evaluating Port Switching Hubs-A reality check
`for virtual workgroups",Data Communications, Jun. 1993,
`pp.52-62.
`
`Treese, et aI., "X Through the Firewall, and Other Applica(cid:173)
`tion Relays", USENIX Summer 1993 Technical Conference,
`Cincinnati, OH, Jun. 21-25, 1993, pp. 87-98.
`
`Cheswick and Bellovin, "Firewalls and Internet Security:
`Repelling the Wily Hacker", Addison-Wesley, 1994, pp.
`34-36,54-75.
`
`Comer, "Internetworking with TCP/IP", Prentice-Hall, Inc.,
`1988,pp. 120-127, 137-141, 194, 195,208-214,346,347.
`
`McClimans, "Workarounds Ease the IP Address Shortage",
`Data Communications, section Software Views, vol 24, No.
`2, Feb. 23, 1995, (p. 33), pp. 3-5.
`
`Kostick, "Building a Linux Firewall", Linux Journal, Apr.
`1996, pp. 49, 52, 53,55, 57, 58, 61.
`
`Egevang et aI., "Internet Engineering Task Force, USA"
`XP2040992 pp. 1-8 (1994).
`
`Stallings, "Internet Security Handbook" XP2040993 pp.
`27-37 (1995).
`
`Google Ex. 1402, pg. 4
`
`

`
`u.s. Patent
`
`Oct. 3, 2000
`
`Sheet 1 of 2
`
`6,128,298
`
`FIG. I
`
`Google Ex. 1402, pg. 5
`
`

`
`u.s. Patent
`
`Oct. 3, 2000
`
`Sheet 2 of 2
`
`6,128,298
`
`/2~
`
`40
`
`38
`
`34
`
`30
`
`ADDRESS
`TRANSLATION
`
`USER
`INTERFACE
`
`42
`
`IP HANDLER
`
`ARP
`
`ETHERNET TABLE
`
`PACKET DRIVER
`
`PACKET DRIVER
`
`36
`
`32
`
`H.W.
`
`H.W.
`
`FIG. 2
`
`Google Ex. 1402, pg. 6
`
`

`
`6,128,298
`
`1
`INTERNET PROTOCOL FILTER
`
`This application is based on provisional application
`60/015,945 filed Apr. 26, 1996.
`
`BACKGROUND OF THE INVENTION
`
`The present invention generally relates to internetwork
`firewalls and, in particular, to an internet protocol (IP) filter
`whereby a private IP network domain is mapped to a single
`IP address on the public Internet.
`Firewalls are generally known and characterized by com(cid:173)
`puter servers which function to couple nodes within the
`domain of the private network to nodes in a public network
`domain, such as the Internet. A deficiency of the known
`firewall products is the need for a unique public IP address
`for each concurrent session or interaction between public
`and private nodes.
`A firewall providing conservation of public IP addresses
`would be desirable.
`
`SUMMARY OF THE INVENTION
`It is an object of the present invention to provide a new
`and improved apparatus for communicatively coupling two
`networks.
`The invention, therefore, according to a first exemplary
`aspect provides a method of interfacing private and public
`data communications networks, through a filter node in
`communication with both networks, the filter node having
`an address known in the public network, comprising the
`steps of: routing from nodes in the private network, to the
`filter node, data packets having destination information,
`which includes a destination address and a destination port,
`corresponding to nodes in the public network and having
`source information, which includes a source address and a
`source port, of the respective private network nodes; for
`each data packet received from the private network, at the
`filter node, maintaining the source information taken from
`the data packet in correlation with a unique value represent(cid:173)
`ing a port of the filter node, and replacing in the data packet 40
`the source address with the filter node address and the source
`port with the filter node port value; and routing from the
`filter node, in the public network, the data packets having the
`replaced source information, according to the destination
`information in each, to the corresponding public network 45
`nodes.
`According to a second exemplary aspect, the invention
`provides a method of interfacing private and public data
`communications networks, through a filter node in commu(cid:173)
`nication with both networks, comprising the steps of: (a)
`receiving at the filter node, from the private network, a data
`packet having an a destination address corresponding to a
`node in the public network and a source address correspond(cid:173)
`ing to a node in the private network; (b) maintaining, by the
`filter node, the source address taken from the data packet; (c)
`replacing, in the data packet, the source address with an
`address of the filter node; (d) routing from the filter node, in
`the public network, the data packet having the replaced
`source address, according to the destination address, to the
`corresponding public network node; (e) waiting for a return
`packet from the public network, responsive to the data
`packet having the replaced source information; (f) replacing,
`in the return packet, the destination address with the main(cid:173)
`tained source address; and (g)routing from the filter node, in
`the private network, the return packet having the replaced 65
`destination address to the corresponding private network
`node.
`
`2
`According to a third exemplary aspect, the invention
`provides a method of operating a filter node for interfacing
`first and second data communications networks, comprising
`the steps of: receiving from the first network, a data packet
`5 having destination information, which includes a destination
`address and a destination port, corresponding to a node in
`the second network and having source information, which
`includes a source address and a source port, corresponding
`to a node in the first network; maintaining the source
`10 information taken from the data packet in correlation with a
`unique value representing a port of the filter node; replacing
`in the data packet the source address with an address of the
`filter node and the source port with the filter node port value;
`and sending to the second network the data packet having
`15 the replaced source information, whereby that packet is
`routed according to its destination information to the corre(cid:173)
`sponding second network node.
`According to a fourth exemplary aspect, the invention
`provides a filter node for interfacing first and second data
`20 communications networks, comprising: means for receiving
`from the first network, a data packet having destination
`information, which includes a destination address and a
`destination port, corresponding to a node in the public
`network and having source information, which includes a
`25 source address and a source port, corresponding to a node in
`the first network; means for maintaining the source infor(cid:173)
`mation taken from the data packet in correlation with a
`unique value representing a port of the filter node; means for
`replacing in the data packet the source address with an
`30 address of the filter node and the source port with the filter
`node port value; and means for sending to the second
`network, the data packet having the replaced source
`information, whereby that packet is routed according to its
`destination information to the corresponding second net-
`35 work node.
`An IP filter, embodying the present invention, is a com(cid:173)
`munications device designed to provide public network or
`Internet access to nodes of private networks, advantageously
`without requiring the private nodes on such networks to
`register public Internet addresses. The IP filter presents a
`single IP address to the Internet and uses a plurality of IP
`ports to solve the problem of IP address conservation. It
`initiates sessions by assigning privatc side IP sessions to a
`unique port of the IP filter's public address whereby up to
`64,512 (=65,536 total -1,024 well known ports) concurrent
`sessions may be supported through the single IP address.
`The IP filter effects a translation between a source port
`number for the private network and a destination port
`number for the public network for communication therebe-
`50 tween. Benefits of the IP filter include private node security
`and conservation of Internet-registered addresses.
`In a particular embodiment, the IP filter may support three
`data transport protocols over the internet protocol: transmis-
`55 sion control protocol (TCP), user datagram protocol (UDP)
`and Internet control message protocol (ICMP). Packets of
`other protocols may be ignored.
`The TCP protocol prepends a TCP header to a data packet.
`The source port and destination port numbers are contained
`60 in this header. The Internet addresses of the source and
`destination nodes are contained in the IP header. The IP
`address and port information extracted from each packet will
`be used to determine where the IP filter should route this
`packet.
`The IP filter maintains a lookup table of information on
`each TCP connection. This information includes the port
`from the private node, the private IP address, the assigned
`
`Google Ex. 1402, pg. 7
`
`

`
`6,128,298
`
`3
`port number of the destination node, and the port number of
`the IP filter in the form of an index. When a packet is
`received from the private network, the private address and
`port number are added to the table as a new entry, if an entry
`corresponding to this packet is not found in the table and if 5
`the TCP header indicates that this is a new connection
`request. Then the source address and port number in the
`packet header are replaced with the IP filter's IP address and
`port number, and the packet is transmitted to the Internet.
`When the IP filter receives a packet from the Internet, the 10
`destination port number is used to index the lookup table.
`When the corresponding table entry is found, the destination
`address and port number are replaced with the private
`network's IP address and port number, and the packet is
`transmitted to the private network. If the received packet's 15
`source port is different from the port recorded in the table,
`and if the packet header information indicates that this
`packet is the first response on the connection, then the
`lookup table is updated with the port number assigned by the
`Internet node, if needed. When the IP filter detects an end of 20
`transmission code in the packet, the lookup table entry is
`zeroed. If the IP filter receives packets from the Internet that
`do not have entries in the lookup table corresponding to the
`IP filter port, it ignores the packets.
`The UDP protocol is connectionless, as opposed to TCP, 25
`a connection-oriented protocol. The UDP header contains no
`codes governing initial connection or end of transmission.
`The data of interest in the UDP header are the source port
`and destination port. This information, along with the Inter(cid:173)
`net addresses contained in the IP header, are used to deter- 30
`mine where the IP filter should route this packet.
`The IP filter maintains a lookup table of information on
`each UDP session. When the IP filter receives a UDP packet
`from the private network, it records the source address, the 35
`source port number, the destination port number, and the
`assigned IP filter port number as the index to the table. Then
`the private node address and port number in the packet
`header are replaced with the address and assigned port
`number of the IP filter. Then the packet is transmitted to the 40
`Internet.
`When the IP filter receives a UDP packet from the
`Internet, it indexes the UDP lookup table and replaces the
`packet's destination information, namely the IP filter address
`and assigned port number, with the private address and port 45
`number from the lookup table. The lookup table also main(cid:173)
`tains an interval indication for an expiration timer on data(cid:173)
`gram packets received as per standard UDP implementa(cid:173)
`tions. If the IP filter receives packets from the Internet that
`do not have entries in the look'llp table corresponding to the 50
`IP filter port, it ignores the packets.
`As ICMP packets do not contain port numbers of either
`source or destination, any ICMP packets received from the
`private network are processed one at a time, with buffering
`of additional ICMP packets. The IP filter reads the private 55
`address from the packet header and replaces it with the
`address of the IP filter. The packet is transmitted to the
`Internet, and the IP filter waits for the response. When it
`receives the responding packet, the destination address in
`the packet header is changed from that of the IP filter to that 60
`of the node on the private network. Then the IP filter
`transmits the packet to the private network.
`To successfully deliver packets over an IP protocol
`network, each node must maintain a table of other hosts' IP
`addresses and their corresponding Ethernet addresses in an 65
`Ethernet based data communications network. The nodes
`actllally use the IP addresses and the Ethernet addresses to
`
`4
`address packets. The relationship between the two addresses
`is dynamic; that is, a node with an IP address may change its
`Ethernet address. Thr information in the address table is
`obtained from the replies to the node's broadcast of ARP
`packets. The source node broadcasts ARP packets to request
`the Ethernet address of the destination node, given the
`destination node's IP address. If the destination node
`receives the packet, it sends a reply packet with the
`requested information.
`Though it does not maintain a true ARP table, the IP filter
`passes ARP packets in a manner similar to TCP and UDP
`packet passing. When the IP filter receives an ARP packet
`from a node on the private network destined for the public
`network, it replaces the source address information with the
`filter's address information. The private node's IP address
`and the target IP address are placed in a lookup table. When
`the target node replies with its own Ethernet address, the
`destination address information is changed from that of the
`IP filter to that of the private node before transmitting the
`packet to the private node. The private node address infor(cid:173)
`mation is obtained from the table. When an ARP packet is
`destined for the firewall, the ARP packet does not pass
`through the IP filter but is restricted to communications
`between the filter and the one side of the network.
`Events and errors encountered by the IP filter may be
`logged, for example, by writing them into a text file.
`The IP filter ideally will process packets as fast as the
`networks present them but when network traffic is too heavy,
`the IP filter will then buffer the packets in two queues, one
`for the private network and one for the Internet.
`Two source and destination lookup tables may be utilized,
`one for TCP packets and the other for UDP packets. Each
`table is directly indexed by the IP filter port number assigned
`to the communication session. The table entries contain the
`IP address of the private node, the source port of the private
`node, and the destination port of the Internet node. If there
`is no connection on a certain IP filter port; then the corre(cid:173)
`sponding entry in the table may be zeroed. Packets arriving
`from both the private network and the Internet are processed
`using the same lookup table. This arrangement assumes that
`of the available IP filter communications ports some are
`designated for UDP communication and some for TCP
`communication.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`The invention will be better understood from the follow(cid:173)
`ing description together with reference to the accompanying
`drawings, in which:
`FIG. 1 is a schematic representing an internet protocol
`filter coupling a private network and a public network; and
`FIG. 2 is a block diagram representing internal compo(cid:173)
`nents of the filter.
`
`DETAILED DESCRIPTION
`Referring to FIG. 1, shown for illustration of the present
`invention is a private network 10 communicatively coupled
`through an internet protocol (IP) filter 12 to a public network
`14 which may form parlof a global data network, otherwise
`referred to as the Internet 16. The private network 10
`represents a conventional data communications network,
`such as a local area network (LAN), having a plurality of
`nodes 18 each being identified by a unique IP address within
`the domain of the private network 10. The public network 14
`and Internet 16 are representative of public domain data
`communications networks also having a plurality of nodes
`20 with corresponding IP addresses.
`
`Google Ex. 1402, pg. 8
`
`

`
`6,128,298
`
`(iIP, iPort-frIP, frPort)
`
`10 which will be received by the IP filter 12 and translated
`thereby to
`
`(iIP, iport-pIP, pPort)
`
`6
`where frIP is the IP address of the IP filter 12 on the public
`network 14, and frPort is the index into the translation table
`plus an offset value, for example, of 1024 to skip using well
`known ports. The frPort represents an arbitrary port.
`The internet node 20 will reply with a packet
`
`5
`The IP filter 12 acts as a gateway through which data
`packets are exchanged between the private network 10 and
`the public network 14, thereby providing Internet access to
`the nodes 18 of the private network 10. The IP filter 12
`constitutes one of the private network nodes 18 and is the 5
`only such node to have a public IP address that is Internet(cid:173)
`registered, whereby the IP filter 12 essentially also consti(cid:173)
`tutes one of the public nodes 20 and itsIP address is known
`in the public domain. The IP addresses of the other private
`network nodes 18 are reserved for the private network 10,
`and not known or registered in the public Internet address
`domain. As is conventional, associated with the IP address
`of the IP filter 12 are a plurality of IP ports, specifically
`65,536 in total of which 64,512 are not reserved for pre(cid:173)
`defined protocols and can be used for address translations. 15
`In general, to translate from the private side, the values
`(protocol type, pIP, pPort, iIP, iport)must be located in the
`Communications between nodes 18 on the private net-
`work 10 are unaffected by the presence of the IP filter 12, but
`translation table. This should be done with a hash table
`lookup.
`to access the public network 14 and particularly the nodes 20
`therein, the private nodes 18 route all communications
`Translating from the public side can be a direct table
`requests through the IP filter 12. The IP filter 12 manages the 20 lookup since frPort minus 1024 is the index into the table.
`communications between private nodes 18 and the Internet
`If (iIP, iport) in the packet does not match the corresponding
`nodes 20 by modifying header information of data packets
`entries in the table, then an unauthorized access is logged
`received from the private network 10 before transmitting
`and the packet dropped.
`each to the public network 14. The modifications cause the
`In translating packets, when a port is substituted in the
`communications between the private nodes 18 and the 25 TCP or UDP header, the checksum in both the TCP/UCP and
`public Internet nodes 20 to actually be between the IP filter
`IP header must be recalculated. When an IP address is
`12 'and the Internet nodes 20, which route all return com-
`substituted in the IP header, the IP header checksum must be
`munications to the IP filter 12 which subsequently routes the
`recalculated.
`return data packets to the private nodes 18.
`Following are special considerations for different proto-
`The IP filter 12 accepts no connection requests from the 30 cols supported by the IP filter 12.
`In respect of TCP, when a SYN packet is received from
`public network 14. All communications between private
`nodes 18 and public nodes 20 are initiated by the private
`the private network 10, the IP filter 12 locates an unused
`nodes 18. The IP filter 12 is designed to support three data
`entry in the table and fills it in, setting the type to TCP and
`transport protocols over the internet protocol: TCP, UDP and
`state to SYN. Then the packet is forwarded by the general
`ICMP messages; packets of other protocols are rejected or 35 scheme above. If no free entries exist in the table, then the
`ignored.
`packet is dropped and the event is logged.
`A translation table is maintained by the IP filter 12 to map
`If a SYN packet is received from the public network 14
`address and ports for packets received from the private
`interface, it is treated as unauthorized and logged (except for
`network 10 destined to the public network 14 and vise versa.
`FTP special case described below). However, a SYN+ACK
`The translation table contains the following for each entry: 40 packet is forwarded if the state of the translation table entry
`is SYN. After forwarding such a packet the state set to
`OPEN.
`If a FIN packet is received by the IP filter 12 and if the
`state in the translation table is not FIN, the state is set to FIN
`45 and the packet forwarded. If the state is FIN, then the packet
`is forwarded and the translation table entry is deleted by
`setting it to O. AFIN must be sent by each side to close a TCP
`connection.
`If a RST packet is received, then the translation table entry
`50 is deleted.
`Having regard now to the UDP protocol, when any UDP
`packet is received from the private network 10 side, the IP
`filter 12 first tries its standard lookup. If a translation table
`entry is not found, an unused entry is set up and the state set
`55 to OPEN. If a free entry is not found in the table, then rather
`than dropping the packet, a random UDP in the table is
`overwritten. Since UDP is connectionless and consequently
`an unreliable transport, if a packet is received from the
`public network 14 that would have needed the entry that was
`60 overwritten, that packet will be dropped and the node 18 on
`the private side will need to retry.
`With regard to FTP, an FTP client establishes a TCP
`"control" connection with an FTPserver on a particular port,
`for example, port 21. However, when data is to be
`65 transmitted, the FTP server will open a TCP connection from
`its "data" port, for example, which is default 20, to a
`destination port specified by the client.
`
`private IP address
`private port
`internet (public) IP address
`internet (public) Port
`timer
`session type/state
`Ethernet address
`
`(PIP)
`(pPort)
`(iIP)
`(iPort)
`
`The basic translation substitutes IP addresses and ports from
`the private network side to the IP filter's IP address and
`ports, thereby hiding all nodes 18 on the private network 10
`from the public network 14.
`A packet originating on the private network side specifies
`a source--destination of
`
`(pIP, pPort-iIP, iPort)
`
`This defines a "socket" in which the endpoints of the
`connection (source and destination) are defined by the IP
`addresses in the IP header and the ports in the TCP or UDP
`header.
`The IP filter 12 will translate the above to
`
`(frIP, frPort-iIP, iport)
`
`Google Ex. 1402, pg. 9
`
`

`
`6,128,298
`
`7
`To support this, packets sent by the private network 10 to
`port 21 need to be analyzed for an FTP "port" command at
`the IP filter 12. If detected, then a new entry in the table must
`be set up with pPort set to the value in the FTP port
`command. The IP address and port number in the FTP 5
`command must be changed to the IP filter's address and port
`before forwarding the packet. The state is set to FTPDATA.
`When a SYN packet is received from the public network
`14, if a table entry exists and is in FTPDATAstate, then the
`packet is forwarded and the state set to OPEN.
`For the ICMP protocol, if an ICMP packet is received
`from the private network 10 and if that packet is an echo
`request (ping), then the IP filter 12 locates a new entry in the
`translation table. The sequence field of the packet is stored
`in pPort in the table and the table index is put in the sequence 15
`field of the packet. The ICMP checksum is recalculated and
`the standard IP header substitution is done. The type is set
`to ICMP and state to PING and the timer set to 1 minute.
`If an echo reply (ping) is received from the public network
`14 interface, then the sequence field is used as the index into 20
`the table. If the state is PING, then pPort in the table is
`substituted into the sequence field of the packet, the ICMP
`checksum recalculated and the standard IP header substitu(cid:173)
`tion is done. The table entry is then deleted.
`If an echo request (ping) is received from the public 25
`network 14, then the IP filter 12 will reply. This allows
`internet access to confirm that the IP filter 12 is reachable
`and running.
`If a Destination Unreachable packet is received from the
`public network 14, then the header information contained is
`extracted. If the protocol was TCP or UDP, the (frIP,
`frPort-iIP, iport) of the originating packet can be deter(cid:173)
`mined and the translation table entry located.
`If the IP address extracted from

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket