throbber
MAI MUUTTUNUT DILLIMITATION ON
`
`US009923995B1
`
`( 12 ) United States Patent
`Morris
`
`( 10 ) Patent No . :
`( 45 ) Date of Patent :
`
`US 9 , 923 , 995 B1
`* Mar . 20 , 2018
`
`( 54 ) METHODS , SYSTEMS , AND COMPUTER
`PROGRAM PRODUCTS FOR SHARING
`INFORMATION FOR DETECTING AN IDLE
`TCP CONNECTION
`( 71 ) Applicant : SITTING MAN , LLC , Raleigh , NC
`( US )
`( 72 ) Inventor : Robert Paul Morris , Raleigh , NC ( US )
`( 73 ) Assignee : Sitting Man , LLC , Raleigh , NC ( US )
`Subject to any disclaimer , the term of this
`( * ) Notice :
`patent is extended or adjusted under 35
`U . S . C . 154 ( b ) by 0 days .
`This patent is subject to a terminal dis
`claimer .
`( 21 ) Appl . No . : 15 / 694 , 802
`Sep . 3 , 2017
`( 22 )
`Filed :
`
`Related U . S . Application Data
`( 63 ) Continuation - in - part of application No . 14 / 667 , 642 ,
`filed on Mar . 24 , 2015 , which is a continuation - in - part
`of application No . 13 / 477 , 402 , filed on May 22 , 2012 ,
`now abandoned , which is
`a continuation of
`application No . 12 / 714 , 454 , filed on Feb . 27 , 2010 ,
`now Pat . No . 8 , 219 , 606 .
`Int . C1 .
`( 2006 . 01 )
`GOOF 15 / 16
`H04L 29 / 06
`( 2006 . 01 )
`U . S . CI .
`. . . . . . . . . . . . . . . . . . . . . H04L 69 / 16 ( 2013 . 01 )
`???
`( 58 ) Field of Classification Search
`. . . . . . . . . . . . . . . . . HO4L 69 / 16
`CPC . . . . . . . . . . . . . . . .
`See application file for complete search history .
`
`( 51 )
`
`( 52 )
`
`( 56 )
`
`References Cited
`U . S . PATENT DOCUMENTS
`6 , 412 , 006 B2 *
`6 / 2002 Naudus
`H04L 45 / 00
`370 / 437
`7 , 404 , 210 B2 *
`7 / 2008 Lin . . . . . . . . . . . . . . . . . . . . H04L 63 / 1458
`370 / 392
`7 , 426 , 569 B2 *
`9 / 2008 Dunk . . . . . . . . . . . . . . . . . . . . H04L 67 / 14
`709 / 203
`3 / 2010 Valli . . . . . . . . . . . . . . . . . . . H04L 43 / 10
`7 , 684 , 346 B2 *
`370 / 252
`7 , 720 , 989 B2 *
`5 / 2010 Dunk . . . . . . . . . . . . . . . .
`H04L 67 / 14
`709 / 224
`7 , 729 , 271 B2 *
`6 / 2010 Tsuchiya . . . . . . . .
`H04L 43 / 022
`370 / 252
`( Continued )
`OTHER PUBLICATIONS
`Allman , M . , Paxson , V . , Stevens , W . , “ TCP Congestion Control ” ,
`RFC 2581 , Internet Engineering Task Force , http : / / tools . ietf . org / rfc /
`rfc2581 . txt , — Apr . 1999 .
`
`( Continued )
`Primary Examiner — Moustafa M Meky
`( 74 ) Attorney , Agent , or Firm — Patrick E . Caldwell ,
`Esq . ; The Caldwell Firm , LLC
`( 57 )
`ABSTRACT
`Methods and systems are described for sharing information
`for detecting an idle connection . In one aspect , a second
`node receives a packet in a connection . A portion in the
`packet is detected identifying metadata for a period , detect
`able by a first node . The second node modifies a timeout
`associated with the connection based on the metadata . In
`another aspect , a first node receives information for detect
`ing a period . A packet is generated including a portion
`identifying metadata for the period based on the informa
`tion , and sent to the second node .
`30 Claims , 8 Drawing Sheets
`
`Receive , 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
`
`- 202
`
`Generate a TCP packet including a first idle time period header
`identify metadata for the first idle time period based on the first idle
`information
`
`Send 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
`
`Detect the first idle time period based on the first idle information
`
`204
`
`206
`
`- 208
`
`Deactivate the TCP connection in response to detecting the first idle
`time period
`
`- 210
`
`Page 1 of 24
`
`GOOGLE EXHIBIT 1010
`
`

`

