Re: [ftpext] End byte of transfer in FTP

Tatsuhiro Tsujikawa <> Wed, 08 December 2010 12:33 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 865DC3A6907 for <>; Wed, 8 Dec 2010 04:33:27 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -3.179
X-Spam-Status: No, score=-3.179 tagged_above=-999 required=5 tests=[AWL=0.420, BAYES_00=-2.599, RCVD_IN_DNSWL_LOW=-1]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id EUVLij7q3r2L for <>; Wed, 8 Dec 2010 04:33:26 -0800 (PST)
Received: from ( []) by (Postfix) with ESMTP id 5DD063A690A for <>; Wed, 8 Dec 2010 04:33:26 -0800 (PST)
Received: by fxm18 with SMTP id 18so994972fxm.16 for <>; Wed, 08 Dec 2010 04:34:53 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=gamma; h=domainkey-signature:received:mime-version:received:in-reply-to :references:from:date:message-id:subject:to:content-type :content-transfer-encoding; bh=52moXN/8jxNPD+mW3BJqJlOfzUnUCPVn4YXjKPFqU4M=; b=DLjoXlC4UqM8oXuPtjzAG8YiKV/iZknDW46P6i9n3f+XQX+7ZEtlre7r7mzuwMZlc0 oR4palrBU1BHiYcfywnwjklqPpyrdMSOq2iEz98WfeW6kaS2sqMXT0EU+zM1bb0nAJgu xuqJQDF4sRHaJIzQTGaXRi3O6ViJQCkKOeaO8=
DomainKey-Signature: a=rsa-sha1; c=nofws;; s=gamma; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :content-type:content-transfer-encoding; b=Q0LyYOadMAs8c684EBIXKGc9aDg9+ViPwEYAYbXpyYbioyew59G5mwjewUKB/pOjEG 2uPxoVLNEnkQ7fz5P1RxlAOAX3bY+zARBy6MskZzDEcHqCCV3Ml5qZ4GewqGJRESww3p 4N/U+BBw8NjhalF5kklI/38YX6DClqFogsAZM=
Received: by with SMTP id v14mr2721334fam.49.1291811692963; Wed, 08 Dec 2010 04:34:52 -0800 (PST)
MIME-Version: 1.0
Received: by with HTTP; Wed, 8 Dec 2010 04:34:32 -0800 (PST)
In-Reply-To: <>
References: <> <> <> <> <A6BF1C5A1E1A999D1A7D33E3@PST.JCK.COM> <>
From: Tatsuhiro Tsujikawa <>
Date: Wed, 8 Dec 2010 21:34:32 +0900
Message-ID: <>
To: "" <>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Subject: Re: [ftpext] End byte of transfer in FTP
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Wed, 08 Dec 2010 12:33:27 -0000

2010/12/7 Richard Koenning <>:
> John C Klensin wrote:
>> Yes.  I'm still not convinced trying to specify fragments of
>> stream files is a good idea at all but, if it is to be done,
>> let's do it with a new command and very clearly-specified
>> semantics.  Remember that, if transfers are done in TYPE I,
>>        -- not only can one have any of the usual
>>        line-separation characters, but one can have other sorts
>>        of record markers or length-delimited lines or blocks.
>>        -- if Unicode is being sent consistent with the base
>>        spec), one gets internal storage forms (often UTF-16LE
>>        or UTF-16BE) not only UTF-8, and certainly does not get
>>        one octet per character.
>> So specifying fragments clearly is not a trivial piece of work
>> unless the new command also requires a new file STRUcture
>> variation.
> I don't see a problem on FTP protocol level, with TYPE I the transfered data
> is an unstructured stream of bytes, in which REST currently defines a
> starting point and in which a RANGE specification would additionally define
> an endpoint.


> FTP clients and servers operating on files which are not simply a stream of
> bytes but e.g. have some length-delimited record structure may have hard
> work to do, but this problem exists already with the current REST command.

RFC3659 5.1 states about this problem:

In other representation types and structures
 more effort will be required, but it remains always possible to
 determine the offset with finite, but perhaps non-negligible, effort.

The transfer modes other than STREAM mode use marker to specify restart point
and the marker is sent from sending host.
Then we have no way to know the end point marker because it is not sent.
Because of this, I think it is very hard or impossible to define this
RANGE specification
for other than STREAM mode.
Is it possible to define RANGE specification only in STREAM mode?

Best regards,

Tatsuhiro Tsujikawa