throbber

`
`UNITED STATES PATENT AND TRADEMARK OFFICE
`______________________
`
`BEFORE THE PATENT TRIAL AND APPEAL BOARD
`______________________
`
`
`INTEL CORPORATION
`Petitioner
`
`v.
`
`ALACRITECH, INC.
`Patent Owner
`
`________________________
`
`Case IPR. No. Unassigned
`U.S. Patent No. 7,673,072
`Title: FAST-PATH APPARATUS FOR RECEIVING DATA CORRESPONDING
`A TCP CONNECTION
`________________________
`
`
`Declaration of Robert Horst, Ph.D. in Support of
`Petition for Inter Partes Review
`of U.S. Patent No. 7,673,072
`
`
`
`
`
`
`
`
`Mail Stop “PATENT BOARD”
`Patent Trial and Appeal Board
`U.S. Patent and Trademark Office
`P.O. Box 1450
`Alexandria, VA 22313-1450
`
`
`
`

`

`Petition for Inter Partes Review of 7,673,072
`Ex. 1003 (“Horst Decl.”)
`
`TABLE OF CONTENTS
`
`Page
`
`B.
`
`INTRODUCTION AND QUALIFICATIONS .............................................. 1
`I.
`II. MATERIALS RELIED ON IN FORMING MY OPINION .......................... 3
`III. UNDERSTANDING OF THE GOVERNING LAW .................................... 4
`A.
`Invalidity by Anticipation .................................................................... 4
`B.
`Invalidity by Obviousness .................................................................... 5
`IV. LEVEL OF ORDINARY SKILL IN THE ART ............................................ 6
`V.
`STATE OF THE ART AND OVERVIEW OF TECHNOLOGY AT
`ISSUE ............................................................................................................. 7
`A.
`Layered Network Protocols .................................................................. 7
`1.
`OSI Layers ................................................................................. 8
`2.
`TCP/IP Layers ............................................................................ 8
`TCP/IP ................................................................................................ 10
`1.
`Encapsulation ........................................................................... 10
`2.
`Ethernet Header ........................................................................ 12
`3.
`IP Header .................................................................................. 13
`4.
`TCP header ............................................................................... 14
`5.
`RFC 793 – TCP Specification .................................................. 15
`a)
`Sockets ........................................................................... 15
`Prepending Headers ................................................................. 18
`6.
`TCP Control Block (TCB) ....................................................... 19
`7.
`Segmentation ............................................................................ 22
`8.
`Advertising a Receive Window ............................................... 24
`9.
`Protocol Offload ................................................................................. 25
`1.
`RFC 647 – Front-Ending .......................................................... 25
`2.
`RFC 929 – Outboard Processing .............................................. 26
`3. Mediation Levels ...................................................................... 27
`D. Offloaded Protocols ............................................................................ 30
`
`C.
`
`i
`
`

`

`Petition for Inter Partes Review of 7,673,072
`Ex. 1003 (“Horst Decl.”)
`
`F.
`
`E.
`
`OSI Protocol Offload ............................................................... 30
`1.
`TCP/IP Protocol Offload .......................................................... 30
`2.
`VMTP and XTP Protocol Offload ........................................... 30
`3.
`4. Multi-Protocol Offload ............................................................ 31
`Portions of the Protocol Offloaded ..................................................... 31
`1.
`Checksum Offload ................................................................... 32
`2.
`Full Offload .............................................................................. 32
`3. Multi-Level Offload ................................................................. 33
`4.
`Header Prediction ..................................................................... 33
`a)
`Partial Offload with Header Prediction ......................... 35
`Offload Implementation ..................................................................... 35
`1. Multiprocessor Offload ............................................................ 36
`2.
`Offload Adapters based on Microprocessors ........................... 37
`3.
`Offload Adapters based on Custom Processors or Custom
`Logic ........................................................................................ 39
`Protocol Offload Summary ................................................................ 42
`G.
`H. Additional Background Technology .................................................. 42
`1.
`DMA ........................................................................................ 43
`2.
`Virtual and Physical Memory Addresses ................................. 45
`VI. OVERVIEW OF 072 PATENT ................................................................... 47
`VII. 072 PATENT PROSECUTION HISTORY ................................................. 51
`VIII. CLAIM CONSTRUCTIONS ....................................................................... 52
`A.
`Legal Standard .................................................................................... 52
`B.
`“context” ............................................................................................. 52
`C.
`“prepend” ........................................................................................... 53
`IX. THE PRIOR ART ......................................................................................... 53
`A. U.S. Patent No. 5,937,169 (“Connery”) ............................................. 53
`X. GROUNDS OF INVALIDITY .................................................................... 58
`XI. DECLARATION .......................................................................................... 58
`
`ii
`
`

`

