4

Higher layer transmission protocols have certain properties. For example, TCP "guarantees" duplicate-free, error-free in-order delivery of packets. UDP does basically provide the same properties as IP, but on a per process / socket level. Those are simple best delivery of packets, without guarantees like being duplicate free or in-order.

Ethernet, as far as I know, does not directly guarantee delivery of a packet (a.k.a. being loss and duplicate-free or in-order). I know that some standards would eventually violate these properties, like PRP (Parallel Redundancy Protocol). Furthermore, in a typical Ethernet topology, duplication and so on are not directly possible, as there is no dynamic routing. However, in modern SDN-networks, there is a possibility that packets take multiple routes?

Does any source specify that in Ethernet frames must arrive in-order or duplicate-free? Are there any other formal sources for such specifications?

3 Answers3

3

The only "guarantee" in Ethernet is that the frame arrived intact, based on the CRC. There is no mechanism to detect missing or duplicate frames, as there is no concept of "session" or flow" at that layer.

Ron Trunk
  • 66,852
  • 5
  • 65
  • 126
  • nor notion of "routes" (well there's STP but that not routing). – JFL Sep 01 '17 at 13:22
  • It also transmits in-order within a priority level, unless explicitly configured to do otherwise, doesn't it? – user253751 Feb 15 '18 at 23:27
  • @immibis I'm not sure what you're getting at, but every packet is atomic -- there's not relation between one packet and another (unless they're fragments). – Ron Trunk Feb 16 '18 at 00:57
3

Ethernet is designed based on architectural reference models (OSI and/or TCP/IP). While those models are abstract, they do carry a lot of weight in when standards bodies like the IEEE are creating/modifying standards such as Ethernet.

These models lay out certain characteristics expected from each layer of the model, called invariants. Invariants come in two flavors hard (absolutely provided) and soft (generally provided) and upper layer protocols can be written in a way to expect these behaviors from an underlying nature either absolutely (hard) or generally (soft).

Data Link layer hard invariants include nonduplication and sequential delivery of frames.

Does any source specify that in Ethernet frames must arrive in-order or duplicate-free? Are there any other formal sources for such specifications?

No, nothing in the Ethernet standard specifies that frames must arrive in order or duplicate free. However the Ethernet standard is written in a way to provide those characteristics to meet the expected behaviors of the architectural model.

Ethernet, as far as I know, does not directly guarantee delivery of a packet (a.k.a. being loss and duplicate-free or in-order). I know that some standards would eventually violate these properties, like PRP (Parallel Redundancy Protocol).

If you actually look at something like PRP, this still maintains the invariants mentioned above. While it does duplicate the frame, it only sends one frame over two separate data link layers which each maintain the sequential delivery of frames. The PRP device on the receiving end then also de-duplicates the frames received on both links before passing up to an upper layer.

However, in modern SDN-networks, there is a possibility that packets take multiple routes?

If they are designed correctly according to commonly accepted architectural design principles, even if the SDN protocol uses multiple links it will maintain the invariants for the Data Link layer. To do otherwise risks breaking upper layer protocols that expect those characteristecs in their own design and operation.

YLearn
  • 27,141
  • 5
  • 59
  • 128
  • Thank your for the hint to the formalisation through "invariants". That is exactly what I was looking for. Anyways, I could not find too much sources of this formatlization. There seems to be a book: wiley.com/WileyCDA/WileyTitle/productCd-0470287152.html But do you have any other sources for the theory of invariants? – The Bernard Sep 03 '17 at 09:06
  • If you want to drop the cash on the ISO/IEC documents, you are free to see for yourself. They are very active about removing copies from the web, so it is difficult to find a resource to link that will last any length of time. – YLearn Sep 03 '17 at 16:37
2

Ethernet, IP, and UDP (with optional checksum) each only transport the packet while it is intact - when the checksum doesn't match, the packet is dropped. The only guarantee is that when you receive a packet it hasn't been damaged during transport (may be intentionally tampered with though).

TCP tracks which packets have been successfully received - they are acknowledged by the receiver - and automatically resends those that haven't.

Ethernet may use dynamic "routing" but since that can cause unexpected side effects in higher layers it's rarely done. However, in higher layers it is not uncommon for packets to take different routes. TCP provides for this by resorting the packets into the original order before handing over the data to the application. Ethernet frames don't need to arrive in-order, broadcasts can actually get duplicated in certain conditions (e.g. SPB may cause this).

All Ethernet specifications can be found at IEEE 802 - layer 1 is in 802.3, layer 2 is in 802.1: http://ieeexplore.ieee.org/browse/standards/get-program/page/series?id=68 (free after registration).

Zac67
  • 81,287
  • 3
  • 67
  • 131