throbber
METHODS, SYSTEMS, AND COMPUTER PROGRAM PRODUCTS FOR SHARING INFORMATION FOR
`DETECTING AN IDLE TCP CONNECTION
`RELATED APPLICATIONS
`[0001] This application is a continuation of, and claims priority to U.S.
`Patent Application No. 15/915,047 entitled "METHODS, SYSTEMS, AND COMPUTER
`PROGRAM PRODUCTS FOR SHARING INFORMATION FOR DETECTING AN IDLE
`TCP CONNECTION," filed on 03-07-2018 which, in turn, is a continuation of,
`and claims priority to U.S. Patent Application No. 15/694,802, now U.S. Patent
`No. 9,923,995, entitled "METHODS, SYSTEMS, AND COMPUTER PROGRAM PRODUCTS FOR
`SHARING INFORMATION FOR DETECTING AN IDLE TCP CONNECTION," filed on
`09-03-2017 which, in turn, is a continuation-in-part of, and claims priority
`to U.S. Patent Application No. 14/667,642, entitled "METHODS, SYSTEMS, AND
`COMPUTER PROGRAM PRODUCTS FOR SELECTING A RESOURCE BASED ON A MEASURE
`OF A PROCESSING COST," filed on 03-24-2015 which, in turn, is a
`continuation-in-part of and claims priority to U.S. Patent Application No.
`13/477,402, entitled "METHODS, SYSTEMS, AND COMPUTER PROGRAM PRODUCTS FOR
`SHARING INFORMATION FOR DETECTING AN IDLE TCP CONNECTION," filed
`05-22-2012
`which is a continuation of and claims priority to U.S. Patent Application No.
`12/714,454, now U.S. Patent No. 8,219,606, entitled "METHODS, SYSTEMS, AND
`COMPUTER PROGRAM PRODUCTS FOR SHARING INFORMATION FOR DETECTING AN IDLE TCP
`CONNECTION," filed 02- 27-2010-27-2010.
`[0002] U.S. Patent Application No. 12/714,454, entitled "METHODS, SYSTEMS,
`AND COMPUTER PROGRAM PRODUCTS FOR SHARING INFORMATION FOR
`DETECTING AN IDLE TCP CONNECTION," filed 02-27-2010 is incorporated herein
`by reference in its entirety for all purposes.
`[0003] This application is related to the following commonly owned U.S. Patent
`Applications, the entire disclosure of which is incorporated by reference
`herein in its entirety for all purposes: Application No. 12/714,063 (Docket
`No 0110) filed on 2010/02/26, entitled "Methods, Systems, and Program Products
`for Detecting an Idle TCP Connection".
`BACKGROUND
`[0004] Various implementations of the transmission control protocol (TCP) in
`network nodes support a number of options that are not negotiated or even
`communicated between or among any of the nodes. Some of these options are
`included in the specification of the TCP while others are not. For example,
`the TCP keep-alive option is supported by a number of implementations of the
`TCP. It is not, however, part of the TCP specification as described in "Request
`for Comments" (RFC) document RFC 793 edited by John Postel, titled
`"Transmission Control Protocol, DARPA Internet Program Internet Protocol
`Specification" (September 1981), which is incorporated here in its entirety
`by reference. One, both, or neither node including an endpoint in a TCP
`connection may support a keep-alive option for the connection. Each node
`supports or
`does not support keep-alive for a TCP connection based on each node's
`requirements without consideration for the other node in the TCP connection.
`
`Page 1 of 27
`
`GOOGLE EXHIBIT 1052
`
`

`

`[0005] With respect to the keep-alive option, some argue that it is
`unnecessary and that it can waste network bandwidth. Some of these critics
`point out that a keep-alive packet can bring down a TCP connection. Further,
`since nodes including endpoints in a TCP connection do not cooperate in
`supporting the keep-alive option, the nodes may operate in opposition to one
`another and/or may waste resources by duplicating function, according to
`critics of the keep-alive option.
`[0006] Proponents of the keep-alive option claim there is a benefit to
`detecting a dead peer/partner endpoint sooner. A node providing TCP keep-alive
`can also indirectly detect when a network is so congested that two nodes with
`endpoints in a TCP connection are effectively disconnected. Proponents argue
`that keep-alive can keep an inactive TCP connection open. For example, some
`network nodes such as firewalls are configured to close TCP connections
`determined to be idle or inactive in order to recover resources. Keep-alive
`can prevent this. This is good from the perspective of the node sending
`keep-alive packets, but the keep-alive packets might cause the firewall to
`waste resources and possibly block or terminate TCP connections with other
`nodes.
`[0007] TCP keep-alive and the debate of its benefits and faults have been
`around for decades. To date no mechanism to allow two TCP connection endpoints
`to cooperate in supporting the keep-alive option has been proposed or
`implemented. The broader issue of enabling cooperation and negotiation
`between nodes in a TCP connection in
`detecting and managing idle, underactive, and/or dead TCP connections remains
`unaddressed.
`[0008] Accordingly, there exists a need for methods, systems, and computer
`program products for sharing information for detecting an idle TCP connection.
`SUMMARY
`[0009] The following presents a simplified summary of the disclosure in order
`to provide a basic understanding to the reader. This summary is not an
`extensive overview of the disclosure and it does not identify key/critical
`elements of the invention or delineate the scope of the invention. Its sole
`purpose is to present some concepts disclosed herein in a simplified form as
`a prelude to the more detailed description that is presented later.
`[0010] An apparatusA computer-implemented method is provided, comprising:
`causing access to be provided to a server computer including: a non-transitory
`memory storing instructions;a network application, and one or more processors
`in communication with the non-transitory memory, wherein the one or more
`processors execute the instructions for: receiving, by a second node
`fromnetwork application to operate in accordance with a first node,protocol
`including a transmission control protocol (TCP)-variant packet in advance of;
`causing a TCP variant connection beingto be established; with a client
`computer, by: communicating a segment including at least one first synchronize
`bit, communicating a first acknowledgement of the segment, and at least one
`second synchronize bit, and communicating a second acknowledgement; causing
`first data to be communicated
`
`Page 2 of 27
`
`

`

`from the server computer to the client computer utilizing the TCP connection
`in accordance with the TCP protocol and a hypertext transfer protocol (HTTP),
`for being presented to a user of the client computer; causing the server
`computer to permit second data, from the user of the client computer, to be
`received at the server computer from the client computer utilizing the TCP
`connection in accordance with the TCP protocol and the hypertext transfer
`protocol (HTTP); and causing access to be provided, to the client computer,
`to code that causes the client computer to operate in accordance with a second
`protocol that is separate from the TCP, in order to establish a second protocol
`connection with another server computer, by: receiving a packet, detecting
`an idle time period parameter field in the TCP variant packet;, identifying
`metadata in the idle time period parameter field for an idle time period that
`is detectable by the first node and, during which, no packet is communicated
`in the TCP variant connection to keep the TCP variant connection active;,
`where, after the idle time period is detected, the second protocol connection
`is deemed inactive, and creating or modifying, by the second nodeclient
`computer and based on the metadata, a timeout attribute associated with the
`TCP-variantsecond protocol connection.
`[0011] Another apparatuscomputer-implemented method is provided comprising:
`providing access to a server computer including: a non-transitory memory
`storing instructions;a network application, and one or more processors in
`communication with the non-transitory memory, wherein the one or more
`processors execute the instructions for: receiving idle information for
`detecting an idle time period, during which, no packet is communicated in a
`transmission control protocol (TCP)-variant connection to keepnetwork
`application to operate in accordance with a first protocol including a
`transmission control protocol (TCP); causing a TCP connection to be
`established with a client computer, by communicating a segment including at
`least one first synchronize bit; communicating a
`first acknowledgement of the segment, and at least one second synchronize bit;
`and communicating a second acknowledgement; causing first data to be
`communicated from the server computer to the client computer utilizing the
`TCP-variant
`connection active;in accordance with the TCP protocol and a hypertext
`transfer protocol (HTTP), for being presented to a user of the client computer;
`causing the server computer to permit second data, from the user of the client
`computer, to be received at the server computer from the client computer
`utilizing the TCP connection in accordance with the TCP protocol and the
`hypertext transfer protocol (HTTP); and providing access to code that results
`in the client computer operating in accordance with a second protocol that
`is separate from the TCP, in order to establish a second protocol connection
`with another server computer, by: identifying idle information for detecting
`an idle time period, after which, the second protocol connection is subject
`to deactivation, generating a TCP-variantsecond protocol packet including an
`idle time period parameter field identifying metadata for the idle time period
`based on the idle information;, and sending, from a first node to athe client
`computer to the another server computer, the second node, the
`TCP variantprotocol packet in advance of the TCP variant connection being
`established to provide the metadata for the idle time period to the second
`nodeanother server computer, for use by the second nodeanother server computer
`in creating or modifying, based on the metadata, a timeout attribute
`associated with the TCP-variantsecond protocol connection.
`
`Page 3 of 27
`
`

`

`[0012] Yet another apparatuscomputer-implemented method is provided
`comprising: providing access to a server computer including: a non-transitory
`memory storing a network application;instructions, and one or more processors
`in communication with the non- transitory memory, wherein
`the one or more processors execute the network applicationinstructions such
`that thea network application is configured to operateoperates in accordance
`with a non-first protocol including a transmission control protocol (TCP)
`protocol, the server computer, when operating in accordance with the first
`protocol to set up a TCP connection with a client computer, configured to:
`communicate a segment including at least one first synchronize bit,
`communicate a first acknowledgement of the segment, and at least one second
`synchronize bit, and communicate a second acknowledgement; causing first data
`to be communicated from the server computer to the client computer utilizing
`the TCP connection in accordance with the TCP protocol and a hypertext transfer
`protocol (HTTP), for being presented to a user of the client computer; causing
`the server computer to permit second data, of the user of the client computer,
`to be received at the server computer from the client computer utilizing the
`TCP connection in accordance with the TCP protocol and the hypertext transfer
`protocol (HTTP); and providing access to code that causes the client computer
`to operate in accordance with a second protocol that is different from the
`TCP and that operates above an Internet Protocol (IP) layer and below a
`hypertext transfer protocol (HTTP) application layer, the apparatus, when
`operating in accordance with the non-TCP protocol, configured to: receive,
`by a second node from a first nodein order to setup a second protocol connection
`with another server computer, by: receiving, by the client computer from the
`another server computer, a non-TCP packet during a setup of a non- TCP
`connection; identify, identifying metadata, that specifies a number of
`seconds or minutes, in an idle time period parameter field in the non-TCP
`packet, for an idle time period that is detectable by the first node, where,
`as a result of a detection of the idle time period, the non TCP connection
`is subject to deactivation;during which, no packet is communicated that meets
`each of the following criteria: a) communicated via the second protocol
`connection, and b) causes the second protocol connection to be kept at
`least partially alive, and determining, by the client computer and determine,
`based on the metadata, a timeout attribute associated with the non-TCP
`connection; wherein the apparatus, when operating in accordance with the
`TCPsecond protocol, is configured to perform a three-
`way TCP handshake for establishing a TCP connection that is different than
`the non TCP connection.
`[0013] Still yet another apparatuscomputer-implemented method is provided
`comprising: providing access to a server computer including: a non-transitory
`memory storing a network application;instructions, and one or more processors
`in communication with the non-transitory memory, wherein the one or more
`processors execute the network applicationinstructions such that thea network
`application is configured to operateoperates in accordance with a non-first
`protocol including a transmission control protocol (TCP) protocol that
`operates above an Internet Protocol (IP) layer and below a hypertext transfer
`protocol (HTTP) application layer, the apparatusserver computer, when
`operating in accordance with the non-TCPfirst protocol to set up a TCP
`connection with a client computer, configured to: communicate a segment
`
`Page 4 of 27
`
`

