throbber
DECLARATION OF DR. ATUL PRAKASH IN SUPPORT OF PETITION
`FOR INTER PARTES REVIEW OF U.S. PATENT NO. 8,544,078 IN VIEW
`OF YADAV AND FREUND REFERENCES
`
`McAfee, Inc. Exhibit 1004 Page 1
`
`

`
`TABLE OF CONTENTS
`
`
`Page
`
`
`I.
`
`INTRODUCTION AND SUMMARY OF TESTIMONY ............................ 1
`A. Qualifications ....................................................................................... 1
`B. Other Matters ........................................................................................ 5
`C.
`Compensation ....................................................................................... 6
`D. Materials Reviewed .............................................................................. 6
`E.
`Level of Ordinary Skill in the Art ........................................................ 8
`II. OVERVIEW/TUTORIAL REGARDING TECHNOLOGY ......................... 9
`A.
`Priority Date ......................................................................................... 9
`B.
`Computer Networking .......................................................................... 9
`1.
`Protocols ................................................................................... 10
`2.
`Ports.......................................................................................... 11
`3.
`Client-Server Communication using TCP ............................... 13
`4.
`Client-Server Communication using UDP .............................. 19
`Firewalls ............................................................................................. 19
`1.
`Firewalls in operating systems ................................................. 20
`2.
`Firewall rules ............................................................................ 20
`Stateful firewalls/Dynamic firewalls/Flexible firewalls .................... 24
`1.
`Stateful firewalls ...................................................................... 24
`2.
`Dynamic or flexible firewalls .................................................. 25
`Hooking .............................................................................................. 28
`E.
`III. THE CHALLENGED ’078 PATENT .......................................................... 28
`A.
`Background and General Description of the ’078 Patent .................. 28
`1.
`Purpose of the Invention .......................................................... 28
`2.
`Internal Permitted Program Storage ........................................ 32
`3.
`Firewall Flexible Device .......................................................... 33
`
`C.
`
`D.
`
`
`
`-i-
`
`
`
`McAfee, Inc. Exhibit 1004 Page 2
`
`

`
`TABLE OF CONTENTS
`(continued)
`
`Page
`
`
`
`Internal Permitted Port Storage ................................................ 37
`4.
`Bypassing the Firewall ............................................................. 40
`5.
`File History of the ’078 Patent ........................................................... 41
`97. First office action (Sep. 11, 2009). .......................................... 41
`100. Second office action (June 8, 2010). ........................................ 42
`102. Third office action (Feb. 15, 2011). ......................................... 42
`107. Fourth office action (July 19, 2011). ....................................... 44
`113. Notice of allowance (Aug. 15, 2013). ...................................... 45
`Claim Construction ............................................................................ 46
`1.
`internal permitted program storage .......................................... 48
`2.
`list of programs ........................................................................ 50
`3.
`internal permitted port storage ................................................. 51
`4.
`server port ................................................................................ 54
`5.
`a port of a packet of inbound traffic ........................................ 57
`6.
`firewall flexible device ............................................................ 58
`IV. OVERVIEW OF THE PRIOR ART ............................................................ 60
`A.
`Invalidity Standard ............................................................................. 60
`B.
`Background on Yadav (US Pat. No. 7,174,566) ................................ 62
`1.
`General overview of Yadav ..................................................... 62
`2.
`Yadav’s application rules are a list of permitted programs ..... 65
`3.
`Yadav included an internal permitted program storage ........... 69
`4.
`Yadav’s Network Traffic Enforcer (NTE) included an in-
`ternal permitted port list ........................................................... 73
`Summary of Yadav .................................................................. 80
`5.
`Background on Freund (US. Pat. 5,987,611) ..................................... 81
`
`B.
`
`C.
`
`C.
`
`
`
`-ii-
`
`McAfee, Inc. Exhibit 1004 Page 3
`
`

`
`TABLE OF CONTENTS
`(continued)
`
`Page
`
`
`
`V.
`
`General overview of Freund .................................................... 81
`1.
`Defining Application Rules ..................................................... 85
`2.
`Application-specific rule database ........................................... 92
`3.
`4. Monitoring application network requests ................................ 93
`D. Motivation to combine Yadav with Freund ....................................... 96
`CLAIM 1-5 WERE OBVIOUS OVER YADAV IN VIEW OF
`FREUND .................................................................................................... 104
`A. Yadav in view of Freund rendered claim 1 obvious ........................ 104
`1.
`Claim 1, preamble .................................................................. 104
`2.
`Claim 1, element A: a port monitoring unit… ....................... 106
`3.
`Claim 1, element B: an internal permitted program stor-
`age… ...................................................................................... 125
`Claim 1, element C: the internal permitted program stor-
`age adds a program to the list… ............................................ 137
`Claim 1, element D: a firewall flexible device determin-
`ing… ....................................................................................... 150
`Claim 1, element E: wherein the firewall flexible device
`automatically stores the extracted information… .................. 153
`Claim 1, element F: wherein the firewall flexible device
`further determines… .............................................................. 163
`B. Yadav in view of Freund rendered claim 2 obvious ........................ 165
`1.
`Yadav disclosed information about the program that in-
`cludes information about a program name, an entire path
`of the program and a program hash value .............................. 165
`Freund also disclosed that information about a program
`includes information about both a program name and a
`hash value ............................................................................... 168
`C. Yadav in view of Freund rendered claim 3 obvious ........................ 169
`
`4.
`
`5.
`
`6.
`
`7.
`
`2.
`
`
`
`-iii-
`
`McAfee, Inc. Exhibit 1004 Page 4
`
`