`US 9 , 923 , 995 B1
`Page 2
`
`( 56 )
`
`References Cited
`U . S . PATENT DOCUMENTS
`
`12 / 2011 Dunk . . . . . . . . . . . . . . . . . . . H04L 67 / 14
`8 , 073 , 964 B2 *
`709 / 224
`7 / 2012 Morris . . . . . . . . . . . . . . . . . . H04L 69 / 16
`8 , 219 , 606 B2 *
`709 / 201
`3 / 2005 Kakani . . . . . . . . . . . . . . . . H04W 28 / 18
`2005 / 0054347 Al *
`455 / 452 . 1
`3 / 2005 Sillasto et al .
`2005 / 0063304 AL
`2006 / 0034179 A1 2 / 2006 Carter et al .
`. . . . . H04W 76 / 045
`2009 / 0252072 A1 *
`10 / 2009 Lind
`370 / 311
`2010 / 0057844 A1 *
`3 / 2010 Johnson . . . . . . . . . . . . . . GO6F 3 / 0611
`709 / 203
`2011 / 0213820 AL
`9 / 2011 Morris
`
`OTHER PUBLICATIONS
`Busatto , Fabio , “ TCP Keepalive Overview ” , TCP Keepalive
`HOWTO , Section 2 , http : / / tldp . org / HOWTO / html _ single / TCP
`Keepalive - HOWTO / # overview , accessed Jan . 2010 , May 2007 .
`Eggert , L . , Gont , F . , “ TCP User Timeout Option ” , RFC 5482 ,
`Internet Engineering Task Force ( IEFT ) , http : / / tools . ietf . org / html /
`rfc5482 . txt , Mar . 2009 .
`
`Koziero , Charles M . , TCP Connection Management and Problem
`Handling , the Connection Reset Function , and TCP “ Keepalives ” ,
`The TCP / IP Guide ,
`p .
`3 ,
`http : / / www . tcpipguide . com / free /
`t _ TCPConnection ManagementandProblemHandlingtheConnec
`3 , htm , accessed Feb . 2010 , ( c ) 2003 - 2010 .
`Mathis , M . , Mahdave , J . , Floyd , S . , Romanow , A . , “ TCP Selective
`Acknowledgement Options ” , RFC 2018 , Internet Engineering Task
`Force , http : / / tools . ietf . org / rfc / rfc2018 . txt , Oct . 1996 .
`Nagle , John , “ Congestion Control in IP / TCP Internetworks ” , RFC
`896 , Ford Aerospace and Communications Corporation , http : / / tools .
`ietf . org / rfc / rfc896 . txt , Jan . 1984 .
`Postel , John ( ed . ) , Editor ;
`“ Transmission Control Protocol
`DARPA Internet Protocol Specification ” , RFC 793 , USC / Informa
`tion Sciences Institute , http : / / tools . ietf . org / rfc / rfc793 . txt , Sep . 1981 .
`Office Action Summary in U . S . Appl . No . 12 / 714 , 063 dated Jun . 21 ,
`2012 .
`Office Action Summary in U . S . Appl . No . 12 / 714 , 063 dated Mar . 4 ,
`2013 .
`Office Action Summary in U . S . Appl . No . 12 / 714 , 063 dated Sep . 27 ,
`2013 .
`Office Action Summary in U . S . Appl . No . 12 / 714 , 454 dated Feb . 23 ,
`2012 .
`Office Action Summary in U . S . Appl . No . 13 / 477 , 402 dated Sep . 24 ,
`2014 .
`Office Action Summary in U . S . Appl . No . 15 / 694 , 803 dated Nov .
`29 , 2017 .
`* cited by examiner
`
`Page 2 of 24
`
`

`