`

`including at least one first synchronize bit, communicate a first
`acknowledgement of the segment, and at least one second synchronize bit, and
`communicate a second acknowledgement; causing first data to be communicated
`from the server computer to the client computer utilizing the TCP connection
`in accordance with the TCP protocol and a hypertext transfer protocol (HTTP),
`for being presented to a user of the client computer; causing the server
`computer to permit second data, of the user of the client computer, to be
`received at the server computer from the client computer utilizing the TCP
`connection in accordance with the TCP protocol and the hypertext transfer
`protocol (HTTP); and providing access to code that results in the client
`computer operating in accordance with a second protocol, that is different
`from the TCP and operates above the IP layer and below the
`HTTP application layer, in order to setup a second protocol connection with
`another server computer, and to: receive idle information for use in detecting
`an idle time period thatduring which no signal is communicated that meets each
`of the following criteria: a) communicated in the second protocol connection,
`and b) results in a non-TCPthe second protocol connection being subject to
`deactivation;at least partially kept alive, generate, based on the idle
`information, a non-TCPsecond protocol packet including an idle time period
`parameter field identifying metadata that is specified in a number of seconds
`or minutes;, and send, from a first node to a second nodethe client computer
`to another server computer and for establishingduring the non TCPset up of
`the second protocol connection, the non-TCPsecond protocol packet to provide
`the metadata to the second nodeanother server computer, for use by the second
`nodeanother server computer in determining a timeout attribute associated
`with the non-TCP connection; wherein the apparatus, when operating in
`accordance with the TCP protocol, is configured to perform a three-way TCP
`handshake for establishing a TCP connection that is separate from the
`non-TCPsecond protocol connection.
`[0014] Other methods and systems are also described for sharing information
`for detecting an idle TCP connection. In one aspect, a method includes
`receiving, by a second node from a first node, a first transmission control
`protocol (TCP) packet in a TCP connection. The method further includes
`detecting a first idle time period header, in the first packet, identifying
`metadata for a first idle time period, detectable by the first node, during
`which no TCP packet including data in a first TCP data stream sent in the TCP
`connection by the second node is received by the first node. The method still
`further includes modifying, based on the metadata, by the second node a timeout
`attribute associated with the TCP connection.
`[0015] Further, a system for sharing information for detecting an idle TCP
`connection is described. The system includes an execution environment
`including an instruction processing unit configured to process an instruction
`included in at least one of a net in- port component, an idle time period option
`handler component, and an option attribute handler component. The system
`includes the net in-port component configured for receiving, by a second node
`from a first node, a first transmission control protocol (TCP) packet in a
`TCP connection. The system further includes the idle time period option
`handler component configured for detecting a first idle time period header,
`in the first packet, identifying metadata for a first idle time period,
`detectable by the first node, during which no TCP packet including data in
`a first TCP data stream sent in the TCP connection by the second node is
`
`Page 5 of 27
`
`

