`
`Page 1 of 2
`
`http://www.mwe.com/michael-e-shanahan/
`
`Go
`
`5 captures
`3 Feb 13 - 19 Jun 13
`
`JAN FEB MAR
`
`3
`
`2012 2013
`
`2014
`
`Michael E. Shanahan
`Partner
`
`New York
`T: +1 212 547 5785
`F: +1 212 547 5444
`
`Michael E. Shanahan is a partner in the law firm of McDermott Will & Emery LLP and is based in the Firm's New York office. Michael focuses his
`practice on intellectual property litigation including patents, trademarks, copyrights, unfair competition and misappropriation of trade secrets. He also
`has extensive experience counseling clients in transactional and patent prosecution matters regarding patents and other forms of intellectual property.
`
`As a registered patent attorney, Michael devotes a substantial part of his practice to counseling clients on enforcing, acquiring, evaluating, licensing
`and protecting intellectual property assets. He represents clients in litigation matters, licensing transactions and technology-related agreements, joint
`ventures, IPOs, mergers and acquisitions and provides IP-related business counseling. He conducts patent and intellectual property due diligence,
`patent assertion and infringement investigations including the evaluation and assessment of third party IP litigation for non-litigants, patent clearance
`analyses, right to use, validity and enforceability studies and provides patent infringement and non-infringement opinions. Michael further practices in
`both foreign and domestic patent prosecution matters including, reexamination, reissue, appeals and interference.
`
`Michael has represented clients in a wide range of technologies including Internet and storage system management software, interactive program
`guides, electronics, including analog and digital integrated circuits, microprocessors and programmable logic devices, financial and business methods
`including trading and quoting tools, complex physics technologies including nuclear magnetic resonance imaging, coriolis mass flow sensors and
`confocal microscopy, medical devices, gaming systems, chemical technologies including phenol production, telecommunications systems and fiber
`optics, mechanical and electro mechanical devices, manufacturing technologies, aerospace systems, gas turbines and construction tools.
`
`Michael authored “Preliminary Injunctions in Patent Cases” for IP Litigation Quarterly, June 2004 and “The Effects of Foreign Patent Proceedings on
`Patent Litigation in the United States” for The Intellectual Property Strategists, December 2004.
`
`Prior to entering the practice of law, Michael was an electrical engineer in the guidance systems division of a major defense contractor and worked on
`many high profile projects such as the International Space Station and F-22.
`
`Michael earned both a bachelor’s and master’s degree in electrical engineering, as well as a master’s degree in computer engineering. He is admitted
`to practice in New York and before the U.S. Supreme Court, the U.S. Court of Appeals for the Federal Circuit, the U.S. District Court for the Eastern
`District of New York , the U.S. District Court for the Southern District of New York and the United States Patent and Trademark Office.
`
`Education
`
`New York Law School, J.D., 2000
`Manhattan College, M.S., 1996
`Manhattan College, M.S., 1994
`Manhattan College, B.S., 1992
`
`Related Services
`e-Business - IP
`
`Intellectual Property
`
`IP Litigation
`
`Licensing
`
`https://web.archive.org/web/20130203072442/http://www.mwe.com/michael-e-shanahan/
`
`10/20/2014
`
`1
`
`AT&T - Exhibit 1004
`
`
`
`Michael E. Shanahan | Our People | McDermott Will & Emery
`
`Page 2 of 2
`
`Related Information
`Media Mentions
`
`© 2013 McDermott Will & Emery
`
`https://web.archive.org/web/20130203072442/http://www.mwe.com/michael-e-shanahan/
`
`10/20/2014
`
`2
`
`
`
`Brown Rudnick - Attorney Biography
`
`Page 1 of 2
`
`
`
`OCT NOV DECOCT NOV DEC
`
`
`
`2005 20062005 2006
`
`
`
`200200
`
`
`
`http://www.brownrudnick.com/bio/bio.asp?ID=406http://www.brownrudnick.com/bio/bio.asp?ID=406
`
`
`
`GoGo
`
`
`1 captures1 captures
`
`13 Nov 06 - 13 Nov 0613 Nov 06 - 13 Nov 06
`
`people
`
`biography search
`biographies
`
`Michael E. Shanahan
`Senior Associate
`Corporate
`
`home
`our firm
`people
`practices
`news/resources
`events
`careers
`public interest
`search
`contact us
`terms of use
`privacy policy
`site map
`
`
`
`1313
`
`PRINTER FRIENDLY VERSION›
`DOWNLOAD vCARD›
`
`Contact
`P: 212.209.4978
`F: 212.938.2832
`mshanahan@brownrudnick.com
`New York, NY
`
`Practice Focus
`Intellectual Property
`Intellectual Property Litigation
`Licensing and Strategic Alliances
`Emerging Growth Companies
`Information Technology
`
`Education
`New York Law School
`J.D., 2000
`
`Manhattan College
`M.S., Electrical Engineering, 1996
`
`M.S., Computer Engineering, 1994
`B.S., Electrical Engineering, 1992
`Coursework, Chemical Engineering
`
`Biography
`
`Mr. Shanahan practices in the area of intellectual property
`with an emphasis on intellectual property litigation
`including, patents, trademarks, copyrights, unfair
`competition and misappropriation of trade secrets. He
`also has extensive experience counseling clients in
`transactional and patent prosecution matters regarding
`patents and other forms of intellectual property.
`
`As a registered patent attorney, Mr. Shanahan devotes a
`substantial part of his practice to counseling clients on
`enforcing, acquiring, evaluating, licensing and protecting
`intellectual property assets. He represents clients in
`litigation matters, licensing transactions and technology-
`related agreements, joint ventures, IPOs, mergers and
`acquisitions and other IP-related transactions and
`provides IP-related business counseling. He conducts
`patent and intellectual property due diligence, patent
`assertion and infringement investigations including the
`evaluation and assessment of third party IP litigation for
`non-litigants, patent clearance analyses, right to use,
`validity and enforceability studies and provides patent
`infringement and non-infringement opinions. Mr.
`Shanahan further practices in both foreign and domestic
`patent prosecution matters including, reexamination,
`reissue, appeals and Interference practice.
`
`Mr. Shanahan has represented clients in a wide range of
`technologies such as computer software including Internet
`and storage system management software, interactive
`program guides, electronics, including analog and digital
`integrated circuits, microprocessors and programmable
`logic devices, financial and business methods including
`trading and quoting tools, complex physics technologies
`including nuclear magnetic resonance imaging, coriolis
`mass flow sensors and confocal microscopy, medical
`devices, gaming systems, chemical technologies including
`phenol production, telecommunications systems and fiber
`optics, mechanical and electro mechanical devices,
`manufacturing technologies, aerospace systems, gas
`turbines and construction tools.
`
`Prior to entering the practice of law, Mr. Shanahan was an
`electrical engineer in the guidance systems division of a
`
`https://web.archive.org/web/20061113151348/http://www.brownrudnick.com/bio/bio.asp...
`
`10/20/2014
`
`3
`
`
`
`Brown Rudnick - Attorney Biography
`
`Page 2 of 2
`
`major defense contractor and worked on many high
`profile projects such as the International Space Station
`and F-22.
`
`Representative Matters
`• Agilent Technologies, Inc. v. Micromuse Inc., Southern
`District of New York, 1:04-CV-3090 (case involving
`network management technologies).
`
`• International Gaming Technologies v. Alliance Gaming
`Inc., U.S. District Court of Las Vegas ( jury trial, case
`involving video poker machines).
`
`• Via Technologies v. Intel Corp., Western District of
`Texas, A-01-CA-02-SS (case involving numerous
`microprocessor patents).
`
`• Texas Instruments, Inc. v. Linear Technology Corp.,
`Eastern District of Texas 2-01-CV4, (case involving
`semiconductor manufacturing processes).
`
`• Toy v. Ameritrade Holding Corp. et al., District of New
`Jersey , 02-1318 (case involving online stock trading
`technology).
`
`• Micromotion, Inc. v. Endress & Hauser, Inc., District
`Court of Colorado, 98-N-36 (case involving mass flow
`sensors).
`
`• Successfully argued before the EPO in securing the
`patentability of computer inventions (July 2006).
`
`Publications
`• “Preliminary Injunctions in Patent Cases” IP Litigation
`Quarterly, June 2004
`
`• “The Effects of Foreign Patent Proceedings on Patent
`Litigation in the United States” The Intellectual Property
`Strategist, December 2004
`
`Bar Admissions & Memberships
`• Admitted, New York Bar
`• Admitted, United States Supreme Court, United States
`Court of Appeals for the Federal Circuit, United States
`District Court for the Eastern District of New York, United
`States District Court for the Southern District of New York
`• Registered Patent Attorney, U.S. Patent and Trademark
`Office
`
`Copyright © 2006 Brown Rudnick Berlack Israels LLP. All Rights Reserved
`
`https://web.archive.org/web/20061113151348/http://www.brownrudnick.com/bio/bio.asp...
`
`10/20/2014
`
`4
`
`
`
`(12) INTERNATIONAL APPLICATION PUBLISHED UNDER THE PATENT COOPERATION TREATY (PCT)
`
`(19) World Intellectual Property Organization
`International Bureau
`
`(43) International Publication Date
`
`20 December 2001 (20.12.2001) lllllllfllllllI]IllllllllllllllllllllllfllllllllllllIllllllllIIIIIIIIIIIIIIIII
`
`(10) International Publication Number
`WO 01/97438 A2
`
`(51) International Patent CIassification’:
`
`H04L 1/18
`
`(21) International Application Number:
`
`PCT/USOI/19355
`
`(22) International Filing Date:
`
`14 June 2001 (14.06.2001)
`
`(25) Filing Language:
`
`(26) Publication Language:
`
`English
`
`English
`
`(30) Priority Data:
`09/594,443
`
`14 June 200004062000)
`
`US
`
`(71) Applicant: NOKIA INC. [US/US]; 6000 Connection
`Drive, MS 1-5-744, Irving, TX 75119 (US).
`
`(72) Inventors: LI,Xiang; Building No. 27, Room No. 7, Cap-
`ital Normal University, 105 Xisanhuan North Road, Beijing
`(CN). WU, Jing; 40 Sweelland Avenue, Ottawa, Ontario
`
`KIN 7T6 (CA). CHENG, Shiduan; Flat 1003, Apartment
`Building of BUPT, Jing Tu Si, Hai Dian District, Beijing
`10(X)44 (CN). NIA, Jian; 3361 Capital Paradise, Beijing
`(CN).
`
`(74)
`
`(31)
`
`Agents: ROLNIK, Robert, C. et al.; Nokia Inc., 6000
`Connection Drive, MS l-4~755, Irving, TX 75119 (US).
`
`Designated States (national): AE, AG, AL, AM, AT, AU,
`AZ, BA, BB, BG, BR, BY, BZ, CA, CH, CN, CR, CU, CZ,
`DE, DK, DM, DZ, EE, ES, FI, GB, GD, GE, GH, GM, HR,
`HU, ID, H., IN, IS, JP, KE, KG, KP, KR, KZ, LC, LK, LR,
`LS, LT, LU, LV, MA, MD, MG, MK, MN, MW, MX, M2,
`NO, NZ, PL, PT, RO, RU, SD, SE, 80, SI, SK, SL, TJ, TM,
`TR, TI, TZ, UA, U6, U2, VN, YU, ZA, ZW.
`
`(34)
`
`Designated States (regional): ARIPO patent (GH, GM,
`KE, LS, MW, MZ, SD, SL, SZ, TZ, UG, ZW), Eurasian
`patent (AM, AZ, BY, KG, KZ, MD, RU, TJ, TM), European
`patent (AT, BE, CH, CY, DE, DK, ES, FI, FR, GB, GR, IE,
`
`[Continued on next page]
`
`(54) Title: PERFORMANCE ENHANCEMENT OF TRANSMISSION CONTROL PROTOCOL (TCP) FOR WIRELESS NET-
`WORK APPLICATIONS
`
`(57) Abstract: A new Fast Recovery Plus (FR+) mechanism, and associated
`method, for wireless and/or mobile network applications to avoid network eon-
`gestion in a TCP/IP packet-switched network. A method of flow control and
`congestion avoidance congestion in a network comprises the steps of:
`trans-
`mitting, at a source node, data packets to a destination node, via at least an
`intermediate node; receiving, at the destination node, data packets transmitted
`from the source node, via the intermediate node, and generating a duplicate
`ACK back to the source node to inform the source node that a data packet was
`received out-of—order in the network and serves as an indication that a data
`
`packet has been lost; upon receipt of a designated number of duplicate ACKs,
`at the source node, determining that a data packet has been lost; initializing a
`counter, at the source node, and recording acongestion window CWND, a slow
`start threshold Ssthresh, and a maximal sequence number SN that has been sent
`into the network; upon receipt of a next duplicate ACK, at the source node,
`recording its acknowledged sequence number ACK SN; determining, at the
`source node, if the acknowledged sequence number ACK SN is no more than
`a recorded sequence number SN; otherwise, incrementing the counter, at the
`source node, and re-transmitting a lost packet; if the acknowledged sequence
`number ACK SN is no more than the recorded sequence number SN, determin-
`ing, at the source node, if the packet loss is due to transmission error; and if
`the packet loss is due to the transmission error, setting, at the source node, the
`slow start threshold Ssthresh to Max(CWND, (Ssthresh + CWND)/'2), wherein
`CWND and Ssthresh exhibit values recorded.
`
`
`SET COUNTER T0 0
`
`lNlTlATlON‘. RECORD
`
`CWND, Ssthresh, MAX
`SEQUENCE NUMBER SN;
`
`
`
`RECEIVE ACK, AND
`RECORD ITS
`
`AGKNOWLEDGED
`
`
`SEQUENCE NUMBER
`ADD COUNTER. lF
`
`
`
`ACK_SN
`ONE PACKEI’ lS
`RETHANSMIITED
`
`
`
`
`WO01/97438A2
`
`5
`
`
`
`WO 01/97438 A2
`
`lfllJIlllllfllllIlfllllllllIllllllllllllllllllllllllllllllllllllllllllllllllllll
`
`IT, LU, MC, NL, PT, SE, TR), OAPI patent (BF, BJ, CF,
`CG, CI, CM, GA, GN, GW, ML, MR, NE, SN, TD, TG).
`
`Published:
`
`— without international search report and to be republished
`upon receipt ofthat report
`
`For two-letter codes and other abbreviations, refer to the "Guid-
`ance Notes on Codes andAbbreviations ” appearing at the begin-
`ning ofeach regular issue ofthe PCT Gazette.
`
`6
`
`
`
`WO 01/97438
`
`PCT/U501/l9355
`
`PERFORMANCE ENHANCEMENT OF
`TRANSMISSION CONTROL PROTOCOL (TCP) FOR
`WIRELESS NETWORK APPLICATIONS
`
`BACKGROUND OF THE INVENTION
`
`The present invention relates to a serial of transfer protocols for high-quality and
`
`high-speed data transfer in data networks , especially wireless or mobile networks, and more
`
`particularly, relates to performance enhancement of Transmission Control Protocol (TCP) for
`
`wireless network applications.
`
`Related Art
`
`'
`
`, A data network is a collection of network devices, or nodes interconnected by point-to-
`
`point links. Communication links may be wired (i.e., optical fiber) or wireless (i.e., infrared or
`
`radio-frequency) for supporting a number of logical point-to-point channels. Each channel may
`
`be a bi-directional communication path for allowing commands and message data to flow
`
`between two network devices or nodes within the data network. Network devices or nodes may
`
`be categorized as either end systems or routers, which are also known as intermediate systems
`
`or communication gateways. End systems may include PCs, workstations, mainframes, file
`
`servers, storage devices and other types of computers. Router may include a number of
`
`communication links for fonNarding data arriving over one link onto another link for transmission
`
`to an end system or another router.
`
`Generally, end systems both send data to other end stations on the data network and
`
`receive data sent by other end systems on the data network. When an end system serves as a
`
`sender of data, it is referred to as a source for that data; whereas, when such an end station
`
`serves as a receiver of data, it is referred to as a destination for the data. Typically, end
`
`systems may act as both sources and destinations depending upon whether they are sending or
`
`receiving data. When acting as a source, the end system sends data in the form of messages
`
`over a communication link to a router for transferring the messages to an end system or another
`
`router.
`
`7
`
`
`
`WO 01/97438
`
`PCT/U501/19355
`
`2
`
`Each message may comprise a sequence of information bits. Typically, however, the
`
`messages sent over the data network are not sent as a continuous, uninterrupted stream of bits.
`
`Rather, they are divided up into smaller blocks of information called packets, which are then
`
`transmitted individually. Each packet has a predetermined maximum length. In addition to a
`
`data field which contains the data to be transferred, a packet also includes a header field which
`
`contains control information such as format, identifiers which indicate what portion of the
`
`message is contained in the packet, the source of the packet and the intended destination of the
`
`packet. When the packets which together contain a message reach the destination, the
`
`destination processes them by assembling their data fields into proper order to reconstruct the
`
`full message.
`
`One important design objective in data networks is controlling the flow of packets so that
`
`such packets may not be transmitted at a faster rate than they can be processed by the routers
`
`through which the packets may pass or by the destinations. Even in the simplest data network
`
`consisting of two end systems interconnected by a router, for example, the source may flood the
`
`destination if it transmits packets faster than they can be processed by the destination. In more
`
`complicated networks consisting of many end systems, numerous routers and alternative
`
`communication paths between the end systems, the likelihood of problems from excess
`
`communication traffic is significantly greater. This becomes especially true as the number of
`
`active end systems on the network increases and if communication speeds of the equipment
`
`within the network are mismatched. A mismatch may exist if, for example, a router cannot
`
`transfer packets as fast as they are being sent to it by the source. A mismatch may also exist
`
`between the speed at which the link can transmit packets, namely the link speed, and the rate at
`
`which the router can transfer packets. Predictably, as the complexity of the network increases,
`
`achieving an acceptable traffic control also becomes more difficult.
`
`On most networks, including TCP/IP packet-switched networks in which Transmission
`
`Control Protocol (TCP) [RFC 793, September 1981] may be implemented to ensure high-speed
`
`and high-quality data transfer in the Internet, at least two basic mechanisms are normally used
`
`for dealing with excess traffic arriving at a destination. One mechanism involves the use of
`
`8
`
`
`
`WO 01/97438
`
`PCT/USOl/l9355
`
`3
`
`buffers and the other involves flow control. In buffered systems, both the routers and the end
`
`systems are provided with buffer memory to handle overloads. Arriving traffic which exceeds
`
`the processing rate of the device is temporarily stored in the buffer memory until the device can
`
`process it. Buffers offer a satisfactory solution to excess traffic problems only if the overload is
`
`transitory.
`
`If the overload persists for too long, the buffers may become full after which the
`
`additional packets are rejected or destroyed.
`
`The other mechanism, generally referred to as flow control, deals with the allocation of
`
`resources at the destination, such as memory and processing. Generally, in accordance with
`
`flow control, the destination sets a limit on the rate at which each source sending data to the
`
`destination may transmit that data. The sources and the destinations coordinate the transfer of
`
`data by an exchange of messages containing requests and acknowledgments. Before the
`
`source starts sending packets, it will send a request to the destination seeking permission to
`
`begin transmission. In response to the request, the destination sends a message containing an
`
`identification of the number of packets the source may dispatch toward the destination without
`
`further authorization. This number is commonly referred to as the window size. The source then
`
`proceeds to transmit the authorized number of packets toward the destination and waits for the
`
`destination to verify their receipt. After the destination successfully receives a packet, it sends a
`
`message back to the source containing an acknowledgment indicating the successful receipt of
`
`the packet and, in some cases, authorizing the source to send another packet. in this way, the
`
`number of packets on the network traveling from the source toward the destination will never be
`
`more than the authorized window size.
`
`Neither of these mechanisms, however, satisfactorily deals with the distribution of traffic
`
`within the network. Even with these mechanisms in place, on a busy network it is likely that
`
`many sources will simultaneously send traffic over the network to more than one destination. If
`
`too much of this traffic converges on a single router in too short a time, the limited buffer
`
`capacity of the router will be unable to cope with the volume and the router will reject or destroy
`
`the packets. When this happens, the network is said to be congested.
`
`Then the network is congested, network performance degrades significantly. The
`
`9
`
`
`
`WO 01/97438
`
`PCT/USOlll9355
`
`4
`
`affected sources have to retransmit the lost or rejected packets. Re-transmissions, however,
`
`necessarily use network resources such as buffer storage, processing time and link bandwidth
`
`to handle old traffic thereby leaving fewer resources for handling those portions of the
`
`messages still waiting to be transmitted for the first time. When that occurs, network delays
`
`increase drastically and network throughput drops. Indeed, since some network resources are
`
`being dedicated to handling re-transmissions at a time when the network is already
`
`experiencing a heavy load, there is a substantial risk of the congestion spreading and locking up
`
`the entire network.
`
`A variety of alternative approaches exist for dealing with network congestion. Generally,
`
`the approaches fall into two categories. One category involves placing limitations on the amount
`
`of traffic which will be permitted on the network at any given time. Examples include the
`
`preallocation of buffers at the routers to ensure that memory is available to store arriving
`
`packets until they can be forwarded. The other category involves methods of limiting the spread
`
`of congestion once it occurs and then extricating the network from its congested state. The
`
`second category of approaches for dealing with network congestion is commonly referred to as
`
`congestion control. Congestion control typically involves feedback which signals the onset of
`
`congestion and instructs end systems to decrease the rate at which they initiate transmission of
`
`packets.
`
`Currently, there are several schemes to avoid congestion and unnecessary delay for
`
`packets from low-bandwidth delay-sensitive TCP connections in the TCP/IP networks. Such
`
`proposals are described, for example, in M. Allman, V. Paxson, W. Stevens, “TCP Congestion
`
`Control", RF02581, April 1999; Mathis, M., Mahdavi, J., Floyd, 8., and Romanow, A., “TCP
`
`Selective Acknowledgement Options", RFC 2018, Oct. 1996; S. Floyd and T. Henderson, "The
`
`NewReno Modification to TCP’s Fast Recovery Algorithm”, RF02582, April 1999; Stevens, W.,
`
`" TCP Slow Start, Congestion Avoidance, Fast Retransmit, and Fast Recovery Algorithms“, RFC
`
`2001, January 1997; K Ramakrishnan, S. Floyd, "A Proposal To Add Explicit Congestion
`
`Notification (ECN) To IP’, RFC 2481, April 1999; and Prasad Bagal, Shivkumar Kalyanaraman,
`
`Bob Packer, “Comparative study of RED, ECN and TCP Rate Control’, Technical Report, March
`
`10
`
`10
`
`
`
`WO 01/97438
`
`PCT/USOlll9355
`
`1999.
`
`De facto standard implementations of TCP congestion control algorithms are described
`
`in RFC 2581 and RFC 2582, which employs both Fast Retransmit algorithm and Fast Recovery
`
`algorithm (FRFR), also known as Reno algorithms. These two algorithms rely on counting
`
`“duplicate ACKs” — TCP immediate acknowledge sent from the destination in reSponse to each
`
`additional data segment received following missing data. Fast Retransmit and Fast Recovery
`
`(FRFR) algorithms are intended to preserve self-clock during recovery from a lost data segment.
`
`Fast Retransmit algorithm uses duplicate ACKs to detect the loss of a data segment. When
`
`three duplicate ACKs are detected, TCP assumes that a data segment has been lost and
`
`retransmit the lost packet, without waiting for a retransmission timer to expire. The Fast
`
`Recovery algorithm attempts to estimate how much data remains outstanding in the network by
`
`counting duplicate ACKs. The Fast Recovery algorithm artificially inflates the congestion
`
`window "CWND” (i.e., TCP state variable that limits the amount of data a TCP source can send)
`
`on each duplicate ACK that is received, causing new data to be transmitted as the congestion
`
`window "CWND" becomes large enough. Fast Recovery algorithm allows one (halved) window
`
`of new data to be transmitted following a Fast Retransmit. After the lost packet has been
`
`acknowledged, the congestion window "CWND" should be reduced and the TCP source would
`
`come into the state of congestion avoidance. However, Reno algorithms and current
`
`modifications of Fast Retransmit/Fast Recovery (FRFR) algorithm are oriented to wired
`
`networks with very small transmission error, since the TCP assumes that the packet loss due to
`
`damage is extremely rare and the overwhelming majority of lost packets is due to congestion.
`
`For wireless networks, however, TCP assumption is generally false — most lost packets
`
`are due to errors that occur in the transmission of packets over error-prone media such as
`
`infrared or radio-frequency links, as opposed to network congestion. When these transmission
`
`errors occur, known asBit Error Rate (BER), TCP mistakenly assumes that the network is
`
`congested and dramatically reduces its transmission of old and new packets. For example,
`
`whenever a packet is lost, TCP automatically resets its current window and threshold, then traps
`
`in the state of Slow-Start frequently, which may sharply degrade the throughput of connection.
`
`11
`
`11
`
`
`
`W0 01/97438
`
`PCT/U501/l9355
`
`6
`
`Although other congestion control algorithms are available to minimize the impact of losses from
`
`a throughput perspective, none is intended to distinguish the packet loss due to Bit Error Rate
`
`(BER) from loss due to congestion. As a result, TCP would still have to avoid the congestion
`
`that may not exist at all.
`
`Accordingly, there is a need for a new and efficient mechanism provided to improve the
`
`TCP performance in high-speed packet-switched networks, especially wireless or mobile
`
`networks. A new algorithm is needed to distinguish congestion packets loss from individual
`
`packet loss due to Bit Error Rate (BER), to reject coming into Slow-Start and facilitate fast
`
`recovery when lost packets are due to Bit Error Rate (BER), and to reduce its sending speed as
`
`normal TCP upon occurrence of congestion so as to improve the throughput of connection in
`
`wireless and/or mobile networks.
`
`SUMMARY OF THE lNVENTION
`
`Accordingly, various embodiments of the present invention are directed to a new
`
`recovery mechanism, known as Fast Recovery Plus (FR+) algorithms and associated method,
`
`for wireless and/or mobile network applications to distinguish congestion packets loss from
`
`individual packet loss due to Bit Error Rate (BER), to advance fast data recovery when lost
`
`packets are due to Bit Error Rate (BER), and to reduce its sending speed as normal TCP upon
`
`occurrence of congestion so as to improve the throughput of connection while effectively
`
`avoiding network congestion in a TCP/IP packet-switched network such as wireless and/or
`
`mobile networks. Such enhanced Recovery Plus (FR+) algorithms may be installed or
`
`integrated into a host and/or a computer readable medium for use in a host for promoting fast
`
`data recovery while effectively controlling network congestion in packet-switched networks,
`
`especially wireless or mobile networks.
`
`In accordance with an embodiment of the present invention, a method of flow control
`
`and congestion avoidance congestion in a network comprises the steps of: transmitting, at a
`
`source node, data packets to a destination node, via at least an intermediate node; receiving, at
`
`the destination node, data packets transmitted from the source node, via the intermediate node.
`
`12
`
`12
`
`
`
`WO 01/97438
`
`PCT/USOl/19355
`
`7
`
`and generating a duplicate ACK back to the source node to inform the source node that a data
`packet was received out-of-order in the network and serves as an indication that a data packet
`
`has been lost; upon receipt of a designated number of duplicate ACKs, at the source node,
`
`determining that a data packet has been lost; initializing a counter, at the source node, and
`
`recording a congestion window CWND, a slow start threshold Ssthresh, and a maximal
`
`sequence number SN that has been sent into the network; upon receipt of a next duplicate
`
`ACK, at the source node, recording its acknowledged sequence number ACK_SN; determining,
`
`at the source node, if the acknowledged sequence number ACK_SN is no more than a recorded
`
`sequence number SN; otherwise, incrementing the counter, at the source node, and re-
`
`transmitting a lost packet; if the acknowledged sequence number ACK_SN is no more than the
`
`recorded sequence number SN, determining if the packet loss is due to a transmission error;
`
`and if the packet loss is due to the transmission error, setting, at the source node, the slow start
`
`threshold Ssthresh to Max(CWND, (Ssthresh + CWND)/2), wherein said CWND and Ssthresh
`
`exhibit values previously recorded.
`
`Specifically, the slow start threshold Ssthresh is set to no more than Max(FlightSize/Z,
`
`2*SMSS), wherein said FlightSize indicates the amount of outstanding data in the network, and
`
`said SMSS indicates the size of a largest data segment that can be transmitted. The counter is
`
`set to record the number of times of packet re-transmission invoked by the duplicate ACKs.
`
`In
`
`addition, packet loss is due to the transmission error, when the value of the counter is no more
`
`than a pre-defined packet threshold indicating the threshold of packet loss. Otherwise, packet
`
`loss is due to congestion in which case the congestion window CWND is reduced to halve, and
`
`a slow start threshold Ssthresh is reduced to the congestion window to slow a transmission rate
`
`to avoid congestion in the network.
`
`In accordance with another embodiment of the present invention, a data network for
`
`wireless and/or mobile network applications may comprise a source node for transmitting data
`
`packets; a destination node for receiving the data packets from the source node and generating
`
`duplicate ACKs when the arrival of data packets is out—of—order; and at least one intermediate
`
`node disposed between said source node and said destination node; wherein said source node
`
`13
`
`13
`
`
`
`WO 01/97438
`
`PCT/USOl/19355
`
`8
`
`includes a Fast l=tecovery Plus (FR+) algorithm which, when activated upon receipt duplicate
`
`ACKs, performs the following: initializing a counter and recording a congestion window CWND,
`
`a slow start threshold Ssthresh, and a current maximal sequence number SN that has been
`
`sent into the network; upon receipt of a next duplicate ACK, recording its acknowledged
`
`sequence number ACK_SN; determining if the acknowledged sequence’number ACK_SN is no
`
`less than a recorded sequence number SN; if the acknowledged sequence number ACK_SN is
`no less than the recorded sequence number SN, incrementing the counter, and re-transmitting a
`
`lost packet; if the acknowledged sequence number ACK_SN is no more than the recorded
`
`sequence number SN, determining if the packet loss is due to a transmission error; and if the
`
`packet loss is due to the transmission error, setting the slow start threshold Ssthresh to
`
`Max(CW ND, (Ssthresh + CWND)/2), wherein said CWND and Ssthresh exhibit values
`
`previously recorded
`
`In accordance with yet another embodiment, the present invention relates to a computer
`
`readable medium having an enhanced Fast Recovery Plus (FR+) algorithm stored therein for
`
`wireless network applications, when executed by a host system, performs the following: upon
`
`receipt of duplicate ACKs from a remote system, determining that a data packet has been lost;
`
`initializing a counter, and recording a congestion window CWND, a slow start threshold
`
`Ssthresh, and a maximal sequence number SN that has been sent into the network; upon
`
`receipt of a next duplicate ACK, recording its acknowledged sequence number ACK_SN;
`
`determining if the acknowledged sequence number ACK_SN is no more than a recorded
`
`sequence number SN; if the acknowledged sequence number ACK_SN is more than the
`
`recorded sequence number SN, incrementing the counter, and re-transmitting a lost packet; if
`
`the acknowledged sequence number ACK_SN is no more than the recorded sequence number
`
`SN, determining if the packet loss is due to a transmission error; and if the packet loss is due to
`
`the transmission error, setting the slow start threshold Ssthresh to Max(CWND, (Ssthresh +
`
`CWND)/2), wherein said CW ND and Ssthresh exhibit values previously recorded.
`
`The present invention is more specifically described in the following paragraphs by
`
`reference to the drawings attached only by way of example.
`
`14
`
`14
`
`
`
`WO 01/97438
`
`P