0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

以太网链路层协议封装格式介绍

电子工程师 来源:CSDN技术社区 作者:CSDN技术社区 2020-09-26 10:03 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

一、以太网链路层协议封装格式

以太网数据在网络介质上传输需要遵循一定的机制,其中CSMA/CD介质访问控制机制约定了以太网在传输数据时,两帧之间需要等待一个帧间隙时间(IFG或IPG),为以太网接口提供了帧接收之间的恢复时间,该恢复时间最小值为传输96bit所花费的时间,对于10M线路,该时间为9.6uS,100M线路为960nS,1G的线路为96nS。同时以太网数据帧在传输时还需要有7byte的前导字段和1byte的定界符。因此以太网数据在传输过程中是由以下部分组成的:7byte(前导)+1byte(定界符)+以太网数据帧+12byte(IPG)。

在全双工工作模式下,如果CSMA/CD介质访问控制机制发现传输冲突时,则会放弃当前帧发送,改为发送一个48比特的噪声帧。

其中以太网数据帧限制为最小长度为64byte,最大长度为1518byte,其格式为:6byte(目的MAC地址)+6byte(源MAC地址)+2byte(类型字段)+数据字段+4byte(FCS校验字段)。其中帧类型字段标识其后的数据类型。

这里值得注意的是区分Ethernet II帧格式和802.3帧格式的不同,我们有时可能会混用了这两个术语。

Ethernet II帧是最常见的一种以太网帧格式,也是今天以太网的事实标准,由DEC,Intel和Xerox在1982年公布标准,Ethernet II可以支持TCP/IP,Novell IPX/SPX,Apple Talk Phase I等协议,其比较常见的类型字段为:0X0800(IP帧),0X0806(ARP请求/应答帧),0X8035(PARP请求/应答帧),0X8137(Novell IPX),0X809b(Apple Talk)。RFC 894定义了IP报文在Ethernet II上的封装格式。

802.3帧将Ethernet II帧头中的类型字段替换为帧长度字段(取值范围为0X0000-0X05dc,不包括CRC检验码),因此对于接收到的帧,如果类型字段取值范围为0X0000-0X05dc,则可以判断其为802.3帧,而非Ethernet II帧。其中RAW 802.3是1983年Novell发布Netware/86网络套件时采用的私有以太网帧格式,只支持IPX/SPX一种协议;802.3/802.2 LLC是IEEE 公布的正式802.3标准,它加入了3byte的LLC字段, 其中SAP值用以标志上层应用,每个SAP字段为8bits,其中只有6bit用于标识上层协议,因此所能标识的协议数不超过32种,导致802.3/802.2 LLC的使用有很大局限性;802.3/802.2 SNAP是IEEE为保证在802.2 LLC上支持更多的上层协议同时更好的支持IP协议而发布的标准,在802.3/802.2 LLC基础上添加了5byte的SNAP字段,从而使其可以标识更多的上层协议类型,OUI字段用于代表不同的组织(一般置为0),在802.3/802.2 SNAP基础上RFC1042定义了IP报文在802.2网络中的封装方法和ARP协议在802.2 SANP中的实现。

目前实际环境中大多数TCP/IP设备都使用Ethernet II格式的帧,它采用了RFC 894的实现标准。从上述帧格式中可以看出,Ethernet II格式帧数据段的长度限制在46byte-1500byte之间,当数据段长度小于46个字节时,加填充字段(PAD)补足。Ethernet II和802.3对数据帧的长度限制,其最大值分别是1500和1492字节,这一特性称作最大传输单元(MTU)。

图 IEEE802.2/802.3(RFC1042)和Ethernet II(RFC894)的封装格式

在TCP/IP协议族中,链路层主要有三个目的:(1)为IP模块发送和接收IP数据报;(2)为ARP模块发送ARP请求和接收ARP应答;(3)为RARP发送RARP请求和接收RARP应答。

二、以太网IP层协议封装格式

在TCP/IP协议族中基于链路层以上的协议主要有三种:IP协议、ARP协议和RARP协议,其中在IP数据报中又额外封装了ICMP协议和IGMP协议。IP层协议也就是通常的网络层协议,它提供点到点的服务(不同于传输层TCP/UDP协议提供端到端的服务)。

IP包封装格式

版本号:IP包的版本,当前一般为IPv4,即0100。