`U . S . Patent
`
`Mar . 20 , 2018
`
`Sheet 1 of 8
`
`US 9 , 923 , 995 B1
`
`To / From Network
`
`Network Interface Adapter 114
`
`Persistent Secondary Storage 108
`
`116
`
`124 Other Libraries and Subsystems
`
`
`
`
`Applications 122
`
`Operating System 120
`
`
`
`Input Device 128
`
`
`
`Input Device Adapter 110
`
`
`
`Output Device 130
`
`Output Device Adapter 112
`Instruction Processing Unit
`
`104
`
`
`
`Physical IPU Memory 106
`
`
`
`Virtual IPU Memory 118
`
`
`
`Execution Environment 102
`
`
`
`Device / Node 100
`
`Fig . 1
`
`Page 3 of 24
`
`

`

`U . S . Patent
`
`Mar . 20 , 2018
`
`Sheet 2 of 8
`
`US 9 , 923 , 995 B1
`
`Receive , 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
`
`Generate a TCP packet including a first idle time period header
`identify metadata for the first idle time period based on the first idle
`information
`
`Send 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
`
`Detect the first idle time period based on the first idle information
`
`202
`
`204
`
`206
`
`208
`
`Deactivate the TCP connection in response to detecting the first idle
`time period
`
`210
`
`Fig . 2
`
`Page 4 of 24
`
`

`

`U . S . Patent
`
`Mar . 20 , 2018
`
`Sheet 3 of 8
`
`US 9 , 923 , 995 B1
`
`Receive , by a second node from a first node , a first transmission
`control protocol ( TCP ) packet in a TCP connection
`
`Detect 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
`
`modifying , based on the metadata , by the second node a timeout
`attribute associated with the TCP connection
`
`302
`
`304
`
`306
`
`Fig . 3
`
`Page 5 of 24
`
`

`

`U . S . Patent
`
`Mar . 20 , 2018
`
`Sheet 4 of 8
`
`US 9 , 923 , 995 B1
`
`Connection
`State 458
`
`ITP Policy 450
`
`ITP Monitor 456
`
`452
`452
`
`HH Packet Generator
`
`Net Out - Port 454
`
`Fig . 4a
`
`Option
`Attribute
`Handler 564
`
`ITP Option
`Handler 462
`
`Net In - Port 460
`
`Fig . 4b
`
`Page 6 of 24
`
`

`

`U . S . Patent
`
`Mar . 20 , 2018
`
`Sheet 5 of 8
`
`US 9 , 923 , 995 B1
`
`Execution Environment 502
`
`App Out
`Port 524
`
`Packet
`Handler
`516
`
`Net In - Port
`560
`
`Network Application 504
`Application Protocol Layer 520
`Sockets 518
`Option
`Option
`Attribute
`Handler 564
`
`Settings
`Service
`Service
`526
`
`App In - Port
`
`522 Port
`
`Packet
`Generator
`552
`
`ITP
`Policy
`550
`
`Net Out
`Port 554
`
`Connection
`State 558
`
`ITP Monitor
`556
`
`ITP Option
`Handler 562
`TCP Layer 506
`IP Layer 514
`Link Layer 512
`NIC 508
`Physical Layer
`510
`
`Fig . 5
`
`Page 7 of 24
`
`

`

`en men www .
`
`U . S . Patent
`
`Mar . 20 , 2018
`
`Sheet 6 of 8
`
`US 9 , 923 , 995 B1
`
`Second
`Node
`604
`
`n
`
`Network
`606
`
`RSS
`
`First Node
`602
`
`Fig . 6
`
`Page 8 of 24
`
`

`

`atent
`
`NIar . 20 , 2018
`
`Sheet 7 0f8
`
`US 9 , 923 , 995 B1
`
`Second
`Node
`604
`
`- Packet ( IH )
`
`- Packetf )
`?
`?
`?
`- Packet )
`
`_ 708 _
`708
`
`DetectIHO
`
`706 . 2
`
`First Node
`602
`
`- Idlelnfo
`
`1 _ 704
`704
`GeneratePacket ( ITI )
`706 , 1
`
`706 . h
`
`710 . 1
`
`Idle TimerSeto )
`
`710 . 2
`
`712
`
`IdlePop )
`
`Deactivate
`
`Fig . 7
`
`Page 9 of 24
`
`

`

