throbber
METHODS, SYSTEMS, AND COMPUTER PROGRAM PRODUCTS FOR SHARING
`INFORMATION FOR DETECTING AN IDLE TCP CONNECTION
`
`RELATED APPLICATIONS
`
`[0001] This is a continuation of U.S. Patent Application No. 12/714,454 (Docket No 0120)
`
`filed on 2010/02/27, now US Patent No. ,
`
`[0002] This application is related to the following commonly owned U.S. Patent
`
`Applications, the entire disclosure of each being incorporated by reference herein:
`
`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
`
`[0002[0003] 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
`
`Page 1 of 46
`
`GOOGLE EXHIBIT 1040
`
`

`

`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.
`
`[0003[0004] 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.
`
`[00040005] 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.
`
`[00050006] 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
`
`Page 2 of 46
`
`

`

`of enabling cooperation and negotiation between nodes in a TCP connection in detecting
`
`and managing idle, underactive, and/or dead TCP connections remains unaddressed.
`
`[00060007] Accordingly, there exists a need for methods, systems, and computer
`
`program products for sharing information for detecting an idle TCP connection.
`
`SUMMARY
`
`[00070008] 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.
`
`[00080009] Methods and systems are 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.
`
`[00090010] Further, a system for sharing information for detecting an idle TCP
`
`Page 3 of 46
`
`

`

`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 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
`
`[00100011] 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
`
`Page 4 of 46
`
`

`

`response to detecting the first idle time period.
`
`[00110012] 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
`
`Page 5 of 46
`
`

`

`[0012[0013] 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:
`
`[00130014] 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;
`
`[00140015] 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;
`
`[00150016] 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;
`
`[00160017] Fig. 4 is 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;
`
`[0017[0018] 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;
`
`[0018[0019] Fig. 6 is a network diagram illustrating an exemplary system for sharing
`
`Page 6 of 46
`
`

`

`information for detecting an idle TCP connection according to an aspect of the subject
`
`matter described herein;
`
`[00190020] 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
`
`[00200021] 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
`
`[00210022] 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.
`
`[00220023] An execution environment includes and/or is otherwise provided by one or
`
`more devices. An execution environment may include a virtual execution environment
`
`Page 7 of 46
`
`

`

`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.
`
`[00230024] 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
`
`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.
`
`Page 8 of 46
`
`

`

`[00240025] 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).
`
`[00250026] 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.
`
`[00260027] 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.
`
`[00270028] Various types of memory technologies may be included in physical IPU
`memory
`
`Page 9 of 46
`
`

`

`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).
`
`[00280029] 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.
`
`[00290030] 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.
`
`[00300031] 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
`
`Page 10 of 46
`
`

`

`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.
`
`[00310032] 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.
`
`[00320033] 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
`
`Page 11 of 46
`
`

`

`detectable by a user.
`
`[00330034] 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.
`
`[00340035] 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.
`
`[00350036] 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
`
`Page 12 of 46
`
`

`

`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.
`
`[00360037] 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.
`
`[00370038] 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.
`
`[00380039] 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.
`
`Page 13 of 46
`
`

`

`4b may be adapted for performing the method illustrated in Fig. 3 in a number of
`
`execution environments. Fig. 5 is a block diagram illustrating adaptations and/or analogs
`
`of the components of Fig. 4a and Fig. 4b in exemplary execution environment 502
`
`including or otherwise provided by one or more nodes. The method depicted in Fig. 2 and
`
`the method depicted in Fig. 3 may be carried out by some or all of the exemplary
`
`components and/or their analogs.
`
`[00390040] The components illustrated in Fig. 4 and Fig. 5 may be included in or
`
`otherwise may be combined with some or all of the components of Fig. 1 to create a
`
`variety of arrangements of components according to the subject matter described herein.
`
`[00400041] Fig. 6 illustrates first node 602 and second node 604 as exemplary devices
`
`included in and/or otherwise adapted for providing a suitable execution environment,
`
`such as execution environment 502 illustrated in Fig. 5, for an adaptation of the
`
`arrangement of components in Fig. 4a and an adaptation of the arrangement of
`
`components in Fig. 4b. As illustrated in Fig. 6, first node 602 and second node 604 are
`
`operatively coupled to network 606 via respective network interfaces enabling first node
`
`602 and second node 604 to communicate. Fig. 7 is a message flow diagram illustrating
`
`an exemplary exchange of messages within and between first node 602 and second node
`
`604 according to the subject matter described herein.
`
`[00410042] As stated, the various adaptations of the arrangements of components in Fig.
`
`4a and in Fig. 4b described herein are not exhaustive.
`
`[00420043] In Fig. 5, execution environment 502 illustrates a network application 504
`
`Page 14 of 46
`
`