首部长度:IP包头长度(Internet Header Length,IHL),是一个4bit字段,是头部占32比特的数字,包括可选项。普通IP数据报(没有任何选项),该字段的值是5,即160比特=20字节。此字段最大值为60字节,表示头部报文中没有发送可选部分数据。

服务类型(TOS):其中前3比特为优先权子字段(Precedence,现已被忽略)。第8比特保留未用。第4至第7比特分别代表延迟、吞吐量、可靠性和花费。当它们取值为1时分别代表要求最小时延、最大吞吐量、最高可靠性和最小费用。这4比特的服务类型中只能置其中1比特为1。可以全为0,若全为0则表示一般服务。服务类型字段声明了数据报被网络系统传输时可以被怎样处理。例如:TELNET协议可能要求有最小的延迟,FTP协议(数据)可能要求有最大吞吐量,SNMP协议可能要求有最高可靠性,NNTP(Network News Transfer Protocol,网络新闻传输协议)可能要求最小费用,而ICMP协议可能无特殊要求(4比特全为0)。实际上,大部分主机会忽略这个字段,但一些动态路由协议如OSPF(Open Shortest Path First Protocol)、IS-IS(Intermediate System to Intermediate System Protocol)可以根据这些字段的值进行路由决策。

总长度:头部及数据项长度,最大长度为65535bytes。

标识:当IP包较大需要进行分段时,用于标识该段所属的分组。通常每发一份报文,它的值会加1。

标志:构成为[0][D][M],其中D为1表示不分段,M为0表示为最后分段,为1表示非最后分段。

片偏移:即分段偏移。如果一份数据报要求分段的话,此字段指明该段偏移距原始数据报开始的位置。

生存时间(TTL):表示一个IP数据流的生命周期,由发送数据的源主机设置,通常为32、64、128等。每次IP数据包经过一个路由器的时候TTL就减一,当减到0时,这个数据包就消亡了。

协议:传输层的协议类型。


首部校验和:根据IP头部计算得到的校验和码。计算方法是:对头部中每个16比特进行二进制反码求和。(和ICMP、IGMP、TCP、UDP不同,IP不对头部后的数据进行校验)。

选项:占32比特。用来定义一些任选项:如记录路径、时间戳等。这些选项很少被使用,同时并不是所有主机和路由器都支持这些选项。可选项字段的长度必须是32比特的整数倍,如果不足,必须填充0以达到此长度要求。

数据:IP包携带的各种传输层报文。

IP报文头部实例:45 00 00 30 52 52 40 00 80 06 2c 23 c0 a8 01 01 d8 03 e2 15

三、传输层协议封装格式

1.TCP协议

TCP是一种可靠的、面向连接的字节流服务。源主机在传送数据前需要先和目标主机建立连接。然后,在此连接上,被编号的数据段按序收发。同时,要求对每个数据段进行确认,保证了可靠性。如果在指定的时间内没有收到目标主机对所发数据段的确认,源主机将再次发送该数据段。

TCP包封装格式

源、目标端口号字段:占16比特。TCP协议通过使用"端口"来标识源端和目标端的应用进程。端口号可以使用0到65535之间的任何数字。在收到服务请求时,操作系统动态地为客户端的应用程序分配端口号。在服务器端,每种服务在"众所周知的端口"(Well-Know Port)为用户提供服务。

顺序号字段:占32比特。用来标识从TCP源端向TCP目标端发送的数据字节流,它表示在这个报文段中的第一个数据字节。

确认号字段:占32比特。只有ACK标志为1时,确认号字段才有效。它包含目标端所期望收到源端的下一个数据字节。

数据偏移量:实际上是TCP首部长度,用来标识数据段的起始位置。给出头部占32比特的数目。没有任何选项字段的TCP头部长度为20字节;最多可以有60字节的TCP头部。

控制标识(U、A、P、R、S、F)::TCP协议中的六个重要的标志。是两个计算机数据交流的信息标志。接收和发送断根据这些标志来确定信息流的种类。

URG:(Urgent Pointer field significant)紧急指针。用到的时候值为1,用来处理避免TCP数据流中断。

ACK:(Acknowledgment fieldsignificant)置1时表示确认号(AcknowledgmentNumber)为合法,为0的时候表示数据段不包含确认信息,确认号被忽略。

PSH:(Push Function),PUSH标志的数据,置1时请求的数据段在接收方得到后就可直接送到应用程序,而不必等到缓冲区满时才传送。

RST:(Reset the connection)用于复位因某种原因引起出现的错误连接,也用来拒绝非法数据和请求。如果接收到RST位时候,通常发生了某些错误。