`U . S . Patent
`
`Mar . 20 , 2018
`
`Sheet 8 of 8
`
`US 9 , 923 , 995 B1
`
`804
`2
`3
`
`0
`
`1
`
`4
`
`5
`
`8
`
`9 O 0
`
`1
`
`2
`
`3
`
`4
`
`5
`
`6
`
`7
`
`8
`
`O
`
`N
`
`V w
`
`4
`
`5
`
`6
`
`7
`
`8
`
`9
`
`O
`
`1
`
`W
`
`806
`
`-
`
`B
`
`ce Port
`
`+ +
`
`I
`
`tinati
`un
`? D
`
`Port
`
`Sequence Number
`Acknowledgment Number
`
`.
`
`| Data |
`TU A | P | R | S | F |
`| Offsetl Reserved | RICISISTY | I | |
`G | K | H | T | N | N |
`
`Window
`
`-
`
`-
`
`Checksum
`
`Options
`
`Urgent Pointer
`Padding
`I
`
`data
`
`-
`
`|
`
`802
`
`812
`
`7
`
`I ce Ad
`Source Address
`
`+
`
`I
`
`—
`
`zero
`
`+
`
`+
`
`+
`
`I
`
`-
`
`Destination Address
`TCP Length
`| PTCL
`LE 1
`
`+
`
`TEL
`
`AT
`
`822
`
`-
`
`-
`
`-
`
`+
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`- + -
`
`-
`
`KIND
`
`—
`
`I ??
`
`- -
`TP D
`
`1
`
`-
`
`0
`
`810
`It 1
`KIND | Length |
`820
`824
`-
`Figures are adapted from RFC 793
`
`814
`
`+
`
`-
`
`+
`
`1
`
`+
`
`—
`
`- +
`
`—
`
`978
`
`Fig . 8
`
`Page 10 of 24
`
`

`

