Re: [tcpm] Discussion -- Pause/Resume mechanism on TCP ?

Lars Eggert <> Tue, 20 April 2010 10:20 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id AAF8928C1F0 for <>; Tue, 20 Apr 2010 03:20:36 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -6.509
X-Spam-Status: No, score=-6.509 tagged_above=-999 required=5 tests=[AWL=0.090, BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id p0qQDzj-1CoQ for <>; Tue, 20 Apr 2010 03:20:33 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id 5FC9D28C1F3 for <>; Tue, 20 Apr 2010 03:10:28 -0700 (PDT)
Received: from ( []) by (Switch-3.3.3/Switch-3.3.3) with ESMTP id o3KA9ptU021764; Tue, 20 Apr 2010 13:10:11 +0300
Received: from ([]) by with Microsoft SMTPSVC(6.0.3790.3959); Tue, 20 Apr 2010 13:09:37 +0300
Received: from ([]) by over TLS secured channel with Microsoft SMTPSVC(6.0.3790.3959); Tue, 20 Apr 2010 13:09:27 +0300
Received: from ( []) by (Switch-3.3.3/Switch-3.3.3) with ESMTP id o3KA9PxP012756 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 20 Apr 2010 13:09:25 +0300
X-Virus-Status: Clean
X-Virus-Scanned: clamav-milter 0.96 at
Mime-Version: 1.0 (Apple Message framework v1078)
Content-Type: multipart/signed; boundary="Apple-Mail-23--754301307"; protocol="application/pkcs7-signature"; micalg="sha1"
From: Lars Eggert <>
In-Reply-To: <00d601cae06c$5a4324c0$>
Date: Tue, 20 Apr 2010 13:09:18 +0300
Message-Id: <>
References: <00d601cae06c$5a4324c0$>
To: Xiangsong Cui <>
X-Mailer: Apple Mail (2.1078)
X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.3 ( []); Tue, 20 Apr 2010 13:09:18 +0300 (EEST)
X-OriginalArrivalTime: 20 Apr 2010 10:09:27.0114 (UTC) FILETIME=[8F278AA0:01CAE071]
X-Nokia-AV: Clean
Cc: "" <>
Subject: Re: [tcpm] Discussion -- Pause/Resume mechanism on TCP ?
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: TCP Maintenance and Minor Extensions Working Group <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Tue, 20 Apr 2010 10:20:36 -0000


are you aware of the following research paper?

  author    = {Tom Goff and
               James Moronski and
               Dhananjay S. Phatak and
               Vipul Gupta},
  title     = {Freeze-TCP: A True End-to-End TCP Enhancement Mechanism
               for Mobile Environments},
  booktitle = {INFOCOM},
  year      = {2000},
  pages     = {1537-1545},
  ee        = {},
  bibsource = {DBLP,}


On 2010-4-20, at 12:32, Xiangsong Cui wrote:

> Hi folks,
> I'm thinking such a question, can we, or should we add a pause/resume mechanism on TCP?
> Current TCP senders understand all packet losses as indications of congestion, but this is not always true, especially in the 
> scenarios where wireless link is part of the network. Compared with wire link, wireless link is less stable, with higher bit error 
> rate and more disconnection. And additionally, packet error and link disconnection can not be indicated by current TCP protocol and 
> extensions, do I miss anything?
> So I think maybe pause/resume mechanism is helpful to this situation. The outline of pause/resume mechanism is as follows:
> * Pause/Resume indication may be transmitted by the receiver or the middle-box. Like ECN on TCP, middle-box may also send 
> Pause/Resume indication. The use cases may be (a) wireless host moves to a tunnel or a shadow where the radio coverage is lost, and 
> later returns to the radio coverage; (b) the router in the TCP path detects the next hop is invalid (by BFD or other mechanism), and 
> later detects the re-connection to the next hop; (c) the wireless host (i.e. the receiver) doesn't want to accept too many traffic. 
> A scenario for this use case is a user watches TCP video by wireless device, the user/device doesn't want buffer too many video 
> stream because maybe the user only watch a little begin part of the video, but the unwanted video would waste wireless bandwidth and 
> user's money. So the device does receiving-buffering-pausing-resuming, following the user's schedule.
> * Pause/Resume indication is directional, that means the receiver of Pause should stop transmit traffic packets but the sender of 
> Pause may transmit traffic packets, unless the peer host also transmits a Pause indication.
> * When the TCP sender receives the Pause indication, it should keep the cwind value, stop transmitting traffic packets, and if the 
> retransmission timer is running, the sender should also stop the timer. The TCP sender should accept received incoming TCP packet 
> (both traffic packet and control packet) as normal, that means the sender can adjust the receive window, mark the transmitted 
> packets as acknowledged, and so on.
> Another consideration is the Pause timer, the TCP sender should start the pause timer when it receives the Pause indication.
> * After the TCP receiver transmits the Pause indication, it may accept the received traffic packets or discard the packets, but the 
> receiver should accept TCP control packets.
> * When the TCP sender receives the Resume indication, it should begin to transmit traffic packets (if there are) as normal, if there 
> are transmitted packet(s) in the queue, it should also restart the retransmission timer...
> If the Pause timer is running, the TCP sender should kill the timer as soon as it receives the Resume indication.
> * If the TCP sender doesn't receive the Resume indication before the Pause timer expires, it should close the TCP connection.
> The intention of Pause/Resume is to avoid the violent change on the TCP congestion window, does this idea make sense?
> If it builds interest, I am going to write a draft, anybody who like to co-work on this topic?
> Thanks and best regards
> Xiangsong 
> _______________________________________________
> tcpm mailing list