throbber
a2) United States Patent
`Barsheshetet al.
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 10,652,111 B2
`May 12, 2020
`
`US010652111B2
`
`(54) METHOD AND SYSTEM FOR DEEP PACKET
`INSPECTION IN SOFTWARE DEFINED
`NETWORKS
`.
`(71) Applicant: ORCKITIP, LLC, Newton, MA (US)
`
`(72)
`
`Inventors: Yossi Barsheshet. Ashdod (IL);
`Simhon Doctori, Gan-Yavne (IL):
`Ronen Solomon, Ranat-Gan (IL)
`
`(73) Assignee: ORCKIT IP, LLC, Dover, DE (US)
`
`(58) Field of Classification Search
`CPC . HO4L 43/026; HO4L, 12/6418; HO4L 43/028;
`HO4L 49/70; HO4L, 69/161
`(Continued)
`
`(56)
`
`References Cited
`nn
`U.S. PATENT DOCUMENTS
`2010/0208590 AL*
`8/2010 Dolganow............ HO4L 43/026
`370/235
`
`8/2010 Dolganowet al.
`2010/0212006 AL
`
`(*) Notice:—Subject to any disclaimer, the termofthis (Continued)
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 306 days.
`
`FOREIGN PATENT DOCUMENTS
`
`(21) Appl. No.:
`
`15/126,288
`
`EP
`
`2672668 Al
`
`12/2013
`
`(22)
`
`PCTFiled:
`
`Apr. 21, 2015
`
`OTHER PUBLICATIONS
`
`(86) PCT No.:
`§ 371 (c)(1),
`Sep. 15, 2016
`(2) Date:
`Primary Examiner—Jae Y Lee
`(87) PCT Pub. No.: WO2015/164370
`Assistant Examiner — Jean F Voltaire
`PCT Pub. Date: Oct. 29, 2015 (74) Attorney, Agent, or Firm—May Patents Ltd. c/o
`
`Dorit Shem-Tov
`
`Supplementary Search Report of EP 15783292 dated Nov. 7, 2017.
`(Continued)
`
`PCT/US2015/026869
`
`(65)
`
`Prior Publication Data
`US 2017/0099196 Al
`Apr. 6, 2017
`
`Related U.S. Application Data
`(60) Provisional application No. 61/982,358,filed on Apr.
`22, 2014.
`
`(Sl)
`
`Int. Cl.
`HOAL 12/26
`HOAL 12/64
`
`(2006.01)
`(2006.01)
`(Continued)
`
`(52) U.S. Cl.
`CPC we HO4L 43/028 (2013.01); HO4L 12/6418
`(2013.01); HO4L 43/026 (2013.01);
`(Continued)
`
`ABSTRACT
`(57)
`A method for deep packet inspection (DPI) in a software
`defined network (SDN). The method includes configuring a
`plurality of network nodes operable in the SDN withatleast
`one probe instruction; receiving from a network nodea first
`packet of a flow,the first packet matches the at least one
`probe instruction and includes a first sequence number;
`receiving from a network node a second packet ofthe flow,
`the second packet matchesthe at least one probeinstruction
`and includes a second sequence number, the second packet
`is a responseofthe first packet; computing a mask value
`respective ofatleast the first and second sequence numbers
`indicating which bytes to be mirrored from subsequent
`packets belonging to the same flow; generating at least one
`
`(Continued)
`
`Exhibit 1001
`Cisco v. Orckit — IPR2023-00554
`Page 1 of 15
`
`

`

`
`
`
`US 10,652,111 B2
`Page 2
`
`
`
`mirror instruction based on at Ieast the mask value; and
`
`
`
`
`
`
`
`
`
`configuring the plurality of network nodes with at least one
`
`
`
`
`
`
`
`
`
`mirror instruction.
`
`
`
`
`
`
`34 Claims, 6 Drawing Sheets
`
`
`
`
`
`
`
`2014/0052836 Al*
`
`
`
`
`2015/0124812 AL*
`
`2016/0020998 AL*
`
`
`
`
`
`2016/0197831 AL*
`
`
`
`
`2016/0219080 AL*
`
`
`
`/2014 Nguyen wu HO4L 45/306
`
`
`
`
`709/223
`5/2015 Agarwal wo. HOAL 45/24
`
`
`
`
`370/392
`1/2016 Bifulco oo... HO4L 45/64
`
`
`
`
`370/235
`7/2016 De Foy .......00.. HO4L 45/7453
`
`
`
`
`
`370/392
`7/2016 Huang we HO04T, 63/20
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`(2013.01)
`(2013.01)
`(2006.01)
`
`
`
`
`
`(51)
`
`
`
`Int. Cl.
`
`
`HOAL 12/851
`
`
`HOAL 12/931
`
`
`HOAL 29/06
`
`
`(52) U.S. Ch
`
`
`
`
`CPC ou... HOAL 47/2483 (2013.01); HO4L 49/70
`
`
`
`
`
`
`(2013.01); HO4L 69/161 (2013.01)
`
`
`
`(58) Field of Classification Search
`
`
`
`
`
`
`USPC oie ceeccec ccc eeccne cee eeeereeneeceecaeenserseeeeeees 370/389
`
`
`See application file for complete search history.
`
`
`
`
`
`
`
`
`(56)
`
`
`
`References Cited
`
`
`
`U.S. PATENT DOCUMENTS
`
`
`
`
`
`2011/0264802 Al
`
`2013/0329764 Al
`
`
`
`
`
`10/2011 Dolganowetal.
`
`
`
`
`12/2013 Chesla et al.
`
`
`
`
`
`OTHER PUBLICATIONS
`
`
`
`
`
`
`
`
`
`Seugwon Shin et al, “Fresco: Modular Composable Security Ser-
`
`
`
`
`
`
`
`
`vices for Software-Defined Networks”, NDSS Symposium 2013,
`
`
`
`
`
`
`
`Apr. 23, 2013, pp. 1-16 XP055422 187.
`
`
`
`
`
`
`International Search Report of PCT/US2015/026869 dated Aug. 6,
`
`
`
`
`
`
`
`
`2015.
`
`Minlan Yuet al, “Scalable flow-based networking with DIFANE”,
`
`
`
`
`
`
`
`
`
`Proceedings of the ACM SIGCOMM 2010 Conference on Appli-
`
`
`
`
`
`
`
`
`cations, Technologies, Architectures, and Protocols for Computer
`
`
`
`
`
`
`
`Communications, NewDelhi, India, Aug. 30-Sep. 3, 2010, ACM,
`
`
`
`
`
`
`
`
`
`pp. 351-362 XP058 189957.
`
`
`
`
`* cited by examiner
`
`
`
`
`
`
`Exhibit 1001
`Cisco v. Orckit — IPR2023-00554
`Page 2 of 15
`
`Exhibit 1001
`Cisco v. Orckit – IPR2023-00554
`Page 2 of 15
`
`

`

