精华内容
参与话题
问答
  • 以太网帧结构

    2020-01-13 12:50:53
    网络中传输数据时需要定义并遵循一些标准,以太网是根据IEEE 802.3标准来管理和控制数据的。了解IEEE802.3标准是充分理解以太网中链路层通信的基础。 通信协议 这里我们更多的是去关注tcp/ip协议使用最广泛...
    这章是链路层通信基础,需要认真掌握每一个细节知识点

    网络中传输数据时需要定义并遵循一些标准,以太网是根据IEEE 802.3标准来管理和控制数据帧的。了解IEEE802.3标准是充分理解以太网中链路层通信的基础。

    • 通信协议
      这里我们更多的是去关注tcp/ip协议使用最广泛,因为现在大部分企业用的都是这种模型,而ISO(国际标准化组织)的osi模型则更多只是作为一种参考、标准‘框架。
      在这里插入图片描述
    • osi七层模型

    如下图,这就是经典的osi七层模型,上三层,作为软件开发人员主要研究的,而下四层则是由网络相关专业人员研究的。每层的作用都如图所示,通俗来说应用层我们应该理解为人机交互的界面,即我们可以看到的那一层,而表示层则是将这些数据转换为计算机可识别的编码,会话层则是维持着不同的会话,类似于你的qq与多个人聊天的会话一样。而传输层则是区分应用端口号的
    网络层:提供ip寻址和路由选择,当数据到网络层时,已成为数据包了。
    传输层则是将数据变成计算机可识别的进制,最后是物理层 ,将进制数据变成高低电压比特流传输出去。

    在这里插入图片描述

    • tcp/ip模型

    相比起osi模型,相对使用更加普遍,且将很多层何为一个层。
    在这里插入图片描述

    • 数据封装

    如下图所示不多做赘述

    在这里插入图片描述

    • 帧格式

    这个是我们要了解的地方,如下图,其中Ethernet2是现在比较常用的数据帧格式,每个数据单元所占字节如图所示,而区分数据包方式也如下图所示,看长度
    MTU>=1536的为Ethernet2,<=1500的为IEEE802.3

    在这里插入图片描述在这里插入图片描述在这里插入图片描述

    • 数据的传输

    在这里插入图片描述

    OUI为厂商代码由厂商提供而后24字节为供应商提供,所以mac地址是全球唯一的物理地址

    在这里插入图片描述

    注意:在mac地址的48位里面有这么特殊的一位,即在第1个字节的最后1位,若为1且后面不是F则该数据包是组播数据包,若为0则是单播数据包若为1 且后面为全F广播 。顺便补充一下组播 是广播的子集,是给开启相应功能的终端分组发送数据包

    在这里插入图片描述在这里插入图片描述在这里插入图片描述

    • 数据帧的发送和接收过程
      通俗来就是接手方收到数据包看到mac地址是自己,就一直把封装剥掉,漏出ip的内容,之后一直往上"寻"。

    在这里插入图片描述

    总结

    • 网络设备如何确定以太网数据帧的上层协议?

        靠pdu来识别,pdu都把上层协议标志的很清楚
      
    • 终端设备接收到数据帧时,会如何处理?

        根据是组播 广播 单播来执行指定相应操作,是自己的就收,不是则丢弃该数据帧。
      
    展开全文
  • 以太网帧结构详解

    万次阅读 多人点赞 2019-07-15 21:52:59
    以太网帧结构详解前言分层模型- OSI分层模型– TCP/IP数据封装终端之间的通信帧格式Ethernet_II 帧格式IEEE802.3 帧格式数据帧传输以太网的MAC地址数据帧的发送和接收单播广播组播发送与接收 前言 20世纪60年代以来...

    前言

    20世纪60年代以来,计算机网络得到了飞速发展。各大厂商和标准组织为了在数据通信网络领域占据主导地位,纷纷推出了各自的网络架构体系和标准,如IBM公司的SNA协议Novell公司的IPX/SPX协议,以及广泛流行的OSI参考模型和TCP/IP协议。同时,各大厂商根据这些协议生产出了不同的硬件和软件。标准组织和厂商的共同努力促进了网络技术的快速发展和网络设备种类的迅速增长。网络通信中,“协议”和“标准”这两个词汇常常可以混用。同时,协议或标准本身又常常具有层次的特点。

    一般地,关注于逻辑数据关系的协议通常被称为上层协议,而关注于物理数据流的协议通常被称为低层协议。IEEE 802就是一套用来管理物理数据流在局域网中传输的标准,包括在局域网中传输物理数据的802.3以太网标准。还有一些用来管理物理数据流在使用串行介质的广域网中传输的标准,如帧中继FR(Frame Relay)高级数据链路控制HDLC(High-Level Data Link Control)异步传输模式ATM(Asynchronous Transfer Mode)

    分层模型- OSI

    不同的协议栈用于定义和管理不同网络的数据转发规则。
    在这里插入图片描述
    国际标准化组织ISO1984年提出了OSI RM(Open System Interconnection Reference Model,开放系统互连参考模型)。OSI 参考模型很快成为了计算机网络通信的基础模型。

    OSI参考模型具有以下优点

    1. 简化了相关的网络操作;
    2. 提供了不同厂商之间的兼容性;
    3. 促进了标准化工作;
    4. 结构上进行了分层;
    5. 易于学习和操作。

    OSI参考模型各个层次的基本功能如下:

    1.物理层: 在设备之间传输比特流,规定了电平、速度和电缆针脚。

    2.数据链路层:将比特组合成字节,再将字节组合成帧,使用链路层地址(以太网使用MAC地址)来访问介质,并进行差错检测。

    3.网络层:提供逻辑地址,供路由器确定路径

    4.传输层:提供面向连接或非面向连接的数据传递以及进行重传前的差错检测。

    5.会话层:负责建立、管理和终止表示层实体之间的通信会话。该层的通信由不同设备中的应用程序之间的服务请求和响应组成。

    6.表示层:提供各种用于应用层数据的编码和转换功能,确保一个系统的应用层发送的数据能被另一个系统的应用层识别。

    7.应用层:OSI参考模型中最靠近用户的一层,为应用程序提供网络服务。

    分层模型– TCP/IP

    在这里插入图片描述
    TCP/IP模型同样采用了分层结构,层与层相对独立但是相互之间也具备非常密切的协作关系。

    TCP/IP模型将网络分为四层。TCP/IP模型不关注底层物理介质,主要关注终端之间的逻辑数据流转发

    TCP/IP模型的核心是网络层和传输层网络层解决网络之间的逻辑转发问题,传输层保证源端到目的端之间的可靠传输

    最上层的应用层通过各种协议向终端用户提供业务应用。

    数据封装

    在这里插入图片描述
    应用数据需要经过TCP/IP每一层处理之后才能通过网络传输到目的端,每一层上都使用该层的协议数据单元PDU(Protocol Data Unit)彼此交换信息。

    不同层的PDU中包含有不同的信息,因此PDU在不同层被赋予了不同的名称。

    1. 如上层数据在传输层添加TCP报头后得到的PDU被称为Segment(数据段 )
    2. 数据段被传递给网络层,网络层添加IP报头得到的PDU被称为Packet(数据包)
    3. 数据包被传递到数据链路层,封装数据链路层报头得到的PDU被称为Frame(数据帧)
    4. 最后,帧被转换为比特(物理层)

    通过网络介质传输。这种协议栈逐层向下传递数据,并添加报头和报尾的过程称为封装。

    终端之间的通信

    在这里插入图片描述
    数据链路层控制数据帧在物理链路上传输。

    数据包在以太网物理介质上传播之前必须封装头部和尾部信息。封装后的数据包称为称为数据帧,数据帧中封装的信息决定了数据如何传输。

    以太网上传输的数据帧有两种格式,选择哪种格式由TCP/IP协议簇中的网络层决定。

    帧格式

    在这里插入图片描述

    • 以太网上使用两种标准帧格式。

    第一种是上世纪80年代初提出的DIX v2格式,即Ethernet II帧格式。Ethernet II后来被IEEE 802标准接纳,并写进了IEEE 802.3x-1997的3.2.6节。

    第二种是1983年提出的IEEE 802.3格式。这两种格式的主要区别在于,Ethernet II格式中包含一个Type字段,标识以太帧处理完成之后将被发送到哪个上层协议进行处理。IEEE 802.3格式中,同样的位置是长度字段。

    • 不同的Type字段值可以用来区别这两种帧的类型

    Type字段值小于等于1500或者十六进制的0x05DC)时,帧使用的是IEEE 802.3格式。

    Type字段值大于等于1536 (或者十六进制的0x0600)时,帧使用的是Ethernet II格式。

    以太网中大多数的数据帧使用的是Ethernet II格式。

    以太帧中还包括源和目的MAC地址,分别代表发送者的MAC和接收者的MAC,此外还有帧校验序列字段,用于检验传输过程中帧的完整性。

    Ethernet_II 帧格式

    在这里插入图片描述
    Ethernet_II 帧类型值大于等于1536 (0x0600)

    以太网数据帧的长度在64-1518字节之间

    Ethernet_II的帧中各字段说明如下:

    1. DMAC(Destination MAC)是目的MAC地址。DMAC字段长度为6个字节,标识帧的接收者。
    2. SMAC(Source MAC)是源MAC地址。SMAC字段长度为6个字节,标识帧的发送者。
    3. 类型字段Type)用于标识数据字段中包含的高层协议,该字段长度为2个字节。类型字段取值为0x0800的帧代表IP协议帧;类型字段取值为0806的帧代表ARP协议帧。
    4. 数据字段(Data)是网络层数据,最小长度必须为46字节以保证帧长至少为64字节,数据字段的最大长度为1500字节。
    5. 循环冗余校验字段FCS)提供了一种错误检测机制。该字段长度为4个字节。

    IEEE802.3 帧格式

    在这里插入图片描述
    IEEE 802.3 帧长度字段值小于等于1500 (0x05DC)

    IEEE 802.3帧格式类似于Ethernet_II帧,只是Ethernet_II帧的Type域被802.3帧的Length域取代,并且占用了Data字段的8个字节作为LLC和SNAP字段。

    Length字段定义了Data字段包含的字节数

    逻辑链路控制LLC(Logical Link Control)由目的服务访问点DSAP(Destination Service Access Point)、源服务访问点SSAP(Source Service Access Point)和Control字段组成

    SNAP(Sub-network Access Protocol)由机构代码(Org Code)和类型(Type)字段组成。Org code三个字节都为0。Type字段的含义与Ethernet_II帧中的Type字段相同。IEEE802.3帧根据DSAP和SSAP字段的取值又可分为以下几类:

    1. DSAP和SSAP都取特定值0xff时,802.3帧就变成了Netware-ETHERNET帧,用来承载NetWare类型的数据。
    2. DSAP和SSAP都取特定值0xaa时,802.3帧就变成了ETHERNET_SNAP帧。ETHERNET_SNAP帧可以用于传输多种协议。
    3. DSAP和SSAP其他的取值均为纯IEEE802.3帧。

    数据帧传输

    在这里插入图片描述
    数据链路层基于MAC地址进行帧的传输

    以太网在二层链路上通过MAC地址来唯一标识网络设备,并且实现局域网上网络设备之间的通信。MAC地址也叫物理地址,大多数网卡厂商把MAC地址烧入了网卡的ROM中。发送端使用接收端的MAC地址作为目的地址。以太帧封装完成后会通过物理层转换成比特流在物理介质上传输。

    以太网的MAC地址

    在这里插入图片描述
    MAC地址由两部分组成,分别是供应商代码序列号。其中前24位代表该供应商代码,由IEEE管理和分配。剩下的24位序列号由厂商自己分配。

    如同每一个人都有一个名字一样,每一台网络设备都用物理地址来标识自己,这个地址就是MAC地址。网络设备的MAC地址是全球唯一的。MAC地址长度为48比特,通常用十六进制表示。MAC地址包含两部分:前24比特是组织唯一标识符(OUI,Organizationally Unique Identifier),由IEEE统一分配给设备制造商。

    例如,华为的网络产品的MAC地址前24比特是0x00e0fc。后24位序列号是厂商分配给每个产品的唯一数值,由各个厂商自行分配(这里所说的产品可以是网卡或者其他需要MAC地址的设备)。

    数据帧的发送和接收

    单播

    在这里插入图片描述
    局域网上的帧可以通过三种方式发送。

    第一种是单播,指从单一的源端发送到单一的目的端。每个主机接口由一个MAC地址唯一标识,MAC地址的OUI中,第一字节第8个比特表示地址类型。对于主机MAC地址,这个比特固定为0,表示目的MAC地址为此MAC地址的帧都是发送到某个唯一的目的端。

    冲突域中,所有主机都能收到源主机发送的单播帧,但是其他主机发现目的地址与本地MAC地址不一致后会丢弃收到的帧,只有真正的目的主机才会接收并处理收到的帧。

    广播

    在这里插入图片描述
    第二种发送方式是广播,表示帧从单一的源发送到共享以太网上的所有主机。广播帧的目的MAC地址为十六进制的FF:FF:FF:FF:FF:FF所有收到该广播帧的主机都要接收并处理这个帧。

    广播方式会产生大量流量,导致带宽利用率降低,进而影响整个网络的性能。

    当需要网络中的所有主机都能接收到相同的信息并进行处理的情况下,通常会使用广播方式。

    组播

    在这里插入图片描述
    第三种发送方式为组播组播比广播更加高效。组播转发可以理解为选择性的广播,主机侦听特定组播地址,接收并处理目的MAC地址为该组播MAC地址的帧。

    组播MAC地址和单播MAC地址是通过第一字节中的第8个比特区分的。组播MAC地址的第8个比特为1,而单播MAC地址的第8个比特为0。

    当需要网络上的一组主机(而不是全部主机)接收相同信息,并且其他主机不受影响的情况下,通常会使用组播方式。

    发送与接收

    在这里插入图片描述

    当主机接收到的数据帧所包含的目的MAC地址是自己时,会把以太网封装剥掉后送往上层协议。

    帧从主机的物理接口发送出来后,通过传输介质传输到目的端。共享网络中,这个帧可能到达多个主机。主机检查帧头中的目的MAC地址,如果目的MAC地址不是本机MAC地址,也不是本机侦听的组播或广播MAC地址,则主机会丢弃收到的帧。

    如果目的MAC地址是本机MAC地址,则接收该帧,检查帧校验序列(FCS)字段,并与本机计算的值对比来确定帧在传输过程中是否保持了完整性。如果帧的FCS值与本机计算的值不同,主机会认为帧已被破坏,并会丢弃该帧。如果该帧通过了FCS校验,则主机会根据帧头部中的Type字段来确定将帧发送给上层哪个协议处理

    本例中,Type字段的值为0x0800,表明该帧需要发送到IP协议上处理。在发送给IP协议之前,帧的头部和尾部会被剥掉。

    • 持续更新

      各位观看学习交流的小伙伴们,如果还没看爽的话,点开我的头像,有更多关于计算机网络的详细资料,以及更多惊喜等着你来赏析!

      如果大家觉得有帮助的话,可以动动你们的金手指点个赞或者是转发到空间、朋友圈里,让更多和你一样优秀的人看见欧!!!

    • 给未来自己的三行情书

      笔耕不断,夜以继日!
      生命不息,奋斗不止!!
      只有度过了一段连自己都被感动的日子,才会变成那个最好的自己!!!

    你们说呢?

    展开全文
  • 帧的封装与解析 (以太网帧结构

    热门讨论 2008-11-05 15:38:33
    是如何封装和解析的 初学者可以参考一下
  • 以太网帧结构解析

    万次阅读 2014-09-17 02:06:53
    由于需要做一个分析网卡接收的数据包的Project,需要了解以太网帧结构并解析,发现有很多内容从一般网络方面的知识是不够的,因此查阅了相关资料再此做一个记录以备忘。 以太网是目前最流行的有线的局域网技术,特别...

    由于需要做一个分析网卡接收的数据包的Project,需要了解以太网帧结构并解析,发现有很多内容从一般网络方面的知识是不够的,因此查阅了相关资料再此做一个记录以备忘。

    以太网是目前最流行的有线的局域网技术,特别是上世纪九十年后发展的交换式局域网增加了有效数据速率,同时集线器和交换机等普通且便宜的硬件更助长了其普及程度。以太网的数据帧格式如下图所示:


    数据字段:在交换式以太网中,一台主机向局域网中的另一台主机发送一个IP数据报,这个数据报封装在以太网帧结构中作为其有效载荷,以太网的最大传输单元(MTU)是1500字节,也就是限制了一个IP数据报最大为1500字节,如果超过1500字节,就要启用IP协议的分片策略进行传输。同时,数据字段最小长度为46字节,如果不够必须要填充到46字节。如IP数据报和填充部分会被网络层利用IP数据报首部的长度字段去除相关填充。

    MAC地址字段:6个字节共128位的MAC物理地址,用于标识局域网中的每个主机,目的MAC可以是某个机器的物理地址,也可以是FF-FF-FF-FF-FF-FF广播MAC地址。

    前同步码:前7字节都是10101010,最后一个字节是10101011。用于将发送方与接收方的时钟进行同步,主要是有不同的以太网类型,同时发送接收速率也不会完全精确的帧速率传输,因此需要在传输之前进行时钟同步。

    CRC:循环冗余校验,用来让接收方的网卡适配器检查接收的到数据帧是否有错误,是否有比特翻转引入差错,如果引入了差错就会丢弃,这是网卡适配器直接从硬件响应的。此字段是发送方发送时由适配器从该帧中除了前同步码之外的其他比特进行映射计算获得。

    类型字段:这是网络协议分层设计减小耦合度的精心设计,这允许以太网多路复用网络层协议,可以支持除了IP协议之外的其他不同网络层协议,或者是承载在以太网帧里的协议(如ARP协议)。接收方根据此字段进行多路分解,从而达到解析以太网帧的目的,将数据字段交给对应的上层网络层协议,这样就完成了以太网作为数据链路层协议的工作。

    通过上述分析,可以看出,前同步码由网卡适配器接收帧时同步时钟使用,不会再接收方显示,CRC字段用来校验帧,如果校验不合格就丢弃了,只有合格的数据帧才会被网卡接收,故CRC字段也不用管理。因此解析以太网数据帧的关键就是获取类型字段,然后根据类型字段将数据字段的数据交给上层协议进行处理。同时保存下目的MAC地址和源MAC地址,以供后续其他使用。

    根据 IEEE802.3,以太网类型字段(EtherType 字段)是两个八字节的字段。在量化评估中,字段中的第一个八位字节是最重要的。而当字段值大于等于十进制值 1536(即十六进制为 0600)时, EtherType 字段表示为 MAC 客户机协议(EtherType 解释)的种类。该类字段值取自 IEEE EtherType 字段寄存器。EtherType 字段是个极限空间,因此其分配是有限的。只有开发新的数据传输协议的人员需要使用 EtherType 字段,而不管他们实际上是否真正生产任何设备。IEEE RAC EtherType 字段批准权威机构负责检查和批准。具体详细定义如下:

    以太类型值(16进制)对应协议 

    0x0000 - 0x05DC   IEEE 802.3 长度  

    0x0101 – 0x01FF实验  

    0x0600 XEROX NS IDP  

    0x0660   0x0661DLOG  

    0x0800网际协议(IP)  

    0x0801 X.75 Internet  

    0x0802 NBS Internet  

    0x0803 ECMA Internet  

    0x0804  Chaosnet  

    0x0805 X.25 Level 3  

    0x0806地址解析协议(ARP : Address Resolution Protocol) 
    0x0808 帧中继 ARP (Frame Relay ARP) [RFC1701] 
    0x6559 原始帧中继(Raw Frame Relay) [RFC1701] 
    0x8035动态 DARP (DRARP:Dynamic RARP)反向地址解析协议(RARP:Reverse Address Resolution Protocol) 
    0x8037Novell Netware IPX  

    0x809BEtherTalk  

    0x80D5 IBM SNA Services over Ethernet  

    0x80F3AppleTalk 地址解析协议(AARP:AppleTalk Address Resolution Protocol) 

    0x8100 以太网自动保护开关(EAPS:Ethernet Automatic Protection Switching) 

    0x8137 因特网包交换(IPX:Internet Packet Exchange) 

    0x814C  简单网络管理协议(SNMP:Simple Network Management Protocol) 

    0x86DD网际协议v6(IPv6,Internet Protocol version 6) 

    0x8809 OAM 
    几个重要字段的含义如下: 
     Dest addr:以太网OAM报文的目的MAC地址,为组播MAC地址0180c2000002。  Source addr:以太网OAM报文的源MAC地址,为发送端的桥MAC地址,该地址是一个单播MAC地址。 
     Type:以太网OAM报文的协议类型,为0x8809。 
     Subtype:以太网OAM报文的协议子类型,为0x03。 
    Flags:Flags域,包含了以太网OAM实体的状态信息。 
     Code:本字段指明了OAMPDU的报文类型。0x00表示Information OAMPDU、0x01表示Event Notification OAMPDU、0x04表示Loopback Control OAMPDU。 以下是几种常用的OAMPDU报文的作用:  Information OAMPDU 
    Information OAMPDU报文用于将以太网OAM实体的状态信息(包括本地信息、远端信息和自定义信息)发给远端的以太网OAM实体,保持以太网OAM连接。  Event Notification OAMPDU Event Notification OAMPDU(事件通知OAMPDU)报文一般用于链路监控,是用于对连接本端和远端以太网OAM实体的链路发生的故障进行告警。  Loopback Control OAMPDU 
    Loopback Control OAMPDU(环路控制OAMPDU)报文主要用于远端环回控制,环回控制OAMPDU报文用来控制远端设备的OAM环回状态,该报文中带有使能或去使能环回功能的信息,根据该信息开启或关闭远端环回功能。 

    0x880B点对点协议(PPP:Point-to-Point Protocol) 

    0x880C 通用交换管理协议(GSMP:General Switch Management Protocol) 

    0x8847 多协议标签交换(单播) MPLS:Multi-Protocol Label Switching <unicast>) 

    0x8848 多协议标签交换(组播)(MPLS, Multi-Protocol Label Switching <multicast>) 

    0x8863 以太网上的 PPP(发现阶段)(PPPoE:PPP Over Ethernet <Discovery Stage>) 

    0x8864 以太网上的 PPP(PPP 会话阶段) (PPPoE,PPP Over Ethernet<PPP Session Stage>) 

    0x88BB 轻量级访问点协议(LWAPP:Light Weight Access Point Protocol)  0x88CC  链接层发现协议(LLDP:Link Layer Discovery Protocol) 

    0x8E88 局域网上的 EAP(EAPOL:EAP over LAN) 

    0x9000 配置测试协议(Loopback) 

    0x9100 VLAN 标签协议标识符(VLAN Tag Protocol Identifier) 

    0x9200 VLAN 标签协议标识符(VLAN Tag Protocol Identifier)  

    0xFFFF 保留

    对于常用的以太网承载的协议和功能被标注出来了,只需要通过判断这个类型字段就可以解析以太网数据帧并交由上层协议进一步处理了。

    下面是在抓取到网卡适配器的数据帧后进行解析的代码,按照上述规范比较简单。

    /// <summary>
        /// Define the Ethernet packet to parse the caught packet
        /// </summary>
        public class EthernetParket
        {
            public string DstMAC = "";
            public string SrcMAC = "";
    
            public string Type = "";
    
            public byte[] Data;
    
            public EthernetParket(byte[] rawFrame)
            {
                if (rawFrame.Length < 46 || rawFrame.Length > 1500)
                {
                    throw new Exception("Frame too short!");
                }
                
                //Set the Destination MAC and Source MAC
                DstMAC = Util.JoinByteArr(Util.SubByteArr(rawFrame, 0, 6), "-");
                SrcMAC = Util.JoinByteArr(Util.SubByteArr(rawFrame, 6, 6), "-");
    
                //Set the upper layer protocal type
                Type = rawFrame[12].ToString("X2") + rawFrame[13].ToString("X2");
    
                //Set the upper layer data
                Data = Util.SubByteArr(rawFrame, 14);
            }
        }
        
        /// <summary>
        /// The most common used function to parse raw byte data
        /// Defined as static class and method for the performance
        /// </summary>
        public static class Util
        {
            public static byte[] SubByteArr(byte[] arr, int start, uint count = 0)
            {
                int s = start;
                uint e = 0;
                int len = arr.Length;
                if (start < 0)
                {
                    s = len + start;
                }
                count = 0 == count ? (uint)(len - s) : count;
                e = (uint)s + count;
    
                byte[] a = new byte[count];
                for (int i = s, j = 0; i < e; i++, j++)
                {
                    a[j] = arr[i];
                }
                return a;
            }
    
        }


    展开全文
  • 常见以太网帧结构

    千次阅读 2017-10-25 08:57:00
    常见的以太网帧结构由ETHERNET II 和 IEEE802.3。 ETHERNET II 数据链路层帧格式  IEEE802.3数据链路层帧格式 Ethernet II和IEEE802.3的帧格式比较类似,主要的不同点在于前者定义的2字节的类型,...

    常见的以太网帧结构由ETHERNET II 和 IEEE802.3。

    ETHERNET II 数据链路层帧格式

     IEEE802.3数据链路层帧格式

    Ethernet II和IEEE802.3的帧格式比较类似,主要的不同点在于前者定义的2字节的类型,而后者定义的是2字节的长度;所幸的是,后者定义的有效长度值与前者定义的有效类型值无一相同,这样就容易区分两种帧格式了。

    关于类型/长度字段两个字节定义(十六进制):

    0x0000 - 0x05DC   IEEE 802.3 长度  

    0x0101 – 0x01FF实验  

    0x0600 XEROX NS IDP  

    0x0660   0x0661DLOG  

    0x0800网际协议(IP)  

    0x0801 X.75 Internet  

    0x0802 NBS Internet  

    0x0803 ECMA Internet  

    0x0804  Chaosnet  

    0x0805 X.25 Level 3  

    0x0806地址解析协议(ARP : Address Resolution Protocol) 
    0x0808 帧中继 ARP (Frame Relay ARP) [RFC1701] 
    0x6559 原始帧中继(Raw Frame Relay) [RFC1701] 
    0x8035动态 DARP (DRARP:Dynamic RARP)反向地址解析协议(RARP:Reverse Address Resolution Protocol) 
    0x8037Novell Netware IPX  

    0x809BEtherTalk  

    0x80D5 IBM SNA Services over Ethernet  

    0x80F3AppleTalk 地址解析协议(AARP:AppleTalk Address Resolution Protocol) 

    0x8100 以太网自动保护开关(EAPS:Ethernet Automatic Protection Switching) 

    0x8137 因特网包交换(IPX:Internet Packet Exchange) 

    0x814C  简单网络管理协议(SNMP:Simple Network Management Protocol) 

    0x86DD网际协议v6(IPv6,Internet Protocol version 6) 

    0x8809 OAM 


     数据链路层ARP/RARP帧结构如下:

    具体ARP报文封装,详见FPGA极客空间文章《经典协议讲解,一定要看》。

    数据链路层位于TCP/IP协议第二层,第一层是物理层,通常由物理芯片实现。

    TCP/IP协议第三层为网络层(IP层),封装格式如下:


          IP数据报在链路层帧结构中的封装

    具体IP协议,详见FPGA极客空间《internet上的网络层》。

    在网络层上,可以使用ICMP协议实现PING功能,ICMP协议是封装在IP协议里面的,具体结构如下:

    ICMP具体详细数据报结构,详见FPGA极客空间《PING功能的实现》。


          版权所有权归卿萃科技,转载请注明出处  

    作者:卿萃科技ALIFPGA  

    原文地址:卿萃科技FPGA极客空间 微信公众号


       

     扫描二维码关注卿萃科技FPGA极客空间


     

    展开全文
  • 以太网帧结构概述

    千次阅读 2010-04-18 19:06:00
    以太网帧是OSI参考模型数据链路层的封装,网络层的数据包被加上帧头和帧尾,构成可由数据链路层识别的数据帧。虽然帧头和帧尾所用的字节数是固定不变的,但根据被封装数据包...一、典型帧结构:Ethernet_II Ethernet_
  • 0x00 汇总链接 汇总链接 吐槽一波先,讲网络的ppt,居然只给tcp/ip协议栈和OSI参考模型各一页内容,我吐了。 开局一张图,其余全靠吹。。。 0x01 数据封装 生活中主要的协议栈就是TCP/IP了,一共分为四层,每层都有...
  • 一、以太网帧结构

    2020-02-25 11:57:46
    3.简化了相关的网络操作,提供了不同厂商之间的兼容性,促进了标准化结构上进行了分层,易于学习和操作 4.各个层次独立,一层的变化不会影响到邻层 OSI参考模型 OSI参考模型由国际标准化组织ISO于1987年提出 7....
  • 常见以太网帧结构详解 1 以太网相关背景 以太网这个术语通常是指由DEC,Intel和Xerox公司在1982年联合公布的一个标准,它是当今TCP/IP采用的主要的局域网技术,它采用一种称作CSMA/CD的媒体接入方法。几年后,IEEE...
  • 2.以太网帧结构

    2020-02-01 21:59:46
    掌握以太网中数据结构 掌握MAC地址的作用 掌握以太网中数据转发的过程 网络通信协议 不同的协议栈用于定义和管理不同的数据转发规则 SNA协议——IBM公司 IPX\SPX协议——Novell公司 “协议”=“标准”...
  • 常见以太网帧结构详解 1 以太网相关背景 以太网这个术语通常是指由DEC,Intel和Xerox公司在1982年联合公布的一个标准,它是当今TCP/IP采用的主要的局域网技术,它采用一种称作CSMA/CD的媒体接入方法。几年后,IEEE...

空空如也

1 2 3 4 5 ... 20
收藏数 684
精华内容 273
关键字:

以太网帧结构