`

`operating in a node configured to communicate with one or more other nodes via the TCP
`
`supported by TCP layer component 506. For example, first node 602 may be included in
`
`and/or provide execution environment 502. Network application 504 may be a first
`
`application configured to communicate with an application operating in second node 604
`
`via network 606. Second node 604 may be included in and/or provide another instance of
`
`execution environment 502. The operation of both first node 602 and second node 604
`
`are described with respect to execution environment 502. For ease of illustration, both
`
`first node 602 and second node 604 are configured with adaptations of the arrangement
`
`in Fig 4a and the arrangement in Fig. 4b. As such, the description of components and
`
`corresponding operations with respect to execution environment 502 in Fig. 5 is
`
`applicable to both first node 602 and second node 604 in Fig. 6.
`
`[00430044] In Fig. 5, network interface card (NIC) 508 is an exemplification of a network
`
`interface illustrated in Fig. 1 by network interface adapter 114. NIC 508 includes a
`
`physical layer component 510 operatively coupling execution environment 502 to one or
`
`more physical media for carrying communication signals. The media may be wired, such
`
`as an Ethernet LAN operating over CAT 6 cabling, or may be wireless such as an 802.11n
`
`LAN. Other exemplary physical layer protocols and corresponding media are identified
`
`above.
`
`[00440045] NIC 508 may also include a portion of link layer component 512. Link layer
`
`component 512 may provide for communication between two nodes in a point-to-point
`
`communication and/or two nodes in a local area network (LAN). Exemplary link layers
`
`and, their protocols have been described above including FDDI, ATM, and Ethernet. A
`
`Page 15 of 46
`
`

`

`portion of link layer component 512 is external to NIC 508. The external portion may be
`
`realized as a device driver for NIC 508.
`
`[00450046] Link layer component 512 may receive data formatted as one or more
`
`internet protocol (IP) packets from internet protocol (IP) layer component 514. Link layer
`
`component 512 packages data from IP layer component 514 according to the particular
`
`link layer protocol supported. Analogously, link layer component 512 interprets data,
`
`received as signals transmitted by the physical media operatively coupled to physical
`
`layer component 510, according to a particular link layer protocol supported. Link layer
`
`component 512 may strip off link layer specific data and transfer the payload of link layer
`
`transmissions to IP layer component 514.
`
`[00460047] IP layer component 514 illustrated in Fig. 5 is configured to communicate with
`
`one or more remote nodes over a LAN and/or a network of networks such as an intranet
`
`or the Internet. IP layer component 514 may receive data formatted as TCP packets from
`
`TCP layer component 506. IP layer component 514 packages data from TCP layer
`
`component 506 into IP packets for transmission across a network. The network may be
`
`and/or may include an internet. Analogously, IP layer component 514 interprets data,
`
`received from link layer component 512 as IP protocol data and detects IP packets in
`
`the received data. IP layer component 514 may strip off IP layer specific data and transfer
`
`the payload of one or more IP packets to TCP layer component 506.
`
`[00470048] In Fig. 5, IP layer component 514 is operatively coupled to TCP layer
`
`component 506. TCP layer component 506 is configured to provide a TCP connection
`
`Page 16 of 46
`
`