`Petition for Inter Partes Review of 7,673,072
`Ex. 1003 (“Horst Decl.”)
`
`I, Robert Horst, hereby declare as follows:
`I.
`
`INTRODUCTION AND QUALIFICATIONS
`1. My name is Robert Horst. I have been retained on behalf of Petitioner
`
`Intel Corporation (“Intel”) to provide this Declaration concerning technical subject
`
`matter relevant to the petition for inter partes review (“Petition”) concerning U.S.
`
`Patent No. 7,673,072 (Ex.1001, the “072 Patent”). I reserve the right to
`
`supplement this Declaration in response to additional evidence that may come to
`
`light.
`
`2.
`
`I am over 18 years of age. I have personal knowledge of the facts
`
`stated in this Declaration and could testify competently to them if asked to do so.
`
`3. My compensation is not based on the resolution of this matter. My
`
`findings are based on my education, experience, and background in the fields
`
`discussed below.
`
`4.
`
`I am an independent consultant with more than 30 years of expertise
`
`in the design and architecture of computer systems. My current curriculum vitae is
`
`submitted as Exhibit 1004 and some highlights follow.
`
`5.
`
`Currently, I am an independent consultant at HT Consulting where my
`
`work includes consulting on technology and intellectual property. I have testified
`
`as an expert witness and consultant in patent and intellectual property litigation as
`
`well as inter partes reviews and re-examination proceedings.
`
`
`
`

`

`Petition for Inter Partes Review of 7,673,072
`Ex. 1003 (“Horst Decl.”)
`
`6.
`
`I earned my M.S. (1978) in electrical engineering and Ph.D. (1991) in
`
`computer science from the University of Illinois at Urbana-Champaign after
`
`earning my B.S. (1975) in electrical engineering from Bradley University. During
`
`my master’s program, I designed, constructed and debugged a shared memory
`
`parallel microprocessor system. During my doctoral program, I designed and
`
`simulated a massively parallel, multi-threaded task flow computer.
`
`7.
`
`After receiving my bachelor’s degree and while pursuing my master’s
`
`degree, I worked for Hewlett-Packard Co. While at Hewlett-Packard, I designed
`
`the micro-sequencer and cache of the HP3000 Series 64 processor. From 1980 to
`
`1999, I worked at Tandem Computers, which was acquired by Compaq Computers
`
`in 1997. While at Tandem, I was a designer and architect of several generations of
`
`fault-tolerant computer systems and was the principal architect of the NonStop
`
`Cyclone superscalar processor. The system development work at Tandem also
`
`included development of the ServerNet System Area Network and applications of
`
`this network to fault tolerant systems and clusters of database servers.
`
`8.
`
`Since leaving Compaq in 1999, I have worked with several
`
`technology companies, including 3Ware, Network Appliance, Tibion, and AlterG
`
`in the areas of network-attached storage and biomedical devices. From 2012 to
`
`2015, I was Chief Technology Officer of Robotics at AlterG, Inc., where I worked
`
`
`
`2
`
`

`

`Petition for Inter Partes Review of 7,673,072
`Ex. 1003 (“Horst Decl.”)
`
`on the design of anti-gravity treadmills and battery-powered orthotic devices to
`
`assist those with impaired mobility.
`
`9.
`
`In 2001, I was elected an IEEE Fellow “for contributions to the
`
`architecture and design of fault tolerant systems and networks.” I have authored
`
`over 30 publications, have worked with patent attorneys on numerous patent
`
`applications, and I am a named inventor on 80 issued U.S. patents.
`
`10. My patents include those directed to networks (e.g., U.S. Pat. No.
`
`6,157,967: Method of data communication flow control in a data processing
`
`system using busy/ready commands), storage (e.g., U.S. Pat. No. 6,549,977: Use of
`
`deferred write completion interrupts to increase the performance of disk
`
`operations), and multi-processor systems (e.g., U.S. Pat. No. 5,751,932: Fail-fast,
`
`fail-functional, fault-tolerant multiprocessor system). My publications include a
`
`conference paper that examined the performance and efficacy of protocol offload
`
`engines Ex.1004.
`
`11. My Curriculum Vitae, which is filed as a separate Exhibit (Ex.1004),
`
`contains further details on my education, experience, publications, and other
`
`qualifications to render this opinion as expert.
`
`II. MATERIALS RELIED ON IN FORMING MY OPINION
`12.
`In addition to reviewing U.S. Patent No. 7,673,072 (Ex.1001), I also
`
`reviewed and considered the prosecution history of the 072 Patent (Ex.1002). I
`
`
`
`3
`
`