`
`TABLE OF CONTENTS
`(continued)
`
`Page
`
`
`
`D. Yadav in view of Freund rendered claim 4 obvious ........................ 170
`E.
`Yadav in view of Freund rendered claim 5 obvious ........................ 174
`1.
`Yadav disclosed the additional elements of claim 5 .............. 175
`2.
`Freund also disclosed the additional elements of claim 5 ..... 176
`VI. CLAIMS 7-11 WERE RENDERED OBVIOUS OVER YADAV IN
`VIEW OF FREUND ................................................................................... 178
`A.
`Claim 7 ............................................................................................. 178
`B.
`Claim 8 ............................................................................................. 180
`C.
`Claim 9 ............................................................................................. 181
`D.
`Claim 10 ........................................................................................... 181
`E.
`Claim 11 ........................................................................................... 181
`VII. CLAIM 13-15 WERE RENDERED OBVIOUS OVER YADAV IN
`VIEW OF FREUND ................................................................................... 182
`A.
`Claim 13 ........................................................................................... 182
`B.
`Claim 14 ........................................................................................... 187
`C.
`Claim 15 ........................................................................................... 187
`VIII. CLAIM 16, 18-20 WERE RENDERED OBVIOUS OVER YADAV
`IN VIEW OF FREUND ............................................................................. 192
`A.
`Claim 16 ........................................................................................... 192
`B.
`Claim 18 ........................................................................................... 194
`C.
`Claim 19 ........................................................................................... 195
`D.
`Claim 20 ........................................................................................... 195
`IX. CLAIM 21, 23-25 WERE RENDERED OBVIOUS BY YADAV IN
`VIEW OF FREUND ................................................................................... 195
`A.
`Claim 21 ........................................................................................... 195
`B.
`Claim 23 ........................................................................................... 197
`
`
`
`-iv-
`
`McAfee, Inc. Exhibit 1004 Page 5
`
`

`
`TABLE OF CONTENTS
`(continued)
`
`Page
`
`
`
`Claim 24 ........................................................................................... 197
`C.
`Claim 25 ........................................................................................... 198
`D.
`CONCLUSION ........................................................................................... 198
`X.
`APPENDIX I. CHALLENGED CLAIMS ........................................................... 200
`A.
`Independent claim 1 and dependent claims 2-5 ............................... 200
`B.
`Independent claim 7 and dependent claims 8-11 ............................. 202
`C.
`Independent claim 13 and dependent claims 14-15 ......................... 203
`D.
`Independent claim 16 and dependent claims 18-20 ......................... 205
`E.
`Independent claim 21 and dependent claims 23-25 ......................... 206
`
`
`
`
`
`-v-
`
`McAfee, Inc. Exhibit 1004 Page 6
`
`