`

`received by the first node. The system still further includes the option
`attribute handler component configured for modifying, based on the metadata,
`by the second node a timeout attribute associated with the TCP connection
`[0016] In another aspect, a method for sharing information for detecting an
`idle TCP connection is described that includes receiving, by a first node,
`first idle information for detecting a first idle time period during which
`no TCP packet including data in a first data stream sent in the TCP connection
`by a second node is received by the first node. The method further includes
`generating a TCP packet including a first idle time period header identifying
`metadata for the first idle time period based on the first idle information.
`The method still further includes sending the TCP packet in the TCP connection
`to the second node to provide the metadata for the first idle time period to
`the second node. The method also includes detecting the first idle time period
`based on the first idle information. The method additionally includes
`deactivating the TCP connection in response to detecting the first idle time
`period.
`[0017] Still further, a system for sharing information for detecting an idle
`TCP connection is described. The system includes an execution environment
`including an instruction processing unit configured to process an instruction
`included in at least one of an idle time period policy component, a packet
`generator component, a net out-port component, an idle time period monitor
`component, and a connection state component. The system includes the idle time
`period policy component configured for receiving, by a first node, first idle
`information for detecting a first idle time period during which no TCP packet
`including data in a first data stream sent in the TCP connection by a second
`node is received by the first node. The system includes the packet generator
`component configured for generating a TCP packet including a first idle time
`period header identifying metadata for the first idle time period based on
`the first idle information. The system still further includes the net out-port
`component configured for sending the TCP packet in the TCP connection to the
`second node to provide the metadata for the first idle time period to the second
`node. The system includes the idle time period monitor component configured
`for detecting the first idle time period based on the first idle information.
`The system includes the connection state component configured for
`deactivating the TCP connection in response to detecting the first idle time
`period.
`BRIEF DESCRIPTION OF THE DRAWINGS
`[0018] Objects and advantages of the present invention will become apparent
`to those skilled in the art upon reading this description in conjunction with
`the accompanying drawings, in which like reference numerals have been used
`to designate like or analogous elements, and in which:
`[0019] Fig. 1 is a block diagram illustrating an exemplary hardware device
`included in and/or otherwise providing an execution environment in which the
`subject matter may be implemented;
`[0020] Fig. 2 is a flow diagram illustrating a method for sharing information
`for detecting an idle TCP connection according to an aspect of the subject
`matter described herein;
`
`Page 6 of 27
`
`

