Re: [manet-dlep-rg] TCP clients, servers, and discovery (WAS: Re: notes DLEP meeting @ IETF88)

"Stan Ratliff (sratliff)" <sratliff@cisco.com> Fri, 15 November 2013 18:30 UTC

Return-Path: <sratliff@cisco.com>
X-Original-To: manet-dlep-rg@ietfa.amsl.com
Delivered-To: manet-dlep-rg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7139C11E8232 for <manet-dlep-rg@ietfa.amsl.com>; Fri, 15 Nov 2013 10:30:07 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -9.999
X-Spam-Level:
X-Spam-Status: No, score=-9.999 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, J_CHICKENPOX_21=0.6, RCVD_IN_DNSWL_HI=-8]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id n43oGhpEQ0Bh for <manet-dlep-rg@ietfa.amsl.com>; Fri, 15 Nov 2013 10:30:02 -0800 (PST)
Received: from rcdn-iport-5.cisco.com (rcdn-iport-5.cisco.com [173.37.86.76]) by ietfa.amsl.com (Postfix) with ESMTP id 15EA711E814F for <manet-dlep-rg@ietf.org>; Fri, 15 Nov 2013 10:29:59 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=11461; q=dns/txt; s=iport; t=1384540199; x=1385749799; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=N4oG5f92JZmU1hKzXh50QnjXnXh2ADNNAxMYGyY2swk=; b=UBdr4QWDfZzqqE8z+AUb7b6Z0Eyai5hC3EAi4gYSrbODVdFJZsUeqJKL jRXkmvLYtHnaPAn5lXSV/9/bdWETf4R3nT3jPe/ouWjqno52Rjs4OsRGm MqFHBc8Vg9gRSKbOsXrwrLvCobljdKhHTbtlI3YNNybSGHVRTmNNZSajr c=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: Ah4FAEpnhlKtJV2Y/2dsb2JhbABZgwc4U78qgSoWdIIlAQEBAwEBAQEaCi4ZAwEHEAIBCBguJwslAgQOBYd7Bg3BII4dCgcBgQczBwKDHoERA5gQkg2BaoE+gWgJFyI
X-IronPort-AV: E=Sophos;i="4.93,709,1378857600"; d="scan'208";a="285374821"
Received: from rcdn-core-1.cisco.com ([173.37.93.152]) by rcdn-iport-5.cisco.com with ESMTP; 15 Nov 2013 18:29:58 +0000
Received: from xhc-aln-x03.cisco.com (xhc-aln-x03.cisco.com [173.36.12.77]) by rcdn-core-1.cisco.com (8.14.5/8.14.5) with ESMTP id rAFITwnc025030 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Fri, 15 Nov 2013 18:29:58 GMT
Received: from xmb-aln-x03.cisco.com ([169.254.6.200]) by xhc-aln-x03.cisco.com ([173.36.12.77]) with mapi id 14.03.0123.003; Fri, 15 Nov 2013 12:29:57 -0600
From: "Stan Ratliff (sratliff)" <sratliff@cisco.com>
To: Teco Boot <teco@inf-net.nl>
Thread-Topic: [manet-dlep-rg] TCP clients, servers, and discovery (WAS: Re: notes DLEP meeting @ IETF88)
Thread-Index: AQHO4iZBHiRk6hUhG0iwiKIqTz183JonAaYA
Date: Fri, 15 Nov 2013 18:29:57 +0000
Message-ID: <7059B466-16AE-4F5C-96D6-FE982083CDDC@cisco.com>
References: <72FB622921C13746AD6349E70A8D9F307D9192F7@EXC-MBX03.tsn.tno.nl> <CAK=bVC85XAXR3Zkwq+JwELF-dvgrKwbowWCvwvnjeVn7VStnbw@mail.gmail.com> <72FB622921C13746AD6349E70A8D9F307D9193CD@EXC-MBX03.tsn.tno.nl> <5A8A5085482DA84995F4E70F5093AB50268E6C@XCH-BLV-503.nw.nos.boeing.com> <B2BA430A-F4E6-4DED-A7BB-7282A22802B7@inf-net.nl> <5A8A5085482DA84995F4E70F5093AB50269139@XCH-BLV-503.nw.nos.boeing.com> <DAAF2F4E-8918-4708-8D68-4792A919541B@inf-net.nl> <5A8A5085482DA84995F4E70F5093AB502691C9@XCH-BLV-503.nw.nos.boeing.com> <EBD19831-B87C-4F37-B028-E00687B59FE1@inf-net.nl> <5A8A5085482DA84995F4E70F5093AB5026926A@XCH-BLV-503.nw.nos.boeing.com> <51F083CF-62B8-4858-9C3D-5D48BFE6D8BE@inf-net.nl> <5A8A5085482DA84995F4E70F5093AB50269348@XCH-BLV-503.nw.nos.boeing.com> <57D01331-8D30-4A02-A2BA-B644DBA7A808@inf-net.nl> <5A8A5085482DA84995F4E70F5093AB50269934@XCH-BLV-503.nw.nos.boeing.com> <4840CBE1-5710-4AA1-A6F2-B8A65DE98F25@inf-net.nl> <B177F831FB91F242972D0C35F6A0733106FB0F3F@SUCNPTEXM01.c om.ad.uk.ds.corp> <CAM4esxQx4L+=8j_EsKf6zJf=405Wn1fffUEfhRq092N3=72SoQ@mail.gmail.com> <CAGnRvuo2iRwFGYB18gjbJnZQhc2rkWhOr1voXE0zkOhGVhq1sQ@mail.gmail.com> <6EB41DAA-4AD6-4E1D-B497-90275673A508@inf-net.nl> <64E876E6-8679-4449-B511-C296E9FE2FC8@cisco.com> <69077813-1CE2-4FC6-B68F-7F0B13D67A4D@inf-net.nl> <f59a8090-e5e2-487a-83ad-892f5c0774d7@SUCNPTEXC01.COM.AD.UK.DS.CORP> <979927df-e29f-4d41-b5c6-4c3c0ec70db7@SUCNPTEXC01.COM.AD.UK.DS.CORP> <32D9AC84-DF7C-49D0-83A9-A2EC31BB8ABC@inf-net.nl> <76A74457-8C16-42B3-BA0B-52E9B2F3B922@cisco.com> <B156BB77-3BD7-499C-B1FA-69E997319DF2@inf-net.nl>
In-Reply-To: <B156BB77-3BD7-499C-B1FA-69E997319DF2@inf-net.nl>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [64.102.41.107]
Content-Type: text/plain; charset="Windows-1252"
Content-ID: <9A0E4B27E468464499E505294FD264E5@emea.cisco.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Cc: "DLEP Research Group (manet-dlep-rg@ietf.org)" <manet-dlep-rg@ietf.org>
Subject: Re: [manet-dlep-rg] TCP clients, servers, and discovery (WAS: Re: notes DLEP meeting @ IETF88)
X-BeenThere: manet-dlep-rg@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: DLEP Radio Group <manet-dlep-rg.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/manet-dlep-rg>, <mailto:manet-dlep-rg-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/manet-dlep-rg>
List-Post: <mailto:manet-dlep-rg@ietf.org>
List-Help: <mailto:manet-dlep-rg-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/manet-dlep-rg>, <mailto:manet-dlep-rg-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 15 Nov 2013 18:30:07 -0000