SYN:(Synchronize sequence numbers)用来建立连接,在连接请求中,SYN=1,ACK=0,连接响应时,SYN=1,ACK=1。即,SYN和ACK来区分Connection Request和Connection Accepted。

FIN:(No more data from sender)用来释放连接,表明发送方已经没有数据发送了。

滑动窗口:控制报文流量,用来告诉对方目前接收端缓冲器大小。当为0时标识缓冲器已满,需要停止发包,单位为byte。

TCP校验和字段:占16比特。对整个TCP报文段,即TCP头部和TCP数据进行校验和计算,并由目标端进行验证。

紧急指针字段:占16比特。它是一个偏移量,和序号字段中的值相加表示紧急数据最后一个字节的序号。

选项字段:占32比特。可能包括"窗口扩大因子"、"时间戳"等选项。

TCP协议头部实例:0d 28 00 15 50 5f a9 06 00 00 00 00 70 02 40 00 c0 29 00 00

TCP建立连接的三次握手过程

TCP会话通过三次握手来初始化。三次握手的目标是使数据段的发送和接收同步。同时也向其他主机表明其一次可接收的数据量(窗口大小),并建立逻辑连接。这三次握手的过程可以简述如下:

1、源主机发送一个同步标志位(SYN)置1的TCP数据段。此段中同时标明初始序号(Initial Sequence Number,ISN)。ISN是一个随时间变化的随机值。

2、目标主机发回确认数据段,此段中的同步标志位(SYN)同样被置1,且确认标志位(ACK)也置1,同时在确认序号字段表明目标主机期待收到源主机下一个数据段的序号(即表明前一个数据段已收到并且没有错误)。此外,此段中还包含目标主机的段初始序号。

3、源主机再回送一个数据段,同样带有递增的发送序号和确认序号。

至此为止,TCP会话的三次握手完成。接下来,源主机和目标主机可以互相收发数据。

2.UDP协议

UDP是一种不可靠的、无连接的数据报服务。源主机在传送数据前不需要和目标主机建立连接。数据被冠以源、目标端口号等UDP报头字段后直接发往目的主机。这时,每个数据段的可靠性依靠上层协议来保证。在传送数据较少、较小的情况下,UDP比TCP更加高效。

UDP包封装格式

源、目标端口号字段:16比特。作用与TCP数据段中的端口号字段相同,用来标识源端和目标端的应用进程。

长度字段:占16比特。标明UDP头部和UDP数据的总长度字节。

校验和字段:占16比特。用来对UDP头部和UDP数据进行校验。和TCP不同的是,对UDP来说,此字段是可选项,而TCP数据段中的校验和字段是必须有的。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 以太网
    +关注

    关注

    41

    文章

    5926

    浏览量

    179565
  • 封装
    +关注

    关注

    128

    文章

    9146

    浏览量

    147907

原文标题:今日分享:以太网协议封装格式