`

`Petition for Inter Partes Review of 7,673,072
`Ex. 1003 (“Horst Decl.”)
`
`also reviewed U.S. Pat. No. 5,937,169 to Connery (Ex.1043). I also considered the
`
`background materials cited herein.
`
`III. UNDERSTANDING OF THE GOVERNING LAW
`13.
`I understand that a patent claim is invalid if it is anticipated or
`
`rendered obvious in view of the prior art. I further understand that invalidity of a
`
`patent claim requires that the claim be anticipated or obvious from the perspective
`
`of a person of ordinary skill in the relevant art at the time the invention was made.
`
`A.
`14.
`
`Invalidity by Anticipation
`
`I have been informed that a patent claim is invalid as anticipated
`
`under 35 U.S.C. § 102 if each and every element of a claim, as properly construed,
`
`is found either explicitly or inherently in a single prior art reference.
`
`15.
`
`I have been informed that a claim is invalid under 35 U.S.C. § 102(a)
`
`if the claimed invention was patented or published anywhere, before the applicant's
`
`invention. I further have been informed that a claim is invalid under 35 U.S.C. §
`
`102(b) if the invention was patented or published anywhere more than one year
`
`prior to the first effective filing date of the patent application (critical date). I
`
`further have been informed that a claim is invalid under 35 U.S.C. § 102(e) if an
`
`invention described by that claim was disclosed in a U.S. patent granted on an
`
`application for a patent by another that was filed in the U.S. before the date of
`
`invention for such a claim.
`
`
`
`4
`
`

`

`Petition for Inter Partes Review of 7,673,072
`Ex. 1003 (“Horst Decl.”)
`
`B.
`16.
`
`Invalidity by Obviousness
`
`I have been informed that a patent claim is invalid as obvious under
`
`35 U.S.C. § 103 if it would have been obvious to a person of ordinary skill in the
`
`art, taking into account (1) the scope and content of the prior art, (2) the differences
`
`between the prior art and the claims, (3) the level of ordinary skill in the art, and
`
`(4) any so called “secondary considerations” of non-obviousness, which include:
`
`(i) “long felt need” for the claimed invention, (ii) commercial success attributable
`
`to the claimed invention, (iii) unexpected results of the claimed invention, and (iv)
`
`“copying” of the claimed invention by others. I further understand that it is
`
`improper to rely on hindsight in making the obviousness determination. I have
`
`been informed that Alacritech claims a filing priority date no later than October 14,
`
`1997 for claims 1-21 of the 072 Patent. Accordingly my analysis of the prior art
`
`for the claims of the 072 Patent is based on the prior art and knowledge of a person
`
`having ordinary skill in the art (“POSA”) as of October 14, 1997.
`
`17.
`
`I have been informed that a claim can be obvious in light of a single
`
`prior art reference or multiple prior art references. I further understand that
`
`exemplary rationales that may support a conclusion of obviousness include:
`
`(A) Combining prior art elements according to known methods to
`yield predictable results;
`
`(B) Simple substitution of one known element for another to obtain
`predictable results;
`
`
`
`5
`
`

