首页 > 其他分享 >Layered Network stack

Layered Network stack

时间:2023-09-17 12:09:09浏览次数:57  
标签:Layer network layer Layered hosts +-+-+-+-+-+-+-+-+ stack Network

3. Layered Network stack

  1. Modularity
    • Does not specify an implementation
    • Instead, tells us how to organize functionality
  2. Encapsulation
    • Interfaces define cross-layer interaction
    • Layers only rely on those below them
  3. Flexibility
    • Reuse of code across the network
    • Module implementations may change
  4. Unfortunately, there are tradeoffs
    • Interfaces hide information
    • As we will see, may hurt performance…

3.1. OSI Model

Layer features

  1. Service
    • What does this layer do?
  2. Interface(bit, Frame, Packet, Segment)
    • How do you access this layer?
  3. Protocol
    • How is this layer implemented?
Layer Service Interface Protocol Examples
Physical Layer Move information between two systems connected by a physical link Specifies how to send one bit - Encoding scheme for one bit<br/>- Voltage levels <br/>- Timing of signals coaxial cable, fiber optics, radio frequency transmitters
Data Link Layer - Data framing: boundaries between packets<br/>- Media access control (MAC)<br/> -Per-hop reliability and flow-control Send one packet between two hosts connected to the same media Physical addressing (e.g. MAC address) Ethernet, Wifi, DOCSIS
Network Layer - Deliver packets across the network<br/>- Handle fragmentation/reassembly<br/>- Packet scheduling<br/> -Buffer management Send one packet to a specific destination - Define globally unique addresses<br/>- Maintain routing tables Internet Protocol (IP), IPv6
Transport Layer - Multiplexing/demultiplexing<br/>- Congestion control<br/>- Reliable, in-order delivery Send message to a destination - Port numbers<br/>- Reliability/error correction<br/>- Flow-control information UDP, TCP
Session Layer - Access management<br/>- Synchronization It depends… - Token management<br/>- Insert checkpoints none
Presentation Layer - Convert data between different representations<br/>- E.g. big endian to little endian<br/> -E.g. Ascii to Unicode It depends… - Define data formats<br/>- Apply transformation rules none
Application Layer Whatever you want :) Whatever you want :D Whatever you want ;) turn on your smartphone and look at the list of apps

3.2. Network Stack in Practice


     Host 1                                       Host 2
+-+-+-+-+-+-+-+-+                           +-+-+-+-+-+-+-+-+
|  Application  |                           |  Application  |
+-+-+-+-+-+-+-+-+                           +-+-+-+-+-+-+-+-+
|   Transport   |           Switch          |   Transport   |
+-+-+-+-+-+-+-+-+     +-+-+-+-+-+-+-+-+     +-+-+-+-+-+-+-+-+
|    Network    |     |    Network    |     |    Network    |
+-+-+-+-+-+-+-+-+     +-+-+-+-+-+-+-+-+     +-+-+-+-+-+-+-+-+
|   Data Link   |     |   Data Link   |     |   Data Link   |
+-+-+-+-+-+-+-+-+     +-+-+-+-+-+-+-+-+     +-+-+-+-+-+-+-+-+

3.3. Hourglass Model

  • One Internet layer means all networks interoperate
  • All applications function on all networks
  • Room for development above and below IP
  • But, changing IP is insanely hard

3.4. Distribute Functionality

The End-to-End Arguments in System Design

  • Saltzer, Reed, and Clark
  • The Sacred Text of the Internet
  • Endlessly debated by researchers and engineers

3.4.1. basic observations

  • Some applications have end-to-end requirements
    • Security, reliability, etc.
  • Implementing this stuff inside the network is hard
    • Every step along the way must be fail-proof
    • Different applications have different needs End hosts…
  • Can’t depend on the network
    • Can satisfy these requirements without network level support

In-network implementation some functions

  • Doesn’t reduce host complexity
  • Does increase network complexity
  • Increased overhead for apps that don’t need functionality
  • But, in-network performance may be better

But they choose end hosts or apps to implement these functions.

As a Conservative Interpretation, don’t implement a function at the lower levels of the system unless it can be completely implemented at this level (Peterson and Davie)Basically, unless you can completely remove the burden from end hosts, don’t bother

As a Radical Interpretation,

  • Don’t implement anything in the network that can be implemented correctly by the hosts
  • Make network layer absolutely minimal
  • Ignore performance issues

As a Moderate Interpretation,

  • Think twice before implementing functionality in the network
  • If hosts can implement functionality correctly, implement it a lower layer only as a performance enhancement
  • But do so only if it does not impose burden on applications that do not require that functionality…
  • …and if it doesn’t cost too much $ to implement

