【网络协议安全】使命2:以太网帧、IP数据包格式尺度 ...

海哥  金牌会员 | 2025-3-15 20:03:24 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 965|帖子 965|积分 2895

目录

一、帧格式
Ethernet II
IEEE 802.3
如何区分以太网中的两种帧格式?
二、数据封装
三、IP数据报格式

一、帧格式

以太网的两种尺度帧格式主要是Ethernet IIIEEE 802.3
这两种帧格式在结构和用途上有一些显著的区别。第一种是上世纪80年代提出的DIX v2格式,即Ethernet II帧格式。Ethernet II后来被IEEE 802尺度接纳,并写进了IEEE 802.3x-1997的3.2.6节。第二种是1983年提出的IEEE 802.3格式。
   Ethernet II

  Ethernet II帧格式是最常见的以太网帧格式,通常直接被IP协议使用。它的帧结构如下:
  

  • 目的MAC地址(DMAC):6字节,标识帧的吸收者。
  • 源MAC地址(SMAC):6字节,标识帧的发送者。
  • 范例字段(Type):2字节,用于标识数据字段中包含的高层协议。比方,0x0800表示IP协议,0x0806表示ARP协议。
  • 数据字段(Data):网络层数据,最小长度为46字节,最大长度为1500字节。
  • 循环冗余校验字段(FCS):4字节,用于错误检测。
  IEEE 802.3

  IEEE 802.3帧格式与Ethernet II帧格式类似,但有一些关键区别:
  

  • 目的MAC地址(DMAC):6字节,标识帧的吸收者。
  • 源MAC地址(SMAC):6字节,标识帧的发送者。
  • 长度字段(Length):2字节,界说数据字段包含的字节数。
  • 逻辑链路控制(LLC):由目的服务访问点(DSAP)、源服务访问点(SSAP)和控制字段构成。
  • 子网接入协议(SNAP):由机构代码(Org Code)和范例(Type)字段构成,Org Code为0,Type字段与Ethernet II帧中的Type字段相同。
  • 数据字段(Data):上层数据内容,最小长度为46字节,最大长度为1500字节。
  • 循环冗余校验字段(FCS):4字节,用于错误检测。
  这两种格式的主要区别在于Ethernet II格式中包含一个Type字段,标识以太帧处理完成之后将被发送到上层协议举行处理;而IEEE 802.3格式中同样的位置是长度字段。 此中。以太网中大多数的数据帧使用的是 Ethernet II帧格式,而IEEE 802.3只支持IPX/SPX协议(争议)



  • 前导码(Preamble):Ethernet II是由 8个8bit (位) 10101010构成,共8Byte (字节), IEEE802.3由7个8bit(位) 10101010+1个8bit(位)帧起始符(SFD)10101011构成,共8Byte (字节)。
  • 目的地址(DMAC):是目的MAC地址。DMAC字段长度为6个字节,标识帧的吸收者。
  • 源地址(SMAC):是源MAC地址。SMAC字段长度为6个字节,标识帧的发送者。
  • 范例( Ethernet II): 用于标识以太网首部背面所跟数据包的范例,字段取值大于即是1536 (或者十六进制的0x0600),比方Type为0x0800时背面为IP协议包,Type为0x0806时背面为ARP协议包.
  • 长度( IEEE802.3 ):也称有效数据长度,字段取值小于即是1500(或者十六进制的0x05DC),界说了Data字段包含的字节数。抓包软件中看到的Length表示的是有效数据长度,并不包含填充(Pading)长度。
  • 数据部分(Payload):数据也叫有效载荷,这是网络层传递给数据链路层的帧,其长度为 46-1500 Bytes。以太网协议规定最小报文64字节【6+6+2+数据+4=64(不算前导码)】,因此帧数据部分最小为46字节,不敷46字节(如ARP和RARP包)时,由设备驱动步伐(MAC子层)在数据字段背面填充(Pading)至46字节。   
  • FCS: 数据校验字段,用于存储 CRC(循环冗余校验)结果的帧的帧尾。MAC发送侧(MAC_TX)创建每个帧时都将运行它。MAC吸收侧(MAC_RX)吸收到帧时,以从目的MAC到数据这部分内容作为输入数据举行 CRC 计算,计算结果与吸收帧的FCS字段比较,结果相同表示帧有效,结果不同则将帧抛弃。(FCS错误主要发生在物理口与RJ45接口之间的链路上)