`

`Petition for Inter Partes Review of 7,673,072
`Ex. 1003 (“Horst Decl.”)
`
`(C) Use of known technique to improve similar devices (methods, or
`products) in the same way;
`
`(D) Applying a known technique to a known device (method, or
`product) ready for improvement to yield predictable results;
`
`(E) “Obvious to try” - choosing from a finite number of identified,
`predictable solutions, with a reasonable expectation of success;
`
`(F) Known work in one field of endeavor may prompt variations of it
`for use in either the same field or a different one based on design
`incentives or other market forces if the variations are predictable to
`one of ordinary skill in the art;
`
`(G) Some teaching, suggestion, or motivation in the prior art that
`would have led one of ordinary skill to modify the prior art reference
`or to combine prior art reference teachings to arrive at the claimed
`invention.
`
`IV. LEVEL OF ORDINARY SKILL IN THE ART
`18.
`I have been informed that factors that may be considered in
`
`determining the level of ordinary skill in the art may include: (A) “type of
`
`problems encountered in the art;” (B) “prior art solutions to those problems;” (C)
`
`“rapidity with which
`
`innovations are made;” (D) “sophistication of
`
`the
`
`technology;” and (E) “educational level of active workers in the field.” I also
`
`understand that, every factor may not be present for a given case, and one or more
`
`factors may predominate. Here, the 072 Patent is directed to an apparatus and
`
`methods for network protocol offload. In my experience, systems such as those
`
`6
`
`

`

`Petition for Inter Partes Review of 7,673,072
`Ex. 1003 (“Horst Decl.”)
`
`capable of protocol offload are not designed by a single person but instead require
`
`a design team with wide ranging skills and experience including computer
`
`architecture, network design, software development and hardware development.
`
`Moreover, the design team typically would have comprised individuals with
`
`advanced degrees and some industry experience, or significant industry experience.
`
`19. Accordingly, and while it would be rare to find all of these skills in a
`
`single individual, it is my opinion that a person of ordinary skill in the art
`
`(“POSA”) is a person with at least the equivalent of a B.S. degree in computer
`
`science, computer engineering or electrical engineering with at least five years of
`
`industry experience including experience in computer architecture, network design,
`
`network protocols, software development, and hardware development.
`
`20. The statements that I make in this declaration when I refer to a POSA
`
`are from the perspective of October 14, 1997.
`
`V.
`
`STATE OF THE ART AND OVERVIEW OF TECHNOLOGY AT
`ISSUE
`21.
`
`In this section, I provide an overview of the technology at issue and
`
`illustrate the state of the art.
`
`A. Layered Network Protocols
`22. The primary goal of computer networking is to provide fast, reliable
`
`data communications between computer systems. Interoperability has been
`
`
`
`7
`
`

`

`Petition for Inter Partes Review of 7,673,072
`Ex. 1003 (“Horst Decl.”)
`
`accomplished through adherence to standards, and performance has steadily
`
`increased through new technology and optimizations of hardware and software.
`
`1. OSI Layers
`23. Computer networking standards provide inter-system communications
`
`across a wide range of hardware and software implementations. The seven-layer
`
`OSI model describes a logical layering including physical, data link, network,
`
`transport, session, presentation and application as illustrated below.
`
`2.
`TCP/IP Layers
`24. The TCP/IP layering is slightly different and corresponds more
`
`closely to the way the networking code is typically partitioned in some popular
`
`Unix variants. TCP/IP layers include physical (e.g. 100baseT, 1000baseT), data
`
`link1 (e.g. IEEE 802 Ethernet, ATM, Token Ring), Internet (e.g. IPv4, IPv6),
`
`transport (e.g. TCP, UDP, VMTP, XTP), and Application (e.g. FTP, SMTP,
`
`
`1 References on TCP/IP use different terminology to describe the layer under IP.
`
`The data link layer is also called the “host-to-network layer” in Tanenebaum96
`
`(Ex.1006) and the “interface layer” in Stevens2 (Ex.1013) (see below for
`
`description of these references). Some Alacritech patents use “data link layer,”
`
`“link layer” and “MAC layer.” Prior art references use many of these terms and
`
`also sometimes use the name of a specific implementation (e.g. Ethernet, ATM).
`
`
`
`8
`
`

`

`Petition for Inter Partes Review of 7,673,072
`Ex. 1003 (“Horst Decl.”)
`
`Telnet, HTTP). The following figure shows the relationship between the OSI and
`
`TCP/IP layering.
`
`
`
`Available at http://mitigationlog.com/how-tcpip-and-reference-osi-model-
`works/.2
`25. At a conceptual level, each layer is responsible only for its respective
`
`functions. This enables, for example, hiding the complexity of the physical data
`
`connection (that is, actually transmitting the data onto the physical wires) from
`
`layers above the physical, data link, and network layers above. Likewise, the
`
`
`2 It appears that this diagram was made in 2012. It is being used for illustrative
`
`purposes only.
`
`
`
`9
`
`

`

`Petition for Inter Partes Review of 7,673,072
`Ex. 1003 (“Horst Decl.”)
`
`lower layers must transmit the data on the physical wires, but need not worry about
`
`what application the data belongs to or how the user data has been partitioned into
`
`individual packets.
`
`B.
`TCP/IP
`26. By the mid 1990s, TCP/IP was a firmly entrenched standard and was
`
`a widespread networking protocol to, for example, access the Internet and World
`
`Wide Web. By that time, detailed descriptions of the protocols and open-source
`
`implementations were widely available from books technical papers, and code
`
`repositories. Standard reference books on TCP/IP included Stevens1 (Ex.1008),
`
`Stevens2 (Ex.1013), and Tanenbaum96 (Ex.1006), all of which were widely cited
`
`and relied upon.3 A series of technical memos called RFCs (request for comments)
`
`document the progression of design concepts of the Internet. A few of the key
`
`RFCs are quoted below to establish when certain concepts were proposed and
`
`documented.
`
`1.
`Encapsulation
`27. Network layering corresponds to the encapsulation of higher levels by
`
`lower levels. The following figure shows an example with application data
`
`
`3 These books were well known resources to a POSA. Consistent with that,
`
`Alacritech patents cite editions of the Tanenbaum and Stevens books.
`
`
`
`10
`
`

`

`Petition for Inter Partes Review of 7,673,072
`Ex. 1003 (“Horst Decl.”)
`
`accompanied by an application header. The application header-data combination
`
`becomes the application data of a TCP segment. The TCP segment containing the
`
`application header-data combination along with the IP header forms an IP
`
`datagram. The IP datagram along with an appropriate MAC (media access control)
`
`layer header forms the frame that is sent over the physical interconnect. The
`
`diagram below shows an example of such encapsulation where the MAC layer is
`
`Ethernet. Some software implementations implement the layers separately with
`
`data, or pointers to data, passed between the software modules for each layer. In
`
`this case, one module creates the user data and application header, another module
`
`then encapsulates that with a TCP header, etc. The processing occurs sequentially,
`
`from top to bottom, as shown below.
`
`
`
`11
`
`

`

`Petition for Inter Partes Review of 7,673,072
`Ex. 1003 (“Horst Decl.”)
`
`
`
`Ex.1008, Stevens1 at .034.
`
`2.
`Ethernet Header
`28. The 14-byte Ethernet header includes 48-bit (6 byte) source and
`
`destination MAC (media access control) addresses for uniquely identifying the
`
`network adapters at each end of the link.
`
`Ex.1013, Stevens2 at .125.
`
`
`
`12
`
`
`
`

`

`Petition for Inter Partes Review of 7,673,072
`Ex. 1003 (“Horst Decl.”)
`
`29.
`
` The MAC address can be determined by a routing table in the
`
`protocol stack. In an Ethernet-based network, the 48-bit MAC address corresponds
`
`to a physical interface, such as a network interface card (NIC) or WiFi modem in a
`
`server or router. The MAC address field of the destination in the Ethernet header
`
`determines the next hop along the route to the destination. At each router along the
`
`path, the MAC address field is changed to the MAC address of the next router. The
`
`final router changes the MAC address field to the MAC address of the destination.
`
`3.
`
`IP Header
`
`
`
`Ex.1008, Stevens1 at .058.
`
`30. An IP header is illustrated by the figure above from Stevens1. The IP
`
`header includes source and destination IP addresses for identifying the end points
`
`of the connection. The 32-bit IPv4 addresses are usually expressed in dotted
`
`decimal notion. For example, an IP address of Google.com is 216.58.216.46.
`
`
`
`13
`
`

`

`Petition for Inter Partes Review of 7,673,072
`Ex. 1003 (“Horst Decl.”)
`
`4.
`
`TCP header
`
`
`
`Ex.1008, Stevens1 at .249.
`
`31. A TCP header is illustrated by the figure above from Stevens1. The
`
`TCP header includes 16-bit source and destination port numbers for identifying the
`
`processes that are communicating. TCP is used to establish connections between
`
`processes at IP addresses across the network and the TCP port numbers identify
`
`which processes are communicating. For instance, Email may use SMTP (simple
`
`mail transfer protocol) on port 25 (SMTP’s well-known port number) while a web
`
`server is using HTTP on port 80 (HTTP’s well-known port number). The TCP
`
`layer performs several important functions such as ensuring that the segments are
`
`assembled in the proper order. As shown above, a “sequence number” is included
`
`for several reasons such as identifying segments and performing reassembly. For
`
`more
`
`
`information on TCP, see Stevens1 (Ex.1008) Chapter 17, “TCP:
`14
`
`

`

`Petition for Inter Partes Review of 7,673,072
`Ex. 1003 (“Horst Decl.”)
`
`Transmission Control Protocol,” .247-.252. A sender or receiver maintains the
`
`“sequence number” as a variable for these purposes. Accordingly, routing packets
`
`between source and destination processes over Ethernet is based on the MAC
`
`addresses, IP addresses and TCP ports.
`
`5.
`RFC 793 – TCP Specification
`32. The original TCP specification was published in RFC 793 (Ex.1007)
`
`in September 1981. RFC 793 is a full specification for TCP and shows, among
`
`many other things, that identifying a TCP connection by its source and destination
`
`IP addresses and TCP ports were known more than 15 years before the earliest
`
`priority dates of the Alacritech patents.
`
`a)
`Sockets
`33. The combination of an IP address and a port number is sometimes
`
`called a “socket.” A TCP connection is formed with a pair of sockets which
`
`includes a source IP address and TCP port number and a destination IP address and
`
`TCP port number. IP addresses and TCP ports can be specified by the application.
`
`For instance, a browser accessing Google.com may open a socket to IP address
`
`216.58.216.46 and port 80:
`
`The combination of an IP address and a port number is sometimes
`called a socket. This term appeared in the original TCP specification
`(RFC 793), and later it also became used as the name of the Berkeley-
`derived programming interface (Section 1.15). It is the socket pair (the
`
`
`
`15
`
`

`

