An OSI layer model for the 21st century (2014)
This seems to be written by someone who spends a lot of time (and has a lot of knowledge) about high level application stuff but lacks an understanding of the existing network technology they are writing about or what purposes real world networking models need to serve. Apologies for the huge block of text, I&#x27;m not sure how to format this better.<p>&gt; Data Link and Physical layers
For our purposes today, the Data Link and Physical layers are a black box (perhaps literally), to which we have an interface (the “network interface”) which looks like a transmit queue and a receive queue. These queues can store “payloads” of anywhere from 1 to 1280[1] octets (bytes).<p>1) The physical layer and data link layer almost always have different size and structure<p>2) Data link layer queues aren&#x27;t defined by network layer payloads<p>3) IPv6 specifies a MINIMUM payload of 1280 octets<p>4) For most of the internet and private systems ~1500 is the standard payload limit due to the Ethernet standard.<p>&gt; We would like a received payload to self-evidently be the same payload which was sent. Although the Data Link layer is supposed to provide such an assurance, various kinds of attacks on the system might invalidate this assumption. Integrity protocols mitigate these attacks:
- 1 Thermal noise, cosmic rays checksum hash TCP Checksum CRC-32C<p>1) TCP Checksums are not part of and do not validate the 
data link layer headers.<p>2) Ethernet aleardy includes the FCS (CRC) as a form of check (as most data link layers have).<p>3) Physical layers also commonly have forms of integrity checking<p>&gt; 2 Deliberate corruption cryptographic hash SHA-1 BLAKE2b
3 Spoofing of trusted contacts keyed hash HMAC-SHA1 SipHash
4 Spoofing of strangers public-key signature of cryptographic hash SHA-1 + RSA BLAKE2b + Ed25519<p>1) I&#x27;m not sure where these &quot;common implementations&quot; are comming from on the data link&#x2F;physical layers, AES encryption via DTLS&#x2F;MACsec or encryption via DTLS are the standards here.<p>&gt; A fully implemented Availability layer should provide unicast (deliver to a unique endpoint authenticated by a given public key, wherever it may be), anycast (deliver to nearest endpoint authenticated by a given public key), and multicast (a.k.a. pub&#x2F;sub: route to all endpoints who have asked to subscribe to a given ID, and provide a subscription method).<p>1) Multicast sounds great until you consider the billions of devices across untold number of paths on the internet and look at the line that started the paragraph &quot;We would like networked endpoints to be available to receive packets from other endpoints in a way that is robust to unannounced changes in network topology.&quot;. It&#x27;s hard enough today to announce and learn unicast paths between network aggregated endpoints and the author wants to add multicast paths&#x2F;typologies to the mix while throwing out the abstraction of the port in favor of service based networking?<p>2) [personal opinion] moving more &quot;work&quot; from ports (which are supposed to be an inside the END NODE thing <i>cough</i> ipv4 NAT <i>cough</i>) into &quot;the network&quot; almost never seems to sell me on being a sustainable&#x2F;worthwhile tradeoff. The less your layer needs to know to deliver something the more flexible and upgradable communication becomes.<p>&gt; Confidentiality layer
Ideally, we would like to not transmit any information to anything other than the destination endpoint(s). This ideal is not in general achievable on a public network, but some types of mitigation are possible: ...<p>1) A layer has to be more than &quot;this is the encryption algorithm we use&quot;.<p>2) Encryption should not be a layer high up the stack, it should be something available at any point and able to be performed multiple times to allow levels of trust or defense in depth<p>3) Is there anything the author doesn&#x27;t like about existing solutions for this layer like IPsec other than AES is most commonly used rather than ChaCha and similar variants?<p>&gt; Non-Repudiation and&#x2F;or Repudiation layer
&gt; We would like for a receiver to be sure that a message they receive was sent by a given sender, and we would like for a sender to be sure that a given message was successfully received. Sometimes, we would also like for a receiver to be unaware of the location a message was sent from<p>1) This layer needs to be fully option as<p>a) many real-time messages don&#x27;t want confirmation information to bog things down<p>b) repudiation of origin needs to be optional unless society agrees it&#x27;s more important than performance (it won&#x27;t)<p>&gt; Transactions layer<p>[personal opinion] this needs to be part of the application layer functionality to prevent the ossification of implementations and protocols.<p>General comment on the topic - The OSI model wasn&#x27;t meant to be viewed like it is today and as a result spends a lot of time defining how to stratifying things that don&#x27;t need to be stratified in the modern world. One thing I&#x27;d like to tell EVERYONE about network is &quot;stop thinking of network models as a set of 1 dimensional abstractions&quot;.