`

`[0021] Fig. 3 is a flow diagram illustrating another method for sharing
`information for detecting an idle TCP connection according to another aspect
`of the subject matter described herein;
`[0022] Fig. 4 isa and Fig. 4b show a block a diagram illustrating an arrangement
`of components for sharing information for detecting an idle TCP connection
`according to a further aspect of the subject matter described herein;
`[0023] Fig. 5 is a block diagram illustrating an arrangement of components
`for sharing information for detecting an idle TCP connection according to
`still another aspect of the subject matter described herein;
`[0024] Fig. 6 is a network diagram illustrating an exemplary system for sharing
`information for detecting an idle TCP connection according to an aspect of
`the subject matter described herein;
`[0025] Fig. 7 is a message flow diagram illustrating an exemplary data and
`execution flow for sharing information for detecting an idle TCP connection
`according to an aspect of the subject matter described herein; and
`[0026] Fig. 8 is a diagram illustrating a structure for a packet transmitted
`via a network according to an aspect of the subject matter described herein.
`DETAILED DESCRIPTION
`[0027] An exemplary device included in an execution environment that may be
`configured according to the subject matter is illustrated in Fig. 1. An
`execution environment includes an arrangement of hardware and, optionally,
`software that may be further configured to include an arrangement of
`components for performing a method of the subject matter described herein.
`[0028] An execution environment includes and/or is otherwise provided by one
`or more devices. An execution environment may include a virtual execution
`environment
`including software components operating in a host execution environment.
`Exemplary devices included in or otherwise providing suitable execution
`environments for configuring according to the subject matter include personal
`computers, notebook computers, tablet computers, servers, hand-held and other
`mobile devices, multiprocessor devices, distributed devices, consumer
`electronic devices, and/or network-enabled devices. Those skilled in the art
`will understand that the components illustrated in Fig. 1 are exemplary and
`may vary by particular execution environment.
`[0029] Fig. 1 illustrates hardware device 100 included in execution
`environment 102 which includes instruction-processing unit (IPU) 104, such
`as one or more microprocessors; physical IPU memory 106 including storage
`locations identified by addresses in a physical memory address space of IPU
`104; persistent secondary storage 108, such as one or more hard drives and/or
`flash storage media; input device adapter 110, such as key or keypad hardware,
`keyboard adapter, and/or mouse adapter; output device adapter 112, such as
`a display or audio adapter for presenting information to a user; a network
`interface, illustrated by network interface adapter 114, for communicating
`
`Page 7 of 27
`
`