`US 9 , 923 , 995 B1
`
`node providing TCP keep - alive can also indirectly detect
`METHODS , SYSTEMS , AND COMPUTER
`when a network is so congested that two nodes with end
`PROGRAM PRODUCTS FOR SHARING
`points in
`a TCP connection are effectively disconnected .
`INFORMATION FOR DETECTING AN IDLE
`Proponents argue that keep - alive can keep an inactive TCP
`TCP CONNECTION
`connection open . For example , some network nodes such as
`RELATED APPLICATIONS
`firewalls are configured to close TCP connections deter
`mined to be idle or inactive in order to recover resources .
`Keep - alive can prevent this . This is good from the perspec
`This application is a continuation - in - part of , and claims
`tive of the node sending keep - alive packets , but the keep
`priority to U . S . patent application Ser . No . 14 / 667 , 642 ,
`entitled “ METHODS , SYSTEMS , AND COMPUTER 10 alive packets might cause the firewall to waste resources and
`PROGRAM PRODUCTS FOR SELECTING
`A
`possibly block or terminate TCP connections with other
`RESOURCE BASED ON A MEASURE OF A PROCESS -
`nodes .
`ING COST , ” filed on Mar . 24 , 2015 which , in turn , is a
`TCP keep - alive and the debate of its benefits and faults
`continuation - in - part of and claims priority to U . S . patent
`have been around for decades . To date no mechanism to
`application Ser . No . 13 / 477 , 402 , entitled “ METHODS , 15 allow two TCP connection endpoints to cooperate in sup
`SYSTEMS , AND COMPUTER PROGRAM PRODUCTS
`porting the keep - alive option has been proposed or imple
`FOR SHARING INFORMATION FOR DETECTING AN
`mented . The broader issue of enabling cooperation and
`IDLE TCP CONNECTION , " filed May 22 , 2012 which is a
`negotiation between nodes in a TCP connection in detecting
`continuation of and claims priority to U . S . patent application
`and managing idle , underactive , and / or dead TCP connec
`Ser . No . 12 / 714 , 454 , entitled “ METHODS , SYSTEMS , 20 tions remains unaddressed .
`AND COMPUTER PROGRAM PRODUCTS FOR SHAR -
`Accordingly , there exists a need for methods , systems ,
`ING INFORMATION FOR DETECTING AN IDLE TCP
`and computer program products for sharing information for
`detecting an idle TCP connection .
`CONNECTION , " filed Feb . 27 , 2010 .
`U . S . patent application Ser . No . 12 / 714 , 454 , entitled
`SUMMARY
`“ METHODS , SYSTEMS , AND COMPUTER PROGRAM 25
`PRODUCTS FOR SHARING INFORMATION FOR
`The following presents a simplified summary of the
`DETECTING AN IDLE TCP CONNECTION , ” filed Feb .
`27 , 2010 is incorporated herein by reference in its entirety
`disclosure in order to provide a basic understanding to the
`reader . This summary is not an extensive overview of the
`for all purposes .
`This application is related to the following commonly 30 disclosure and it does not identify key / critical elements of
`owned U . S . Patent Applications , the entire disclosure of
`the invention or delineate the scope of the invention . Its sole
`which is incorporated by reference herein in its entirety for
`purpose is to present some concepts disclosed herein in a
`all purposes : application Ser . No . 12 / 714 , 063 filed on 2010
`simplified form as a prelude to the more detailed description
`Feb . 26 , entitled “ Methods , Systems , and Program Products
`that is presented later .
`An apparatus is provided comprising : a non - transitory
`for Detecting an Idle TCP Connection ” .
`memory storing instructions , and one or more processors in
`BACKGROUND
`communication with the non - transitory memory , wherein
`the one or more processors execute the instructions for :
`Various implementations of the transmission control pro -
`receiving , by a second node from a first node , a transmission
`tocol ( TCP ) in network nodes support a number of options 40 control protocol ( TCP ) - variant packet in advance of a TCP
`that are not negotiated or even communicated between or
`variant connection being established ; detecting an idle time
`among any of the nodes . Some of these options are included
`period parameter field in the TCP - variant packet ; identifying
`in the specification of the TCP while others are not . For
`metadata in the idle time period parameter field for an idle
`example , the TCP keep - alive option is supported by a
`time period that is detectable by the first node and , during
`number of implementations of the TCP . It is not , however , 45 which , no packet is communicated in the TCP - variant con
`part of the TCP specification as described in “ Request for
`n ection to keep the TCP - variant connection active ; and
`Comments " ( RFC ) document RFC 793 edited by John
`modifying , by the second node and based on the metadata ,
`Postel , titled “ Transmission Control Protocol , DARPA Inter -
`a timeout attribute associated with the TCP - variant connec
`net Program Internet Protocol Specification ” ( September
`tion .
`1981 ) , which is incorporated here in its entirety by refer - 50
`Another apparatus is provided comprising : a non - transi
`ence . One , both , or neither node including an endpoint in a
`tory memory storing instructions , and one or more proces
`TCP connection may support a keep - alive option for the
`sors in communication with the non - transitory memory ,
`connection . Each node supports or does not support keep
`wherein the one or more processors execute the instructions
`alive for a TCP connection based on each node ' s require -
`for : receiving idle information for detecting an idle time
`ments without consideration for the other node in the TCP 55 period , during which , no packet is communicated in a
`connection .
`transmission control protocol ( TCP ) - variant connection to
`With respect to the keep - alive option , some argue that it
`keep the TCP - variant connection active ; generating a TCP
`is unnecessary and that it can waste network bandwidth .
`variant packet including an idle time period parameter field
`Some of these critics point out that a keep - alive packet can
`identifying metadata for the idle time period based on the
`bring down a TCP connection . Further , since nodes includ - 60 idle information ; and sending , from a first node to a second
`ing endpoints in
`a TCP connection do not cooperate in
`node , the TCP - variant packet in advance of the TCP - variant
`supporting the keep - alive option , the nodes may operate in
`connection being established to provide the metadata for the
`opposition to one another and / or may waste resources by
`idle time period to the second node , for use by the second
`duplicating function , according to critics of the keep - alive
`node in modifying , based on the metadata , a timeout attri
`option .
`65 bute associated with the TCP - variant connection .
`Proponents of the keep - alive option claim there is a
`Yet another apparatus is provided comprising : a non
`benefit to detecting a dead peer / partner endpoint sooner . A
`transitory memory storing a network application ; and one or
`
`35
`
`Page 11 of 24
`
`

`