On Nov 15, 2013, at 12:15 PM, Teco Boot <teco@inf-net.nl> wrote:

> 
> Op 15 nov. 2013, om 17:37 heeft Stan Ratliff (sratliff) <sratliff@cisco.com> het volgende geschreven:
> 
>> 
>> On Nov 15, 2013, at 7:11 AM, Teco Boot <teco@inf-net.nl> wrote:
>> 
>>> 
>>> Op 15 nov. 2013, om 11:33 heeft Taylor, Rick <Rick.Taylor@cassidian.com> het volgende geschreven:
>>> 
>>>> Okay, just to back it up a bit, and try to get some clarity in the debate.
>>>> 
>>>> As I understand it, we are all happy with:
>>>> 
>>>> Server                                          Client
>>>> ======================================================
>>>> 
>>>> 1)  TCP Listen()
>>>> 
>>>> 2*) Peer_Discovery (UDP) ------------Multicast----------->
>>>>   + Version
>>>> 
>>>> 3)  <--------------------------------------- TCP Connect()
>>>> 
>>>> 4)  <---------------------------------- Peer_Request (TCP)
>>>>                                              + Version
>>>>                                    + optional extras 1
>> 
>> As long as all supported metric TLVs are part of "optional extras 1", I'm OK with this. 
>> 
>>>> 
>>>> 5)  Peer_Accept (TCP) ----------------------------------->
>>>>   + Status
>>>>   + Version
>>>>   + optional extras 2
>>>> 
>>>> *Step 2 may be replaced with a-priori configuration, mDNS, etc...
>>>> 
>>>> What we are arguing about is who should be the Client, and who should be the Server.
>>>> 
>>>> So, I am now calling for everyone's answer to the following question:
>>>> 
>>>> "Should the modem be the Client or the Server in the above diagram, and why?"
>>> 
>>> Modem should be the server:
>>> - modems are servers today, for link metrics, OA&M etc.
>>> - modems provide a service, so they act as server
>>> - modems are "thumb" devices and can be reach from anywhere in the Internet, if permitted. No need to configure the modem for it, except setting access rights. No need to fire an "ignition packet".
>>> - modems can easily handle many TCP sockets, either TCP server or TCP client
>>> - TCP server programming is not more difficult than TCP client
>> 
>> Obviously I disagree. I've seen emails on this thread that speak of "keeping the modem dumb". Making the modem a TCP server is orthogonal to that approach. As to "an ignition packet", I have *no idea* what that means. UDP traffic is going to be required for discovery. It's pretty easy for me to call any UDP packet sent or received "an ignition packet"., so that particular argument seems specious.
> 
> The ignition packet is the additional required (unicast) UDP packet when modem is TCP client and TCP server on other node is several hops away.