`U.S. Patent
`
`May12, 2020
`
`Sheet 1 of 6
`
`US 10,652,111 B2
`
` Application
`
`Application
`servers
`120
`
`Application
`servers
`120
`
`servers
`120
`
`
`
`
`IP traffic
`
`
`
`
`100i
`
`Central Controller
`
`111
`
`130
`
`130
`
`i
`
`
`
`
`
`
`
`7
`
`Network node
`112
`
`112
`
`etwork node
`4412
`
`FIG. 1
`
`Exhibit 1001
`Cisco v. Orckit — IPR2023-00554
`Page 3 of 15
`
`

`

`
`
`
`
`
`
`
`
`yuajed‘SN
`
`
`
`
`
`
`
`200
`
`
`
`
`
`
`
`
`
`
`
`
`
`> C
`
`
`
`
`
`
`
`
`
`Y [
`
`
`bytes]
`
`
`
`
`aCIAGIA
`
`
`0707‘
`
`
`
`
`
`
`
`
`
`
`
`9JO7JooUs
`7HTITzs90rSn
`
`DATA 220
`KEY 210
`
`
`
`
`
`
` Client IP
`Server IP
`Client>
`Client»
`Server>
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`source
`address
`address
`destination
`Server
`Client
`Server
`Client
`
`timestamp|Server
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Hit counter X
`lient
`data buffer
`TCP
`number
`sequence
`sequence
`TCP port
`
`
`
`
`
`
`Hit
`number M
`number N
`[bytes]
`
`
`
`counter
`
`209.1.4.4 Client buffer Server Ox3c98b9ab Creation Server Client>
` protocol
` Server>
`
`
`
`port
`
`
`
`
`
`
`
`
`
`192.1.1.1
`
`
`
`
`
`
`
`
`
`
`
`
`
`Oxf46d5e34
`
`
`
`
`
`
`
`
`
`
`
`
`
`15:32:13
`
`
`
`
`
`
`
`
`FIG. 2
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Exhibit 1001
`Cisco v. Orckit — IPR2023-00554
`Page 4 of 15
`
`Exhibit 1001
`Cisco v. Orckit – IPR2023-00554
`Page 4 of 15
`
`

`

`U.S. Patent
`
`May12, 2020
`
`Sheet 3 of6
`
`US 10,652,111 B2
`
`DPI Flow Detection unit
`3114
`
`Mirror
`Packets
`
`DPI
`Engine
`312
`
`TCP Flag
`
`
`
`FIG. 3
`
`Exhibit 1001
`Cisco v. Orckit — IPR2023-00554
`Page 5 of 15
`
`

`

`U.S. Patent
`
`May12, 2020
`
`Sheet 4 of 6
`
`US 10,652,111 B2
`
`TCPflags
`flow creation
`
`312
`
`DPI
`Engine
`
`el|Ihier0
`
`counter
`
`Probe sequence
`
`
`
`112
`
`FIG. 4
`
`Exhibit 1001
`Cisco v. Orckit — IPR2023-00554
`Page 6 of 15
`
`

`

`
`U.S. Patent
`
`
`
`May12, 2020
`
`
`
`
`
`Sheet 5 of6
`
`
`
`
`US 10,652,111 B2
`
`
`
`
`500
`
`
`501 {
`
`
`
`
`
`MASK(filed, ...,
`
`Matchfields
`
`
`
`
`
`
`
`
`
`
`
`AGE
`
`
`
`
`a
`Go to probe table
`
`
`
` os
`
`
`TFProriyTTrastractionJ
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Go to next table ID
`<srclP, destIP, ....>
`
`
`<srclP, destIP, ....>
`Go to next table ID
`
`
`
`
`
`
`
`511
`
`
`
`
`
`
`
`
`
`Probe table 510
`
`511
`
`
`
`
`512
`
`
`
`
`
`
`
`
`
`
`
`<srclP, destIP, ....>
`
`
`
`
`<srclP, destIP, ....>
`
`
`
`MASK (filed1, ..., )
`
`
`
`
`
`MASK(filed, ...,
`)
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Go to next table ID
`
`
`
`
`
`
`Go to next table ID
`
`
`
`Output: controller
`
`
`
`
`Medium Output: controller
`
`
`
`513 {
`
`
`
`
`
`
`MASKallfields
`
`
`
`
`
`
`
`
`
`Goto next table ID
`
`
`
`
`
`
`FIG. 5
`
`
`
`Exhibit 1001
`Cisco v. Orckit — IPR2023-00554
`Page 7 of 15
`
`Exhibit 1001
`Cisco v. Orckit – IPR2023-00554
`Page 7 of 15
`
`

`

`U.S. Patent
`
`May12, 2020
`
`Sheet6 of 6
`
`US 10,652,111 B2
`
`Start
`
`$610
`
`600
`
`Configure nodeswith a set of probe
`instructions
`
`$620
`
`Receiveafirst TCP packet with FLAG
`SYN=1 and a sequence number M
`
`$630
`
`Receive a first TCP packet with FLAG
`ACK=1 and a sequence number N
`
`S640
`Compute a mask value
`
`S650
`
`Generate and send mirroring instructions
`
`to nodes
`
`S660
`
`(a)
`
`Inspect received mirrored bytes using DPI
`
`$670
`
`
`Terminate
`
`Inspection?
`
`Yes
`s¢6go
`
`=—(*)
`
`Removerelated exiting flows from flow table
`
`FIG. 6
`
`Exhibit 1001
`Cisco v. Orckit — IPR2023-00554
`Page 8 of 15
`
`

`

`
`
`US 10,652,111 B2
`
`
`
`1
`
`METHOD AND SYSTEM FOR DEEP PACKET
`
`
`
`
`
`INSPECTION IN SOFTWARE DEFINED
`
`
`
`
`NETWORKS
`
`
`
`
`
`CROSS REFERENCE‘TO RELATED
`
`
`
`APPLICATIONS
`
`
`
`
`
`This application claims the benefit of U.S. provisional
`
`
`
`
`
`
`
`application No. 61/982,358 filed on Apr. 22, 2014,
`the
`
`
`
`
`
`
`
`
`contents of which are herein incorporated byreference.
`
`
`
`
`
`
`
`
`TECHNICAL FIELD
`
`
`
`
`
`
`
`
`This disclosure generally relates to techniques for deep
`
`
`
`
`
`
`
`
`
`
`
`packet inspection (DPI), and particularly for DPIoftraffic in
`
`
`
`
`
`
`
`
`
`
`cloud-based networks utilizing software defined networks.
`
`
`
`
`
`
`BACKGROUND
`
`
`
`
`
`
`
`
`
`2
`
`The straightforward approach ofrouting all trafic from
`
`
`
`
`
`
`
`
`network nodes to the central controller introduces some
`
`
`
`
`
`
`
`
`significant drawbacks, such as increased end-to-endtraflic
`
`
`
`
`
`
`
`delays between the client and the server; overflowing the
`
`
`
`
`
`
`
`
`
`controller capability to perform other networking functions;
`
`
`
`
`
`
`
`and a single point of failure for the re-routed traflic.
`
`
`
`
`
`
`
`
`
`
`Therefore, it would be advantageous to provide a solution
`
`
`
`
`
`
`
`
`that overcomes the deficiencies noted above and allow
`
`
`
`
`
`
`
`
`eflicient DPI in SDNs.
`
`
`
`
`
`
`SUMMARY
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`A summary of several cxample cmbodiments of the
`
`
`
`
`
`
`
`disclosure follows. This summary is provided for the con-
`
`
`
`
`
`
`
`
`venience of the reader to provide a basic understanding, of
`
`
`
`
`
`
`
`
`
`
`such embodiments and does not whollydefine the breadth of
`
`
`
`
`
`
`
`
`
`
`the disclosure. This summaryis not an extensive overview
`
`
`
`
`
`
`
`
`
`of all contemplated embodiments, and is intended to neither
`
`
`
`
`
`
`
`
`
`identify key or critical nodes ofall aspects nor delineate the
`
`
`
`
`
`
`
`
`
`
`
`scope of any or all embodiments. Its sole purpose is to
`
`
`
`
`
`
`
`
`
`
`
`present some concepts of one or more embodiments in a
`
`
`
`
`
`
`
`
`
`
`simplified form as a prelude to the more detailed description
`
`
`
`
`
`
`
`
`
`is presented later. For convenience,
`the term some
`thal
`
`
`
`
`
`
`
`
`
`embodiments may be used herein to refer to a single
`
`
`
`
`
`
`
`
`
`
`embodiment or multiple embodiments of the disclosure.
`
`
`
`
`
`
`
`Certain embodiments disclosed herein include a method
`
`
`
`
`
`
`for deep packet
`inspection (DPI) in a software defined
`
`
`
`
`
`
`
`
`network (SDN), wherein the method is performed by a
`
`
`
`
`
`
`
`
`central controller of the SDN. The method comprises: con-
`
`
`
`
`
`
`
`
`figuring a plurality of network nodes operable in the SDN
`
`
`
`
`
`
`
`
`
`
`with at least one probe instruction; receiving from a network
`
`
`
`
`
`
`
`
`
`nodea first packet ofa flow, whereinthefirst packet matches
`
`
`
`
`
`
`
`
`
`
`the at least one probe instruction, wherein the first packe
`
`
`
`
`
`
`
`
`
`
`includesa first sequence number; recciving from a network
`
`
`
`
`
`
`
`
`
`node a second packet ofthe flow, wherein the second packe
`
`
`
`
`
`
`
`
`
`
`matches the at
`least one probe instruction, wherein the
`
`
`
`
`
`
`
`
`
`second packet includes a second sequence number, wherein
`
`
`
`
`
`
`
`
`the second packetis a response ofthe first packet; computing
`
`
`
`
`
`
`
`
`
`
`a mask value respective of at least the first and second
`
`
`
`
`
`
`
`
`
`
`
`sequence numbers, wherein the mask value indicates which
`
`
`
`
`
`
`
`
`bytes to be mirrored from subsequent packets belonging to
`
`
`
`
`
`
`
`
`
`the same flow, wherein the mirrored bytes are inspected;
`
`
`
`
`
`
`
`
`
`generating at least one mirror instruction based on at leas
`
`
`
`
`
`
`
`
`
`
`the mask value; and configuring the plurality of network
`
`
`
`
`
`
`
`
`
`nodes with at least one mirror instruction.
`
`
`
`
`
`
`
`Certain embodiments disclosed herein include a system
`
`
`
`
`
`
`for deep packet
`inspection (DPI) in a software defined
`
`
`
`
`
`
`
`
`network (SDN), wherein the method is performed by a
`
`
`
`
`
`
`
`
`central controller of the SDN. The system comprises: a
`
`
`
`
`
`
`
`
`processor; a memory connected to the processor and con-
`
`
`
`
`
`
`
`
`figured to contain a plurality of instructions that when
`
`
`
`
`
`
`
`
`
`executed by the processor configure the system to: set a
`
`
`
`
`
`
`
`
`
`
`plurality of network nodes operable in the SDN withat least
`
`
`
`
`
`
`
`
`
`
`
`one probe instruction; reccive from a network nodea first
`
`
`
`
`
`
`
`
`
`
`packet of a flow, wherein the first packet matchestheat least
`
`
`
`
`
`
`
`
`
`
`
`one probeinstruction, wherein the first packet includesa first
`
`
`
`
`
`
`
`
`
`sequence number; receive [rom a network node a second
`
`
`
`
`
`
`
`
`
`packet of the flow, wherein the second packet matches the at
`
`
`
`
`
`
`
`
`
`
`
`least one probe instruction, wherein the second packet
`
`
`
`
`
`
`
`
`includes a second sequence number, wherein the second
`
`
`
`
`
`
`
`
`packet is a response of the first packet; compute a mask
`
`
`
`
`
`
`
`
`
`
`
`value respective of at least the first and second sequence
`
`
`
`
`
`
`
`
`
`
`numbers, wherein the mask value indicates which bytes to
`
`
`
`
`
`
`
`
`
`be mirrored from subsequent packets belonging to the same
`
`
`
`
`
`
`
`
`
`flow, wherein the mirrored bytes are inspected: generate at
`
`
`
`
`
`
`
`
`
`
`
`
`Exhibit 1001
`Cisco v. Orckit — IPR2023-00554
`Page 9 of 15
`
`Deep packet inspection (DPI) technology is a form of
`
`
`
`
`
`
`
`
`
`network packet scanning technique that allows specific data
`
`
`
`
`
`
`
`
`patterns to be extracted from a data communication channel.
`
`
`
`
`
`
`
`
`
`Extracted data patterns can then be used. by various appli-
`
`
`
`
`
`
`
`
`
`cations, such as security and data analytics applications. DPI
`
`
`
`
`
`
`
`
`currently performs across various networks, suchas internal
`
`
`
`
`
`
`
`networks, Internet service providers (ISPs), and public net-
`
`
`
`
`
`
`
`works provided to customers. Typically,
`the DPI is per-
`
`
`
`
`
`
`
`
`formed by dedicated engines installed in such networks.
`
`
`
`
`
`
`
`
`A software defined networking is a relatively new type of 3
`
`
`
`
`
`
`
`
`
`
`networking architecture thal provides centralized manage-
`
`
`
`
`
`ment of network nodesrather than a distributed architecture
`
`
`
`
`
`
`
`utilized by conventional networks. The SDN is prompted by
`
`
`
`
`
`
`
`
`an ONT’ (open network foundation). The leading communi-
`
`
`
`
`
`
`
`cation standard that currently defines communication
`
`
`
`
`
`between the central controller (e.g., a SDN controller) and
`
`
`
`
`
`
`
`
`the network nodes (e.g., vSwitches) is the OpenFlow™
`
`
`
`
`
`
`
`standard.
`
`Specifically, in SDN-based architectures the data forward-
`
`
`
`
`
`
`ing (e.g. data plane) is typically decoupled from control
`
`
`
`
`
`
`
`
`
`decisions(c.g. control plane), such as routing, resources, and
`
`
`
`
`
`
`
`
`
`other management functionalities. he decoupling may also
`
`
`
`
`
`
`
`allow the data plane and the control plane to operate on
`
`
`
`
`
`
`
`
`
`
`
`
`different hardware, in different runtime environments, and/
`
`
`
`
`
`
`
`
`
`
`or operate using different models. As such,
`in an SDN
`
`
`
`
`
`
`
`
`
`
`network, the network intelligence is logically centralized in
`
`
`
`
`
`
`
`
`he central controller which configures, using Open I'low
`
`
`
`
`
`
`
`
`protocol, network nodes and to control application data
`
`
`
`
`
`
`
`
`raffic flows.
`
`
`wn S
`the OpenFlow protocol allows addition of 5
`
`
`
`
`
`
`
`programmability to network nodes for the purpose of pack-
`
`
`
`
`
`
`
`
`ets-processing, operations under the control of the central
`
`
`
`
`
`
`
`
`controller, the OpenFlow does not support any mechanism
`
`
`
`
`
`
`
`
`o allow DPI of packets through the various networking
`
`
`
`
`
`
`
`
`
`ayers as defined by the OSI model. Specifically, the current
`
`
`
`
`
`
`
`
`
`
`OpenFlowspecification defines a mechanism to parse and
`
`
`
`
`
`
`
`
`extract only packet headers, in layer-2 through layer-4, from
`
`
`
`
`
`
`
`
`
`packets flowing via the network nodes. The OpenFlow
`
`
`
`
`
`
`
`
`specification does not define or suggest any mechanism to
`
`
`
`
`
`
`
`
`
`extract non-generic, uncommon, and/or arbitrary data pat-
`
`
`
`
`
`
`erns contained in layer-4 to layer 7 fields. In addition, the
`
`
`
`
`
`
`
`
`
`
`
`Openl'low specification does not define or suggest any
`
`
`
`
`
`
`
`
`mechanism to inspect or to extract content from packets
`
`
`
`
`
`
`
`
`
`belonging to a specific flow or session. This is a major
`
`
`
`
`
`
`
`
`
`
`
`imitation as it would not require inspectionof the packet for
`
`
`
`
`
`
`
`
`
`
`
`he purposeof identification of, for example, securitythreats
`
`
`
`
`
`
`
`
`
`detection.
`
`
`
`
`
`
`
`
`
`
`
`
` Although,
`
`)
`
`
`
`2
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`us on
`
`iNa
`
`a a
`
`ao
`
`
`
`Exhibit 1001
`Cisco v. Orckit – IPR2023-00554
`Page 9 of 15
`
`

`

`
`
`US 10,652,111 B2
`
`
`
`3
`
`least one mirror instruction based onat least the mask value;
`
`
`
`
`
`
`
`
`
`
`
`and configure the plurality of network nodes with at least
`
`
`
`
`
`
`
`
`
`
`one mirror instruction.
`
`
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`
`
`
`
`
`
`The subject matter disclosed herein is particularly pointed
`
`
`
`
`
`
`
`
`out and distinctly claimed in the claims at the conclusion of
`
`
`
`
`
`
`
`
`
`
`
`the specification. The foregoing and other objects, features,
`
`
`
`
`
`
`
`
`and advantages of the invention will be apparent from the
`
`
`
`
`
`
`
`
`
`
`following detailed description taken in conjunction with the
`
`
`
`
`
`
`
`
`accompanying drawings.
`
`
`FIG. 1 is a schematic diagram of a network system
`
`
`
`
`
`
`
`
`
`utilized to describe the various disclosed embodiments.
`
`
`
`
`
`
`
`FIG. 2 illustrates is a schematic diagram of a flow table
`
`
`
`
`
`
`
`
`
`stored in a central controller.
`
`
`
`
`
`FIG. 3 is a schematic diagram of a system utilized for
`
`
`
`
`
`
`
`
`
`
`describing the process of flow detection as performed bya
`
`
`
`
`
`
`
`
`
`
`central controller and a network node according to one
`
`
`
`
`
`
`
`
`
`embodiment.
`
`FIG. 4 is a schematic diagram ol a system utilized for
`
`
`
`
`
`
`
`
`
`
`describing the process of flow termination as performed by
`
`
`
`
`
`
`
`
`
`a central controller and a network node according to one
`
`
`
`
`
`
`
`
`
`
`embodiment.
`
`FIG. 5 is a data structure depicting the organization of
`
`
`
`
`
`
`
`
`
`flows according to one embodiment.
`
`
`
`
`
`FIG. 6 is flowchart illustrating the operationof the central
`
`
`
`
`
`
`
`
`
`controller according to one embodiment.
`
`
`
`
`
`DETAILED DESCRIPTION
`
`
`
`
`
`
`
`
`
`
`
`
`It is important to note that the embodiments disclosed
`
`
`
`
`
`
`
`
`
`herein are only examples of the many advantageous uses of
`
`
`
`
`
`
`
`
`
`
`the innovative teachings herein. In general, statements made
`
`
`
`
`
`
`
`
`in the specification of the present application do not neces-
`
`
`
`
`
`
`
`
`
`sarily limit any of the various claimed embodiments. More-
`
`
`
`
`
`
`
`
`over, some statements mayapply to some inventive features
`
`
`
`
`
`
`
`
`
`but not to others. In general, unless otherwise indicated,
`
`
`
`
`
`
`
`
`
`singular nodes maybein plural and vice versa with no loss
`
`
`
`
`
`
`
`
`
`
`
`
`of generality. In the drawings, like numerals refer to like
`
`
`
`
`
`
`
`
`
`
`parts through several views.
`
`
`
`
`FIG. 1 is an exemplary and non-limiting diagram of a
`
`
`
`
`
`
`
`
`
`network system 100 utilized to describe the various dis-
`
`
`
`
`
`
`
`
`closed embodiments. The network system 100 includes a
`
`
`
`
`
`
`
`
`software defined network (SDN) 110 (not shown) containing
`
`
`
`
`
`
`
`
`a central controller 111 and a plurality of network nodes 112.
`
`
`
`
`
`
`
`
`
`
`The network nodes 112 communicate with the central con-
`
`
`
`
`
`
`
`
`troller 111 using, for example, an Open Flow protocol. The
`
`
`
`
`
`
`
`
`
`
`central controller 111 can configure the network nodes 112
`
`
`
`
`
`
`
`
`
`to perform certain data path operations. The SDN 110 can be
`
`
`
`
`
`
`
`
`
`
`
`implemented in wide area networks (WANs),
`local area
`
`
`
`
`
`
`
`
`networks (I.ANs), the Internet, metropolitan area networks
`
`
`
`
`
`
`
`(MANs), ISP backbones, datacenters, inter-datacenter net-
`
`
`
`
`
`works, and the like. Each network node 112 in the SDN may
`
`
`
`
`
`
`
`
`
`
`
`be a router, a switch, a bridge, and so on.
`
`
`
`
`
`
`
`
`
`
`The central controller 111 provides inspected data (such
`
`
`
`
`
`
`
`
`as application metadata) to a plurality of application servers
`
`
`
`
`
`
`
`
`
`(collectively referred to as application servers 120, merely
`
`
`
`
`
`
`
`
`for simplicity purposes). An application server 120 execules,
`
`
`
`
`
`
`
`
`for example, security applications (e.g., T'irewall, intrusion
`
`
`
`
`
`
`
`detection, etc.), data analytic applications, and so on.
`
`
`
`
`
`
`
`
`In the exemplary network system 100, a plurality of client
`
`
`
`
`
`
`
`
`devices (collectively referred to as client devices 130,
`
`
`
`
`
`
`
`merely for simplicity purposes) communicate with a plural-
`
`
`
`
`
`
`ity of destination servers (collectively referred to as desti-
`
`
`
`
`
`
`
`
`
`nation servers 140, merely for simplicity purposes) con-
`
`
`
`
`
`
`
`nected over the network 110. A client device 130 may be, for
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`ran °
`
`
`
`ra w
`
`
`2S
`
`
`
`
`
`ir) 2
`
`
`
`us on
`
`
`
`AC°
`
`
`
`iNa
`
`
`
`wn S
`
`
`
`a a
`
`
`
`ao
`
`
`
`
`
`
`
`
`
`
`4
`example, a smart phone, a tablet computer, a personal
`
`
`
`
`
`
`
`
`
`computer, a laptop computer, a wearable computing, device,
`
`
`
`
`
`
`
`
`and the like. The destination servers 140 are accessed by the
`
`
`
`
`
`
`
`
`
`
`
`devices 130 and may be, for example, web servers.
`
`
`
`
`
`
`
`
`
`According to some embodiments,
`the central controller
`
`
`
`
`
`
`
`111 is configured to perform deep packet
`inspection on
`
`
`
`
`
`
`
`
`
`designated packets from designated flows or TCP sessions.
`
`
`
`
`
`
`
`
`To this end, the central controller 111 is further configured
`
`
`
`
`
`
`
`
`
`
`to instruct each of the network nodes 112 which of the
`
`
`
`
`
`
`
`
`
`
`
`packets and/or sessions should be directed to the controller
`
`
`
`
`
`
`
`
`
`111 for packet inspections.
`
`
`
`
`According to some embodiments, each network node 112
`
`
`
`
`
`
`
`
`is configured ta determine if an incoming packet requires
`
`
`
`
`
`
`
`
`
`inspection or not. ‘he determination is performed based on
`
`
`
`
`
`
`
`
`
`a set of instructions provided by the controller 111. A packet
`
`
`
`
`
`
`
`
`
`
`
`that requires inspection is either redirected to the controller
`
`
`
`
`
`
`
`
`
`111 or mirrored and a copy thereof is sent to the controller
`
`
`
`
`
`
`
`
`
`
`
`111. It should be notedthat traffic flows that are inspected are
`
`
`
`
`
`
`
`
`
`
`
`
`not affected by the operation of the network node 112. In an
`
`
`
`
`
`
`
`
`
`
`
`
`embodiment, each network node 112 is configured to extract
`
`
`
`
`
`
`
`
`
`and send only a portion of a packet data that contains
`
`
`
`
`
`
`
`
`
`
`
`meaningful information.
`
`
`The set of instructions that the controller 111 configures
`
`
`
`
`
`
`
`
`each of the network nodes 112 with include “probe instruc-
`
`
`
`
`
`
`
`
`
`tions”, “mirroring instructions”, and “termination instruc-
`
`
`
`
`
`tions.” According to some exemplary and non-limiting
`
`
`
`
`
`
`embodiments, the probe instructions include:
`
`
`
`
`
`If (TCP FLAG SYN=1) then (re-direct packet to central
`
`
`
`
`
`
`
`
`controller);
`
`If (TCP FLAG SYN=1 and ACK=1) then (re-direct packet
`
`
`
`
`
`
`
`
`to central controller); and
`
`
`
`
`If (TCP FLAG ACK=1) then (forward packet directly to a
`
`
`
`
`
`
`
`
`
`destination server).
`
`
`The termination instructions include:
`
`
`
`
`If (TCP FLAG FIN=1) then (re-direct packet to controller);
`
`
`
`
`
`
`
`
`
`If (TCP FLAG FIN=1 and ACK=1) then(re-direct packet to
`
`
`
`
`
`
`
`
`
`controller); and
`
`
`If (TCP FLAG RST=1) then(re-direct packet to controller).
`
`
`
`
`
`
`
`
`
`The TCP FILAG SYN, TCP FLAG ACK, TCP FILAG FIN,
`
`
`
`
`
`
`
`
`
`
`TCP FLAG RSTarefields in a TCP packet’s header that can
`
`
`
`
`
`
`
`
`
`
`
`be analyzed by the network nodes 112. That is, cach node
`
`
`
`
`
`
`
`
`
`
`
`112 is configured to receive an incoming packet (either a
`
`
`
`
`
`
`
`
`
`
`
`request from a client device 130 or response for a server
`
`
`
`
`
`
`
`
`
`
`
`140), analyze the packet’s header, and perform the action
`
`
`
`
`
`
`
`
`
`(redirect the packet to controller 111 or send to destination
`
`
`
`
`
`
`
`
`
`
`server 140) respective of the value of the TCP flag.
`
`
`
`
`
`
`
`
`
`
`The controller 111 also configures each of the network
`
`
`
`
`
`
`
`
`
`nodes 112 with mirroring instructions with a mirror action of
`
`
`
`
`
`
`
`
`
`X numberof bytes within a packet. The mirrored bytes are
`
`
`
`
`
`
`
`
`
`
`sent
`to the controller 111 to perform the DPI analysis.
`
`
`
`
`
`
`
`
`
`
`According to some exemplary embodiments,
`the set of
`
`
`
`
`
`
`
`
`mirroring instructions have the following format:
`
`
`
`
`
`
`If (source IP Address=V1 and destination IP Address=V2
`
`
`
`
`
`
`
`
`and source TCP port—V3 and destination IP address—V4 and
`
`
`
`
`
`
`
`
`
`‘TCP sequence—V5 and ‘TCP sequence mask—V6) then (mir-
`
`
`
`
`
`
`
`ror V7 bytes)
`
`
`
`‘The values V1 through V7 are determined by the con-
`
`
`
`
`
`
`
`
`
`troller 111 per network nodeorfor all nodes 112. The values
`
`
`
`
`
`
`
`
`
`
`
`of the TCP sequence, and TCP sequence mask are computed,
`
`
`
`
`
`
`
`
`
`bythe controller 111, as discussed in detail below.
`
`
`
`
`
`
`
`
`
`In another embodiment, in order to allowanalysis of TCP
`
`
`
`
`
`
`
`
`
`
`packets’ headers by a network node 112 and tracks flows,
`
`
`
`
`
`
`
`
`
`
`newtype-length-value (TLV) structures are provided. The
`
`
`
`
`
`
`
`TLVstructures may be applied to be utilized by an Open-
`
`
`
`
`
`
`
`
`
`
`Flow protocol standard as defined, for example,
`in the
`
`
`
`
`
`
`
`
`OpenFlow 1.3.3 specification published by the Open Flow
`
`
`
`
`
`
`
`Foundation on Sep. 27, 2013 or OpenFlow 1.4.0 specifica-
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Exhibit 1001
`Cisco v. Orckit — IPR2023-00554
`Page 10 of 15
`
`Exhibit 1001
`Cisco v. Orckit – IPR2023-00554
`Page 10 of 15
`
`

`

`
`
`US 10,652,111 B2
`
`
`
`
`
`
`
`5
`
`tion published on Oct. 14, 2013, for parsing and identifying
`
`
`
`
`
`
`
`
`
`any arbitrary fields within a packet. According to non-
`
`
`
`
`
`
`
`
`limiting and exemplary embodiments,
`the TLVstructures
`
`
`
`
`
`
`disclosed herein include:
`
`
`
`
`1, TCP_FLG_OXM_HEADER(Ox80FE, 2, 1). This TVL
`
`
`
`
`
`
`
`
`
`structure allows identification of the TCP header flags.
`
`
`
`
`
`
`
`
`
`he ‘Ox80FE’ value represents a unique vendor iden-
`
`
`
`
`
`
`
`tification (ID), the value ‘2’ represents a unique Type=2
`
`
`
`
`
`
`
`value for the TLV, and the ‘1° value is 1-byte total
`
`
`
`
`
`
`
`
`
`
`length that stores the TCP flags header.
`
`
`
`
`
`
`
`
`
`2. TCP_SEQ_OXM_HEADER(Ox80FE,1, 4). This TLV
`
`
`
`
`
`
`
`
`structure allows identification of the TCP sequence
`
`
`
`
`
`
`
`numberficld. The ‘Ox80FE’ value represents a unique
`
`
`
`
`
`
`
`
`vendor ID, the value ‘1’ represents a unique ‘lype—1
`
`
`
`
`
`
`
`
`
`value for this TLV, and the value ‘4’ is a 4-byte total
`
`
`
`
`
`
`
`
`
`
`
`
`length that stores the1'CP sequence number.
`
`
`
`
`
`
`
`In order to track the flows, the central controller 111 also
`
`
`
`
`
`
`
`
`
`
`
`maintains a flow table having a structure 200 asillustrated
`
`
`
`
`
`
`
`
`
`
`in the exemplary and non-limiting FIG. 2. The flow table
`
`
`
`
`
`
`
`
`
`
`200 contains two main fields KEY 210 and DATA 220. The
`
`
`
`
`
`
`
`
`
`
`
`KEY field 210 holds information with respect
`to the
`
`
`
`
`
`
`
`
`
`
`addresses/port numbers of a client device 130 and a desti-
`
`
`
`
`
`
`
`
`nation server 140. The DATAfield 220 contains information
`
`
`
`
`
`
`
`
`
`with respect to a TCP flow, such as a flow ID, a request
`
`
`
`
`
`
`
`
`
`
`
`
`
`(client to server) sequence number M,a response(server to
`
`
`
`
`
`
`
`
`
`
`client) sequence numberN,a flow state (e.g., ACK, FIN), a
`
`
`
`
`
`
`
`
`
`
`
`creation timestamp, a client to server hit counter, server to
`
`
`
`
`
`
`
`
`
`
`client hit counter Y [bytes], clicnt to server data buffer,
`
`
`
`
`
`
`
`
`
`
`server to client buffer, and an aging bit.
`
`
`
`
`
`
`
`
`2 2
`FIG. 3 shows an exemplary and non-limiting schematic 3
`
`
`
`
`
`
`
`
`diagram ofa system 300 for describing the process of flow
`
`
`
`
`
`
`
`
`
`
`detection as performed by the central controller 111 and a
`
`
`
`
`
`
`
`
`
`
`network node 112 according to one embodiment. In an
`
`
`
`
`
`
`
`
`
`exemplary implementation,
`the central
`controller 111
`
`
`
`
`
`
`includes a DPI flow detection module 311, a DPI engine 312,
`
`
`
`
`
`
`
`
`
`and a memory 313, and a processing unit 314. The DPI
`
`
`
`
`
`
`
`
`
`
`
`engine 312 in configured to inspect a packet or a number of
`
`
`
`
`
`
`
`
`
`
`bytes to provide application metadata as required by an
`
`
`
`
`
`
`
`
`
`application executed by an application server 120.
`
`
`
`
`
`
`
`According to various embodiments discussed in detail
`
`
`
`
`
`
`
`above, the DPI flow detection module 311 is configured to
`
`
`
`
`
`
`
`
`
`
`detect all ‘CP flows and maintain them in the flow table
`
`
`
`
`
`
`
`
`
`
`
`table 200). The module 311 is also configured to
`(e.g.,
`
`
`
`
`
`
`
`
`
`
`generale and provide the network logs with the required
`
`
`
`
`
`
`
`
`
`instructions to monitor, redirect, and mirror packets. The
`
`
`
`
`
`
`
`
`DPI flow detection module 311 executes certain functions
`
`
`
`
`
`
`
`
`including, but not limited to, flow management, computing
`
`
`
`
`
`
`
`
`sequence masks, and TCP flow analysis. These functions are
`
`
`
`
`
`
`
`
`
`discussed in detail below.
`
`
`
`
`wn S
`the network node 112 5
`In exemplary implementation,
`
`
`
`
`
`
`
`includes a probe flow module 321, a memory 322, and a
`
`
`
`
`
`
`
`
`
`
`
`processing unit 323. The prohe flow module 321 is config-
`
`
`
`
`
`
`
`
`
`ured to redirect any new TCP connection state initiation
`
`
`
`
`
`
`
`
`
`packets to the DPI flow detection module 311, as well as to
`
`
`
`
`
`
`
`
`
`
`
`
`extract several packets from each detected ‘ICP flow and
`
`
`
`
`
`
`
`
`
`mirror them to the flaw detection module 311. In an embodi-
`
`
`
`
`
`
`
`
`
`
`ment, probe flow module 321 executes functions and/or
`
`
`
`
`
`
`
`
`implements logic to intercept TCP flags, redirect packets,
`
`
`
`
`
`
`
`
`and count sequence numbers.
`
`
`
`
`Both processing units 314 and 323 uses instructions
`
`
`
`
`
`
`
`
`stored in the memories 313 and 322 respectively to execule
`
`
`
`
`
`
`
`
`
`
`tasks generally performed by the central controllers of SDN
`
`
`
`
`
`
`
`
`
`as well as to control and enable the operation of behavioral
`
`
`
`
`
`
`
`
`
`
`
`network intelligence processes disclosed herewith. In an
`
`
`
`
`
`
`
`embodiment, the processing unit (314, 323) may include one
`
`
`
`
`
`
`
`
`
`or more processors. The one or more processors may be
`
`
`
`
`
`
`
`
`
`
`implemented with any combination of general-purpose
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`ra w
`
`
`
`
`
`
`us on
`
`a a
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`6
`
`microprocessors, multi-core processors, microcontrollers,
`
`
`
`
`digital signal processors (DSPs), field programmable gate
`
`
`
`
`
`
`
`array (FPGAs), programmable logic devices (PLDs), con-
`
`
`
`
`
`
`trollers, state machines, gated logic, discrete hardware com-
`
`
`
`
`
`
`
`ponents, dedicated hardware finile state machines, or any
`
`
`
`
`
`
`
`
`other suitable entities that can perform calculations or other
`
`
`
`
`
`
`
`
`
`manipulations of information. The memories 313 and 322
`
`
`
`
`
`
`
`
`may be implemented using any form of a non-transitory
`
`
`
`
`
`
`
`
`computer readable medium.
`
`
`
`Prior to performing the flow detection process the net-
`
`
`
`
`
`
`
`
`work node 112 is sct with the probe instructions, such as
`
`
`
`
`
`
`
`
`
`
`
`those discussed above. Referring to FIG. 3, at S301, a packet
`
`
`
`
`
`
`
`
`
`
`arrives from a clicnt (c.g., client 130, FIG. 1) at a port (not
`
`
`
`
`
`
`
`
`
`
`
`
`
`shown)at the network node 112. The packet is a‘CP packet
`
`
`
`
`
`
`
`
`
`
`
`with a header including the following value [TCP FLAG
`
`
`
`
`
`
`
`
`
`SYN-1, SEQUENCE-M].
`
`
`As the header' value matchesa redirect action, at S302,
`
`
`
`
`
`
`
`
`
`
`the probe flow module 321 redirects the packet to the
`
`
`
`
`
`
`
`
`
`
`controller 111, and in particular to the module 311.
`
`
`
`
`
`
`
`
`
`In response, at $303, the module 311 traps the packet and
`
`
`
`
`
`
`
`
`
`
`
`creates a new flow-id in the flow table (e.g., table 200) and
`
`
`
`
`
`
`
`
`
`
`
`
`marks the flow-id’s state as ‘SYN’. The flow table is saved
`
`
`
`
`
`
`
`
`
`
`
`in the memory 313. The initial sequence from the client to
`
`
`
`
`
`
`
`
`
`
`
`a destination server number equals M and saved in the flow
`
`
`
`
`
`
`
`
`
`
`
`table as well. Then, the packet is sent to the node 112 for
`
`
`
`
`
`
`
`
`
`
`
`
`
`further processing.
`
`
`At $304, a response packet arrives from a destination
`
`
`
`
`
`
`
`
`
`server (c.g., server 140, FIG. 1) with header value [TCP
`
`
`
`
`
`
`
`
`
`
`FLAG SYN-1, TCP FLAG ACK—-1, SEQUENCE-N]. ‘The
`

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