`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