精华内容
下载资源
问答
  • POWERLINK 工业实时以太网协议简介
    千次阅读
    2022-03-19 13:14:40

    高端制造,在当前历史背景下独立自主是必经之路。先进技术是买不来的,高端制造是国之重器。

    何为POWERLINK ?先来说下什么是工业以太网。

    工业以太网

    平常我们听的最多用的最多的Internet互联网,应用上使用多的也是http,ftp等应用层协议。 

    工业以太网是应用于工业控制领域的以太网技术。在技术上与商用以太网(即IEEE 802.3标准)兼容,但是实际产品和应用却又完全不同。这主要表现普通商用以太网的产品设计时,在材质的选用、产品的强度、适用性以及实时性、可互操作性、可靠性、抗干扰性、本质安全性等方面不能满足工业现场的需要,故在工业现场控制应用(如现场各种伺服电机的运动控制)与商用以太网不同的工业以太网。

    当以太网用于信息技术时,应用层包括HT-TP、FTP、SNMP等常用协议,但当它用于工业控制时,体现在应用层的是实时通信、用于系统组态的对象以及工程模型的应用协议。以太网的速率要比传统现场总线要快的多,以太网的引入将为控制系统的后续发展提供可能性,用户在技术升级方面无需独自的研究投入,对于这一点,任何现有的现场总线技术都是无法比拟的。同时,机器人技术、智能技术的发展都要求通信网络具有更高的带宽和性能,通信协议有更高的灵活性,这些要求以太网都能很好地满足。

    遗憾的是,至21世纪还没有统一的应用层协议,导致协议众多,且好多有专利保护或专门芯片级别的保护,国产化在这方面太弱了,在当前国际环境中容易被卡脖子或断供的风险。

    基于物理层(如串口232,485,或Ethernet)传输的底层链路,产生了各种总线技术。

    总线技术介绍

    总线技术由来已久,几种出现较早、应用较多的现场总线,如 CAN、RS485 等,这些 总线传输速度慢、每帧传输的数据包小。随着工业自动化由低速向高速、由低精度向高精度、 由集中式控制向分布式控制的发展,对现场总线的传输速度和数据量都提出了新的要求。于 是就有很多厂家提出了基于以太网技术来实现现场总线,由此诞生了 POWERLINK、 SERCOS、EtherNet/IP、ModBusTCP、ProfinetSRT、EtherCat、MECHATROLINK 等这些工业实时以太网的技术。

    目前高速实时现场总线种类繁多,很多厂家都在推广自己的总线协议,这些协议从性能上可分为两类:高实时总线和低实时总线。
    低实时性的总线:EtherNet/IP、ModBusTCP、ProfinetSRT。
    高实时性的总线:POWERLINK、EtherCat、MECHATROLINK、SERCOS。

    Modbus TCP/IP

    该协议由施耐德公司推出,以一种非常简单的方式将Modbus帧嵌入到TCP帧中,使Modbus与以太网和TCP/IP结合,成为Modbus TCP/IP。这是一种面向连接的方式,每一个呼叫都要求一个应答,这种呼叫/应答的机制与Modbus的主/从机制相互配合,使交换式以太网具有很高的 确定性,利用TCP/IP协议,通过网页的形式可以使用户界面更加友好。

    ProflNet
    针对工业应用需求,德国西门子于2001年发布了该协议,它是将原有的Profibus与互联网技术结合,形成了ProfiNet的网络方案。

    在高实时性总线中 ,EtherCat 和 MECHATROLINK 需要用专用的 ASIC(芯片) 才能实现,之所以采用 ASIC 芯片来实现的原因之一是为了能够控制市场,使总线知识产权的拥有者处于有利地位,以便在将来可以垄断市场,控制竞争对手。众所周知,工业自动化行业的厂家在2009、2010 年取得了大丰收,很多公司的业绩翻了一倍。他们不缺客户、不愁订单,但是发愁芯片,由于很多芯片采购不到,而不得不丢掉很多客户。提供 ASIC 解决方案的公司,目的就是通过 ASIC 来控制市场、控制竞争对手。
    EtherCat 的 ASIC 芯片只提供了数据链路层和物理层,而没有实现应用层。用户买了ASIC 芯片,还不得不自己来实现应用层(如 CANopen),这需要花费用户很长时间。此外不同用户实现的应用层往往不同,这就造成同样都是基于 EtherCat 的设备,却相互不能通信。
    POWERLINK 是一个可以在普通以太网上实现的方案,无需 ASIC 芯片,用户可以在各种平台上实现 POWERLINK,如 FPGA、ARM、x86CPU 等,只要有以太网的地方,就可以实现POWERLINK。且公开了所有的源码,任何人都可以免费下载和使用(就像 Linux)。

    ProfinetSRT和EtherCat等总线技术的限制情况:

    开源实时通信技术Ethernet POWERLINK 是一项在标准以太网介质上,用于解决工业控制及数据采集领域数据传输实时性的最新技术。本文介绍它的基本原理、相关特性如冗余、直接交叉通信、拓扑结构、安全性设计,并定义其物理层与介质等内容。

    POWERLINK 的源码里包含了物理层(标准以太网)、数据链路层(DLL )、应用层(CANopen)三层完整的代码,用户只需将 POWERLINK 的程序在已有的硬件平台上编译运行,就可以在几分钟内实现 POWERLINK。
    POWERLINK 是一个易于实现的、高性能的、不被任何人垄断的、真正的互连互通的平台。
    POWERLINK 定义了一个精简的、实时性极高的数据链路层协议,同时定义了 CANopen为应用层协议。这样用户在实现了 POWERLINK 的同时,也实现了 CANopen。

    什么是CANopen?

    CAN(Controller Area Network, 控制器局域网络)是由博世开发的一种现场总线,首先应用在汽车领域。由于它的低成本和可靠性,现在被广泛应用在工业测控和工业自动化领域。

    CAN与CANOpen的关系
    CAN的物理层分了三层分别是MDI,PMA和PLS,数据链路层分了两层:MAC与LLC。这五层就是最原始的CAN协议,标准是ISO11898。也就是说CAN协议一开始是没有应用层的。后来有一种叫CANOpen的基于CAN的应用层协议被开发出来,标准是CiA301。在实际开发CAN器件的时候不一定要用CANOpen,你可以根据自己的需要定制自己的应用层协议。

    几种典型总线的原理

    EtherCAT

    EtherCAT是基于集束帧方法:EtherCAT主站发送包含网络所有从站数据的数据包,这个帧按照顺序通过网络上的所有节点,当它到达最后一个帧,帧将被再次返回。因此,EtherCAT网络拓扑总是构成一个逻辑环。
    当数据帧通过节点时,节点会处理帧中的数据,每个节点读出要接收的数据并将相应要发送的数据插入到帧中。这种处理方式,的确加快了数据的传输速度,降低了通信的循环周期。不足之处是,这种对数据帧的高速处理,要求很高。每个节点在对数据帧处理时,即使有一点偏差也会造成整个数据帧的CRC错误,从而使整个数据帧被丢掉。这使得对产品本身的EMC,以及使用现场的环境,线缆等的要求都很高。为了支持100 Mbit / s的波特率,必须使用专用的ASIC或基于FPGA的硬件来高速处理数据。
    此外由于网络上所有节点的输入和输出数据共用同一个数据帧,一个以太网的数据帧容量有限,这就使得EtherCAT不能被用于大数据量的应用场合。


     EtherCAT过程同步
    每个从站通过由主站提供的一个类似于IEEE1588的实时时钟进行同步。有处理实时和非实时的机制。在物理层,EtherCAT协议不仅在以太网上运行,也可以采用LVDS(低压差分信号)。EtherCAT采用带有标准以太网接口的PC作为一个主站。EtherCAT没有定义应用层协议,因此用户需要自己开发应用层,如CANopen等。

    MECHATROLINK

    MECHATROLINK是一个用在工业自动化的开放式通讯协定,最早由日本安川电机开发,后来由MECHATROLINK协会(Mechatrolink Members Association)维护。
    Mechatrolink协定分为以下的二种:
    MECHATROLINK-II—定义传送界面为RS-485时的通讯协定架构,最快速度为10Mbit/s,最多允许30个从站。
    MECHATROLINK-III—定义传送界面为以太网时的通讯协定架构,最快速度为100Mbit/s,最多允许62个从站。

    POWERLINK

    以太网POWERLINK的第1版于2001年11月由奥地利控制系统制造商 Bernecker & Rainer Industrie-Elektronik(贝加莱集成自动化)公司开发,并提供给其他公司。EPSG(POWERLINK标准化组织)成立于2002年11月。 2003年11月,开始使用实时工业以太网协议POWERLINK V2的规范。POWERLINK=CANopen+Ethernet
    鉴于以太网的蓬勃发展和CANopen在自动化领域里的广阔应用基础,EthernetPOWERLINK 融合了这两项技术的优点和缺点,即拥有了Ethernet的高速、开放性接口,以及CANopen在工业领域良好的SDO 和PDO 数据定义,在某种意义上说POWERLINK就是Ethernet 上的CANopen,物理层、数据链路层使用了Ethernet介质,而应用层则保留了原有的SDO 和PDO对象字典的结构。

    POWERLINK的优势

    在纷繁的总线协议中,POWERLINK 将是实时以太网的未来,原因如下:
    1. POWERLINK 是一项开源技术,开放性好,无需授权,无需购买。
    2. POWERLINK 基于标准的以太网,无需专用的 ASIC 芯片,有以太网的地方,就可以实现POWERLINK,硬件平台多种多样(ARM,FPGA,DSP,X86 等),不依赖于某一个公司。
    3. POWERLINK 速度快,支持 100M/1000M 的以太网。以太网技术进步,POWERLINK的技术就会跟着进步,因为 POWERLINK 站在标准以太网的肩膀上。
    4. POWERLINK 性能卓越,使用价格低廉的 FPGA(几美元)来实现 POWERLINK,性能也能达到 100-200us 的循环周期。
    5. POWERLINK 支持标准的网络设备,如交换机、HUB 等。支持所有以太网的拓扑结构,使得布线更自由、更灵活。
    6. 数据吞吐量大,每个节点每个循环周期支持 1500 字节的输入和 1500 字节的输出。

    POWERLINK来发展

    POWERLINK的未来基于标准以太网技术的发展,而标准以太网的发展是全世界所有资源贡献的结果,所以POWERLINK的发展不依赖于其自身,而是世界资源的整合,发展无限量。随着Gbps/10Gbps以太网技术蓬勃发展,POWERLINK亦紧跟其脚步,向Gbps/10Gbps深入。 

    中国用户组织
    Ethernet POWERLINK中国用户组织由贝加莱、上海工业自动化仪表所、步进科技、山东大学、广东工业大学、赫优讯等国内的知名自动化厂商、研究机构、大学共同发起组织的非盈利性组织,其旨在推广这项前沿实时通信技术到中国自动化组件厂商,提供技术咨询、支持和研究的技术性活动,以及市场推广的各种展会、研讨会、学术交流会的组织。每个参与者都将成为“Ethernet POWERLINK”这个源代码开放、纯软件实现、免专利费的技术的“共同持有者”,并受益其中。

     POWERLINK 和 EtherCAT 的比较

    EtherCAT:
    由 EtherCAT 的原理可知,他适用于较小的系统,整个系统所有节点的接收和发射字节数不超过 1500 Bytes。 系统的可靠性要求不高,拓扑结构为菊花链。典型的应用场合为运动控制,一个控制器带多个伺服驱动器,以及 IO。
    POWERLINK:
     可用于小系统,也可用于大系统。典型的应用场合为运动控制(以贝加莱和 ABB为代表),以及过程控制,DCS 系统(和利时,阿尔斯通,东方电气,正泰,中车等)。对于过程控制,要求可靠性高,系统通信量大。 

    引用来源

    CAN与CANOpen(一)_maifansnet的博客-CSDN博客_canopen

    CANopen学习笔记_cenzmin的博客-CSDN博客_tpdo和rpdo

    Ethernet POWERLINK_百度百科

    POWERLINK简介 - POWERLINK-软硬件产品 -

    (二)PowerLink理论知识_ty_xiumud的博客-CSDN博客_powerlink

    MECHATROLINK I II III 总线协议 - PLC/自动化/工控

    POWERLINK 与 EtherCAT 的比较

    POWERLINK 简介

    更多相关内容
  • 文章目录1 使用点对点信道的数据链路层1.1 数据链路和帧1.2 三个基本问题1. 封装成帧2 点对点协议 PPP3 使用广播信道的数据链路层4 扩展的以太网5 高速以太网 数据链路层使用的信道主要有以下两种类型: 点对点信道...


    数据链路层使用的信道主要有以下两种类型:
    点对点信道:这种信道使用一对一 的点对点通信方式。
    广播信道:这种信道使用一对多的广播通信方式,因此过程比较复杂。广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送。 在这里插入图片描述
    在这里插入图片描述

    使用点对点信道的数据链路层

    1.1 数据链路和帧

    链路 (link) 是一条无源的点到点的物理线路段,中间没有任何其他的交换结点。
    一条链路只是一条通路的一个组成部分。
    数据链路 (data link) 除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。
    现在最常用的方法是使用适配器(即网卡)来实现这些协议的硬件和软件。
    一般的适配器都包括了数据链路层和物理层这两层的功能。
    也有人采用另外的术语把链路分为物理链路和逻辑链路。
    物理链路就是上面所说的链路。
    逻辑链路就是上面的数据链路,是物理链路加上必要的通信协议。
    早期的数据通信协议曾叫做通信规程 (procedure)。因此在数据链路层,规程和协议是同义语。在这里插入图片描述
    常常在两个对等的数据链路层之间画出一个数字管道,而在这条数字管道上传输的数据单位是帧。
    在这里插入图片描述

    数据链路层不必考虑物理层如何实现比特传输的细节,甚至还可以更简单地设想好像是沿着两个数据链路层之间的水平方向把帧直接发送到对方。

    1.2 三个基本问题

    数据链路层协议有许多种,但有三个基本问题则是共同的。这三个基本问题是:

    1. 封装成帧

    封装成帧 就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧,确定帧的界限。
    首部和尾部的一个重要作用就是进行帧定界。在这里插入图片描述
    当数据是由可打印的 ASCII 码组成的文本文件时,帧定界可以使用特殊的帧定界符。
    控制字符 SOH (Start Of Header) 放在一帧的最前面,表示帧的首部开始。另一个控制字符 EOT (End Of Transmission) 表示帧的结束。在这里插入图片描述

    2. 透明传输

    如果数据中的某个字节的二进制代码恰好和 SOH 或 EOT 一样,数据链路层就会错误地“找到帧的边界”。在这里插入图片描述
    这个时候就比较可怕了,我们的完整数据极有可能会丢失,那么有什么办法可以解决呢?
    解决方法字节填充 (byte stuffing) 或字符填充 (character stuffing)。
    发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC” (其十六进制编码是 1B)。
    接收端的数据链路层在将数据送往网络层之前删除插入的转义字符。
    如果转义字符也出现在数据当中,那么应在转义字符前面插入一个转义字符 ESC。当接收端收到连续的两个转义字符时,就删除其中前面的一个。
    在这里插入图片描述

    3. 差错检测

    在传输过程中可能会产生比特差错:1 可能会变成 0 而 0 也可能变成 1。
    在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率 BER (Bit Error Rate)。
    误码率与信噪比有很大的关系。
    为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施。

    循环冗余检验CRC

    在数据链路层传送的帧中,广泛使用了循环冗余检验 CRC 的检错技术。
    在发送端,先把数据划分为组。假定每组 k 个比特。
    假设待传送的一组数据 M = 101001(现在 k = 6)。我们在 M 的后面再添加供差错检测用的 n 位冗余码一起发送。 用二进制的模 2 运算进行 2^n 乘 M 的运算,这相当于在 M 后面添加 n 个 0。
    得到的 (k + n) 位的数除以事先选定好的长度为 (n + 1) 位的除数 P,得出商是 Q 而余数是 R,余数 R 比除数 P 少 1 位,即 R 是 n 位。
    将余数 R 作为冗余码拼接在数据 M 后面发送出去。

    文字叙述比较抽象,举个冗余码的例子:
    现在 k = 6, M = 101001。
    设 n = 3, 除数 P = 1101,
    被除数是 2^nM = 101001000。
    模 2 运算的结果是:商 Q = 110101,
    余数 R = 001。
    把余数 R 作为冗余码添加在数据 M 的后面发送出去。发送的数据是:2^nM + R
    即:101001001,共 (k + n) 位。

    在这里插入图片描述

    注意余数的位数和被除数后面添加的0的个数一样,都是除数位数减一位。

    帧检验序列 FCS

    下面来介绍一下帧检验序列 FCS,在数据后面添加上的冗余码称为帧检验序列 FCS (Frame Check Sequence)。
    循环冗余检验 CRC和帧检验序列 FCS 并不等同。
    CRC 是一种常用的检错方法,而 FCS 是添加在数据后面的冗余码。
    FCS 可以用 CRC 这种方法得出,但 CRC 并非用来获得 FCS 的唯一方法。

    接收端对收到的每一帧进行 CRC 检验

    (1) 若得出的余数 R = 0,则判定这个帧没有差错,就接受 (accept)。
    (2) 若余数 R 不等于 0,则判定这个帧有差错,就丢弃。
    但这种检测方法并不能确定究竟是哪一个或哪几个比特出现了差错。
    只要经过严格的挑选,并使用位数足够多的除数 P,那么出现检测不到的差错的概率就很小很小。

    所以应当注意:仅用循环冗余检验 CRC 差错检测技术只能做到无差错接受
    “无差错接受”是指:“凡是接受的帧(即不包括丢弃的帧),我们都能以非常接近于 1 的概率认为这些帧在传输过程中没有产生差错”。
    也就是说:“凡是接收端数据链路层接受的帧都没有传输差错”(有差错的帧就丢弃而不接受)。
    要做到“可靠传输”(即发送什么就收到什么)就必须再加上确认和重传机制。
    应当明确,“无比特差错”与“无传输差错”是不同的概念。
    在数据链路层使用 CRC 检验,能够实现无比特差错的传输,但这还不是可靠传输。

    展开全文
  • 主要有两种控制方法进行协调,一是使用信道复用技术,一是使用 CSMA/CD 协议。 点对点信道 一对一通信。因为不会发生碰撞,因此也比较简单,使用 PPP 协议进行控制。 1. 使用点对点信道的数...

    在这里插入图片描述

    信道分类

    1. 广播信道
      一对多通信,一个节点发送的数据能够被广播信道上所有的节点接收到。所有的节点都在同一个广播信道上发送数据,因此需要有专门的控制方法进行协调,避免发生冲突(冲突也叫碰撞)。主要有两种控制方法进行协调,一个是使用信道复用技术,一是使用 CSMA/CD 协议。

    2. 点对点信道
      一对一通信。因为不会发生碰撞,因此也比较简单,使用 PPP 协议进行控制。

    1. 使用点对点信道的数据链路层

    1.1 数据链路和帧

    链路(link)就是从一个结点到相邻结点的一段物理线路,中间没有任何其他的交换节点。
    数据链路(data link)是在链路的基础上加上必要的通信协议。常用的方法是使用网络适配器(包括硬件和软件)实现协议,一般的适配器包括了数据链路层和物理层的功能。
    数据链路层功能:将网络层交下来的数据构成发送到链路上,以及把接收到的中的数据取出并上交到网络层。

    点对点信道的数据链路层通信步骤

    1. 结点A的数据链路层把网络层交下来数据IP报添加首部和尾部封装成帧;
    2. 结点A把封装好的帧发送给结点B的数据链路层;
    3. 若结点B的数据链路层接收的帧无差错,则从收到的帧中提取数据IP报上交给结点B的网络层,否则丢失这个帧。

    1.2 三个基本问题

    数据链路层协议的三个基本问题:封装成帧、透明传输和差错检测

    1. 封装成帧
      封装成帧就是将网络层传下来的分组添加首部和尾部,用于标记帧的开始和结束。接收端在收到从物理层上交的比特流中根据首部和尾部的标记,从收到的比特流中辨别帧的开始和结束。

    每一种链路层协议都规定了所能传送帧的数据部分长度上限——最大传送单元MTU(Maximum Transfer Unit)。(重点)

    1. 透明传输
      透明表示一个实际存在的事物看起来好像不存在一样。

    帧使用首部和尾部进行定界,如果帧的数据部分含有和首部尾部相同的内容,那么帧的开始和结束位置就会被错误的判定。需要在数据部分出现首部尾部相同的内容前面插入转义字符。如果数据部分出现转义字符,那么就在转义字符前面再加个转义字符。在接收端进行处理之后可以还原出原始数据。这个过程透明传输的内容是转义字符,用户察觉不到转义字符的存在。


    1. 差错检测

    比特差错:比特在传输过程中可能产生差错,1变成0,0变成1。目前数据链路层广泛使用了循环冗余检验(CRC)来检查比特差错。

    2. 点对点协议PPP

    互联网用户通常需要连接到某个 ISP 之后才能接入到互联网,PPP 协议(Point-to-Point Protocol)是用户计算机和 ISP 进行通信时所使用的数据链路层协议

    2.1 PPP协议的组成

    PPP协议有三个部分组成:

    1. 将IP数据报封装到串行链路的方法;
    2. 用来建立、配置和测试数据链路连接的链路控制协议LCP(Link Control Protocol);
    3. 网络控制协议NCP(Net Control Protocol)。

    2.2 PPP协议的帧格式

    • 首部中的标志字段 F(Flag) 字段为帧的定界符,表示一个帧的开始和结束;
    • 首部中的地址字段 A 和控制字段 C 字段暂时没有意义;
    • 首部中的第四个字段是2字节的协议字段,协议字段为0x0021时PPP协议的信息字段就是IP数据报,0xC021则信息段是PPP链路控制协议LCP的数据,而0x8021表示网络层的控制数据;
    • FCS 字段是使用 CRC 的检验序列
    • 信息部分的长度不超过 1500

    3. 使用广播信道的数据链路层

    3.1 局域网的数据链路层

    局域网是一种典型的广播信道,主要特点是网络为一个单位所拥有,且地理范围和站点数目均有限
    主要有以太网、令牌环网、FDDI 和 ATM 等局域网技术,目前以太网占领着有线局域网市场。
    可以按照网络拓扑结构对局域网进行分类:星形网、环形网和总线网


    2. CSMA/CD协议

    CSMA/CD 表示载波监听多点接入/碰撞检测(Carrier Sense Multipule Access whit Collision Detection)。

    • 多点接入:说明这是总线型网络,许多主机以多点的方式连接到总线上。
    • 载波监听:每个主机都必须不停地监听信道。在发送前,如果监听到信道正在使用,就必须等待。
    • 碰撞检测在发送中,如果监听到信道已有其它主机正在发送数据,就表示发生了碰撞。虽然每个主机在发送数据之前都已经监听到信道为空闲,但是由于电磁波的传播时延的存在,还是有可能会发生碰撞。

    端到端的传播时延为 τ,最先发送的站点最多经过 2τ 就可以知道是否发生了碰撞,称 2τ 为争用期 。只有经过争用期之后还没有检测到碰撞,才能肯定这次发送不会发生碰撞
    当发生碰撞时,站点要停止发送,等待一段时间再发送。这个时间采用 截断二进制指数退避算法 来确定。从离散的整数集合 0 , 1 , . . , ( 2 k − 1 ) {0, 1, .., (2^k-1)} 0,1,..,(2k1) 中随机取出一个数,记作 r,然后取 r 倍的争用期作为重传等待时间。其中 k = m i n [ 重 传 次 数 , 10 ] k=min[重传次数,10] k=min[,10],当重传次数达到16次仍不能成功传送,则丢弃该帧,并向高层报告。


    3. 以太网的MAC层

    在局域网中,硬件地址又称为物理地址或MAC地址


    MAC地址是链路层地址,长度为 6 字节(48 位),用于唯一标识网络适配器(网卡)。一台主机拥有多少个网络适配器就有多少个 MAC 地址。例如笔记本电脑普遍存在无线网络适配器和有线网络适配器,因此就有两个 MAC 地址。

    以太网V2的MAC帧格式(重点)


    以太网V2的 MAC 帧格式由五个字段组成,前两个字段分别为6字节长的目的地址源地址字段;第三个字段是2字节长的类型字段,用来标志上一层使用什么协议,0x0800表示上层使用 IP 数据报;第四个字段是数据字段;最后一个字段是4字节的帧检测序列FCS(使用CRC检验)。

    4. 扩展以太网

    4.1 在物理层扩展以太网

    使用光纤和一对光纤调制解调器(对电信号和光信号进行转换)来扩展主机和集线器之间的距离。使用多个集线器就可以连接成覆盖更大范围的多级星形结构的以太网。

    4.2 在数据链路层扩展以太网

    以太网交换机(switch)工作在数据链路层,实质上是一个多接口的网桥(bridge),每个接口都直接与一台主机或另一个以太网交换机相连,并且一般都工作在全双工方式。交换机还具有并行性,即能同时连通多对接口,使多对主机能同时通信。
    交换机具有自学习能力,学习的是交换表的内容,交换表中存储着 MAC 地址到接口的映射。正是由于这种自学习能力,因此交换机是一种即插即用设备,不需要网络管理员手动配置交换表内容。

    下图中,交换机有 4 个接口,各连接一台主机。主机 A 向主机 B 发送数据帧时,交换机把主机 A 到接口 1 的映射写入交换表中。为了发送数据帧到 B,先查交换表,此时没有主机 B 的表项,那么交换机将这个帧的源地址 A 和接口 1 写入交换表中,并向除了接口 1 以外的所有接口发送广播帧。主机 C 和主机 D 会丢弃该帧,主机 B 回应该帧向主机 A 发送数据包时,交换机查找交换表得到主机 A 映射的接口为 1,就发送数据帧到接口 1,同时交换机添加主机 B 到接口 3 的映射。


    4.3 虚拟局域网

    虚拟局域网VLAN(Virtual LAN)可以建立与物理位置无关的逻辑组,只有在同一个虚拟局域网中的成员才会收到链路层广播信息。

    例如下图中 (A1, A2, A3, A4) 属于一个虚拟局域网,A1 发送的广播会被 A2、A3、A4 收到,而其它站点收不到。
    使用 VLAN 干线连接来建立虚拟局域网,每台交换机上的一个特殊接口被设置为干线接口,以互连 VLAN 交换机。IEEE 定义了一种扩展的以太网帧格式 802.1Q,它在标准以太网帧上加进了 4 字节首部 VLAN 标签,用于表示该帧属于哪一个虚拟局域网。


    参考文献

    [1] 谢希仁. 计算机网络(第七版)
    [2] https://github.com/JiangJiaWei520/CyC2018

    展开全文
  • 本章介绍的数据链路层分为...2,数据链路层的三个基本问题:封装成帧、透明传输和差错检测 3,以太网MAC层的硬件地址 4,适配器、转发器、集线器、网桥、以太网交换机的作用及使用场合 一,数据链路层的基本概...

    本章介绍的数据链路层分为:

    • 点对点信道的数据链路层

    • 广播信道的数据链路层 (局域网)

    主要内容:

    1,数据链路层的点对点信道和广播信道的特点,以及两种信道所使用的协议(PPP协议和CSMA/CD协议)
    2,数据链路层的三个基本问题:封装成帧、透明传输和差错检测
    3,以太网MAC层的硬件地址
    4,适配器、转发器、集线器、网桥、以太网交换机的作用及使用场合

    一,数据链路层的基本概念

    1,概述

    数据链路层:是OSI参考模型中的第二层,介乎于物理层和网络层之间,在物理层所提供的服务的基础上向网络层提供服务。数据链路层的作用是对物理层传输原始比特流的功能的加强。

    信道类型:数据链路层使用的信道主要有以下两种类型:

    • 点对点信道:这种信道使用一对一的点对点通信方式。

    • 广播信道:这种信道使用一对多的广播通信方式,因此过程比较复杂。广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送。

    2 , 数据链路层的简单模型

    这里写图片描述

    这里写图片描述

    网络层协议数据单元是IP数据报(或简为数据报、分组或包)。数据链路层把网络层交下来的数据报构成帧发到链路上,以及把接收到的帧中的数据取出并上交给网络层。

    这里写图片描述

    3 链路 VS 数据链路

    链路(link)是一条无源的点到点的物理线路段,中间没有任何其他的交换结点。
    一条链路只是一条通路的一个组成部分。

    数据链路(data link) 除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。

    现在最常用的方法是使用适配器(即网卡)来实现这些协议的硬件和软件。一般的适配器都包括了数据链路层和物理层这两层的功能。

    二,三个基本问题

    • 帧定界

      数据链路层的发送方应当让接收方的数据链路层知道,所发送的帧是从什么地方开始到什么地方结束。

    • 透明传输

      数据链路层传送的比特组合必须是不受限制 的。

    • 差错检测

      数据链路层必须有差错检测功能。

    1,帧定界(封装成帧)

    封装成帧(framing)就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧。

    帧定界 (framing) 就是确定帧的界限。每一种链路层协议都规定了帧的数据部分的长度上限——最大传送单元MTU (Maximum Transfer Unit)。

    发送方的数据链路层在帧的前后都各加入事先商定好的标记,使得接收方在收到这个帧后,能根据这种标记识别帧的开始和结束,以及帧里面装入的数据部分的准确位置。

    首部和尾部的一个重要作用就是进行帧定界

    这里写图片描述

    首部和尾部作用:帧定界,其他一些控制信息。

    发送帧时,是从帧首部开始发送。

    各种数据链路层协议都对帧的首部和尾部都有明确规定。

    为提高帧传送效率,应当使帧的数据部分长度尽可能地大于首部和尾部的长度,但每一种链路层协议都规定了帧数据部分长度上限。这种上限称为最大传送单元MTU(Maximum Transfer Unit)。

    用控制字符进行帧定界的方法举例 :

    这里写图片描述

    数据是由可打印ASCII码组成文本时,帧定界可使用特殊的帧定界符。

    ASCII码有128个不同的ASCII码,其中可打印的有95个,不可打印的有33个。

    ASCII控制字符SOH表示帧首部开始,EOT表示帧的结束。注意SOH的ASCII码为01,而EOT的ASCII码为04。EOT和SOH不是E、O、T和S、O、H字母组合。

    帧定界作用

    1)异步传送时,可以确定一个帧的开始和结束。

    2)同步传送时,发送方连续地发送数据帧。接收方借助于帧定界符从连续地比特流中找出每一帧的开始和结束位置。

    3)短暂出故障情况下,又重新发送情况下,接收方根据帧定界符确定是否接收还是丢弃。

    2,透明传输

    1)问题

    这里写图片描述

    2)解决透明传输问题

    用字节填充法解决透明传输的问题 :

    a,字节填充(byte stuffing)或字符填充(character stuffing)——发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC”(其十六进制编码是 1B)。

    b,接收端的数据链路层在将数据送往网络层之前删除插入的转义字符。

    c,如果转义字符也出现数据当中,那么应在转义字符前面插入一个转义字符。当接收端收到连续的两个转义字符时,就删除其中前面的一个。

    这里写图片描述

    3差错检测

    在传输过程中可能会产生比特差错:1 可能会变成 0 而 0 也可能变成 1。

    在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率 BER (Bit Error Rate)。

    为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施。

    使用的检错技术为循环冗余检验CRC(Cyclic Redundancy Check)

    CRC 码的基本思想:

    a,在信息报文上加上一些检查位,构成一个特定的待传报文,使它能被一个事先约定的多项式(生成多项式)除尽。

    b,接收方收到报文后,再用同样的生成多项式去除收到的报文多项式,可以除尽表示传输无误,否则不正确。

    循环冗余检验的原理 :

    在数据链路层传送的帧中,广泛使用了循环冗余检验 CRC 的检错技术。

    在发送端,先把数据划分为组。假定每组 k 个比特。

    假设待传送的一组数据 M = 101001(现在 k = 6)。我们在 M 的后面再添加供差错检测用的 n 位冗余码一起发送。

    冗余码的计算 :

    用二进制的模 2 运算进行 2n 乘 M 的运算,这相当于在 M 后面添加 n 个 0。
    得到的 (k + n) 位的数除以事先选定好的长度为 (n + 1) 位的除数 P,得出商是 Q 而余数是 R,余数 R 比除数 P 少1 位,即 R 是 n 位。

    例:
    现在 k = 6, M = 101001。
    设 n = 3, 除数 P = 1101,
    被除数是 2nM = 101001000。
    模 2 运算的结果是:商 Q = 110101,
    余数 R = 001。
    把余数 R 作为冗余码添加在数据 M 的后面发送出去。发送的数据是:2nM + R
    即:101001001,共 (k + n) 位。

    循环冗余检验的原理说明 :
    这里写图片描述

    接收端对收到的每一帧进行 CRC 检验 :

    a,若得出的余数 R = 0,则判定这个帧没有差错,就接受(accept)。

    b, 若余数 R  0,则判定这个帧有差错,就丢弃。

    局限性:

    这种检测方法并不能确定究竟是哪一个或哪几个比特出现了差错。

    只要经过严格的挑选,并使用位数足够多的除数 P,那么出现检测不到的差错的概率就很小很小。

    帧检验序列 FCS:

    在数据后面添加上的冗余码称为帧检验序列 FCS (Frame Check Sequence)。

    循环冗余检验 CRC 和帧检验序列 FCS并不等同。

    CRC 是一种常用的检错方法,而 FCS 是添加在数据后面的冗余码。

    FCS 可以用 CRC 这种方法得出,但 CRC 并非用来获得 FCS 的惟一方法。

    生成多项式的选择:

    生成多项式应该满足以下要求:

    a,任何一位发生错误都应使余数不为0

    b,不同位发生错误应使余数不同

    c,对余数继续作模2除运算应使余数循环

    标准CRC生成多项式G(x):

    CRC4:G(X)=X4+X+1 C R C − 4 : G ( X ) = X 4 + X + 1

    CRC12:G(X)=X12+X11+X3+X2+X+1 C R C − 12 : G ( X ) = X 12 + X 11 + X 3 + X 2 + X + 1

    CRCANSI:G(X)=X16+X15+X2+X C R C − A N S I : G ( X ) = X 16 + X 15 + X 2 + X

    CRCCCITTV.41G(X)=X16+X12+X5+1 C R C − C C I T T V .41 : G ( X ) = X 16 + X 12 + X 5 + 1

    CRC32:G(X)=X32+X26+X23+X22+X16+X12+X11+X10+X8+X7+X5+X4+X2+X+1 C R C − 32 : G ( X ) = X 32 + X 26 + X 23 + X 22 + X 16 + X 12 + X 11 + X 10 + X 8 + X 7 + X 5 + X 4 + X 2 + X + 1

    CRC校验可以100%地检测出长度小于等于n(n为G(x)的阶数)的突发错误。所以CRC的生成多项式的阶数越高,那么误判的概率就越小。

    应当注意 :

    仅用循环冗余检验 CRC 差错检测技术只能做到无差错接受(accept)。

    “无差错接受”是指:“凡是接受的帧(即不包括丢弃的帧),我们都能以非常接近于 1 的概率认为这些帧在传输过程中没有产生差错”。

    也就是说:“凡是接收端数据链路层接受的帧都没有传输差错”(有差错的帧就丢弃而不接受)。
    要做到“可靠传输”(即发送什么就收到什么)就必须再加上确认和重传机制。

    展开全文
  • 一条链路只是一条通路的一组成部分。 数据链路 (data link) 除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。 现在最常用的方法是使用...
  • 以太网--车载以太网

    千次阅读 2021-08-19 00:47:20
    以太网--车载以太网1 介绍1.1 以往车载总线技术1.2 车载以太网1.3 线束影响2 优点2.1 满足带宽2.2 减少ECU数量2.3 降低线束成本3 应用3.1 汽车2.4 知识点TSN车载以太网架构图参考 1 介绍 1.1 以往车载总线技术 主要...
  • 以太网协议 变得通俗易懂

    千次阅读 多人点赞 2017-02-14 18:55:39
    容易理解的以太网协议
  • 数据链路层—三个基本问题

    千次阅读 2015-11-24 17:47:02
    本文主要介绍数据链路层传输数据需要注意的最基本三个问题  当我们需要传输数据的时候,我们应该这考虑:首先,将数据封装成帧(帧是数据链路层的基本单位),考虑去怎么封装,才能让接受端识别一个完整的帧,...
  • 为了解决个问题,提高网络可靠性,TCP协议就诞生了。这个协议非常复杂,但可以近似认为,它就是有确认机制的UDP协议,每发出一数据包都要求确认。如果有一数据包遗失,就收不到确认,发出方就知道有必要重发这...
  • 网络篇---以太网和tcp/ip协议

    千次阅读 2017-09-20 11:15:11
    1、以太网络:一种网络硬件技术,经过发展,已经是一项公认的标准介面了,如此一来,大家都可以依据这标准来配置与开发自己的硬件, 只要硬件符合这标准,理论 上,他就能够加入以太网络的世界 2、INTERNET:...
  • 关于车载以太网理解

    千次阅读 多人点赞 2020-12-20 15:36:40
    SOME/IP(Scalable Service-Oriented MiddlewarE over IP):是一种用于传输服务(Service)信息的基于IP的可伸缩中间件,能够适应基于不同操作系统的不同大小的设备,小到摄像头,... DoIP:基于以太网的诊断传输协...
  • 但是PPP协议虽然提供了通信双方身份验证的功能,其协议中没有提供地址信息,而以太网是一广播类型的多路访问网络,因而PPP协议是无法直接应用在以太网链路上的。它通过在以太网上提供点到点的连接,建立PPP
  • 以太网物理层协议整理-万兆以太网

    千次阅读 2017-06-27 09:51:11
    在万兆以太网标准化过程中,IEEE和10GEA(万兆以太网联盟)是两最重要的组织。 万兆以太网标准和规范都比较繁多,在标准方面,首先有2002年的IEEE 802.3ae,后来也不断有新的万兆以太网规范推出,如2006年的IEEE ...
  • 计算机网络之IP协议以太网

    千次阅读 多人点赞 2022-05-05 12:48:40
    本篇文章将介绍网络层和数据链路层的协议——IP协议以太网,包括协议的格式,以及协议中每字段的作用。
  • MAC地址(或称LAN地址,物理地址,以太网地址) 作用:用于局域网内标识一帧从哪个接口发出,到达哪个物理相连的其他接口 48位MAC地址(用于大部分LANs),固化在网卡的ROM中,有时也可以软件设置 eg:1A-2F-BB-...
  • 以太网接口TCP/IP协议介绍,说的很容易懂了

    万次阅读 多人点赞 2018-11-02 18:43:59
    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow也欢迎大家转载本篇文章...分享知识,造福人民,实现我们中华民族伟大复兴!   ... TCP/IP协议,或称
  • 以太网数据链路层协议分析!

    千次阅读 2015-05-20 13:07:01
    相信很多新人在学习协议的时候会遇到很多问题,有些地方可能会总是想不明白(因为我自己也是新人^_^),所以,跟据我自己学习的经历和我在学习中所遇到的问题,我总结了一下列出来。如果能对大家有所帮助,将是我...
  • 计算机网络笔记 以太网

    千次阅读 2019-10-04 16:40:03
    "以太网"这名字起源于一科学假说:19世纪科学家们普遍认为光是通过一种叫以太的物质传播的。时至今日,以太的存在早就被爱因斯坦狭义相对论否定了,而以太网却成了主流的计算机网络,依旧为人类传递着光和电磁...
  • 以太网不是单一协议,而是不同标准的完整集合。这些标准来自 IEEE,它们的名字都以 802.3 开头。 以太网技术起源于施乐帕洛阿尔托研究中心的先锋技术项目。人们通常认为以太网发明于1973年,当年鲍勃.梅特卡夫(Bob ...
  • 主要内容: 1、局域网定义和特性 2、各种流行的局域网技术 3、高速局域网技术 4、基于交换的局域网技术 ...2、决定局域网特性的三个技术:(1)用以传输数据的介质(2)用以连接各种设备的拓扑结构(3)用以共.
  • S7协议解析

    千次阅读 2021-11-24 17:38:06
    S7以太网通信协议,主要用于将PLC连接到(i)pc站(PG/PC - PLC 通信)。 大多数情况下,西门子通信遵循传统的主从模式(master-slave)或者**CS模式(**client-server )。 其中PC(master/client)将S7请求发送到现场设备...
  • 以太网接口TCP/IP协议介绍 说的很容易懂了
  • 由于工作需要,对CFM协议技术(连接故障管理技术)进行研究和学习,部分资料参考cisco文档,并附上相关链接。 参考资料:https://www.cisco.com/c/zh_cn/support/docs/asynchronous-transfer...
  • 以太网与 TCP/IP

    千次阅读 2020-06-12 11:29:17
    在数据链路层上,每通信节点(主机的网络接口)都有 48 位(bit)全局唯一的 MAC 地址。通信数据流被切分并打包成帧(Frame)来发送,每帧都包含来源节点和目的节点的 MAC 地址。 网段(Network Segment) 中继器,集线...
  • 汽车以太网技术及测试介绍

    千次阅读 2020-06-12 14:17:00
    对时延同步的精度要求也更高,此时基于BroadR-Reach的车载以太网应运而生,加上AVB/TSN协议在汽车以太网上的应用,可以更好的为汽车提供大带宽、高可靠、低时延、高精度时钟同步的成熟以及标准化解决方案。...
  • 基本概念和三个基本问题1)基本概念2)三个基本问题2.两种情况下的数据链路层1)点对点信道2)广播信道 1. 基本概念和三个基本问题 1)基本概念 (1)信道类型 点对点信道:这种信道使用一对一的点对点通信方式。...
  • 【实验目的】 掌握在路由器上如何配置 RIP 路由协议。 【背景描述】 ...两台路由器通过快速以太网端口连接在一起,每路由器上设置2Loopback端口模拟子网,在所有端口运行RIP路由协议,实现所有子
  • 一文读懂以太网

    千次阅读 2019-11-01 18:36:00
    文章目录序言网络协议栈介绍IEEE802.3与以太网的关系以太网协议栈介绍结合网卡硬件具体分析 序言 前阶段学习了UCOSIII,源码学完之后,我打算做点应用,鉴于我在网络互联方面的基础比较薄弱,所以我打算做一些网络...
  • 在交换机出现以前,搭建一个小型局域网的方法是通过 集线器 完成的。...然而,通过集线器来连接各个电脑就出现了三个问题: 这个包是发送给谁的?谁应该接收? 大家都在发送,会不会产生混乱?怎么避免混乱的情...
  • 车载以太网概述

    万次阅读 多人点赞 2018-06-07 18:08:11
    1.什么是车载以太网? 车载以太网是用于连接汽车内各种电气设备的一种物理...因此可以理解为,车载以太网在民用以太网协议的基础上,改变了物理接口的电气特性,并结合车载网络需求专门定制了一些新标准。针对车载...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 28,088
精华内容 11,235
关键字:

以太网协议如何解决三个基本问题