`Petition for Inter Partes Review of 7,673,072
`Ex. 1003 (“Horst Decl.”)
`
`4-tuple consisting of the client IP address, client port number, server
`IP address, and server port number) that specifies the two end points
`that uniquely identifies each TCP connection in an internet.
`
`Ex.1008, Stevens1 at .250.
`
`34. Much of the software for network communications leverages standard
`
`application programming interfaces (APIs) and libraries. An early standard is
`
`Berkeley Sockets, also known as BSD Sockets or just “sockets.” Tanenabaum96
`
`offers this overview of sockets:
`
`Let us now briefly inspect another set of transport primitives, the
`socket primitives used in Berkeley UNIX for TCP. They are listed in
`Fig. 6-6. Roughly speaking, they follow the model of our first
`example but offer more features and flexibility. We will not look at
`the corresponding TPDUs here. That discussion will have to wait until
`we study TCP later in this chapter.
`
`The first four primitives in the list [SOCKET, BIND, LISTEN,
`ACCEPT] are executed in that order by servers. The SOCKET
`primitive creates a new end point and allocates table space for it
`within the transport entity. The parameters of the call specify the
`addressing format to be used, the type of service desired (e.g., reliable
`byte stream), and the protocol.
`
`Ex.1006, Tanenbaum96 at .504-.505.
`
`Now let us look at the client side. Here, too, a socket must first be
`created using the SOCKET primitive, but BIND is not required since
`the address used does not matter to the server. The CONNECT
`16
`
`
`
`

`