`
`
`
`I. Introduction and summary of testimony
`
`
`1.
`
`My name is Atul Prakash. I have been retained in the above-
`
`referenced inter partes review proceeding by McAfee, Inc. (“Petitioner”) to evalu-
`
`ate United States Patent No. 8,544,078 (“the ’078 Patent”) against certain refer-
`
`ences that predate December 31,2003, the claimed priority date of the ’078 Patent.
`
`The ’078 Patent is attached as Exhibit 1001 to the Petitioner’s petitions for Inter
`
`Partes Review of U.S. Patent No. 8,544,078 based on the Yadav and Freund Ref-
`
`erences. I am informed that Petitioner seeks review of the ’078 Patent’s method
`
`and computer readable medium claims, 7-11, 13-15, 21, and 23-25 in one petition
`
`and of the ’078 Patent’s system claims, 1-5, 16, and 18-20, in a second petition
`
`(collectively, the “challenged claims” in the “Petitions”). As detailed in this decla-
`
`ration, it is my opinion that each of the challenged claims is anticipated or rendered
`
`obvious by prior art references that predate the claimed priority date of the ’078
`
`Patent. If requested by the Patent Trial and Appeal Board (“PTAB” or “Board”), I
`
`am prepared to testify about my opinions expressed herein.
`
`A. Qualifications
`
`
`2.
`
`I am an expert in the field of computer and network security, and I
`
`have been a researcher in security-related fields since at least 1986. I earned my
`
`Masters of Science and Doctorate from the Department of Electrical Engineering
`
`and Computer Science at the University of California, Berkeley, in 1984 and 1989,
`
`
`
`- 1 -
`
`McAfee, Inc. Exhibit 1004 Page 7
`
`