`US 9 , 923 , 995 B1
`
`connection . The system further includes the idle time period
`more processors in communication with the non - transitory
`option handler component configured for detecting a first
`memory , wherein the one or more processors execute the
`idle time period header , in the first packet , identifying
`network application such that the network application is
`metadata for a first idle time period , detectable by the first
`configured to operate in accordance with a non - transmission
`control protocol ( TCP ) protocol that operates above an 5 node , during which no TCP packet including data in a first
`Internet Protocol ( IP ) layer and below a hypertext transfer
`TCP data stream sent in the TCP connection by the second
`protocol ( HTTP ) application layer , the apparatus , when
`node is received by the first node . The system still further
`operating in accordance with the non - TCP protocol , config
`includes the option attribute handler component configured
`ured to : receive , by a second node from a first node , a
`for modifying , based on the metadata , by the second node a
`non - TCP packet during a setup of a non - TCP connection ; 10 timeout attribute associated with the TCP connection
`identify metadata , that specifies a number of seconds or
`In another aspect , a method for sharing information for
`minutes , in
`an idle time period parameter field in
`the
`detecting an idle TCP connection is described that includes
`non - TCP packet , for an idle time period that is detectable by
`receiving , by a first node , first idle information for detecting
`the first node , where , as a result of a detection of the idle
`time period , the non - TCP connection is subject to deactiva - 15
`a first idle time period during which no TCP packet includ
`ing data in a first data stream sent in the TCP connection by
`tion ; and determine , based on the metadata , a timeout
`attribute associated with the non - TCP connection ; wherein
`a second node is received by the first node . The method
`the apparatus , when operating in accordance with the TCP
`further includes generating a TCP packet including a first
`protocol , is configured to perform a three - way TCP hand -
`idle time period header identifying metadata for the first idle
`shake for establishing a TCP connection that is different than 20 time period based on the first idle information . The method
`still further includes sending the TCP packet in the TCP
`the non - TCP connection .
`Still yet another apparatus is provided comprising : a
`connection to the second node to provide the metadata for
`non - transitory memory storing a network application ; and
`the first idle time period to the second node . The method also
`one or more processors in communication with the non -
`includes detecting the first idle time period based on the first
`transitory memory , wherein the one or more processors 25 idle information . The method additionally includes deacti
`execute the network application such that the network
`vating the TCP connection in response to detecting the first
`application is configured to operate in accordance with a
`idle time period .
`non - transmission control protocol ( TCP ) protocol that oper -
`Still further , a system for sharing information for detect
`ates above an Internet Protocol ( IP ) layer and below a
`ing an idle TCP connection is described . The system
`hypertext transfer protocol ( HTTP ) application layer , the 30 includes an execution environment including an instruction
`apparatus , when operating in accordance with the non - TCP
`processing unit configured to process an instruction included
`protocol , configured to : receive idle information for use in
`in at least one of an idle time period policy component , a
`detecting an idle time period that results in a non - TCP
`packet generator component , a net out - port component , an
`connection being subject to deactivation ; generate , based on
`idle time period monitor component , and a connection state
`the idle information , a non - TCP packet including an idle 35 component . The system includes the idle time period policy
`time period parameter field identifying metadata that is
`component configured for receiving , by a first node , first idle
`specified in a number of seconds or minutes , and send , from
`information for detecting a first idle time period during
`a first node to a second node and for establishing the
`which no TCP packet including data in a first data stream
`non - TCP connection , the non - TCP packet to provide the
`sent in the TCP connection by a second node is received by
`metadata to the second node , for use by the second node in 40 the first node . The system includes the packet generator
`determining a timeout attribute associated with the non - TCP
`component configured for generating a TCP packet includ
`connection ; wherein the apparatus , when operating in accor -
`ing a first idle time period header identifying metadata for
`dance with the TCP protocol , is configured to perform a
`the first idle time period based on the first idle information .
`three - way TCP handshake for establishing a TCP connection
`The system still further includes the net out - port component
`45 configured for sending the TCP packet in the TCP connec
`that is separate from the non - TCP connection .
`Other methods and systems are also described for sharing
`tion to the second node to provide the metadata for the first
`information for detecting an idle TCP connection . In one
`idle time period to the second node . The system includes the
`aspect , a method includes receiving , by a second node from
`idle time period monitor component configured for detecting
`a first node , a first transmission control protocol ( TCP )
`the first idle time period based on the first idle information .
`packet in a TCP connection . The method further includes 50 The system includes the connection state component con
`detecting a first idle time period header , in the first packet ,
`figured for deactivating the TCP connection in response to
`identifying metadata for a first idle time period , detectable
`detecting the first idle time period .
`by the first node , during which no TCP packet including data
`BRIEF DESCRIPTION OF THE DRAWINGS
`in a first TCP data stream sent in the TCP connection by the
`second node is received by the first node . The method still 55
`further includes modifying , based on the metadata , by the
`Objects and advantages of the present invention will
`second node a timeout attribute associated with the TCP
`become apparent to those skilled in the art upon reading this
`description in conjunction with the accompanying drawings ,
`connection .
`Further , a system for sharing information for detecting an
`in which like reference numerals have been used to desig
`idle TCP connection is described . The system includes an 60 nate like or analogous elements , and in which :
`execution environment including an instruction processing
`FIG . 1 is a block diagram illustrating an exemplary
`unit configured to process an instruction included in at least
`hardware device included in and / or otherwise providing an
`one of a net in - port component , an idle time period option
`execution environment in which the subject matter may be
`handler component , and an option attribute handler compo -
`implemented ;
`nent . The system includes the net in - port component con - 65
`FIG . 2 is a flow diagram illustrating a method for sharing
`figured for receiving , by a second node from a first node , a
`information for detecting an idle TCP connection according
`first transmission control protocol ( TCP ) packet in a TCP
`to an aspect of the subject matter described herein ;
`
`Page 12 of 24
`
`

