[Taps] New Transport Networking APIs in iOS 12 beta

Tommy Pauly <tpauly@apple.com> Fri, 08 June 2018 22:29 UTC

Return-Path: <tpauly@apple.com>
X-Original-To: taps@ietfa.amsl.com
Delivered-To: taps@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E5839130EC7 for <taps@ietfa.amsl.com>; Fri, 8 Jun 2018 15:29:43 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.31
X-Spam-Level:
X-Spam-Status: No, score=-4.31 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_MED=-2.3, SPF_PASS=-0.001, T_DKIMWL_WL_HIGH=-0.01] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=apple.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id l2due-w0i9zb for <taps@ietfa.amsl.com>; Fri, 8 Jun 2018 15:29:42 -0700 (PDT)
Received: from mail-in5.apple.com (mail-out5.apple.com [17.151.62.27]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6BF6C130DC2 for <taps@ietf.org>; Fri, 8 Jun 2018 15:29:42 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; d=apple.com; s=mailout2048s; c=relaxed/simple; q=dns/txt; i=@apple.com; t=1528496982; x=2392410582; h=From:Sender:Reply-To:Subject:Date:Message-id:To:Cc:MIME-version:Content-type: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=VmKe7MptTjjtRyynjcm0MZYnsHcfgEhJOwt+D3m/fYI=; b=0Ag5WhsaPIqxORcWqPY/ivlKIMu+3TUT0bpPlLb1GxTe4PcAO/L2Oorlg3OT5rpe LbUOdPjBZLAq0qO4B0okO80Bzg4TXbEnuwbvA2Zeoprb62bbuQjFW+ZN9SNsj6+M 0FhXftMAzVDnoUnek2l6GUeVjDeJnHzxFpw2/jgOz3cBzgd2xxwGx60eQyxohnXp GIgDhbiqWBNbZlp9iBqeTOqPqZTdVQJahmfUZPoU+EFhAlZSoJlKz+ZBNwuoB7t8 Jkv2R58VhiY8spfWlmGL1+RkaUl0l8LheSGyRm2oIWveiamfo5zV8igl7AK1QBvY KI6ifdUr7N2pzeG5Stte/g==;
X-AuditID: 11973e13-62dff7000000242c-68-5b1b035511bb
Received: from ma1-mtap-s02.corp.apple.com (ma1-mtap-s02.corp.apple.com [17.40.76.6]) (using TLS with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mail-in5.apple.com (Apple Secure Mail Relay) with SMTP id 51.48.09260.5530B1B5; Fri, 8 Jun 2018 15:29:42 -0700 (PDT)
MIME-version: 1.0
Content-type: multipart/alternative; boundary="Boundary_(ID_ar1112h5syT3rQSujhSZtA)"
Received: from ma1-mmpp-sz09.apple.com (ma1-mmpp-sz09.apple.com [17.171.128.183]) by ma1-mtap-s02.corp.apple.com (Oracle Communications Messaging Server 8.0.2.2.20180329 64bit (built Mar 29 2018)) with ESMTPS id <0PA0004U5ZTHMRC0@ma1-mtap-s02.corp.apple.com> for taps@ietf.org; Fri, 08 Jun 2018 15:29:41 -0700 (PDT)
Received: from [17.234.184.168] (unknown [17.234.184.168]) by ma1-mmpp-sz09.apple.com (Oracle Communications Messaging Server 8.0.2.2.20180403 64bit (built Apr 3 2018)) with ESMTPSA id <0PA0006YCZTEIN30@ma1-mmpp-sz09.apple.com> for taps@ietf.org; Fri, 08 Jun 2018 15:29:41 -0700 (PDT)
X-Va-A:
X-Va-T-CD: 2ae3cb41e2a452a17e83043029b284de
X-Va-E-CD: a671d8d53df5bce6bdbbc5bac83a63c3
X-Va-R-CD: b82f208929c3146e3f77363fe13b6eae
X-Va-CD: 0
X-Va-ID: e147f199-0bfd-42e7-882f-6c559f83b40b
X-V-A:
X-V-T-CD: 5808c5f95406ec7719a15f5c3784581a
X-V-E-CD: a671d8d53df5bce6bdbbc5bac83a63c3
X-V-R-CD: b82f208929c3146e3f77363fe13b6eae
X-V-CD: 0
X-V-ID: 52ffc7c0-41e8-4e1f-ac4e-eb373a483080
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:,, definitions=2018-06-08_10:,, signatures=0
Sender: tpauly@apple.com
From: Tommy Pauly <tpauly@apple.com>
Message-id: <1C14F32A-3ADC-4D35-B800-091697E83AD6@apple.com>
Date: Fri, 08 Jun 2018 15:29:09 -0700
To: taps WG <taps@ietf.org>
X-Mailer: Apple Mail (2.3445.100.11)
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrCIsWRmVeSWpSXmKPExsUiqOHDphvGLB1tcHY/j8WdGAdGjyVLfjIF MEZx2aSk5mSWpRbp2yVwZfz9f5O14Lt8xc+lP5gaGJ9JdzFyckgImEgs3/2IFcQWEtjHJPHr jxeIzSsgKPFj8j0WEJtZIEziYUMjUxcjF1DNYSaJmd+XskE4S5kkfnZPYoOYxC7x59cOFghb W2LBiwvsMPbz9plsMPavRVOYIGwuiQVbT7NC2LoSR3bMgIqzSaw/sQTK1pI4tfkIC4x9rP0r UD0HmN13KAIizClx/stEqFU6EjPnb2CGsLMlZn9dxwJSLiwgIbF5TyJImE1AReL4N4gSYQFT iTc/JjND/GsjMXflLbAxLAKqEt8mPQC7QERAWuLNnNNQI1Uk9j16yjaBUWoWUhDNQgqiWUDb mAXUJaZMyYUIa0s8eXeBFcJWk1j4exETsvgCRrZVjEK5iZk5upl5pnqJBQU5qXrJ+bmbGEHR Ot1OeAfj6VVWhxgFOBiVeHgbmqSihVgTy4orcw8xSnOwKInzJnGIRwsJpCeWpGanphakFsUX leakFh9iZOLglGpgXBeW+OHZ3ul22tflExeW/buq/avz9rSe5svP/Zpr351w65FNKpVUZH4Z Usi0snWaW093gMLEi/wzpP3jXh/sEGt7OOHQLY0vx57zNtSrXNv+a0eD3koeJqFoA8sfi0Le N3Hf+arRWf8l/KD2xcsa+zbY9rmfNjZz5Puh9nZD7MfDDHGGlsdXKrEUZyQaajEXFScCAL23 CNS3AgAA
Archived-At: <https://mailarchive.ietf.org/arch/msg/taps/qK7NkCZJ6GnMQIxOZim1lkYAw0E>
Subject: [Taps] New Transport Networking APIs in iOS 12 beta
X-BeenThere: taps@ietf.org
X-Mailman-Version: 2.1.26
Precedence: list
List-Id: "IETF Transport Services \(TAPS\) Working Group" <taps.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/taps>, <mailto:taps-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/taps/>
List-Post: <mailto:taps@ietf.org>
List-Help: <mailto:taps-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/taps>, <mailto:taps-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 08 Jun 2018 22:29:44 -0000

Hello TAPS!

This week we released Network.framework, a new set of transport APIs, as part of the beta for iOS 12 and macOS Mojave.

This API provides support for connections and listeners using TCP, UDP, TLS, and DTLS; connecting by name or service, with happy eyeballs support for addresses, interfaces, and protocols (for proxies, etc). This provides our basis for “post-sockets” API work. As we define as a working group more of the full TAPS API vision for protocol agility, we'd like on add that support to this framework. 

Video of the presentation:
https://developer.apple.com/videos/play/wwdc2018/715/ <https://developer.apple.com/videos/play/wwdc2018/715/>

Sample implementation of netcat:
https://developer.apple.com/documentation/network/implementing_netcat_with_network_framework <https://developer.apple.com/documentation/network/implementing_netcat_with_network_framework>

Swift and C API:
https://developer.apple.com/documentation/network <https://developer.apple.com/documentation/network>

If you are an iOS or macOS developer, please try out the APIs! Either way, we’d love for everyone to take a read through the API and give feedback on how we can continue to evolve things towards a post-sockets and fully TAPS model. Note that on iOS and tvOS, this framework is currently using a user-space networking stack instead of sockets when applicable.

Best,
Tommy