精华内容
下载资源
问答
  • 以太网帧格式、IP数据报格式、TCP段格式+UDP段格式 详解
  • 以太网帧格式

    2013-12-07 09:26:11
    以太网帧格式,详细描写以太网的帧格式,具体到每个帧代表的意思。
  • 以太网帧格式详细

    2011-10-21 11:32:59
    以太网帧格式的详细描述,详细定义,仔细看会有收获。
  • 以太网帧 以太网帧是在链路层,链路层的主要职能是检错和校验,以太网帧格式如下: 其中,目的地址和源地址是网卡中的硬件地址(也叫MAC地址),目的地址是下一个网卡的MAC地址。要获取下一个网卡的MAC地址,需要...

    1.路由器寻路

    路由器根据自身的路由表,寻找下一个路由节点。

    2.数据包的封装结构

    在这里插入图片描述

    3.以太网帧

    以太网帧是在链路层,链路层的主要职能是检错和校验,以太网帧格式如下:
    在这里插入图片描述其中,目的地址和源地址是网卡中的硬件地址(也叫MAC地址),目的地址是下一个网卡的MAC地址。要获取下一个网卡的MAC地址,需要使用ARP请求。当以太网封装的类型为0800时,传输的是普通的数据报。当类型为0806时,为ARP请求。帧尾CRC为校验码。

    4.ARP数据报

    ARP数据报的格式如下:
    在这里插入图片描述

    在这里插入图片描述这里面ARP数据报格式就是一个0806类型的以太网帧格式,但是不包括PAD和CRC。这里面的18字节的PAD表示填充,为了凑够46字节,没有实际意义。
    我们主要看28字节ARP请求中的发送端以太网地址,发送端IP地址,目的以太网地址,目的IP地址。其中,发送端以太网地址,发送端IP地址,是当前的网卡的地址,是已知的,目的IP地址可以根据网络层的最终目的地址和当前所在路由器的路由表得到,而以太网目的地址未知。ARP请求之后,以太网目的地址会发回以太网发送端,这样发送端就知道目的以太网地址。
    所以ARP协议就是为了获取下一个要投递的路由的MAC地址,即为了获取下一跳的MAC地址。

    展开全文
  • 浅谈以太网帧格式 一、Ethernet帧格式的发展 1980 DEC,Intel,Xerox制订了Ethernet I的标准 1982 DEC,Intel,Xerox又制订了Ehternet II的标准 1982 IEEE开始研究Ethernet的国际标准802.3 1983 迫不及待的Novell基于...

     

    浅谈以太网帧格式                                      

    一、Ethernet帧格式的发展

    1980 DEC,Intel,Xerox制订了Ethernet I的标准 1982 DEC,Intel,Xerox又制订了Ehternet II的标准 1982 IEEE开始研究Ethernet的国际标准802.3  1983 迫不及待的Novell基于IEEE的802.3的原始版开发了专用的Ethernet帧格式 1985 IEEE推出IEEE 802.3规范,后来为解决EthernetII与802.3帧格式的兼容问题, 推出折衷的Ethernet SNAP格式

    (其中早期的Ethernet I已经完全被其他帧格式取代了 ,所以现在Ethernet只能见到后面几种Ethernet的帧格式, 现在大部分的网络设备都支持这几种Ethernet的帧格式, 如:cisco的路由器再设定Ethernet接口时可以指定不同的以太网的帧格式:arpa,sap,snap,novell-ether)

    二.各种不同的帧格式  下面介绍一下各个帧格式  1.Ethernet II 就是DIX以太网联盟推出的。。。。 它由6个字节的目的MAC地址,6个字节的源MAC地址, 2个字节的类型域(用于标示封装在这个Frame、里面 数据的类型)以上为Frame Header, 接下来是46--1500字节的数据,和4字节的帧校验 2.Novell Ethernet 它的帧头与Ethernet有所不同其中EthernetII帧头中的类型域变成了长度域,  后面接着的两个字节为0xFFFF,用于标示这个帧是Novell Ether类型的Frame, 由于前面的0xFFFF站掉了两个字节所以数据域缩小为44-1498个字节,帧校验不变。 3.IEEE 802.3/802.2  802.3的Frame Header和Ethernet II的帧头有所不同,EthernetII类型域变成了长度域。  其中又引入802.2协议(LLC)在802.3帧头后面添加了一个LLC首部, 由DSAP(Destination Service Access Point)1 byte,SSAP(Source SAP),一个控制域--1 byte! SAP用于标示帧的上层协议。

    4.Ethernet SNAP  SNAP Frame与802.3/802.2 Frame的最大区别是增加了一个5 Bytes的SNAP ID 其中前面3个byte通常与源mac地址 的前三个bytes相同为厂商代码!  有时也可设为0,后2 bytes与Ethernet II的类型域相同。。。

     三.如何区分不同的帧格式    Ethernet中存在这四种Frame那些网络设备又是如何识别的呢? 如何区分EthernetII与其他三种格式的Frame 如果帧头跟随source mac地址的2 bytes的值大于1500,则此Frame为EthernetII格式的     接着比较紧接着的两bytes如果为0xFFFF则为Novell Ether类型的Frame, 如果为0xAAAA则为Ethernet SNAP格式的Frame ,如果都不是则为Ethernet 802.3/802.2格式的帧

     几种以太网帧格式     相当长的一段时间里我都没搞明白一个很基础的问题---以太网的封装格式;最近查了查相关文档,总结如下;   首先说明一下,Ethernet和802.3并不是一回事,虽然我们经常混用这两个术语;   历史上以太网帧格式有五种:   1.Ethernet V1:这是最原始的一种格式,是由Xerox PARC提出的3Mbps CSMA/CD以太网标准的封装格式,  后来在1980年由DEC,Intel和Xerox标准化形成Ethernet V1标准;   2.Ethernet V2(ARPA):这是最常见的一种以太网帧格式,也是今天以太网的事实标准,  由DEC,Intel和Xerox在1982年公布其标准,主要更改了Ethernet V1的电气特性和物理接口,  在帧格式上并无变化;Ethernet V2出现后迅速取代Ethernet V1成为以太网事实标准; Ethernet V2帧头结构为6bytes的源地址+6bytes的目标地址+2Bytes的协议类型字段+数据。  常见协议类型如下: 0800       IP  0806       ARP  8137       Novell IPX  809b       Apple Talk 如果协议类型字段取值为0000-05dc(十进制的0-1500),则该帧就不是Ethernet V2(ARPA)类型了,而是下面讲到的三种802.3帧类型之一; Ethernet可以支持TCP/IP,Novell IPX/SPX,Apple Talk Phase I等协议;RFC 894定义了IP报文在Ethernet V2上的封装格式;   3.RAW 802.3:这是1983年Novell发布其划时代的Netware/86网络套件时采用的私有以太网帧格式,  该格式以当时尚未正式发布的802.3标准为基础;  但是当两年以后IEEE正式发布802.3标准时情况发生了变化—IEEE在802.3帧头中又加入了802.2 LLC(Logical Link Control)头,  这使得Novell的RAW 802.3格式跟正式的IEEE 802.3标准互不兼容;可以看到在Novell的RAW 802.3帧结构中并没有标志协议类型的字段,  而只有Length字段(2bytes,取值为0000-05dc,即十进制的0-1500),因为RAW 802.3帧只支持IPX/SPX一种协议;   4.802.3/802.2 LLC:这是IEEE 正式的802.3标准,它由Ethernet V2发展而来。  它将Ethernet V2帧头的协议类型字段替换为帧长度字段(取值为0000-05dc;十进制的1500);  并加入802.2 LLC头用以标志上层协议,LLC头中包含DSAP,SSAP以及Crontrol字段;  常见SAP值: 0         Null LSAP        [IEEE]  4        SNA Path Control         [IEEE]  6        DOD IP        [79,JBP]  AA         SNAP        [IEEE]  FE        Global DSAP        [IEEE]  SAP值用以标志上层应用,但是每个SAP字段只有8bits长,  而且其中仅保留了6比特用于标识上层协议,因此所能标识的协议数有限(不超过32种);  并且IEEE拒绝为某些重要的协议比如ARP协议定义SAP值(奇怪的是同时他们却定义了IP的SAP值);  因此802.3/802.2 LLC的使用有很大局限性;   5.802.3/802.2 SNAP:这是IEEE为保证在802.2 LLC上支持更多的上层协议同时更好的支持IP协议而发布的标准,  与802.3/802.2 LLC一样802.3/802.2 SNAP也带有LLC头,但是扩展了LLC属性,  新添加了一个2Bytes的协议类型域(同时将SAP的值置为AA),  从而使其可以标识更多的上层协议类型;  另外添加了一个3Bytes的OUI字段用于代表不同的组织,RFC 1042定义了IP报文在802.2网络中的封装方法和ARP协议在802.2 SANP中的实现;   今天的实际环境中大多数TCP/IP设备都使用Ethernet V2格式的帧。  这是因为第一种大规模使用的TCP/IP系统(4.2/3 BSD UNIX)的出现时间介于RFC 894和RFC 1042之间,  它为了避免不能和别的主机互操作的风险而采用了RFC 894的实现;  也由于大家都抱着这种想法,所以802.3标准并没有如预期那样得到普及;   CISCO设备的Ethernet Interface默认封装格式是ARPA(Ethernet V2)

    不同厂商对这几种帧格式通常有不同的叫法,比如: Frame Type         Novel        Cisco  Ethernet Version 2        Ethernet_II        arpa  802.3 Raw        Ethernet_802.3        novell_ether  IEEE 802.3/802.2        Ethernet_802.2        sap  IEEE 802.3/802.2 SNAP        ETHERNET_SNAP        snap **************************************************************************************************************************************

     

     

    一、 以太网数据帧的格式分析

    大家都知道我们目前的局域网大多数是以太网,但以太网有多种标准,其数据帧有多种格式,恐怕有许多人不是太清楚,本文的目的就是通过帧格式和Sniffer捕捉的数据包解码来区别它们。

    以太网这个术语一般是指数字设备公司(DigitalEquipment)、英特尔公司(Intel)和施乐公司(Xerox)在1982年联合公布的一个标准(实际上它是第二版本,第一版本早在1972年就在施乐公司帕洛阿尔托研究中心PARC里产生了)。它是目前TCP/IP网络采用的主要的局域网技术。它采用一种称作CSMA/CD的媒体接入方法,其意思是带冲突检测的载波侦听多路接入(Carrier Sense, Multiple Access with CollisionDetection)。它的速率为10 Mb/s,地址为48 bit。

    1985年,IEEE(电子电气工程师协会)802委员会公布了一个稍有不同的标准集,其中802.3针对整个CSMA/CD网络,802.4针对令牌总线网络,802.5针对令牌环网络。这三者的共同特性由802.2标准来定义,那就是802网络共有的逻辑链路控制(LLC)。不幸的是,802.2和802.3定义了一个与以太网不同的帧格式,加上1983年Novell为其Netware开发的私有帧,这些给以太网造成了一定的混乱,也给我们学习以太网带来了一定的影响。

    1、通用基础

    数据链路层头(Header)是数据链路层的控制信息的长度不是固定的,根据以太网数据帧的格式的不同而不同,那么判断IEEE802.3、IEEE802.3 SNAP、Ethernet Version2、Netware 802.3“Raw”这些数据帧的最主要依据也源于Header的变化。

    从Sniffer捕捉数据包中也可以看出,Sniffer捕捉数据包的时候是掐头去尾的,不要前面的前导码,也丢弃后面的CRC校验(注意它只是不在Decode里显示该区域,但并不代表它不去做数据包CRC校验),这就是很多人困惑为什么Sniffer捕捉到的数据包长度跟实际长度不相符的原因。那么,Sniffer是如何来判断这些不同类型的以太网格式呢?

    Sniffer可以判断出不同的以太网格式,这里需要注意的是,Sniffer在数据包解码时有自己的格式,所以有Offset之说,offset ØE是指在SnifferHex解码窗口中从左向右第15位的数值。大家如果有点发懵的话,没有关系,看完后面的格式分析后再来分析前面提到的,相信一定能够明白?

    下面我们通过一些具体的数据包来说明各种以太网格式的具体区别。

    2、Ethernet Version2

    以太网版本2是先于IEEE标准的以太网版本。

    从数据包中可以看出,EthernetV2通过在DLC头中2个字节的类型(Type)字段来辨别接收处理。类型字段是用来指定上层协议的(如0800指示IP、0806指示ARP等),它的值一定是大于05FF的,它提供无连接服务的,本身不控制数据(DATA)的长度,它要求网络层来确保数据字段的最小包长度(46字节)。

    Sniffer捕获的Ethernet V2帧的解码,可以看到在DLC层,源DLC地址后紧跟着就是以太网类型(Etehertype)值0800,代表上层封装的是IP报文,0800大于05FF,因而我们可以断定它是Ethernet V2的帧。

     

    3、IEEE802.3

    IEEE802.3把DLC层分隔成明显的两个子层:MAC层和LLC层,其中MAC层主要是指示硬件目的地址和源地址。LLC层用来提供一些服务:

    – 通过SAP地址来辨别接收和发送方法

    – 兼容无连接和面向连接服务

    – 提供子网访问协议(Sub-network Access Protocol,SNAP),类型字段即由它的首部给出。

    MAC层要保证最小帧长度不小于64字节,如果数据不满足64字节长度就必须进行填充。

    是Sniffer捕获的IEEE802.3帧的解码,可以看到在DLC层源地址后紧跟着就是802.3的长度(Length)字段0026,它小于05FF,可以肯定它不是Ethernet V2的帧,而接下来的Offset0E处的值“4242”(代表DSAP和SSAP),既不是Novell 802.3 “Raw”的特征值“FFFF”,也不是IEEE 802.3SNAP的特征值“AAAA”,因此它肯定是一个IEEE802.3的帧。

     

    4、IEEE802.3 SNAP

    SNAP (Sub-Network AccessProtocol)子网访问协议,是逻辑链路控制(Logical LinkControl)的一个子集,它允许协议不用通过服务访问点(SAP)即可实现IEEE兼容的MAC层功能,因此它在DSAP和SSAP域里的值是固定的(AAAA)。也正源于此,它需要额外提供5个字节的头来指定接收方法,3个字节标识厂商代码,2个字节标识上层协议。

    其MAC层保证数据帧长度不小于64字节,不足的话需要进行数据填充。

    是Sniffer捕获的IEEE802.3SNAP帧的解码,可以看到在DLC层源地址后紧跟着就是802.3的长度(Length)字段0175,它小于05FF,可以肯定它不是Ethernet V2的帧,而接下来的Offset 0E处的值“AAAA”(代表DSAP和SSAP),这是IEEE 802.3SNAP的特征值“AAAA”,因此可以断定它是一个IEEE802.3 SNAP的帧。

     

    5、Novell Netware 802.3 “Raw”

    虽然它的产生先于IEEE802.3规范,但已成为IEEE802.3规范的一部分。它仅使用DLC层的下半部,而不使用LLC。

    802.3 “Raw”帧通过在DLC头中2个字节的长度(Length)字段来标记数据帧长度,而在长度字段后紧跟着就是两个字节的十六进制值FFFF,它是用来标识IPX协议头的开始。为了确保最小数据帧长度为64字节,MAC层会进行填充数据区域来确保最小长度。

    在所有工作站都使用同一种数据帧类型情况下不会有什么问题,但如果是在混合以太网帧类型环境中,Novell的这种以太网帧会造成负面影响:当Novell发出广播帧时,其FF字段正好是IEEE802.3帧中的服务访问点(SAP)域,它的“FF”值代表着广播SAP,因此所有的工作站(不管是不是Netware工作站)都会拷贝,这会造成不必要的广播影响。

    Sniffer捕获的Netware 802.3“RAW”帧的解码,可以看到在DLC层源地址后紧跟着就是802.3的长度(Length)字段0120,它小于05FF,可以肯定它不是Ethernet V2的帧,而接下来的Offset 0E处的值“FFFF”(代表IPX协议的开始),这是Netware 802.3“Raw”的特征值“FFFF”,因此可以断定它是一个Novell 802.3 “Raw”的帧。

     

    二、 Ethernet V2帧与IEEE 802.3帧的比较

    因为这两种帧是我们在现在的局域网里最常见的两种帧,因此,我们对它们进行一些比较。

    Ethernet V2可以装载的最大数据长度是1500字节,而IEEE802.3可以装载的最大数据是1492字节(SNAP)或是1497字节; Ethernet V2不提供MAC层的数据填充功能,而IEEE802.3不仅提供该功能,还具备服务访问点(SAP)和SNAP层,能够提供更有效的数据链路层控制和更好的传输保证。那么我们可以得出这样的结论:Ethernet V2比IEEE802.3更适合于传输大量的数据,但EthernetV2缺乏数据链路层的控制,不利于传输需要严格传输控制的数据,这也正是IEEE802.3的优势所在,越需要严格传输控制的应用,越需要用IEEE802.3或SNAP来封装,但IEEE802.3也不可避免的带来数据装载量的损失,因此该格式的封装往往用在较少数据量承载但又需要严格控制传输的应用中。

    在实际应用中,我们会发现,大多数应用的以太网数据包是EthernetV2的帧(如HTTP、FTP、SMTP、POP3等应用),而交换机之间的BPDU(桥协议数据单元)数据包则是IEEE802.3的帧,VLANTrunk协议如802.1Q和Cisco的CDP(思科发现协议)等则是采用IEEE802.3SNAP的帧。大家有兴趣的话,可以利用Sniffer等协议分析工具去捕捉数据包,然后解码查看是不是这样的。

    转载于:https://www.cnblogs.com/zhangbing12304/p/11016618.html

    展开全文
  • 内容概要1、数据链路层功能2、以太网MAC地址3、以太网帧格式4、交换机工作原理和工作模式1、交换机的工作原理2、交换机的工作方式5、ensp基础命令 1、数据链路层功能 数据链路层在物理层提供的服务的基础上向网络层...

    1、数据链路层功能

    数据链路层在物理层提供的服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层,包括链路的建立,维护,拆除等。
    在这里插入图片描述

    2、以太网MAC地址

    以太网MAC地址是用来识别一个以太网上的某个单独设备或者是一组设备。
    MAC地址是由48位二进制数组成,通常分为六段,每段用十六进制表示。

    3、以太网帧格式

    源MAC地址,目标MAC地址,上层数据类型,校验码四个部分组成,一共有18个字节。0800H表示IP协议,0806H表示ARP协议
    在这里插入图片描述

    4、交换机工作原理和工作模式

    1、交换机的工作原理

    A主机和B主机都连接在交换机上,A主机想与B主机沟通,首先双方是从初始状态开始,两边都互相不认识,A发送数据帧给交换机时,交换机就会记录A主机的MAC地址,换言之就是学习A主机的MAC地址,接着写进MAC地址表并且记录A主机的接口号。此时交换机并不知道B主机位置,下一步交换机会进行广播泛洪(交换机所有接入的主机都会被广播泛洪,除了发送方A主机),接收者会进行接收,并给交换机回应,此时交换机会进行二次学习,记录B主机的MAC地址与接口,接着把数据转发给A,这时交换机已经有了A主机的MAC地址与接口号以及B主机的MAC地址与接口号,就可以实现单播通信了。

    2、交换机的工作方式

    交换机的工作方式可以分为三种,单工通信,半双工通信和全双工通信
    单工通信:两个数据站之间只能沿单一方向进行传输数据。例:音响
    半双工通信:两个数据站之间可以实现双向数据传输,但是不能同时进行。例:对讲机
    全双工通信:两个数据站之间可以双向且同时进行数据传输。例:电话

    交换机以太网接口速率:1、接口连接时进行协商。2、协商失败则无法正常通信。

    5、ensp基础命令

    用户视图模式切换至系统视图模式[Huawei]
    system-view

    1、历史命令查询
    [Huawei] display history-command

    2、配置主机名
    system-view
    [Huawei] sysname Router1

    3、状态信息查询
    display version ####查看VRP版本
    display users ####查看用户终端信息

    4、进入接口模式并查看信息
    sys
    [Huawei]int e0/0/1
    [Huawei-GigabitEthernet0/0/1]dis this ####查看当前视图下的配置信息

    5、配置文件管理命令
    [Huawei]display saved-configuration ###查看设备保存的信息
    [Huawei]display current-configuration ###查看设备当前配置的信息
    reset saved-configuration ###擦除存储设备中的配置文件
    compare configuration ###比较当前配置信息与存储设备中的保存文件是否一致

    6、关闭华为的信息提示中心
    [Huawei]undo info-center enable
    或者
    undo terminal monitor

    7、永不超时
    [Huawei]user-interface console 0
    [Huawei-ui-console0]idle-timeout 0 0

    8、配置双工及速率命令
    sys
    [Huawei]int g0/0/1
    [SW1-Ethernet0/0/1]undo negotiation auto ###关闭自动协商
    [SW1-Ethernet0/0/1]speed 100 ###调至速率100M
    [SW1-Ethernet0/0/1]duplex full ###调至全双工模式, 解释:full:Full-Duplex(全双工模式) half:Half-Duplex(半双工模式)

    9、保存配置
    save

    10、设置远程登录密码
    [Huawei]user-interface vty 0 4 #0是初始值,4是结束值。表示可同时打开5个会话进入交换机去配置命令
    [Huawei-ui-vty0-4]authentication-mode password
    [Huawei-ui-vty0-4]set authentication password simple 222
    [Huawei-ui-vty0-4]user privilege level 3
    [Huawei-ui-vty0-4]dis this

    用SecureCRT链接eNSP
    双击打开某台设备有【视图】和【配置】,打开【配置】—窗口配置:串口号:2000 ###这个是端口号
    打开SecureCRT 点击【链接】—【Protocol】Telnet----【Hostname】127.0.0.1----【Prot】2000
    当前终端被打开—断开【disconnect】----会话【session options】-----强制每次一个字符模式【Force charater at atime mode】—保存【OK】
    右击当前终端—链接【reconnect】

    展开全文
  • 以太网帧格式详解

    万次阅读 2017-07-28 23:49:26
    浅谈以太网帧格式  一、Ethernet帧格式的发展 1980 DEC,Intel,Xerox制订了Ethernet I的标准 1982 DEC,Intel,Xerox又制订了Ehternet II的标准 1982 IEEE开始研究Ethernet的国际标准802.3 1983 迫不及待...

    浅谈以太网帧格式                                      

    一、Ethernet帧格式的发展

    1980 DEC,Intel,Xerox制订了Ethernet I的标准
    1982 DEC,Intel,Xerox又制订了Ehternet II的标准
    1982 IEEE开始研究Ethernet的国际标准802.3
    1983 迫不及待的Novell基于IEEE的802.3的原始版开发了专用的Ethernet帧格式
    1985 IEEE推出IEEE 802.3规范,后来为解决EthernetII与802.3帧格式的兼容问题,
    推出折衷的Ethernet SNAP格式

    (其中早期的Ethernet I已经完全被其他帧格式取代了 ,所以现在Ethernet只能见到后面几种Ethernet的帧格式,
    现在大部分的网络设备都支持这几种Ethernet的帧格式,
    如:cisco的路由器再设定Ethernet接口时可以指定不同的以太网的帧格式:arpa,sap,snap,novell-ether)

    二.各种不同的帧格式
    下面介绍一下各个帧格式 
    1.Ethernet II
    就是DIX以太网联盟推出的。。。。 它由6个字节的目的MAC地址,6个字节的源MAC地址,
    2个字节的类型域(用于标示封装在这个Frame、里面 数据的类型)以上为Frame Header,
    接下来是46--1500字节的数据,和4字节的帧校验
    2.Novell Ethernet
    它的帧头与Ethernet有所不同其中EthernetII帧头中的类型域变成了长度域,
    后面接着的两个字节为0xFFFF,用于标示这个帧是Novell Ether类型的Frame,
    由于前面的0xFFFF站掉了两个字节所以数据域缩小为44-1498个字节,帧校验不变。
    3.IEEE 802.3/802.2
    802.3的Frame Header和Ethernet II的帧头有所不同,EthernetII类型域变成了长度域。
    其中又引入802.2协议(LLC)在802.3帧头后面添加了一个LLC首部,
    由DSAP(Destination Service Access Point)1 byte,SSAP(Source SAP),一个控制域--1 byte! SAP用于标示帧的上层协议。

    4.Ethernet SNAP
    SNAP Frame与802.3/802.2 Frame的最大区别是增加了一个5 Bytes的SNAP ID
    其中前面3个byte通常与源mac地址 的前三个bytes相同为厂商代码!
    有时也可设为0,后2 bytes与Ethernet II的类型域相同。。。


    三.如何区分不同的帧格式
      
    Ethernet中存在这四种Frame那些网络设备又是如何识别的呢? 如何区分EthernetII与其他三种格式的Frame
    如果帧头跟随source mac地址的2 bytes的值大于1500,则此Frame为EthernetII格式的
       
    接着比较紧接着的两bytes如果为0xFFFF则为Novell Ether类型的Frame,
    如果为0xAAAA则为Ethernet SNAP格式的Frame ,如果都不是则为Ethernet 802.3/802.2格式的帧

    几种以太网帧格式
     
     
    相当长的一段时间里我都没搞明白一个很基础的问题---以太网的封装格式;最近查了查相关文档,总结如下;
     
    首先说明一下,Ethernet和802.3并不是一回事,虽然我们经常混用这两个术语;
     
    历史上以太网帧格式有五种:
     
    1.Ethernet V1:这是最原始的一种格式,是由Xerox PARC提出的3Mbps CSMA/CD以太网标准的封装格式,
    后来在1980年由DEC,Intel和Xerox标准化形成Ethernet V1标准;
     
    2.Ethernet V2(ARPA):这是最常见的一种以太网帧格式,也是今天以太网的事实标准,
    由DEC,Intel和Xerox在1982年公布其标准,主要更改了Ethernet V1的电气特性和物理接口,
    在帧格式上并无变化;Ethernet V2出现后迅速取代Ethernet V1成为以太网事实标准;
    Ethernet V2帧头结构为6bytes的源地址+6bytes的目标地址+2Bytes的协议类型字段+数据。
    常见协议类型如下:
    0800       IP
    0806       ARP
    8137       Novell IPX
    809b       Apple Talk
    如果协议类型字段取值为0000-05dc(十进制的0-1500),则该帧就不是Ethernet V2(ARPA)类型了,而是下面讲到的三种802.3帧类型之一;
    Ethernet可以支持TCP/IP,Novell IPX/SPX,Apple Talk Phase I等协议;RFC 894定义了IP报文在Ethernet V2上的封装格式;
     
    3.RAW 802.3:这是1983年Novell发布其划时代的Netware/86网络套件时采用的私有以太网帧格式,
    该格式以当时尚未正式发布的802.3标准为基础;
    但是当两年以后IEEE正式发布802.3标准时情况发生了变化—IEEE在802.3帧头中又加入了802.2 LLC(Logical Link Control)头,
    这使得Novell的RAW 802.3格式跟正式的IEEE 802.3标准互不兼容;可以看到在Novell的RAW 802.3帧结构中并没有标志协议类型的字段,
    而只有Length字段(2bytes,取值为0000-05dc,即十进制的0-1500),因为RAW 802.3帧只支持IPX/SPX一种协议;
     
    4.802.3/802.2 LLC:这是IEEE 正式的802.3标准,它由Ethernet V2发展而来。
    它将Ethernet V2帧头的协议类型字段替换为帧长度字段(取值为0000-05dc;十进制的1500);
    并加入802.2 LLC头用以标志上层协议,LLC头中包含DSAP,SSAP以及Crontrol字段;
    常见SAP值:
    0         Null LSAP        [IEEE]
    4        SNA Path Control         [IEEE]
    6        DOD IP        [79,JBP]
    AA         SNAP        [IEEE]
    FE        Global DSAP        [IEEE]
    SAP值用以标志上层应用,但是每个SAP字段只有8bits长,
    而且其中仅保留了6比特用于标识上层协议,因此所能标识的协议数有限(不超过32种);
    并且IEEE拒绝为某些重要的协议比如ARP协议定义SAP值(奇怪的是同时他们却定义了IP的SAP值);
    因此802.3/802.2 LLC的使用有很大局限性;
     
    5.802.3/802.2 SNAP:这是IEEE为保证在802.2 LLC上支持更多的上层协议同时更好的支持IP协议而发布的标准,
    与802.3/802.2 LLC一样802.3/802.2 SNAP也带有LLC头,但是扩展了LLC属性,
    新添加了一个2Bytes的协议类型域(同时将SAP的值置为AA),
    从而使其可以标识更多的上层协议类型;
    另外添加了一个3Bytes的OUI字段用于代表不同的组织,RFC 1042定义了IP报文在802.2网络中的封装方法和ARP协议在802.2 SANP中的实现;
     
    今天的实际环境中大多数TCP/IP设备都使用Ethernet V2格式的帧。
    这是因为第一种大规模使用的TCP/IP系统(4.2/3 BSD UNIX)的出现时间介于RFC 894和RFC 1042之间,
    它为了避免不能和别的主机互操作的风险而采用了RFC 894的实现;
    也由于大家都抱着这种想法,所以802.3标准并没有如预期那样得到普及;
     
    CISCO设备的Ethernet Interface默认封装格式是ARPA(Ethernet V2)

    不同厂商对这几种帧格式通常有不同的叫法,比如:
    Frame Type         Novel        Cisco
    Ethernet Version 2        Ethernet_II        arpa
    802.3 Raw        Ethernet_802.3        novell_ether
    IEEE 802.3/802.2        Ethernet_802.2        sap
    IEEE 802.3/802.2 SNAP        ETHERNET_SNAP        snap

    **************************************************************************************************************************************
    
    
    
    

    一、 以太网数据帧的格式分析

    大家都知道我们目前的局域网大多数是以太网,但以太网有多种标准,其数据帧有多种格式,恐怕有许多人不是太清楚,本文的目的就是通过帧格式和Sniffer捕捉的数据包解码来区别它们。

    以太网这个术语一般是指数字设备公司(DigitalEquipment)、英特尔公司(Intel)和施乐公司(Xerox)在1982年联合公布的一个标准(实际上它是第二版本,第一版本早在1972年就在施乐公司帕洛阿尔托研究中心PARC里产生了)。它是目前TCP/IP网络采用的主要的局域网技术。它采用一种称作CSMA/CD的媒体接入方法,其意思是带冲突检测的载波侦听多路接入(Carrier Sense, Multiple Access with CollisionDetection)。它的速率为10 Mb/s,地址为48 bit。

    1985年,IEEE(电子电气工程师协会)802委员会公布了一个稍有不同的标准集,其中802.3针对整个CSMA/CD网络,802.4针对令牌总线网络,802.5针对令牌环网络。这三者的共同特性由802.2标准来定义,那就是802网络共有的逻辑链路控制(LLC)。不幸的是,802.2和802.3定义了一个与以太网不同的帧格式,加上1983年Novell为其Netware开发的私有帧,这些给以太网造成了一定的混乱,也给我们学习以太网带来了一定的影响。

    1、通用基础

    数据链路层头(Header)是数据链路层的控制信息的长度不是固定的,根据以太网数据帧的格式的不同而不同,那么判断IEEE802.3、IEEE802.3 SNAP、Ethernet Version2、Netware 802.3“Raw”这些数据帧的最主要依据也源于Header的变化。

    从Sniffer捕捉数据包中也可以看出,Sniffer捕捉数据包的时候是掐头去尾的,不要前面的前导码,也丢弃后面的CRC校验(注意它只是不在Decode里显示该区域,但并不代表它不去做数据包CRC校验),这就是很多人困惑为什么Sniffer捕捉到的数据包长度跟实际长度不相符的原因。那么,Sniffer是如何来判断这些不同类型的以太网格式呢?

    Sniffer可以判断出不同的以太网格式,这里需要注意的是,Sniffer在数据包解码时有自己的格式,所以有Offset之说,offset ØE是指在SnifferHex解码窗口中从左向右第15位的数值。大家如果有点发懵的话,没有关系,看完后面的格式分析后再来分析前面提到的,相信一定能够明白?

    下面我们通过一些具体的数据包来说明各种以太网格式的具体区别。

    2、Ethernet Version2

    以太网版本2是先于IEEE标准的以太网版本。

    从数据包中可以看出,EthernetV2通过在DLC头中2个字节的类型(Type)字段来辨别接收处理。类型字段是用来指定上层协议的(如0800指示IP、0806指示ARP等),它的值一定是大于05FF的,它提供无连接服务的,本身不控制数据(DATA)的长度,它要求网络层来确保数据字段的最小包长度(46字节)。

    Sniffer捕获的Ethernet V2帧的解码,可以看到在DLC层,源DLC地址后紧跟着就是以太网类型(Etehertype)值0800,代表上层封装的是IP报文,0800大于05FF,因而我们可以断定它是Ethernet V2的帧。

     

    3、IEEE802.3

    IEEE802.3把DLC层分隔成明显的两个子层:MAC层和LLC层,其中MAC层主要是指示硬件目的地址和源地址。LLC层用来提供一些服务:

    – 通过SAP地址来辨别接收和发送方法

    – 兼容无连接和面向连接服务

    – 提供子网访问协议(Sub-network Access Protocol,SNAP),类型字段即由它的首部给出。

    MAC层要保证最小帧长度不小于64字节,如果数据不满足64字节长度就必须进行填充。

    是Sniffer捕获的IEEE802.3帧的解码,可以看到在DLC层源地址后紧跟着就是802.3的长度(Length)字段0026,它小于05FF,可以肯定它不是Ethernet V2的帧,而接下来的Offset0E处的值“4242”(代表DSAP和SSAP),既不是Novell 802.3 “Raw”的特征值“FFFF”,也不是IEEE 802.3SNAP的特征值“AAAA”,因此它肯定是一个IEEE802.3的帧。

     

    4、IEEE802.3 SNAP

    SNAP (Sub-Network AccessProtocol)子网访问协议,是逻辑链路控制(Logical LinkControl)的一个子集,它允许协议不用通过服务访问点(SAP)即可实现IEEE兼容的MAC层功能,因此它在DSAP和SSAP域里的值是固定的(AAAA)。也正源于此,它需要额外提供5个字节的头来指定接收方法,3个字节标识厂商代码,2个字节标识上层协议。

    其MAC层保证数据帧长度不小于64字节,不足的话需要进行数据填充。

    是Sniffer捕获的IEEE802.3SNAP帧的解码,可以看到在DLC层源地址后紧跟着就是802.3的长度(Length)字段0175,它小于05FF,可以肯定它不是Ethernet V2的帧,而接下来的Offset 0E处的值“AAAA”(代表DSAP和SSAP),这是IEEE 802.3SNAP的特征值“AAAA”,因此可以断定它是一个IEEE802.3 SNAP的帧。

     

    5、Novell Netware 802.3 “Raw”

    虽然它的产生先于IEEE802.3规范,但已成为IEEE802.3规范的一部分。它仅使用DLC层的下半部,而不使用LLC。

    802.3 “Raw”帧通过在DLC头中2个字节的长度(Length)字段来标记数据帧长度,而在长度字段后紧跟着就是两个字节的十六进制值FFFF,它是用来标识IPX协议头的开始。为了确保最小数据帧长度为64字节,MAC层会进行填充数据区域来确保最小长度。

    在所有工作站都使用同一种数据帧类型情况下不会有什么问题,但如果是在混合以太网帧类型环境中,Novell的这种以太网帧会造成负面影响:当Novell发出广播帧时,其FF字段正好是IEEE802.3帧中的服务访问点(SAP)域,它的“FF”值代表着广播SAP,因此所有的工作站(不管是不是Netware工作站)都会拷贝,这会造成不必要的广播影响。

    Sniffer捕获的Netware 802.3“RAW”帧的解码,可以看到在DLC层源地址后紧跟着就是802.3的长度(Length)字段0120,它小于05FF,可以肯定它不是Ethernet V2的帧,而接下来的Offset 0E处的值“FFFF”(代表IPX协议的开始),这是Netware 802.3“Raw”的特征值“FFFF”,因此可以断定它是一个Novell 802.3 “Raw”的帧。

     

    二、 Ethernet V2帧与IEEE 802.3帧的比较

    因为这两种帧是我们在现在的局域网里最常见的两种帧,因此,我们对它们进行一些比较。

    Ethernet V2可以装载的最大数据长度是1500字节,而IEEE802.3可以装载的最大数据是1492字节(SNAP)或是1497字节; Ethernet V2不提供MAC层的数据填充功能,而IEEE802.3不仅提供该功能,还具备服务访问点(SAP)和SNAP层,能够提供更有效的数据链路层控制和更好的传输保证。那么我们可以得出这样的结论:Ethernet V2比IEEE802.3更适合于传输大量的数据,但EthernetV2缺乏数据链路层的控制,不利于传输需要严格传输控制的数据,这也正是IEEE802.3的优势所在,越需要严格传输控制的应用,越需要用IEEE802.3或SNAP来封装,但IEEE802.3也不可避免的带来数据装载量的损失,因此该格式的封装往往用在较少数据量承载但又需要严格控制传输的应用中。

    在实际应用中,我们会发现,大多数应用的以太网数据包是EthernetV2的帧(如HTTP、FTP、SMTP、POP3等应用),而交换机之间的BPDU(桥协议数据单元)数据包则是IEEE802.3的帧,VLANTrunk协议如802.1Q和Cisco的CDP(思科发现协议)等则是采用IEEE802.3SNAP的帧。大家有兴趣的话,可以利用Sniffer等协议分析工具去捕捉数据包,然后解码查看是不是这样的。

    展开全文
  • 四种以太网帧格式

    2018-07-02 18:26:20
    原文:https://blog.csdn.net/li1914309758/article/details/70050022四种以太网帧格式2017年04月11日 11:53:54阅读数:2662转自:四种以太网帧格式用过NetXray之类的抓包软件的人,可能经常会被一些不同的Frame ...
  • 以太网帧格式2. ARP协议2.1 ARP协议的作用2.2 ARP数据报的格式 1.以太网帧格式 源地址和目的地址是指网卡的硬件地址(也叫MAC地址),用来识别数据链路层中相应的结点,长度是48位即6个字节,是在网卡出厂...
  • * 802.3 控制流量 网络设备产生的:例如ARP BPDU VTP等 * Ethernet2 数据流量 PC产生的
  • TCP/IP之以太网帧格式

    千次阅读 2017-03-02 09:54:31
    ==========================================================================================...常用以太网帧格式目前分为3种:  1. ethernet-II 即DIX2.0,当前以太网的事实标准,大多数TCP/IP都用这种格式  字段
  • 以太网帧格式分析.doc

    2021-10-08 21:16:41
    以太网帧格式分析.doc
  • 以太网帧格式的封装

    千次阅读 2018-07-05 17:04:00
    以太网的封装与解封过程 1.数据包封装过程: ⑦用户在应用层进行文件传输的操作⑥在表示层把我们的动作和命令翻译成计算机识别的微码,提供数据⑤CPU 读取文件调用到内存④要传输的数据在数据层进行数据分片,...
  • 以太网帧格式解析器

    2011-12-18 19:30:53
    将给定的以太网帧解析并输出其格式,进行CRC32校验
  • 以太网帧格式分析实验报告.doc
  • 以太网帧最少是多少个字节,有些人说是46个,有些人说是60...以太网帧格式如上图: Preamble:前导同步码7个字节+帧开始定界符1个字节,共计8个字节; Destination MAC address:目的MAC地址,占用6个字节; Sour...
  • 一个课程作业,主要是写程序分析以太网帧格式,用的是CRC32校验。 为了便于学习所以注释部分写得很全面。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 31,383
精华内容 12,553
关键字:

以太网帧格式