文章出处:【微信号:gh_9d70b445f494,微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    基于以太网芯片的应用层方案

    在物联网与智能化加速发展的今天,以太网作为稳定、高速的有线通信基石,其核心——以太网芯片,正发挥着至关重要的作用。它不仅负责物理连接,更集成了协议处理能力,使得各类嵌入式设备能轻松融入网络。本文将
    的头像 发表于 12-09 14:47 120次阅读
    基于<b class='flag-5'>以太网</b>芯片的应用层方案

    新思科技VIP全面支持超以太网与UALink协议

    以太网针对横向扩展架构设计,是一种专为AI量身定制的开放、可互操作、高性能协议解决方案,得到了交换机、网络、半导体和系统供应等领域的知名企业及超大规模用户的支持。
    的头像 发表于 11-03 16:08 538次阅读
    新思科技VIP全面支持超<b class='flag-5'>以太网</b>与UALink<b class='flag-5'>协议</b>

    以太网通讯在FPGA上的实现

    数据量达到几十,甚至成百上千个字节。下图为以太网通过UDP传输单包数据的格式,可以看出,以太网的数据包就是对各层协议的逐层封装来实现数据的传
    发表于 10-30 07:45

    什么,以太网能传CAN报文?

    概述IEEE1722(AVB/TSN协议族中的核心协议)不仅定义了基于以太网的音视频流传输格式(AVTP-AAF),还包含了一套关键的控制协议
    的头像 发表于 09-09 15:59 2409次阅读
    什么,<b class='flag-5'>以太网</b>能传CAN报文?

    以太网模块被忽视的角落 #电磁兼容EMC #电子工程师 #电子元器件 #磁珠 #滤波电容 #以太网

    以太网
    深圳市韬略科技有限公司
    发布于 :2025年07月25日 17:35:35

    以太网入门:从零开始,掌握以太网基础知识!

    以太网是一种基于异步载波侦听多路访问/冲突检测(CSMA/CD)协议的通信技术。它支持的有效负载大小为46-1500个八位字节,数据速率可达10Mbps、10
    的头像 发表于 06-09 14:00 4117次阅读
    <b class='flag-5'>以太网</b>入门:从零开始,掌握<b class='flag-5'>以太网</b>基础知识!

    Microchip LAN9211-ABZJ 集成 10/100 以太网 PHY的以太网控制器

    Microchip LAN9211-ABZJ 集成 10/100 以太网 PHY的以太网控制器
    的头像 发表于 06-04 14:56 814次阅读
    Microchip LAN9211-ABZJ 集成 10/100 <b class='flag-5'>以太网</b> PHY的<b class='flag-5'>以太网</b>控制器

    双通道CAN转以太网#CAN转以太网#三格电子

    以太网
    三格电子科技
    发布于 :2025年05月12日 13:17:05

    Modbus转以太网终极方案:三步实现老旧设备智能升级

    包率低 典型痛点场景: ✅ 污水处理厂30个泵站Modbus仪表数据无法集中监控 ✅ 纺织车间200台老设备需投入6人专职抄表 ✅ 能源集团因协议不兼容损失百万级数据 二、Modbus转以太网核心技术
    发表于 04-24 10:37

    串口转以太网芯片选型指南:2025十大以太网模块品牌盘点与应用方案解析

    ,不同品牌的以太网模块在性能、稳定性、功能支持等方面存在差异,如何选择合适的芯片成为了众多研发工程师关注的重点。 本文基于权威数据平台的分析,盘点了2025年十大主流以太网模块品牌,并详细介绍了市场认可度高的亿佰特(
    的头像 发表于 04-09 15:30 1650次阅读

    以太网线缆测试解决方案

    工业以太网是指在工业环境的自动化控制及过程控制中应用以太网的相关组件及技术。工业以太网会采用TCP/IP协议,和IEEE 802.3标准兼容,但在应用层会加入各自特有的
    的头像 发表于 03-21 14:12 1644次阅读
    <b class='flag-5'>以太网</b>线缆测试解决方案

    广成科技CAN转以太网模块的作用和应用

    CAN转以太网模块是一类能够将CAN总线数据转换为以太网数据的设备,通常用于实现CAN总线与以太网总线之间的互联互通。在智能锁柜和智能文件交换箱中,CAN转以太网模块可以实现将本地CA
    的头像 发表于 03-20 13:58 1013次阅读
    广成科技CAN转<b class='flag-5'>以太网</b>模块的作用和应用

    工业与IT网络中的以太网数据帧:格式与用途全解析

    以太网数据帧是计算机网络通信的基本单位,在不同的应用场景中,它的格式有所不同。从互联网和工业自动化常见的以太网 II 帧,到 VLAN 组网中广泛使用的 IEEE 802.1Q 帧,再到运营商级别的 QinQ 及高性能计算中的
    的头像 发表于 03-14 17:35 1278次阅读
    工业与IT网络中的<b class='flag-5'>以太网</b>数据帧:<b class='flag-5'>格式</b>与用途全解析

    工业以太网中的数据链路层与工业交换机的关键作用

    工业以太网成为了支撑工业控制和通信系统的重要组成部分。数据链路层是工业以太网中的关键层,它为网络中的数据传输提供了基本保障,而数据链路层不仅关乎设备间的通信质量,还直接影响到网络的整体
    的头像 发表于 02-28 16:01 992次阅读
    工业<b class='flag-5'>以太网</b>中的数据<b class='flag-5'>链路层</b>与工业交换机的关键作用

    工业以太网profinet网关:解锁生产效率提升的“超级钥匙”

    。   工业以太网通信网关的发展-稳联技术 工业以太网通信网关的核心在于协议转换和数据传输。它通过以太网或串口连接各类生产设备,支持多种工业通信协议
    的头像 发表于 02-07 14:35 756次阅读
    工业<b class='flag-5'>以太网</b>profinet网关:解锁生产效率提升的“超级钥匙”