Re: [tcpm] 793bis: IP ID

Joe Touch <> Fri, 20 December 2019 22:23 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 9CBF21200EF for <>; Fri, 20 Dec 2019 14:23:09 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.219
X-Spam-Status: No, score=-1.219 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_NEUTRAL=0.779, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (2048-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id EBUamUsifw75 for <>; Fri, 20 Dec 2019 14:23:08 -0800 (PST)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 413741200C1 for <>; Fri, 20 Dec 2019 14:23:08 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;; s=default; h=Message-ID:References:In-Reply-To:Subject:Cc: To:From:Date:Content-Type:MIME-Version:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=TgwlEigsoKQ2qQQmWSP2iDSknK7xvc+Mt3eVJPrSYu0=; b=PkGAavWe9ind9NW4PEG1hcUUY TcPdtV0Xcp9pEDUtfDFzuTvI41BcejvT62Dlg9GD9es37F60T70fwBVT5T4cHmGU1kRwXivlLOMIw g0USYDnMDXmFBz5H2TLsHC5Wu+k2ZIIMaMUL0SweGrGqfxU46L0+JmXq3bKv87vhxmt+dhSr/FZOg Gm4470yF3cJoJ0LyQc/R7qMoP9ljZrLGCas4Fo7H7Hi2bKhhUARbMN4oTJGr90NAvnaphbMRzXwG+ 0r59Svyqzn91PEzrAr0a/FNmAy87IsM1QXP+nxJY9/m0I+y8RhTICDU3TBID5Ca85t7bpLhDCClHx GKQ6rkMWA==;
Received: from [::1] (port=47778 by with esmtpa (Exim 4.92) (envelope-from <>) id 1iiQfm-002vSK-TE; Fri, 20 Dec 2019 17:23:07 -0500
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="=_07286caa3f85c9bfc977882ef632da44"
Date: Fri, 20 Dec 2019 14:23:02 -0800
From: Joe Touch <>
To: David Borman <>
In-Reply-To: <>
References: <> <> <> <> <> <>
Message-ID: <>
User-Agent: Roundcube Webmail/1.3.7
X-OutGoing-Spam-Status: No, score=-1.0
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname -
X-AntiAbuse: Original Domain -
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain -
X-Get-Message-Sender-Via: authenticated_id:
X-From-Rewrite: unmodified, already matched
Archived-At: <>
Subject: Re: [tcpm] 793bis: IP ID
X-Mailman-Version: 2.1.29
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: Fri, 20 Dec 2019 22:23:10 -0000

Hi, David, 

On 2019-12-20 12:37, David Borman wrote:

> Yes, the IPID is only used for doing IP fragment reassembly, so the IPID really doesn't matter on retransmission when IP fragmentation is not possible.

Right - it doesn't matter. But that also means it can be reused *even if
the packet contents change*. It should have no impact unless
fragmentation occurs; if it's "atomic" (not source fragmented and DF=0),
then it can be reused *at will* (and already widely is). 

> So just stating that the IPID must not be reused on retransmission unless the packet is identical to the original should be sufficient.

That's overkill. The ID can be (and already is) reused if the packets
are atomic (per above). 

> We want to avoid having an implementation reuse IPIDs and cause problems, and then say "but the RFC didn't say we couldn't do that".

Implementations of TCP need to know that they should not be using IP IDs
for uniqueness, as already indicated in RFC 6864. We should be clear in
supporting that advice here. 


> -David
> On Dec 19, 2019, at 8:44 PM, Joe Touch <> wrote:
> FWIW, the ID is now supposed to be ignored if fragmentation isn't possible (not source fragmented and not fragmentable).
> Perhaps this advice needs revision accordingly, esp. since TCP generally tries to run in that mode.
> I.e., retransmission should have no bearing on the IPv4 ID unless fragmentation occurs or is possible.
> Joe
> On Dec 19, 2019, at 9:21 AM, David Borman <> wrote:
> This has to do with the fact that the IPID field is used to do fragmentation reassembly.  It is ok to reuse the same IPID when retransmitting, as long as the retransmitted packet is identical to the original packet, not just the TCP data, but also all the TCP headers.  If the two packets aren't identical and they are fragmented, then using the same IPID could cause the receiver to not properly reassemble the packet.
> What this also says is that, if a TCP implementation is such that it buffers up previously sent packets for possible retransmission and retransmits them verbatim, it doesn't have to change the IPID just because it is a retransmission.  But if there are any differences between the original and the retransmitted packet, then the IPID must be updated.
> -David Borman
> On Dec 19, 2019, at 11:04 AM, Wesley Eddy <> wrote:
> While I think Gorry's comment below is pretty much correct, this is direct from RFC 1122's material on TCP.  I'm proposing not to change anything about this at the moment, since I don't think any harm is done by saying this.
> On 8/28/2019 11:39 AM, Gorry Fairhurst wrote: Section 3.8.1
> OLD:
> If a retransmitted packet is identical to the original packet (which
> implies not only that the data boundaries have not changed, but also
> that the window and acknowledgment fields of the header have not
> changed), then the same IP Identification field MAY be used (see
> Section of RFC 1122) (MAY-4).
> - What is this MAY about? Is it about the IPv4 IPID field and is that really
> important for a TCP spec? 
> _______________________________________________
> tcpm mailing list

tcpm mailing list 
tcpm mailing list