`Petition for Inter Partes Review of 7,673,072
`Ex. 1003 (“Horst Decl.”)
`
`primitive blocks the caller and actively starts the connection process.
`When it completes (i.e., when the appropriate TPDU is received from
`the server), the client process is unblocked and the connection is
`established. Both sides can now use SEND and RECEIVE to transmit
`and receive data over the full-duplex connection.
`
`Id. at .505.
`
`35. Establishing a connection over TCP is sometimes called “opening a
`
`socket.” As described above, after the server has executed its sequence of
`
`primitives SOCKET, BIND, LISTEN, ACCEPT, the client executes the SOCKET
`
`and CONNECT primitives, then both sides can communicate using SEND and
`
`RECEIVE. These primitives involve control packet transmissions (versus simply
`
`sending a data packet that includes application data). Opening a socket
`
`(establishing a connection) thus requires both the sender and receiver exchanging a
`
`series of control messages, interpreting the messages, and in response to certain
`
`control messages, responding with the appropriate message. Accordingly, it is a
`
`more complex process to open a connection (and enter an ESTABLISHED state)
`
`than simply one side sending a single data packet transmission. As described
`
`below, this is why it was known in the art for the host to open the connection (the
`
`more complex aspect of communication) and to offload only the sending and
`
`receiving of data packets to a separate device.
`
`
`
`17
`
`

