throbber
METHODS, SYSTEMS, AND COMPUTER PROGRAM PRODUCTS FOR SHARING INFORMATION FOR
`DETECTING AN IDLE TCP CONNECTION
`RELATED APPLICATIONS
`[0001
`[0001] This application 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, entitled "METHODS, SYSTEMS, AND COMPUTER PROGRAM PRODUCTS FOR
`SHARING INFORMATION FOR DETECTING AN IDLE TCP CONNECTION," filed 02- 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 each beingwhich 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
`[00020004] 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.
`[00030005] 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
`
`Page 1 of 26
`
`GOOGLE EXHIBIT 1050
`
`

`

`operate in opposition to one another and/or may waste resources by duplicating
`function, according to critics of the keep-alive option.
`[00040006] 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.
`[00050007] 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.
`[00060008] Accordingly, there exists a need for methods, systems, and computer
`program products for sharing information for detecting an idle TCP connection.
`SUMMARY
`[00070009] 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.
`
`[0008] Methods0010] An apparatus is provided comprising: a non-transitory
`memory storing instructions; 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 from a first node, a transmission
`control protocol (TCP)-variant packet in advance of a TCP-variant connection
`being established; 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; and modifying, by the second node and based
`on the metadata, a timeout attribute associated with the TCP-variant
`connection.
`[0011] Another apparatus is provided comprising: a non-transitory memory
`storing instructions; 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
`
`Page 2 of 26
`
`

`

`period, during which, no packet is communicated in a transmission control
`protocol (TCP)-variant connection to keep the TCP-variant
`connection active; generating a TCP-variant 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 a second node, the
`TCP-variant packet in advance of the TCP-variant connection being established
`to provide the metadata for the idle time period to the second node, for use
`by the second node in modifying, based on the metadata, a timeout attribute
`associated with the TCP-variant connection.
`[0012] Yet another apparatus is provided comprising: a non-transitory memory
`storing a network application; and one or more processors in communication
`with the non- transitory memory, wherein the one or more processors execute
`the network application such that the network application is configured to
`operate in accordance with a non- transmission control protocol (TCP) protocol
`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 node, a non-TCP packet during a setup of a non- TCP connection;
`identify 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; and
`determine, based on the metadata, 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 different than
`the non- TCP connection.
`[0013] Still yet another apparatus is provided comprising: a non-transitory
`memory storing a network application; and one or more processors in
`communication with the non-transitory memory, wherein the one or more
`processors execute the network application such that the network application
`is configured to operate in accordance with a non-transmission control
`protocol (TCP) protocol 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 idle information for use in detecting an idle time period that
`results in a non-TCP connection being subject to deactivation; generate, based
`on the idle information, a non-TCP 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 node and for establishing
`the non-TCP connection, the non-TCP packet to provide the metadata to the
`second node, for use by the second node 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-TCP
`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
`
`Page 3 of 26
`
`

`

`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.
`[00090015] 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
`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
`[00100016] 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.
`[00110017] 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
`
`Page 4 of 26
`
`

`

`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
`[00120018] 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:
`[00130019] 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;
`[00140020] 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;
`[00150021] 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;
`[00160022] 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;
`[00170023] 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;
`[00180024] 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;
`[00190025] 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
`[00200026] 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
`[00210027] 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.
`
`Page 5 of 26
`
`

`

`[00220028] 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.
`[00230029] 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.
`[00240030] 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).
`[00250031] 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.
`[00260032] 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.
`[00270033] Various types of memory technologies may be included in physical
`IPU memory
`
`Page 6 of 26
`
`

`

`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).
`[00280034] 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.
`[00290035] 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.
`[00300036] 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.
`[00310037] 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.
`[00320038] 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
`
`Page 7 of 26
`
`

`

`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.
`[00330039] 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.
`[00340040] 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.
`[00350041] 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.
`[00360042] 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.
`[00370043] 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
`
`Page 8 of 26
`
`

`

`time period option handler component 462, an option attribute handler
`component 464 illustrated in Fig. 4b.
`[00380044] 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
`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.
`[00390045] 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.
`[00400046] 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.
`[00410047] As stated, the various adaptations of the arrangements of
`components in Fig. 4a and in Fig. 4b described herein are not exhaustive.
`[00420048] In Fig. 5, execution environment 502 illustrates a network
`application 504 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.
`[00430049] 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
`
`Page 9 of 26
`
`

`

`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.
`[00440050] 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 portion of link layer component 512 is external
`to NIC 508. The external portion may be realized as a device driver for NIC
`508.
`[00450051] 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.
`[00460052] 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.
`[00470053] 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 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.
`[00480054] 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.
`[00490055] 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
`
`Page 10 of 26
`
`

`

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

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