这里需要留意:因为802.3帧的LLC和SNAP字段占用的是Data字段的8个字节,因此实际上层数据承载最大就变成了1492字节。

   逻辑链路控制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字段的取值又可分为以下几类:
  

  • 当DSAP和SSAP都取特定值0xff时,802.3帧就变成了Netware- ETHERNET帧,用来承载NetWare范例的数据。
  • 当DSAP和SSAP都取特定值0xaa时,802.3帧就变成了ETHERNET_SNAP帧。ETHERNET_SNAP帧可以用于传输多种协议。
  • DSAP和SSAP其他的取值均为纯IEEE802.3帧。 
    以太网帧格式多达5种,事实上,今天的大多数TCP/IP应用都是用Ethernet V2帧格式,而互换机之间的BPDU数据包是IEEE802.3/LLC的帧,VLAN Trunk协议如802.1Q和Cisco的CDP等则是采用IEEE802.3/SNAP的帧。估计是设备间一些协议才用到802.3帧格式,是因为需要802.3帧携带一些控制信息。
如何区分以太网中的两种帧格式?

要区分这两种帧格式,可以根据以下几点:

  • 范例字段和长度字段:Ethernet II帧的范例字段值大于即是1536 (0x0600),而IEEE 802.3帧的长度字段值小于即是1500 (0x05DC)。
  • 数据帧长度:两种帧格式的数据帧长度都在64-1518字节之间。
通过以上方法,可以有效地区分Ethernet II和IEEE 802.3帧格式。
二、数据封装

当我们应用步伐用TCP传输数据的时候,数据被送入协议栈中,然后逐个通过每一层,直到最后到物理层将数据帧转换成比特流,送入网络。而在这个过程中,每一层都会对要发送的数据加一些首部信息。整个过程如下图,每层数据向下传输时都会举行封装,帧有效数据来源于上级网络层。
 


如图可以看出,每一层数据是由上一层数据+本层首部信息构成的,此中每一层的数据 ,称为本层的协议数据单位   ,即PDU。
应用层数据在传输层添加TCP报头后得到的PDU被称为 Segment(数据段 ),图示为TCP段
传输层的数据(TCP段)传给网络层,网络层添加IP报头得到的PDU被称为Packet(数据包); 图示为IP数据包
网络层数据报(IP数据包)被传递到数据链路层,封装数据链路层报头得到的PDU被称为Frame(数据帧),图示为以太网帧。
最后,帧被转换为比特,通过网络介质传输。这种协议栈逐层向下传递数据,并添加报头和报尾的过程称为封装。
三、IP数据报格式

IP数据报格式图:
 TCP首部与TCP数据段格式:

UDP(也是传输层)数据段格式:

ARP数据包格式:


  • 硬件范例字段指明了发送方想知道的硬件接口范例,以太网的值为1;
  • 协议范例字段指明了发送方提供的高层协议范例,IP为0800(16进制);
  • 硬件地址长度和协议长度指明了硬件地址和高层协议地址的长度,如许ARP报文就可以在任意硬件和任意协议的网络中使用;
  • 操作字段用来表示这个报文的范例,ARP请求为1,ARP响应为2,RARP请求为3,RARP响应为4;
  • 发送方的硬件地址(0-3字节):源主机硬件地址的前3个字节;
  • 发送方的硬件地址(4-5字节):源主机硬件地址的后3个字节;
  • 发送方IP(0-1字节):源主机硬件地址的前2个字节;
  • 发送方IP(2-3字节):源主机硬件地址的后2个字节;
  • 目的硬件地址(0-1字节):目的主机硬件地址的前2个字节;
  • 目的硬件地址(2-5字节):目的主机硬件地址的后4个字节;
  • 目的IP(0-3字节):目的主机的IP地址。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

海哥

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表