2023年7月13日发(作者:)
以太⽹帧结构详解⽹络通信协议
⼀般地,关注于逻辑数据关系的协议通常被称为上层协议,⽽关注于物理数据流的协议通常被称为低层协议。IEEE802就是⼀套⽤来管理物理数据流在局域⽹中传输的标准,包括在局域⽹中传输物理数据的802.3以太⽹标准。还有⼀些⽤来管理物理数据流在使⽤串⾏介质的⼴域⽹中传输的标准,如帧中继FR(FrameRelay),⾼级数据链路控制HDLC(High-LevelDataLinkControl),异步传输模式ATM(AsynchronousTransferMode)。分层模型0OSI
国际标准化组织ISO于1984年提出了OSIRM(OpenSystemInterconnectionReferenceModel,开放系统互连参考模型)。OSI参考模型很快成为了计算机⽹络通信的基础模型。OSI参考模型具有以下优点:简化了相关的⽹络操作;提供了不同⼚商之间的兼容性;促进了标准化⼯作;结构上进⾏了分层;易于学习和操作。OSI参考模型各个层次的基本功能如下:物理层:在设备之间传输⽐特流,规定了电平、速度和电缆针脚。数据链路层:将⽐特组合成字节,再将字节组合成帧,使⽤链路层地址(以太⽹使⽤MAC地址)来访问介质,并进⾏差错检测。⽹络层:提供逻辑地址,供路由器确定路径。传输层:提供⾯向连接或⾮⾯向连接的数据传递以及进⾏重传前的差错检测。会话层:负责建⽴、管理和终⽌表⽰层实体之间的通信会话。该层的通信由不同设备中的应⽤程序之间的服务请求和响应组成。表⽰层:提供各种⽤于应⽤层数据的编码和转换功能,确保⼀个系统的应⽤层发送的数据能被另⼀个系统的应⽤层识别。应⽤层:OSI参考模型中最靠近⽤户的⼀层,为应⽤程序提供⽹络服务。分层模型-TCP/IP
TCP/IP模型同样采⽤了分层结构,层与层相对独⽴但是相互之间也具备⾮常密切的协作关系。TCP/IP模型将⽹络分为四层。TCP/IP模型不关注底层物理介质,主要关注终端之间的逻辑数据流转发。TCP/IP模型的核⼼是⽹络层和传输层:⽹络层解决⽹络之间的逻辑转发问题,传输层保证源端到⽬的端之间的可靠传输。最上层的应⽤层通过各种协议向终端⽤户提供业务应⽤。数据封装应⽤数据需要经过TCP/IP每⼀层处理之后才能通过⽹络传输到⽬的端,每⼀层上都使⽤该层的协议数据单元PDU(ProtocolDataUnit)彼此交换信息。如上层数据在传输层添加TCP报头后得到的PDU被称为Segment(数据段);数据段被传递给⽹络层,⽹络层添加IP报头得到的PDU被称为Packet(数据包);数据包被传递到数据链路层,封装数据链路层报头得到的PDU被称为Frame(数据帧);最后,帧被转换为⽐特,通过⽹络介质传输。这种协议栈逐层向下传递数据,并添加报头和报尾的过程称为封装。终端之间的通信数据链路层控制数据帧在物理链路上传输。数据包在以太⽹物理介质上传播之前必须封装头部和尾部信息。封装后的数据包称为称为数据帧,数据帧中封装的信息决定了数据如何传输。以太⽹上传输的数据帧有两种格式,选择哪种格式由TCP/IP协议簇中的⽹络层决定。帧格式
以太⽹上使⽤两种标准帧格式。第⼀种是上世纪80年代初提出的DIXv2格式,即EthernetII帧格式。EthernetII后来被IEEE802标准接纳,并写进了IEEE802.3x-1997的3.2.6节。第⼆种是1983年提出的IEEE802.3格式。这两种格式的主要区别在于,EthernetII格式中包含⼀个Type字段,标识以太帧处理完成之后将被发送到哪个上层协议进⾏处理。IEEE802.3格式中,同样的位置是长度字段。不同的Type字段值可以⽤来区别这两种帧的类型,当Type字段值⼩于等于1500(或者⼗六进制的0x05DC)时,帧使⽤的是IEEE802.3格式。当Type字段值⼤于等于1536(或者⼗六进制的0x0600)时,帧使⽤的是EthernetII格式。以太⽹中⼤多数的数据帧使⽤的是EthernetII格式。以太帧中还包括源和⽬的MAC地址,分别代表发送者的MAC和接收者的MAC,此外还有帧校验序列字段,⽤于检验传输过程中帧的完整性。Ethernet_II帧格式
Ethernet_II帧类型值⼤于等于1536(0x0600)。以太⽹数据帧的长度在64-1518字节之间。Ethernet_II的帧中各字段说明如下:1. DMAC(DestinationMAC)是⽬的MAC地址。DMAC字段长度为6个字节,标识帧的接收者。2. SMAC(SourceMAC)是源MAC地址。SMAC字段长度为6个字节,标识帧的发送者。3. 类型字段(Type)⽤于标识数据字段中包含的⾼层协议,该字段长度为2个字节。类型字段取值为0x0800的帧代表IP协议帧;类型字段取值为0806的帧代表ARP协议帧。4. 数据字段(Data)是⽹络层数据,最⼩长度必须为46字节以保证帧长⾄少为64字节,数据字段的最⼤长度为1500字节。5. 循环冗余校验字段(FCS)提供了⼀种错误检测机制。该字段长度为4个字节。EEE802.3帧格式EEE802.3帧长度字段值⼩于等于1500(0x05DC)。EEE802.3帧格式类似于Ethernet_II帧,只是Ethernet_II帧的Type域被802.3帧的Length域取代,并且占⽤了Data字段的8个字节作为LLC和SNAP字段。1. Length字段定义了Data字段包含的字节数。2. 逻辑链路控制LLC(LogicalLinkControl)由⽬的服务访问点DSAP(DestinationServiceAccessPoint)、源服务访问点SSAP(SourceServiceAccessPoint)和Control字段组成。3. SNAP(Sub-networkAccessProtocol)由机构代码(OrgCode)和类型(Type)字段组成。Orgcode三个字节都为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帧。数据帧传输数据链路层基于MAC地址进⾏帧的传输。以太⽹在⼆层链路上通过MAC地址来唯⼀标识⽹络设备,并且实现局域⽹上⽹络设备之间的通信。MAC地址也叫物理地址,⼤多数⽹卡⼚商把MAC地址烧⼊了⽹卡的ROM中。发送端使⽤接收端的MAC地址作为⽬的地址。以太帧封装完成后会通过物理层转换成⽐特流在物理介质上传输。以太⽹的MAC地址⽹络设备的MAC地址是全球唯⼀的。MAC地址长度为48⽐特,通常⽤⼗六进制表⽰。MAC地址包含两部分:前24⽐特是组织唯⼀标识符(OUI,OrganizationallyUniqueIdentifier),由IEEE统⼀分配给设备制造商。例如,华为的⽹络产品的MAC地址前24⽐特是0x00e0fc。后24位序列号是⼚商分配给每个产品的唯⼀数值,由各个⼚商⾃⾏分配(这⾥所说的产品可以是⽹卡或者其他需要MAC地址的设备)。单播局域⽹上的帧可以通过三种⽅式发送。第⼀种是单播,指从单⼀的源端发送到单⼀的⽬的端。每个主机接⼝由⼀个MAC地址唯⼀标识,MAC地址的OUI中,第⼀字节第8个⽐特表⽰地址类型。对于主机MAC地址,这个⽐特固定为0,表⽰⽬的MAC地址为此MAC地址的帧都是发送到某个唯⼀的⽬的端。在冲突域中,所有主机都能收到源主机发送的单播帧,但是其他主机发现⽬的地址与本地MAC地址不⼀致后会丢弃收到的帧,只有真正的⽬的主机才会接收并处理收到的帧。⼴播第⼆种发送⽅式是⼴播,表⽰帧从单⼀的源发送到共享以太⽹上的所有主机。⼴播帧的⽬的MAC地址为⼗六进制的FF收到该⼴播帧的主机都要接收并处理这个帧。⼴播⽅式会产⽣⼤量流量,导致带宽利⽤率降低,进⽽影响整个⽹络的性能。当需要⽹络中的所有主机都能接收到相同的信息并进⾏处理的情况下,通常会使⽤⼴播⽅式。FFFF:FF,所有组播第三种发送⽅式为组播,组播⽐⼴播更加⾼效。组播转发可以理解为选择性的⼴播,主机侦听特定组播地址,接收并处理⽬的MAC地址为该组播MAC地址的帧。组播MAC地址和单播MAC地址是通过第⼀字节中的第8个⽐特区分的。组播MAC地址的第8个⽐特为1,⽽单播MAC地址的第8个⽐特为0。当需要⽹络上的⼀组主机(⽽不是全部主机)接收相同信息,并且其他主机不受影响的情况下通常会使⽤组播⽅式。数据帧的接收与发送帧从主机的物理接⼝发送出来后,通过传输介质传输到⽬的端。共享⽹络中,这个帧可能到达多个主机。主机检查帧头中的⽬的MAC地址,如果⽬的MAC地址不是本机MAC地址,也不是本机侦听的组播或⼴播MAC地址,则主机会丢弃收到的帧。如果⽬的MAC地址是本机MAC地址,则接收该帧,检查帧校验序列(FCS)字段,并与本机计算的值对⽐来确定帧在传输过程中是否保持了完整性。如果帧的FCS值与本机计算的值不同,主机会认为帧已被破坏,并会丢弃该帧。如果该帧通过了FCS校验,则主机会根据帧头部中的Type字段来确定将帧发送给上层哪个协议处理。本例中,Type字段的值为0x0800,表明该帧需要发送到IP协议上处理。在发送给IP协议之前,帧的头部和尾部会被剥掉。总结⽹络设备如何确定以太⽹数据帧的上层协议?以太⽹帧中包含⼀个Type字段,表⽰帧中的数据应该发送到上层哪个协议处理。⽐如,IP协议对应的Type值为0x0800,ARP协议对应的Type值为0x0806。终端设备接收到数据帧时,会如何处理?主机检查帧头中的⽬的MAC地址,如果⽬的MAC地址不是本机MAC地址,也不是本机侦听的组播或⼴播MAC地址,则主机会丢弃收到的帧。如果⽬的MAC地址是本机MAC地址,则接收该帧,检查帧校验序列(FCS)字段,并与本机计算的值对⽐来确定帧在传输过程中是否保持了完整性。如果检查通过,就会剥离帧头和帧尾,然后根据帧头中的Type字段来决定把数据发送到哪个上层协议进⾏后续处理。
标签:
发布者:admin,转转请注明出处:http://www.yc00.com/web/1689244627a225553.html
评论列表(0条)