Layering and E2E principals regularly violated by firewalls, transparent proxies, and NAT devices.

3.5. Takeaways

  • Layering for network functions
    • Helps manage diversity in computer networks
    • Not optimal for everything, but simple and flexible
  • Narrow waist ensures interoperability, enables innovation
  • E2E argument (attempts) to keep IP layer simple
  • Think carefully when adding functionality into the network

标签:Layer,network,layer,Layered,hosts,+-+-+-+-+-+-+-+-+,stack,Network
From: https://blog.51cto.com/basilguo/7500280

相关文章

  • OpenStack(Train版)-环境准备
    1.1、基本环境准备block1主机IPcontroller1192.168.56.11compute1192.168.56.21block1192.168.56.51block2192.168.56.52Hrorizon192.168.56.61安装操作系统CentOS-7-x86_64基本系统:1VCPU+2048M内存+100G硬盘。网络选择:使用网络地址转换(NAT)。软件包选择:MinimalInstall。关闭......
  • 11.虚拟桌面基础设施: 使用OpenStack的Horizon模块,创建一个虚拟桌面基础设施,允许用户
    使用OpenStack的Horizon模块创建虚拟桌面基础设施可以让用户访问虚拟桌面环境,这通常使用VNC或其他远程桌面协议来实现。Horizon是OpenStack的Web管理界面,用于管理和监控OpenStack云资源。以下是一个简化的示例,演示如何使用Horizon来构建这样一个虚拟桌面基础设施。注意:为了构建这......
  • saltstack使用
     saltstack中salt-key的用法介绍:saltstack中master和minion是依靠证书来进行加密通信的。在saltstack中salt-key命令是用来管理证书的用法:salt-key[options]常用参数:-L,--list-all          #显示已经或未认证的被控端id-aACCEPT,--accept......
  • 第15节课:AI框架图片识别之数据解析、Network初始化、Sigmoid激活函数及Feedforward函
    第15节课:AI框架图片识别之数据解析、Network初始化、Sigmoid激活函数及Feedforward函数详细内容请关注微信公众号:从零起步学习人工智能 https://mp.weixin.qq.com/s?__biz=MzU3OTc4OTEzNw==&mid=2247483658&idx=1&sn=3d8b40ce71e84c717428d4a1994581e0&chksm=fd618934ca1600229308......
  • C# StackExchange.Redis使用
    RedisManage类管理类,提供Redis管理上下文,此处单例模式实现获取对应的Redis管理器usingStackExchange.Redis;namespaceDataMigrationService{publicclassRedisManage{publicstaticreadonlyConfigurationOptionsConfigurationOptions=Configurati......
  • VDSR-Accurate Image Super-Resolution Using Very Deep Convolutional Networks阅读
    AccurateImageSuper-ResolutionUsingVeryDeepConvolutionalNetworks(VDSR)阅读笔记(22.10.07)使用深度卷积网络的精确图像超分辨率摘要:使用一个非常深的卷积神经网络,灵感来源于VGG-Net。本文发现,网络深度增加可以显著提高准确性。本文模型最终使用了20个权重层。通过在深度网......
  • VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE
    (VGG)VERYDEEPCONVOLUTIONALNETWORKSFORLARGE-SCALEIMAGERECOGNITION阅读笔记(22.10.05)摘要:本文研究在大规模图像识别设置中卷积网络深度对其准确性的影响。主要贡献是对使用(3,3)卷积核的体系结构增加深度的网络进行全面评估,结果表明,深度推到16-19可以实现对现有技术配置的显......
  • web DevOps / qemu / kvm nat / kvm network / danei network
    s[root@eulershare]#rpm-qa|grepopenssh#查看sshopenssh-8.8p1-21.oe2203sp2.x86_64openssh-server-8.8p1-21.oe2203sp2.x86_64openssh-clients-8.8p1-21.oe2203sp2.x86_64openssh-askpass-8.8p1-21.oe2203sp2.x86_64[root@eulershare]#pgrep-l......
  • iOS YTKNetworking网络框架增加text/plain支持
    网络请求有时候报错"Requestfailed:unacceptablecontent-type:text/plain"解决办法:在基类初始化时新增以下方法即可-(void)converContentTypeConfig{YTKNetworkAgent*agent=[YTKNetworkAgentsharedAgent];NSSet*acceptableContentTypes=[NSSetsetWithOb......
  • static nat(network address translate)
    核心1、出接口配置natstatic转换,命令如下interfaceGigabitEthernet0/0/1ipaddress20.1.1.1255.255.255.0 natstaticglobal20.1.1.3inside10.1.1.2netmask255.255.255.255natstaticglobal20.1.1.4inside10.1.1.3netmask255.255.255.255注意:此种转换方式......