`
`
`
`respectively. I earned my undergraduate degree, a B. Tech. in Electrical Engineer-
`
`ing, from the Indian Institute of Technology, Delhi in 1982.
`
`
`3.
`
`I have been a faculty member at the University of Michigan since
`
`1989, where I regularly conduct research and teach courses. I am a founding mem-
`
`ber of the Software Systems Research Laboratory in the EECS Department at the
`
`University of Michigan. I have also served as the director of the Software Systems
`
`Research Laboratory.
`
`
`4.
`
`During my time at the University of Michigan, I have conducted re-
`
`search in areas that include subjects such as: computer and network security, ac-
`
`cess control, security and privacy policies, distributed systems, computer networks,
`
`operating systems, and software engineering. I have also taught courses that in-
`
`clude subjects of computer and network security, operating systems, databases, and
`
`software engineering. I consider myself to be an expert in these technical subjects,
`
`and, more broadly, in the computer science field.
`
`
`5.
`
`Based on my research, I authored or co-authored numerous articles in
`
`peer-reviewed journals and conferences related to the technical areas I listed above.
`
`They are listed in my CV in the Appendix. More specifically, my research has
`
`spanned topics related to firewalls, web security, security policies, host security,
`
`network security, client-server systems, distributed systems, and software systems
`
`in general. For example, in one project around 1995-1999 with my student, Trent
`
`
`
`- 2 -
`
`McAfee, Inc. Exhibit 1004 Page 8
`
`

`
`
`
`Jaeger, and researchers at IBM, I worked on mechanisms for controlling the possi-
`
`ble set of behaviors of downloaded programs so that they cannot do certain harm-
`
`ful actions on a computer (the work appeared in ACM Transactions on Information
`
`and System Security, 1999). I also worked on a secure group communication sys-
`
`tem and policies for defining requirements for secure communication among mul-
`
`tiple parties. That work appeared at the Usenix Security Symposium in August
`
`1999, DARPA Information Survivability Conference in 2001, and at the 2002
`
`IEEE Symposium on Security and Privacy.
`
`
`6.
`
`In addition to giving presentations on peer-reviewed papers that have
`
`been accepted at conferences, I have given invited talks at conferences. For exam-
`
`ple, I gave the keynote presentation at the International Conference on Information
`
`Systems and Security in 2007 and at the 8th International Conference on Security
`
`and Privacy in Communication Networks in 2012.
`
`
`7.
`
`In addition to research, I often work on committees for conferences in
`
`my field. For example, I was a Program Committee Member at the IEEE Oakland
`
`Symposium on Security and Privacy in 2008 and a Program Committee Member of
`
`IEEE Symposium on Reliable Distributed Systems in 2011. I have also co-chaired
`
`the program committees of several security conferences, including the Internation-
`
`al Conference on Information Security and Systems (2009 and 2014) and the IEEE
`
`Symposium on Reliable Distributed Systems (2010).
`
`
`
`- 3 -
`
`McAfee, Inc. Exhibit 1004 Page 9
`
`

`
`
`
`
`8.
`
`In addition to serving on program committees of conferences, I have
`
`served in an editorial role for a journal in the area of computer and information se-
`
`curity. Specifically, I have served as an Associate Editor of IEEE Transactions on
`
`Secure and Dependable Systems.
`
`
`9.
`
`I have served on the Ph.D. committees of several graduates from my
`
`department at the University of Michigan in the area of computer and information
`
`security, and also served as the Ph.D. thesis advisor for several graduate students in
`
`security-related areas. I have also been teaching graduate and advanced undergrad-
`
`uate courses at the University of Michigan since 1989 that have included the areas
`
`of computer and network security, operating systems, and database systems.
`
`
`10.
`
`In addition to my academic work, I often collaborate on research with
`
`companies in the private sector. For example, I was a Visiting Research Scientist
`
`at the IBM TJ Watson Research Center in Yorktown Heights, New York. I also
`
`advised a startup, Aereous (also known as Indigo Security), in the area of computer
`
`and information security.
`
`
`11.
`
`I am an inventor on U.S. Patent Nos. 6,425,016 and 6,988,270, both
`
`entitled “System and Method for Providing Collaborative Replicated Objects for
`
`Synchronous Distributed Groupware Application(s).” These patents generally re-
`
`late to technology for supporting collaborative work over a computer network.
`
`
`
`- 4 -
`
`McAfee, Inc. Exhibit 1004 Page 10
`
`

`
`
`
`
`12.
`
`In 1997, I received the Research Excellence Award from the Depart-
`
`ment of EECS at the University of Michigan. In 1998, a research project done by
`
`my team was one of the finalists for the Computerworld Smithsonian Award for
`
`the best science project. This honor was for my team’s work on the Upper Atmos-
`
`pheric Research Collaboratory, one of the earliest systems to support distributed
`
`team science over the Internet, and involved technologies related to networking,
`
`distributed computing, and security. This project was selected for inclusion in the
`
`Smithsonian Permanent Collection.
`
`
`13.
`
`Based on my academic and practical experience in the areas of com-
`
`puter and network security, distributed systems, operating systems, software engi-
`
`neering, and multimedia systems, I have a strong understanding of the subject mat-
`
`ters of the ’078 Patent. I am familiar with the knowledge of a person having ordi-
`
`nary skill in the art in 2003.
`
` My Curriculum Vitae, which provides a comprehensive description of
`14.
`
`my relevant experience, including academic and employment history, publications,
`
`conference participation, and U.S. patents, is attached as Exhibit 1011.
`
`B. Other Matters
`
`
`15.
`
`Below are other legal matters in which I have testified as an expert at
`
`trial or by deposition within the preceding four years:
`
`
`
`- 5 -
`
`McAfee, Inc. Exhibit 1004 Page 11
`
`

`
`
`
`
`16.
`
`Deposition: retained on behalf of Trend Micro in Intellectual Ventures
`
`I LLC v. Symantec Corporation, et al; Intellectual Ventures I LLC v. Trend Micro
`
`Incorporated, et al., Case Nos. 10-1067-LPS; 12-1581-LPS.
`
`
`17.
`
`Deposition: retained on behalf of Apple in Apple vs. ContentGuard
`
`Holdings, Inc. in Case No. 2:13-CV-01112-JRG; retained on behalf of Apple.
`
`C. Compensation
`
`
`18.
`
`In connection with my work as an expert, I am being compensated at a
`
`rate of $400 per hour for consulting services including time spent testifying at any
`
`hearing that may be held. I am also being reimbursed for reasonable and customary
`
`expenses associated with my work in this case. I receive no other forms of com-
`
`pensation related to this case. No portion of my compensation is dependent or oth-
`
`erwise contingent upon the results of this proceeding or the specifics of my testi-
`
`mony.
`
`D. Materials Reviewed
`
`19.
`
`
`
`In formulating my opinions in this matter, I have reviewed the ’078
`
`Patent and its prosecution history. I have also reviewed:
`
`Ex. 1002
`Ex. 1003
`Ex. 1012
`
`Ex. 1013
`
`U.S. Patent No. 7,174,566 to Satyendra Yadav (“Yadav”)
`U.S. Patent No. 5,987,611 to Gregor Freund (“Freund”)
`W. Richard Stevens, Unix Network Programming, vol. 1,
`2nd ed. (1998) (“Stevens”)
`William R. Cheswick and Steven M. Bellovin, “Chapter 3:
`
`
`
`- 6 -
`
`McAfee, Inc. Exhibit 1004 Page 12
`
`

