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数据段中的校验和字段是必须有的。

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

    关注

    40

    文章

    5419

    浏览量

    171626
  • 封装
    +关注

    关注

    126

    文章

    7881

    浏览量

    142902

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

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

收藏 人收藏

    评论

    相关推荐

    ICMPv6协议介绍#车载以太网 #ipv6 #科普

    车载以太网
    北汇信息POLELINK
    发布于 :2024年12月04日 11:00:05

    以太网和TCP/IP的关系解析

    在现代计算机网络中,以太网和TCP/IP协议栈是构建网络通信的基础。以太网定义了局域(LAN)中的数据链路层和物理层的威廉希尔官方网站 标准,而TCP/
    的头像 发表于 11-08 09:21 570次阅读

    以太网协议的种类和特点

    以太网是一种局域(Local Area Network, LAN)威廉希尔官方网站 ,它定义了一组用于在局域中传输数据的规则和标准。以太网协议的种类和
    的头像 发表于 11-08 09:10 974次阅读

    以太网格式和功能详解

    以太网帧(Ethernet Frame)是以太网(Ethernet)协议用于在局域(LAN)中传输数据的基本单位。理解以太网帧的结构和传输
    的头像 发表于 10-08 10:03 1617次阅读

    以太网帧结构是怎样的

    以太网帧(Ethernet Frame)是以太网(Ethernet)协议用于在局域(LAN)中传输数据的基本单位。理解以太网帧的结构对于掌
    的头像 发表于 10-08 10:00 983次阅读

    什么是工业以太网?有何特点?

    用,如高温、高湿、高振动等。 以下是关于工业以太网的详细介绍: 一、工业以太网的定义 工业以太网是一种基于以太网威廉希尔官方网站 的网络通信
    的头像 发表于 06-11 10:34 2782次阅读

    工业以太网和普通以太网区别在哪

    工业以太网和普通以太网是两种不同的以太网威廉希尔官方网站 ,它们在设计、性能、应用和可靠性等方面存在显著差异。本文将详细介绍这两种以太网威廉希尔官方网站 的区别。 设计
    的头像 发表于 06-11 10:30 2626次阅读

    工业以太网的主要协议及其特点

    设备之间的互联和信息交换,极大地推动了工业自动化的发展。本文将详细介绍工业以太网的相关协议及其特点,以便读者能够更深入地了解这一领域。
    的头像 发表于 06-06 11:42 857次阅读

    车载以太网硬件接口VN5620设备展示与介绍#车载以太网

    车载以太网
    北汇信息POLELINK
    发布于 :2024年05月31日 10:27:03

    车载以太网接口VN5650使用场景介绍#车载以太网

    以太网
    北汇信息POLELINK
    发布于 :2024年05月11日 17:58:05

    FPGA学习-以太网的原理介绍

    以太网链路上的数据包称作以太网帧。以太网帧起始部分由前导码和帧开始符组成。后面紧跟着一个以太网报头,以MAC地址说明目的地址和源地址。
    的头像 发表于 04-02 16:26 1647次阅读
    FPGA学习-<b class='flag-5'>以太网</b>的原理<b class='flag-5'>介绍</b>

    工业以太网的基本原理及优势

    的应用前景。 一、工业以太网的基本原理 工业以太网基于标准的以太网威廉希尔官方网站 ,通过物理层、数据链路层和网络层的协议规范,实现设备间的数据传输和通信
    的头像 发表于 03-25 14:40 690次阅读

    以太网怎么连接 以太网组网结构分析

    以太网的组网结构涉及多个层面和组件。首先,从网络结构的角度来看,以太网分为物理层、数据链路层和高层用户层。其中,物理层采用特定的通信媒体,如50Ω基带同轴电缆,实现数据的传输。数据链路层
    的头像 发表于 03-08 17:19 3312次阅读
    <b class='flag-5'>以太网</b>怎么连接 <b class='flag-5'>以太网</b>组网结构分析

    基于以太网的EtherCAT协议威廉希尔官方网站

    EtherCAT主站需要使用实时操作系统 + 标准的以太网芯片 + EtherCAT协议栈,从站则需要使用专门的通信芯片(ESC)来保证通信的高速和稳定。
    发表于 01-24 17:25 1154次阅读
    基于<b class='flag-5'>以太网</b>的EtherCAT<b class='flag-5'>协议</b>威廉希尔官方网站

    科普科普以太网的定义、种类以及晶振在以太网上的应用

    科普科普以太网的定义、种类以及晶振在以太网上的应用  以太网是一种用于局域网通信的传输威廉希尔官方网站 ,它是一种在计算机网络中常用的传输协议,用于将数据包从一个节点传输到另一个节点。本文将详细
    的头像 发表于 01-24 16:11 1117次阅读