`

`US 9 , 923 , 995 B1
`
`units ( GPU ) , application - specific integrated circuits ( ASIC ) ,
`FIG . 3 is a flow diagram illustrating another method for
`and / or field programmable gate arrays ( FPGA ) .
`sharing information for detecting an idle TCP connection
`IPU 104 may access machine code instructions and data
`according to another aspect of the subject matter described
`via one or more memory address spaces in addition to the
`herein ;
`FIG . 4a and FIG . 4b show a block a diagram illustrating 5 physical memory address space . A memory address space
`an arrangement of components for sharing information for
`includes addresses identifying locations in an IPU memory .
`detecting an idle TCP connection according to a further
`IPU 104 may have more than one IPU memory . Thus , IPU
`104 may have more than one memory address space . IPU
`aspect of the subject matter described herein ;
`FIG . 5 is a block diagram illustrating an arrangement of
`104 may access a location in an IPU memory by processing
`components for sharing information for detecting an idle 10 an address identifying the location . The processed address
`TCP connection according to still another aspect of the
`may be in an operand of a machine code instruction and / or
`may be identified in a register or other portion of IPU 104 .
`subject matter described herein ;
`FIG . 6 is a network diagram illustrating an exemplary
`FIG . 1 illustrates virtual IPU memory 118 spanning at
`system for sharing information for detecting an idle TCP
`least part of physical IPU memory 106 and at least part of
`connection according to an aspect of the subject matter 15 persistent secondary storage 108 . Virtual memory addresses
`in a memory address space may be mapped to physical
`described herein ;
`FIG . 7 is a message flow diagram illustrating an exem
`memory addresses identifying locations in physical IPU
`plary data and execution flow for sharing information for
`memory 106 . An address space for identifying locations in
`detecting an idle TCP connection according to an aspect of
`a virtual IPU memory is referred to as a virtual memory
`20 address space ; its addresses are referred to as virtual
`the subject matter described herein ; and
`FIG . 8 is a diagram illustrating a structure for a packet
`memory addresses ; and its IPU memory is known as a
`virtual IPU memory or virtual memory . The term
`IPU
`transmitted via a network according to an aspect of the
`memory may refer to physical IPU memory 106 and / or
`subject matter described herein .
`virtual IPU memory 118 depending on the context in which
`DETAILED DESCRIPTION
`25 the term is used .
`Various types of memory technologies may be included in
`An exemplary device included in an execution environ -
`physical IPU memory 106 . Exemplary memory technologies
`include static random access memory ( SRAM ) and / or
`ment that may be configured according to the subject matter
`is illustrated in FIG . 1 . An execution environment includes
`dynamic RAM ( DRAM ) including variants such as dual data
`an arrangement of hardware and , optionally , software that 30 rate synchronous DRAM ( DDR SDRAM ) , error correcting
`may be further configured to include an arrangement of
`code synchronous DRAM ( ECC SDRAM ) , and / or RAM
`components for performing a method of the subject matter
`BUS DRAM ( RDRAM ) . Physical IPU memory 106 may
`described herein .
`include volatile memory as illustrated in the previous sen
`An execution environment includes and / or is otherwise
`tence and / or may include nonvolatile memory such as
`provided by one or more devices . An execution environment 35 nonvolatile flash RAM ( NVRAM ) and / or read - only memory
`may include a virtual execution environment including
`( ROM ) .
`Persistent secondary storage 108 may include one or more
`software components operating in a host execution environ
`ment . Exemplary devices included in or otherwise providing
`flash memory storage devices , one or more hard disk drives ,
`suitable execution environments for configuring according
`one or more magnetic disk drives , and / or one or more optical
`to the subject matter include personal computers , notebook 40 disk drives . Persistent secondary storage may include
`computers , tablet computers , servers , hand - held and other
`removable media . The drives and their associated computer
`mobile devices , multiprocessor devices , distributed devices ,
`readable storage media provide volatile and / or nonvolatile
`consumer electronic devices , and / or network - enabled
`storage for computer readable instructions , data structures ,
`devices . Those skilled in the art will understand that the
`program components , and other data for execution environ
`components illustrated in FIG . 1 are exemplary and may 45 ment 102 .
`Execution environment 102 may include software com
`vary by particular execution environment .
`FIG . 1 illustrates hardware device 100 included in execu -
`ponents stored in persistent secondary storage 108 , in
`remote storage accessible via a network , and / or in an IPU
`tion environment 102 which includes instruction - processing
`unit ( IPU ) 104 , such as one or more microprocessors ;
`memory . FIG . 1 illustrates execution environment 102
`physical IPU memory 106 including storage locations iden - 50 including operating system 120 , one or more applications
`tified by addresses in a physical memory address space of
`122 , other program code and / or data components illustrated
`IPU 104 ; persistent secondary storage 108 , such as one or
`by other libraries and subsystems 124 .
`more hard drives and / or flash storage media ; input device
`Execution environment 102 may receive user - provided
`adapter 110 , such as key or keypad hardware , keyboard
`information via one or more input devices illustrated by
`adapter , and / or mouse adapter ; output device adapter 112 , 55 input device 128 . Input device 128 provides input informa
`such as a display or audio adapter for presenting information
`tion to other components in execution environment 102 via
`to a user ; a network interface , illustrated by network inter -
`input device adapter 110 . Execution environment 102 may
`face adapter 114 , for communicating via a network such as
`include an input device adapter for a keyboard , a touch
`a LAN and / or WAN ; and a communication mechanism that
`screen , a microphone , a joystick , a television receiver , a
`couples elements 104 - 114 , illustrated as bus 116 . Elements 60 video camera , a still camera , a document scanner , a fax , a
`104 - 114 may be operatively coupled by various means . Bus
`phone , a modem , a network adapter , and / or a pointing
`116 may comprise any type of bus architecture , including a
`device , to name a few exemplary input devices .
`memory bus , a peripheral bus , a local bus , and / or a switch -
`Input device 128 included in execution environment 102
`ing fabric .
`may be included in device 100 as FIG . 1 illustrates or may
`IPU 104 is an instruction execution machine , apparatus , 65 be external ( not shown ) to device 100 . Execution environ
`or device . Exemplary IPUs include one or more micropro -
`ment 102 may include one or more internal and / or external
`cessors , digital signal processors ( DSP

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