We've already said we're excluding multi-hop discovery. Multi-hop sessions skip to step 3. No "ignition" expressed or implied. 

> 
> 
>> 
>> There have also been comments about the 1-to-N relationships (router-to-modem, modem-to-router). In reality, there's *always* been an underlying "N-to-N" notion in DLEP. Now, that was before the decision to change to TCP...
> 
> OK, we keep the N-to-M where N < M or N = M or N > M.

:-) Fine. We'll use your verbiage. 

> 
> 
>> 
>>> 
>>> 
>>>> 
>>>> I have intentionally left 'optional extras' 1 and 2 undefined as they may be relevant in your answers.
>>> 
>>> The Ack in the 3-way handshake is missing. After 5, Server thinks the DLEP session is open, but Client is not aware of it yet. This is minor detail, perhaps indeed use as few packets as possible. Also less state.
>> 
>> No its not. The Peer Accept is the "ACK". Is it "tow-MAY-tow", or "tow-MAH-tow"? (Maybe a bad joke for the non-native English speakers, but I'm leaving it in).
> 
> The ACK on Peer_Accept is missing.

I would disagree with "missing". I'd call it "unnecessary". I don't think you need a 3-way layer 7 handshake on top of a 3-way layer 4 handshake. Unless there's a *specific* protocol issue I'm missing. 

> 
> 
>> 
>>> 
>>> 
>>>> 
>>>> I will give my answers in a separate email.
>>>> 
>>>> If anyone has a problem with the above diagram, now is your chance to shout!
>>> 
>>> Yes, TCP server socket must be opened before the Peer_Discovery. 
>> 
>> Wow. Just. Wow.
>> 
>>> After connection, Peer_Discovery packets SHOULD continue to be sent, for the following reasons:
>> 
>> Seems to me that there's an implicit notion at play here. Specifically, it's that "I (irrespective of whether I'm the modem or the router) will keep strobing discovery packets because I might find other appropriate DLEP peers *on this network segment*." Remember, we've already come close to consensus that discovery is a 1-hop operation, using link-local MCAST.  Having multiple radios on the same network segment (Ethernet) is something that Cisco has long advised customers *NOT* to do.
> 
> Good recommendation. 
> Without DLEP, it works. Better not have DLEP break what is working today.
> 
> 
>> Especially when the RF coverage of those multiple radios overlap with respect to the destinations served - for example let's assume that I have routers that have C-band satellite radios, and some line-of-sight radio. I take 9 or 10 of those setups, and I stick them out in the middle of a flat desert plain, at distances of about 5KM. Everyone can see everyone else, so *both* the C-band satellite radios *and* the LOS radios connect. So far, so good. 
>> 
>> Now, one of the routers emit a multicast packet (one to a multicast MAC). Or a broadcast packet. Which radio serves it?
> 
> With 802.1D, STP is mandatory here.
> (I second your recommendation here, don't do this!)
> 
> 
>> The problem in this case extends to unicast destinations as well. Since the destination MAC in the packet is the far-end router,
> 
> Could be. MAC destination address could also be the modem.
> 
> 
>> then in theory *both* radios know about it - after all, they've *both* got connectivity to the exact same far-end MAC address (since everyone has the multiple radios). So in that case, do you get two copies of everything?
> 
> No.
> 
> 
>> Or does some intervening Ethernet switch try to decide?
> 
> Yes.
> 
> 
>> If the switch is in play, then "Murphy's Law" (the notion that 'If anything CAN go wrong, it WILL go wrong') will be in play, and chances are the switch will make the *wrong* decision (or at least the decision you DIDN'T expect it to make).
> 
> STP is somewhat better than Murphy, but I know what you mean.
> 
> 
>> 
>> 
>> If the connectivity of the two radios is completely orthogonal, then this setup works like a champ. But as the connectivity of the two different RF nets starts to converge, the problems mount. Hence, the recommendation to run multiple radios on *different* network segments - either by using VLANS, or sub interfaces, or just different Ethernet ports if you have to. 
> 
> Lets recommend separate interfaces for routers with multiple modems attached (like Figure 2 in DLEP).

We're in agreement there. But that recommendation does implicitly offer up a protocol optimization - that being, once you've found a DLEP partner on a given network segment (or interface), you can stop strobing discovery packets *on that segment* (or interface). Not that you have to - after all, it's a recommendation, not a MUST. 

> 
> 
>> 
>> As for the "1-to-N" case from the modem perspective (e.g. 1 modem connected to N routers), you don't really have the problem above - the modem knows it will *always* handle the traffic. But there's an entirely different set of issues. Namely, how *do* you report bandwidth? Yeah, I know - we've been saying "that's the radio's problem." But in looking at the deployment scenario, what would you *recommend* as to how that situation be handled? 
> 
> Reporting link metrics is not the problem. It is the multi-party control sessions that introduce complexity.

Well… reporting link metrics *is* a problem. The modem has a finite amount of RF. In this scenario, it has multiple entities trying to access the finite resource. All of those multiple entities (the routers) want to know how big the pipe is. It's not really much different than in the L2 mesh networking case, where there are multiple hops in the L2 mesh.  It becomes really, really easy for the modem to over-commit the RF resource. Multiple control sessions might be a problem as well, especially with the Link Characteristics Request. If router "A" asks for link characteristics that ultimately wind up interfering with router "B", I can see where a conflict can arise. I would expect the modem to mitigate that problem with "some vendor-specific heuristics". Outside of the LCR, the other MAJOR faux-pas I can see with multiple sessions happens *ONLY* when they are on the same local Ethernet segment (e.g. somebody that does NOT take our recommendation). Credits could get you into a HUGE problem there… With those exceptions, I don't see a whole lot of opportunity for things to go screwy with multiple sessions - after all, most of the rest of DLEP is less of a "control session" and more of a "signaling/eventing" mechanism.

Stan


> 
> 
> Teco
> 
> 
> 
>> 
>> Stan 
>> 
>>> - no relation between UDP and TCP sockets, more lightweight
>>> - for modems that support it, other routers may set up DLEP sessions also
>>> - better recovery in case of failures, router knows modem is still present (think of heartbeat=zero)
>>> - in line with other discovery protocols (CDP, LLDP, Bonjour etc)
>> 
>>> 
>>> 
>>> Teco
>>> 
>>>> 
>>>> Cheers,
>>>> 
>>>> Rick
>>>> 
>>>> The information contained within this e-mail and any files attached to this e-mail is private and in addition may include commercially sensitive information. The contents of this e-mail are for the intended recipient only and therefore if you wish to disclose the information contained within this e-mail or attached files, please contact the sender prior to any such disclosure. If you are not the intended recipient, any disclosure, copying or distribution is prohibited. Please also contact the sender and inform them of the error and delete the e-mail, including any attached files from your system. Cassidian Limited, Registered Office : Quadrant House, Celtic Springs, Coedkernew, Newport, NP10 8FZ Company No: 04191036 http://www.cassidian.com
>>>> _______________________________________________
>>>> manet-dlep-rg mailing list
>>>> manet-dlep-rg@ietf.org
>>>> https://www.ietf.org/mailman/listinfo/manet-dlep-rg
>>> 
>>> _______________________________________________
>>> manet-dlep-rg mailing list
>>> manet-dlep-rg@ietf.org
>>> https://www.ietf.org/mailman/listinfo/manet-dlep-rg
>> 
>> _______________________________________________
>> manet-dlep-rg mailing list
>> manet-dlep-rg@ietf.org
>> https://www.ietf.org/mailman/listinfo/manet-dlep-rg
>