`

`over network 606 for sending and/or receiving packets included in the TCP connection
`
`between two nodes exemplified by first node 602 and second node 604.
`
`[00480049] In a TCP connection including first node 602 and second node 604, first node
`
`602 may include a first TCP connection endpoint and second node 604 may include a
`
`second TCP connection endpoint. The first and second TCP connection endpoints
`
`identify the TCP connection. The TCP connection may have other identifiers, in addition
`
`to the included endpoints.
`
`[00490050] Components of execution environment 502, in an aspect, may interoperate
`
`with TCP layer component 506 directly. In another aspect, one or more components,
`
`such as network application 504, may interoperate with TCP layer component 506
`
`indirectly. Network application 504 may exchange data with TCP layer component 506
`
`via sockets component 518 and/or an analog of sockets component 518. Alternatively or
`
`additionally, network application 504 may communicate with a remote node via an
`
`application protocol layer illustrated by application protocol layer component 520. Many
`
`application protocols currently exist and new application protocols will be developed.
`
`Exemplary application layer protocols include hypertext transfer protocol (HTTP), file
`
`transfer protocol (FTP), and extensible messaging and presence protocol (XMPP).
`
`[00500051] TCP layer component 506 in Fig. 5 may receive data from any of various
`
`sources for transmitting in corresponding TCP connections to various corresponding
`
`identified TCP connection endpoints in one or more network nodes. Fig. 5 illustrates
`
`application in-port (app in-port) component 522 providing an interface component for
`
`receiving data to transmit in a TCP connection. Fig. 5 illustrates TCP layer component
`
`Page 17 of 46
`
`

`

`506 includes packet generator component 552 configured to package data received by
`
`application in-port component 522 for transmitting in one or more TCP packets. The one
`
`or more TCP packets are provided to IP layer component 514 via net out-port component
`
`554 exemplifying an output interface component.
`
`[00510052] Analogously, TCP layer component 506 interprets data received from IP layer
`
`component 514 via net in-port component 560. The data is interpreted as TCP data and
`
`TCP packets are detected in the received data by net in-port component 560 and/or
`
`packet handler component 516. Fig. 5 illustrates TCP layer component 506 includes
`
`packet handler component 516 to strip off and/or otherwise process TCP layer specific
`
`data. Packet handler component 516 interoperates with application out-port (app out-
`
`port) component 524 to transfer data in the TCP packet included in a TCP data stream to
`
`sockets component 518, application protocol layer 520, network application 504, and/or
`
`other components associated with the local endpoint of the TCP connection. Detailed
`
`information on the operation of the TCP is included in RFC 793.
`
`[00520053] With reference to the method illustrated in Fig. 2, block 202 illustrates the
`
`method 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 thea
`
`TCP connection by a second node is received by the first node. Accordingly, a system for
`
`sharing information for detecting an idle TCP connection includes means 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 thea TCP connection by a second node
`
`Page 18 of 46
`
`

`

`is received by the first node. For example, as illustrated in Fig. 4a, idle time period policy
`
`component 450 is 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 thea TCP connection by a second node is received by the first node.
`
`[00530054] Fig. 5 illustrates idle time period (ITP) policy component 550 as an adaptation
`
`of and/or analog of ITP policy component 450 in Fig. 4a. One or more idle time period
`
`policy components 550 operate in execution environment 502.
`
`[00540055] Message 702 in Fig. 7 illustrates a communication including and/or otherwise
`
`identifying idle information received by ITP policy component 550. Message 702 may
`
`take various forms in various aspects. Exemplary forms for message 702 include a
`
`function/method invocation, a message passed via a message queue, data transmitted
`
`via a pipe, a message received via a network, and/or a communication via a shared
`
`location in IPU memory and/or secondary storage.
`
`[00550056] Idle information may be received from a configuration storage location for
`
`TCP layer component 506 in an IPU memory and/or in secondary storage 108. The
`
`Page 19 of 46
`
`

`

`configured idle information may be maintained and/or otherwise managed by settings
`
`service component 526 configured to maintain and/or manage various options or settings
`
`for TCP layer component 506 and/or one or more TCP connections.
`
`[0056[0057] In an aspect, network application 504 provides idle information to ITP policy
`
`component 550 via settings service component 526 interoperating with sockets
`
`component 518. Sockets component 518 and/or TCP layer component 506 may support
`
`TCP options applicable globally for some or all TCP connections and/or may support TCP
`
`options on a per connection basis. Per connection TCP options may override global TCP
`
`options if global options are also supported. In another aspect, idle information may be
`
`received from and/or otherwise received based on information via application protocol
`
`layer 520, via sockets component 518, and/or directly from network application 504.
`
`[00570058] Application protocol layer 520 may provide idle information to ITP policy
`
`component 550 via settings service component 526 and, optionally, via sockets
`
`component 518. Idle information provided by application protocol layer 520 may be based
`
`on data received from network application 504, based on a particular configuration of
`
`application protocol layer 520, and/or received from a user and/or administrator of o

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