`

`via a network such as a LAN and/or WAN; and a communication mechanism that
`couples elements 104-114, illustrated as bus 116. Elements 104-114 may be
`operatively coupled by various means. Bus 116 may comprise any type of bus
`architecture, including a memory bus, a peripheral bus, a local bus, and/or
`a switching fabric.
`[0030] IPU 104 is an instruction execution machine, apparatus, or device.
`Exemplary IPUs include one or more microprocessors, digital signal processors
`(DSP), graphics processing units (GPU), application-specific integrated
`circuits (ASIC), and/or field programmable gate arrays (FPGA).
`[0031] IPU 104 may access machine code instructions and data via one or more
`memory address spaces in addition to the physical memory address space. A
`memory address space includes addresses identifying locations in an IPU
`memory. IPU 104 may have more than one IPU memory. Thus, IPU 104 may have more
`than one memory address space. IPU 104 may access a location in an IPU memory
`by processing an address identifying the location. The processed address may
`be in an operand of a machine code instruction and/or may be identified in
`a register or other portion of IPU 104.
`[0032] Fig. 1 illustrates virtual IPU memory 118 spanning at least part of
`physical IPU memory 106 and at least part of persistent secondary storage 108.
`Virtual memory addresses in a memory address space may be mapped to physical
`memory addresses identifying locations in physical IPU memory 106. An address
`space for identifying locations in a virtual IPU memory is referred to as a
`virtual memory address space; its addresses are referred to as virtual memory
`addresses; and its IPU memory is known as a virtual IPU memory or virtual
`memory. The term IPU memory may refer to physical IPU memory 106 and/or virtual
`IPU memory 118 depending on the context in which the term is used.
`[0033] Various types of memory technologies may be included in physical IPU
`memory
`106. Exemplary memory technologies include static random access memory (SRAM)
`and/or dynamic RAM (DRAM) including variants such as dual data rate
`synchronous DRAM (DDR SDRAM), error correcting code synchronous DRAM (ECC
`SDRAM), and/or RAMBUS DRAM (RDRAM). Physical IPU memory 106 may include
`volatile memory as illustrated in the previous sentence and/or may include
`nonvolatile memory such as nonvolatile flash RAM (NVRAM) and/or read-only
`memory (ROM).
`[0034] Persistent secondary storage 108 may include one or more flash memory
`storage devices, one or more hard disk drives, one or more magnetic disk
`drives, and/or one or more optical disk drives. Persistent secondary storage
`may include removable media. The drives and their associated
`computer-readable storage media provide volatile and/or nonvolatile storage
`for computer readable instructions, data structures, program components, and
`other data for execution environment 102.
`[0035] Execution environment 102 may include software components stored in
`persistent secondary storage 108, in remote storage accessible via a network,
`and/or in an IPU memory. Fig. 1 illustrates execution environment 102
`including operating system 120, one or more applications 122, other program
`code and/or data components illustrated by other libraries and subsystems 124.
`
`Page 8 of 27
`
`

`

`[0036] Execution environment 102 may receive user-provided information via
`one or more input devices illustrated by input device 128. Input device 128
`provides input information to other components in execution environment 102
`via input device adapter
`110. Execution environment 102 may include an input device adapter for a
`keyboard, a touch screen, a microphone, a joystick, a television receiver,
`a video camera, a still camera, a document scanner, a fax, a phone, a modem,
`a network adapter, and/or a pointing device, to name a few exemplary input
`devices.
`[0037] Input device 128 included in execution environment 102 may be included
`in device 100 as Fig. 1 illustrates or may be external (not shown) to device
`100. Execution environment 102 may include one or more internal and/or
`external input devices.
`External input devices may be connected to device 100 via corresponding
`communication interfaces such as a serial port, a parallel port, and/or a
`universal serial bus (USB) port. Input device adapter 110 receives input and
`provides a representation to bus 116 to be received by IPU 104, physical IPU
`memory 106, and/or other components included in execution environment 102.
`[0038] Output device 130 in Fig. 1 exemplifies one or more output devices that
`may be included in and/or may be external to and operatively coupled to device
`100. For example, output device 130 is illustrated connected to bus 116 via
`output device adapter 112. Output device 130 may be a display device. Exemplary
`display devices include liquid crystal displays (LCDs), light emitting diode
`(LED) displays, and projectors. Output device 130 presents output of
`execution environment 102 to one or more users. In some embodiments, an output
`device is a device such as a phone, a joystick, and/or a touch screen. In
`addition to various types of display devices, exemplary output devices include
`printers, speakers, tactile output devices such as
`motion producing devices, and other output devices producing sensory
`information detectable by a user.
`[0039] A device included in or otherwise providing an execution environment
`may operate in a networked environment communicating with one or more devices
`(not shown) via one or more network interfaces. The terms "communication
`interface" and "network interface" are used interchangeably. Fig. 1
`illustrates network interface adapter 114 as a network interface included in
`execution environment 102 to operatively couple device 100 to a network. The
`terms "network node" and "node" in this document both refer to a device having
`a network interface operatively coupled to a network.
`[0040] Exemplary network interfaces include wireless network adapters and
`wired network adapters. Exemplary wireless networks include a BLUETOOTH
`network, a wireless 802.11 network, and/or a wireless telephony network (e.g.,
`a cellular, PCS, CDMA, and/or GSM network). Exemplary wired networks include
`various types of LANs, wide area networks (WANs), and personal area networks
`(PANs). Exemplary network adapters for wired networks include Ethernet
`adapters, Token-ring adapters, FDDI adapters, asynchronous transfer mode
`(ATM) adapters, and modems of various types. Exemplary networks also include
`intranets and internets such as the Internet.
`
`Page 9 of 27
`
`

`

`[0041] Fig. 2 is a flow diagram illustrating a first method for sharing
`information for detecting an idle TCP connection according to an exemplary
`aspect of the subject matter described herein. Fig. 3 is a flow diagram
`illustrating a second method for sharing information for detecting an idle
`TCP connection according to an exemplary
`aspect of the subject matter described herein. Fig. 4a is a block diagram
`illustrating a system for sharing information for detecting an idle TCP
`connection according to the first method in Fig. 2. Fig. 4b is a block diagram
`illustrating a system for sharing information for detecting an idle TCP
`connection according to the second method in Fig.
`3. It is expected that many, if not most, systems configured to perform one
`of the methods illustrated in Fig. 2 and Fig. 3 will also be configured to
`perform the other method.
`[0042] A system for sharing information for detecting an idle TCP connection
`according to the method illustrated in Fig. 2 includes an execution
`environment, such as execution environment 102 in Fig. 1, including an
`instruction processing unit, such as IPU 104, configured to process an
`instruction included in at least one of an idle time period policy component
`450, a packet generator component 452, and a net out-port component 454, a
`idle time period monitor component 456, and a connection state component 458
`illustrated in Fig. 4a.
`[0043] A system for sharing information for detecting an idle TCP connection
`performing the method illustrated in Fig. 3 includes an execution environment,
`such as execution environment 102 in Fig. 1, including an instruction
`processing unit, such as IPU 104, configured to process an instruction
`included in at least one of a net in-port component 460, an idle time period
`option handler component 462, an option attribute handler component 464
`illustrated in Fig. 4b.
`[0044] Components illustrated in Fig. 4a may be adapted for performing the
`method illustrated in Fig. 2 in a number of execution environments. Components
`illustrated in Fig. 4b may be adapted for performing the method ill

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