`

`Petition for Inter Partes Review of 7,673,072
`Ex. 1003 (“Horst Decl.”)
`
`6.
`Prepending Headers
`36. When a socket is opened and after the connection is established,
`
`application data is sent and received by constructing packets that encapsulate the
`
`data. Standard UDP/IP and TCP/IP implementations, such as BSD 4.4-Lite, copy
`
`headers and data into linked list structures called mbufs. Stevens2 describes how
`
`headers are prepended to the data in the mbuf chain:
`
`Ex.1013, Stevens2 at .043.
`
`
`
`18
`
`
`
`

`

`Petition for Inter Partes Review of 7,673,072
`Ex. 1003 (“Horst Decl.”)
`
`37. Figure 1.8 above shows an Mbuf chain for UDP, but Stevens2 later
`
`broadens the discussion to include TCP and shows diagrams of TCP and UDP
`
`mbuf chains.
`
`Figure 2.2 shows an example of two packets on a queue. It is a
`modification of Figure 1.8. We have placed the UDP datagram onto
`the interface output queue (showing that the 14-byte Ethernet header
`has-been prepended to the IP header in the first mbuf on the chain)
`and have added a second packet to the queue: a TCP segment
`containing 1460 bytes of user data. The TCP data is contained in a
`cluster and an mbuf has been prepended to contain its Ethernet, IP,
`and TCP headers.
`
`Ex.1013, Stevens2 at .060.
`
`38. Note that the outgoing frames include all three headers – MAC (e.g.
`
`Ethernet), IP and TCP. The first hop MAC address is determined based on the
`
`route to the destination. Once the destination MAC address is determined, it is
`
`stored and accessed when constructing the outgoing frames. Accordingly, the
`
`construction of packets, whether on the host or network interface card (see
`
`offloading discussion below), requires adding the TCP, IP, and MAC headers.
`
`7.
`TCP Control Block (TCB)
`39. Established connections need to maintain certain state information.
`
`For example, the state of a TCP connection is used to track acknowledgements
`
`(ACKs) with the connection that requested the data in order to later retransmit the
`
`
`
`19
`
`

`

`Petition for Inter Partes Review of 7,673,072
`Ex. 1003 (“Horst Decl.”)
`
`segment if required. The TCP state is held in a structure called the TCB (TCP or
`
`transmission control block).
`
`The maintenance of a TCP connection requires the remembering of
`several variables. We conceive of these variables being stored in a
`connection record called a Transmission Control Block or TCB.
`Among the variables stored in the TCB are the local and remote
`socket numbers, the security and precedence of the connection,
`pointers to the user’s send and receive buffers, pointers to the
`retransmit queue and to the current segment. In addition several
`variables relating to the send and receive sequence numbers are stored
`in the TCB.
`
`Ex.1007, RFC 793 at .024.
`
`40. TCB’s maintain the state at each end of a TCP connection:
`
`Protocol control blocks (PCBs) are used at the protocol layer to hold
`the various pieces of information required for each UDP or TCP
`socket. The Internet protocols maintain Internet protocol control
`blocks and TCP control blocks.
`
`Ex.1013, Stevens2 at .739.
`
`41. RFC 2140 shows a list of the information contained in a TCB:
`
`The TCP Control Block (TCB)
`
`A TCB is associated with each connection, i.e., with each association
`of a pair of applications across the network. The TCB can be
`summarized as containing [9]:
`
`Local process state
`
`
`
`20
`
`

`

`Petition for Inter Partes Review of 7,673,072
`Ex. 1003 (“Horst Decl.”)
`
`pointers to send and receive buffers
`
`pointers to retransmission queue and current segment
`
`pointers to Internet Protocol (IP) PCB
`
`Per-connection shared state
`
`macro-state
`
`connection state
`
`timers
`
`flags
`
`local and remote host numbers and ports
`
`micro-state
`
`send and receive window state (size*, current number)
`
`round-trip time and variance
`
`cong. window size*
`
`cong. window size threshold*
`
`max windows seen*
`
`MSS#
`
`round-trip time and variance#
`
`Ex.1014, RFC2140 at .002.
`
`As part of the TCP layer, the sequence number must be kept. For example,
`
`when sending subsequent packets, the TCP layer must increment the
`
`sequence variable, placing this new number into the next packet. Ex.1006,
`
`
`
`21
`
`

`

`Petition for Inter Partes Review of 7,673,072
`Ex. 1003 (“Horst Decl.”)
`
`Tanenbaum96 at .584. As will be shown below, either the host can pe

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