`
`
`
`Ex. 1014
`
`Ex. 1015
`Ex. 1016
`Ex. 1017
`
`Ex. 1018
`
`Ex. 1019
`
`Ex. 1020
`
`Ex. 1021
`
`Firewall Gateways,” Firewalls and Internet Security, Ad-
`dison-Wesley (1994) (“Cheswick”)
`U.S. Patent Application Publication No. 2003/0149887 A1
`(“Yadav ’887”)
`“TCPServerChannel,” Microsoft .Net documentation
`“TCP Channel,” Cornell University
`“New program stops Windows 2000/NT/98 security weak-
`nesses and Trojans for free,” InfoWorld, Feb 7, 2000
`“Server Lockdown Locks Out End Users,” Computer-
`world, April 23, 2001
`Excerpts from Teri Bidwell et al., Hack Proofing Your
`Identity in the Information Age, Syngress Publishing
`(2002)
`Excerpts from Jones, Network Programming for Microsoft
`Windows, Microsoft Press (2nd ed., 2002)
`Excerpts from Windows Sockets: An Open Interface for
`Network Programming under Microsoft Windows (v1.1,
`Jan. 20, 1993)
`
`I also refer to my CV, which is attached as Ex. 1011.
`
`Ex. 1011
`
`Curriculum Vitae of Dr. Atul Prakash
`
`
`20.
`
`In connection with live testimony in this proceeding, should I be
`
`asked to provide it, I may use as exhibits various documents that refer to or relate
`
`to the matters contained within this declaration, or which are derived from the re-
`
`sults and analyses discussed in this declaration. Additionally, I may create or su-
`
`
`
`- 7 -
`
`McAfee, Inc. Exhibit 1004 Page 13
`
`

`
`
`
`pervise the creation of certain demonstrative exhibits to assist me in testifying.
`
`
`21.
`
` I am prepared to use any or all of the above-referenced documents,
`
`and supplemental charts, models, and other representations based on those docu-
`
`ments, to support my live testimony in this proceeding regarding my opinions cov-
`
`ering the ’078 Patent. If called upon to do so, I will offer live testimony regarding
`
`the opinions in this declaration.
`
`E. Level of Ordinary Skill in the Art
`
`22.
`
`
`
`I am told that the claims of a patent are reviewed from the point of
`
`view of a hypothetical person of ordinary skill in the art at the time the patent ap-
`
`plication at issue was first filed. In my opinion, for the purposes of the ’078 Pa-
`
`tent, a person of ordinary skill in the art, at the December 31, 2003 priority date for
`
`the ’078 Patent, would have held at least a Master’s degree in computer science,
`
`computer engineering, electrical engineering or equivalent degree from an accred-
`
`ited university program; or a Bachelor’s degree in computer science, computer en-
`
`gineering, electrical engineering or equivalent degree from an accredited university
`
`program and at least two years of relevant work experience in a field directly relat-
`
`ed to networking communications, firewalls, systems programming, and operating
`
`systems; or at least four years of relevant work experience in a field directly related
`
`to networking communications, firewalls, systems programming, and operating
`
`systems. I am told that the claims of a patent are generally reviewed from the point
`
`
`
`- 8 -
`
`McAfee, Inc. Exhibit 1004 Page 14
`
`

`
`
`
`of view of a hypothetical person of ordinary skill in the art at the time the patent
`
`application at issue was first filed.
`
`II. Overview/tutorial regarding technology
`
`A. Priority Date
`
`
`23.
`
`The ’078 Patent was filed on December 27, 2004 and issued on Sep-
`
`tember 24, 2013. I am told that it claims priority back to the Korean Patent 10-
`
`2003-0101775, which has a priority date of December 31, 2003. (See Ex. 1001.) I
`
`express no opinion on the correct priority date, and will use December 31, 2003 as
`
`the priority date only for the purpose of this declaration and for the overview of the
`
`related technology below.
`
`24.
`
`
`
`The ’078 Patent is generally related to ways to restrict network traffic
`
`to a computer by using a firewall. Below I briefly describe the state of the art in
`
`2003 as it related to computer networking and firewalls.
`
`B. Computer Networking
`
`
`25.
`
`Beginning well before the priority date of the ’078 Patent, two or
`
`more computers could communicate over a network. Programs running on a com-
`
`puter (called processes) could send segments of data (called packets) over a net-
`
`work of interconnected devices. I will explain below how the network could de-
`
`termine which computer a packet belonged to, and how a computer could tell
`
`
`
`- 9 -
`
`McAfee, Inc. Exhibit 1004 Page 15
`
`

`
`
`
`which process a packet belonged to.
`
`1. Protocols
`
`
`26.
`
`Processes communicated over a network by using standard protocols
`
`like TCP, UDP, and IP. Some protocols, like IP, managed the connection from one
`
`computer to another, while others, like TCP and UDP, managed the exchange of
`
`data between processes running on the computers.
`
`
`27.
`
`IP, or Internet Protocol, was a widely used protocol that enabled com-
`
`puter-to-computer communication, and continues to be widely used today. The IP
`
`protocol used an IP address to identify each computer on a network. IP addresses
`
`at the time of the ’078 Patent were 32 bits long and were often written using four
`
`numbers, separated by periods (e.g., 141.213.4.4). Packets (i.e., segments of data
`
`communicated over a network) would include the IP address of both the sender and
`
`the intended recipient, so that the network devices would know where to route the
`
`packet, and so the recipient would know where it came from.
`
` While IP helped route packets from one computer to another, TCP and
`28.
`
`UDP each defined a standard for message exchange between two processes run-
`
`ning on a computer. Because computers could have multiple processes that com-
`
`municated over a network (like an email server and a web server), another protocol
`
`was needed to allow communication between processes. That was where TCP
`
`(Transport Control Protocol) and UDP (User Datagram Protocol) came in. Both
`
`
`
`- 10 -
`
`McAfee, Inc. Exhibit 1004 Page 16
`
`

`
`
`
`TCP and UDP used a port to allow a process on one computer to communicate to a
`
`specific process on a different computer.
`
`2. Ports
`
`
`29.
`
`TCP and UDP define protocols for communication between processes
`
`on two computers. Both used a number between 0 and 65535, called a port, to
`
`identify a process on a given computer (while the IP address was used to identify
`
`the computer it ran on). Although “port” sounds like a physical interface, it was a
`
`virtual structure, implemented in software; it was not a physical port. Although a
`
`process can by associated with any port number (or even multiple ones), certain
`
`ports had become standardized or well-known over time. For example, port 80 was
`
`conventionally assigned to a web server, and port 25 to an email server.
`
`
`30.
`
`In order to communicate over a network, a computer would include
`
`the port number of the intended recipient process, along with the IP address of the
`
`recipient computer. For example, in order to retrieve a web page from the Univer-
`
`sity of Michigan web server at www.umich.edu, a computer would first determine
`
`that the IP address of the www.umich.edu computer was 141.213.4.4. Next, the
`
`computer would send a packet that included that number as the destination IP ad-
`
`dress, and 80 (used for web servers by convention) as the destination port. Once it
`
`reached the destination computer at www.umich.edu, the operating system on that
`
`computer would examine the packet, see that the packet had port 80 as its destina-
`
`
`
`- 11 -
`
`McAfee, Inc. Exhibit 1004 Page 17
`
`

`
`
`
`tion port, and use that information to deliver the traffic to the process that was as-
`
`signed to port 80—in this case, a web server. The operating system maintained a
`
`binding between a process and a port so that the packet arriving at a port could be
`
`delivered to the correct process.
`
`
`31.
`
`The packet would also include a “source IP address” and “source
`
`port,” identifying the source computer and process. From our example above, the
`
`web server at www.umich.edu would retrieve this information from the packet it
`
`received, and send the reply packets (the web page) to that IP address and port.
`
`Therefore, the source IP address and port of a packet becomes the destination IP
`
`address and port on reply.
`
`
`32.
`
`The TCP protocol supported reliable and ordered delivery of packets.
`
`In TCP, a connection was first established between the two parties wishing to
`
`communicate, followed by a two-way exchange of data. Finally, when the parties
`
`were done, they would request closing of the connection. The TCP protocol was
`
`widely used because of its reliability and ordered delivery of data. For example, the
`
`web traffic and email was transmitted using the TCP protocol.
`
`
`33.
`
`In the UDP protocol, in contrast, the sender simply sent a packet, with
`
`the header containing the destination IP address and port. No advance connection
`
`set-up was required. However, unlike TCP, it did not guarantee reliable or ordered
`
`delivery of packets. When packets were dropped (or lost) during transit over the
`
`
`
`- 12 -
`
`McAfee, Inc. Exhibit 1004 Page 18
`
`

`
`
`
`network, they would not automatically be resent, and the packets could also arrive
`
`in a different order than they were sent.
`
`3. Client-Server Communication using TCP
`
`
`34.
`
`A typical mode of communication on the Internet was called client-
`
`server communication, where a server would “listen” (wait) for clients to make a
`
`request to the server, usually at a well-known IP address and port. For example, the
`
`University of Michigan web server discussed above listened on port 80.
`
`
`
`
`
`- 13 -
`
`McAfee, Inc. Exhibit 1004 Page 19
`
`

`
`
`
`Process B 
`(web browser) 
`
`Process A 
`(web server) 
`
`
`
`(Stevens, Ex. 1012, Fig. 4.1, p. 86, colored labels added)
`
`
`35.
`
`I will now explain in detail how a “server” worked with respect to
`
`
`
`- 14 -
`
`McAfee, Inc. Exhibit 1004 Page 20
`
`

`
`
`
`network communication. The Figure 4.1 above from Unix Network Programming,
`
`Ex. 10121 illustrated a sequence of TCP operations from the perspective of a TCP
`
`server and a TCP client. For example, suppose that a user executed a web server
`
`program on a computer with IP address 141.211.243.44, resulting in process A (re-
`
`call that a “process” is simply an executing program, ¶ 25 above). To serve web
`
`requests, process A would first create a TCP
`
`socket object and assign or “bind” it to port 80,
`
`which was the standard port for web traffic. A
`
`socket was simply a software structure within
`
`the operating system that kept track of the state
`
`of a network connection, including the comput-
`
`er’s IP address and the assigned port number.
`
`(See Stevens, Ex. 1012, Fig. 3.5, pg. 63 (a visu-
`
`al depiction of Fig. 3.1).) Thus, the operating
`
`system “knew” that port 80 was now associated
`
`with process A. Next, process A would perform a listen() operation on the socket
`
`
`1 W. Richard Stevens, Unix Network Programming, vol. 1, 2nd ed. (1998) is a book
`that experts in the field would reasonably rely on. This book has been cited over
`3,000 times in scholarly works. (See https://goo.gl/mBqjdX, which lists from
`scholarly works to Stevens in Google Scholar as of August 30, 2015.)
`
`
`
`- 15 -
`
`McAfee, Inc. Exhibit 1004 Page 21
`
`

`
`
`
`to “open” the port, telling the operating system that the program was ready to re-
`
`ceive and serve incoming connection requests on port 80 from client computers
`
`around the world. Process A would be a TCP server. (See the description of a port
`
`being passive opened as a result of a listen operation in Stevens, p. 35).
`
`36.
`
`
`
`A web browser on another computer, running as process B, could now
`
`connect to the above web server to establish a network connection, by performing
`
`the following steps. First, Process B (a TCP client) created a socket. Next, it sent a
`
`connection request to the destination IP address 141.211.243.44 at port 80 using
`
`network packets. That request typically also “bound” the socket to an available lo-
`
`cal port, thus “opening” that port. Also see the description of a port being actively
`
`opened as a result of a connect operation in Stevens, p. 35 and Fig. 2.5 on p. 39.
`
`This local port for outbound connections was also referred to as an ephemeral port
`
`because it can be an arbitrary available port number and was short-lived for the du-
`
`ration of the connection. (Id. at p. 42.) In the packets that the TCP client sends, it
`
`always included its own IP address as well as its ephemeral port number so that the
`
`TCP server could send back reply packets, much like a letter includes a return ad-
`
`dress.
`
`37.
`
`
`
`Once the TCP server (process A) at 141.211.243.44 received the con-
`
`nection request from a TCP client (process B), it normally accepted the request. At
`
`this point, a connection was “established” between this client and the server, with
`
`
`
`- 16 -
`
`McAfee, Inc. Exhibit 1004 Page 22
`
`

`
`
`
`both 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