数据帧的学习整理

2022-09-20 14:42:59 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

事先声明,本文档所有内容均在本人的学习和理解上整理,不具有权威性,甚至不具有准确性,本人也会在以后的学习中对不合理之处进行修改。

在了解数据帧之前,我们得先知道OSI参考模型

咱们从下往上数,数据帧在第二层数据链路层处理。我们知道,用户发送的数据从应用层开始,从上往下逐层封装,到达数据链路层就被封装成数据帧。接下来,帧格式

Ethernet_II帧格式

D.MAC:Destination Mac,顾名思义,目的mac地址,该字段长6字节,存放接收方的mac地址。

S.MAC:Source MAC,源mac地址,该字段长6字节,存放发送方mac地址。

Type:类型字段。用来标识上一层(网络层)的协议。字段值为0x0800表示上层协议为IP协议,字段值为0x0806表示上层协议是ARP协议。该字段长2字节。

Data:该字段是来自网络层的数据,在整理数据包时会提到。该字段最少为46字节,最大1500字节。

FCS:循环冗余校验字段,用来对数据进行校验,如果校验结果不正确,则将数据丢弃。该字段长4字节。

IEEE802.3帧格式

Length:长度字段,定义Data字段的大小。

LLC:Login Link Control 逻辑链路控制协议,它里面包含三个字段

  ①D.SAP/S.SAP  Destination/Source Service Access Point 目的/源服务访问点。SAP提供多个高层协议进程共用一个LLC层实体进行通信的机制。字段值不同代表不同帧类型

  ②Control  控制字段,定义LLC帧的类型:信息帧(I帧)、监控帧(S帧)和无编号帧(U帧)

SNAP:Sub-network Access Protocol 子网访问协议。其中的Org Code字段设置为0,Type字段即封装上层网络协议,同Ethernet_II帧。

数据帧在网络中传输主要依据其帧头的目的mac地址。当数据帧封装完成后从本机物理端口发出,同一冲突域中的所有PC机都会收到该帧,PC机在接受到帧后会对该帧做处理,查看目的MAC字段,如果不是自己的地址则对该帧做丢弃处理。如果目的MAC地址与自己相匹配,则先对FCS进行校验,如果校验结果不正确则丢弃该帧。校验通过后会产看帧中的type字段,根据type字段值将数据传给上层对应的协议处理,并剥离帧头和帧尾(FCS)。

MAC地址

  MAC地址是唯一标识一台设备的序列号,和人的身份证类似,具有唯一性和标识性。一个MAC地址由48个比特位,一般按16进制表示。一般主机发送数据帧有三种方式:单播、组播、广播。三种发送方式的帧的D.MAC字段有些区别。单播时,MAC地址的第一个字节的第8个比特位为0;组播时,第一个字节的第8个比特位为1;广播时,48个比特位全为1,即表示为FF-FF-FF-FF-FF。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/167233.html原文链接:https://javaforall.cn

0 人点赞