-
2022-03-31 15:33:44
数据链路层——以太网协议
第1关:以太网帧的解析
任务描述
补充代码,解析收到的以太网帧,根据出帧类型,调用对应的处理函数。
本任务中的给出的以太网帧字节流不包含前面的7字节同步码、1字节帧开始定界符和后面的4字节校验码。
任务1:完成函数
unsigned char* get_eth_dst_addr(unsigned char eth);
输入为帧的第一个字节的指针,要求返回目的MAC的首地址。
任务2:完成函数
unsigned char get_eth_src_addr(unsigned char eth);
输入为帧的第一个字节的指针,要求返回源MAC的首地址。
任务3:完成函数
void eth_dispatch(unsigned char eth);
输入为帧的第一个字节的指针,要求返回源MAC的首地址。要求解析帧中的类型字段,根据类型编码确定该帧封装是IP,ARP或其他协议包。注意网络字节顺序可能与本地字节训练不同。已经IP协议对应的帧类型代码是0x0800,ARP协议对应的帧类型是0x0806。
以太网是最简单的网络协议,掌握以太网帧解析的方法对后续解析其他协议包大有帮助。
为了完成本关任务,你需要掌握:以太网协议语法和语义。
更多相关内容 -
数据链路层之以太网协议
2018-06-06 17:22:48这样说其实不太准确,因为以太网协议是一个规定数据链路层及物理层的协议,不能说它是数据链路层的一个协议。 以太网帧 以太网帧就是将网络层交付的数据添加报头信息后,此时的数据以帧的形式传递。以太网帧的...在 IP 数据包交付的过程中,在数据链路层会对数据包进行添加报头信息。以太网协议就是数据链路层的一个重要协议。这样说其实不太准确,因为以太网协议是一个规定数据链路层及物理层的协议,不能说它是数据链路层的一个协议。
以太网帧
以太网帧就是将网络层交付的数据添加报头信息后,此时的数据以帧的形式传递。以太网帧的格式如下:
在这里,目的地址与源地址这里都指的是 MAC 地址。每一个主机对应唯一的一个 MAC 地址,是由网卡决定的,长度是 48 位,所以这里的目的地址与源地址都是 6 个字节,也就是 48 个比特位。
在以太网帧的最后,还有一个 CRC 校验码,来校验数据是否异常。
在中间,有一个两个字节的类型标识。这个类型字段有三种值,分别是 : IP、ARP、RARP。
IP
如果类型码为 0800 那么在数据链路层解包完毕后,将该数据交付给网络层的 IP 协议来处理该报文。
ARP
如果类型码是 0806 , 那么在向上层交付的时候就交付给 ARP 协议,这里要说的是 ARP 协议是处于数据链路层与网络层之间的一种协议,也叫作地址解析协议。它将 IP 地址转换为 MAC 地址。
RARP
RARP 协议,就是 Reverse ARP,与 ARP 协议相同,是将 MAC 地址转换为 IP 地址的协议。
一般来说,数据第一次发送给目的主机时,在这之前应该发送 ARP 协议,根据目的主机的 IP 地址来确定目的主机的 MAC 地址,从而为后面的数据发送与接收提供便利。
MAC地址与IP地址
在数据发送传输的过程中,目的 IP 地址与源 IP 地址是永远不会变的,这是这个数据的起始与终点,而 MAC 地址是一直在变化的,由于数据在传输的过程中会经历很多的主机等,所以在这个过程中 MAC 地址一直在变。类似于我们坐车,要坐车从 A 出发,目的地是 D。这个过程中我们会经过 B C,在到达 B 的时候,此时的 MAC 地址相当于我们上一站是 A , 下一站是 C。而目的 IP 地址与 源 IP 地址 分别是 D 与 A,这样说的话就很好理解了。
MAC 地址与 IP 地址,一个代表的目的与终点,一个代表着途中的经过。所以在到达目的局域网后,数据包并不知道要传输给哪台主机,因为 MAC 地址的变化,但是目的 IP 地址一直没有变化,所以此时就需要 ARP 协议来确定目的主机的 MAC 地址。
MTU
在谈 IP 协议的时候说到, IP数据报的长度受数据链路层的 MTU 影响。数据链路层要求在网络层传输过来的数据包必须在 MTU 范围内,以太网帧中的数据长度必须在 46字节到1500字节当中去。也就是说在 IP 层在添加报头信息之前,要判断此时由传输层传输过来的数据段是否超过了 1480 个字节(以太网帧中的数据包括 IP 协议的报头信息,IP 协议的报头信息为 20 字节),如果超过了,那么则对该数据段进行分片,所有被分片的数据的 IP 报头信息当中,它们的 16 位标识都是相同的,并且报头信息中的标志字段中第二位为 0 ,第三位如果为 1 ,代表着报文的结束。
接收端在接收到这里分片数据后,根据 IP 报头信息的 16 为标识信息、三位标志位、13位偏移量信息进行组装。
如果分片后的数据在接收端丢失某一片,那么就组装失败。即使组装失败, IP 层也不负责重新传输的功能。这是传输层所该做的事情。
我们发现 ARP 协议与 RARP 协议它们的实际数据只有 28 个字节,于是在它的报文后进行补位,其中 PAD 就是用来填充的,使 ARP / RARP 协议的长度达到 MTU 的最小字节数。
对于 UDP 传输的影响
一旦 UDP 携带的数据超过了 1472 (MTU - IP报头 - UDP报头 = 1500 - 20 - 8),那么在 IP 层就会对该数据分片,一旦分片就意味着增加了 UDP 传输丢包的可能性。 由于 UDP 协议传输本身就不负责可靠性,再加上分片,那么丢包的可能性就大大增加。
对 TCP 传输的影响
TCP 协议在传输时也收到 MTU 的影响。一个 TCP 数据报的最大长度为 MSS 。MSS 处于 TCP 报头信息选项中。在 TCP 进行链接的时候,双方在发送 SYN 与 SYN + ACK 时就会在选项内对 MSS 进行设置。在双方都得到对方的 MSS 时,选择较小的 MSS 的值作为最终的 MSS 。
再说明白点,MSS 的大小其实就是应用层给传输层的交付的数据的大小。不包括传输层的报头信息。所以在计算 MSS 的时候,用 MTU 减去网络层报头长度以及传输层报头长度即可。
欢迎大家共同讨论,如有错误及时联系作者指出,并改正。谢谢大家!
-
网络协议TCP/IP实验一 以太网链路层帧格式分析实验
2019-01-09 10:45:11湘潭大学网络协议TCP/IP实验一, 以太网链路层帧格式分析实验报告,仅供参考 -
以太网详解【第一层】【物理层】
2022-04-21 12:41:38以太网详解【第一层】【物理层】😀😀双方进行通讯之前,一定要先建立好通讯协议。就像两个人进行讲话之前也要约定好说话的语言,就像中国大妈和美国大妈之间说话,就一定如同对牛弹琴,鸡同鸭讲。就像安徽人和广东人之间都能交流,是因为大家都统一说普通话。
🍔🍔物理层:比如人讲话发出的声音这种信号,别人能够听到声音这种信号,这叫做物理层
🍟🍟数据链路层:将物理层的信号以某种格式打包一帧一帧发送出去,这个打包的过程叫做数据链路层
🍕🍕网络层:将打包好的信号根据IP协议分配IP地址,这叫做网络层
🌭🌭传输层:TCP和UDP,TCP可以理解为单对单信号,UDP可以理解为广播信号
🍿🍿应用层: 文件管理系统,HTTP协议根据7层通讯模型可知,双方进行通讯是通过层层剥离进行通讯的,比如发送端发送信号的顺序是7654321打包发出去,接受端收到信号之后,通过1234567层层剥离最后才读到。
红色方框就是物理层
将MII发过来的0和1物理信号,进行PCS编码与解码,这里假如发送方与接收方的晶振频率不同,就会导致编码出现误差。PCS编码之后,就会转成串行信号发送出去,这里整个过程就是PHY的过程。
DDR是为了弥补8到4的缺陷,使得一个时钟周期发送两次数据,使得4的效果和8的效果一样
-
计算机网络协议分为哪几层?7层协议、5层协议、4层协议。
2021-12-20 14:34:16一、7层协议 7层是指OSI七层协议模型, 主要是: 应用层(Application)、 表示层(Presentation)、 会话层(Session)、 传输层(Transport)、 网络层(Network)、 数据链路层(Data Link)、 物理层(Physical...计算机网络分为哪几层?7层协议、5层协议、4层协议。
一、7层协议
7层是指OSI七层协议模型,
主要是:应用层(Application)、 表示层(Presentation)、 会话层(Session)、 传输层(Transport)、 网络层(Network)、 数据链路层(Data Link)、 物理层(Physical)。
二、5层协议
5层只是OSI和TCP/IP的综合,是业界产生出来的非官方协议模型,但是很多具体的应用。实际应用还是TCP/IP的四层结构。为了方便可以把下两层称为网络接口层。
五层体系结构包括:应用层、 运输层、 网络层、 数据链路层、 物理层。
三、4层协议
4层是指TCP/IP四层模型,
主要包括:应用层、 传输层、 网际层、 网络接口层。
如图所示:
-
以太网MAC层协议
2018-08-07 17:31:11MAC发送模块可将上层协议提供的数据封装之后通过MII接口发送给PHY。发送模块可接收主机接口模块的数据帧开始和数据帧结束标志,并通过 主机接口从外部存储器中读取要发送的数据,然后对数据进行封装,然后通过PHY... -
链路层--->ETH(以太网)协议
2022-05-03 10:07:17链路层负责相邻设备之间的数据帧传输,典型协议有:ETHH(以太网协议),ARP协议,MTU; 网络层是通过IP地址定位起点与终点;链路层是负责起点到终点之间的相邻设备间传输。相邻设备之间的识别是通过MAC地址完成的。 ... -
以太网协议
2018-11-23 15:38:52在以太网协议中,目的地址分为三种单播地址、广播地址、多播地址,其中单播地址如上面A给B主机发送,其接收者为一个,并且其目的地址的最高字节的低位为0, 以太网多播地址48位中的最高字节的低位为1,如 01:00... -
网络协议之以太网协议解析
2020-04-18 18:03:34Ethernet :以太网协议,用于实现链路层的数据传输和地址封装(MAC) 封装原理: 以太网的数据帧格式如下图所示: 它由6个字节的目的MAC地址,6个字节的源MAC地址,2个字节的类型域(用于标示封装在这... -
IEEE 802.3 以太网协议基础解析
2018-12-31 15:24:34IEEE 802.3 通常指以太网。一种网络协议。描述物理层和数据链路层的MAC子层的实现方法,在多种物理媒体上以多种速率采用CSMA/CD访问方式,对于快速以太网该标准说明的实现方法有所扩展。 -
接口协议(四):以太网(Ethernet)学习(一):协议
2020-08-27 19:57:33因为没有做过以太网的项目,也没有进行过以太网通信测试,本片博客仅仅是对以太网协议极小一部分的学习了解。如有不当之处,还请指正。 一、以太网 以太网是一种产生较早,使用相当广泛的局域网技术,局域网就是一个... -
计算机网络之数据链路层局域网、以太网及其PPP协议&HDLC协议【408_4】
2021-07-04 20:29:04一、轮询访问介质访问控制 (一)介质访问控制 信道划分介质访问控制(MAC Multiple Access Control )协议: ①、基于多路复用技术划分资源。 ②、网络负载重:共享信道效率高,且公平 ③、网络负载轻:共享信道... -
车载以太网协议:SOME/IP (layer5-7)简介
2021-12-13 17:04:11参考链接:车载以太网 - SOME/IP简介 - 知乎 目录 ...SOME/IP其实是构架在传输层之上的应用层通信协议,它的内容虽然很多很杂,但本质上也就是定义了SOME/IP 包头和数据的内容而已。 WHY o.. -
以太网透明传输协议.pdf
2020-01-30 17:54:41通信协议是一种分层结构的,根据 ISO 的 7 层模型通信协议分为物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。如果用户想通过卓岚 ZLSN 模块的以太网透明传输协议实现串口数据和以太网数据的转发, -
互联网协议 — Ethernet 以太网协议
2021-07-07 23:16:42目录 文章目录目录Ethernet以太网的两大类型 Ethernet 在物理层的数据实际会以电信号的形式在物理介质中传输...Ethernet 协议,即以太网协议,规定了电信号的分组方式。一组电信号称为一个以太网数据帧,数据帧又由帧首 -
【计算机网络】7. 网络基础5之详解以太网协议,ARP协议,NAT协议,DNS协议
2022-01-19 15:16:00以太网协议1.1 以太网协议格式2.ARP协议2.1 arp协议的格式2.2 arp缓存表2.2.1 为什么需要arp缓存表?2.2.2 arping发送的arp数据在抓包的时候为什么没有看到广播现象?2.2.3 为什么arp缓存表当中的记录还需要老化... -
以太网、IP、TCP、HTTP的详细介绍
2017-06-20 09:48:49TCP 协议简介 作者: 阮一峰 日期: 2017年6月 8日 ...TCP 只是其中的一层,有着自己的分工。...(图片说明:TCP 是以太网协议和 IP 协议的上层协议,也是应用层协议的下层协议。) 最底层 -
网络层(IP,ICMP),数据链路层(以太网协议)
2020-10-06 17:29:44网络层(IP协议,ICMP) 数据链路层(以太网协议) -
计算机网络之IP协议与以太网
2022-05-05 12:48:40本篇文章将介绍网络层和数据链路层的协议——IP协议与以太网,包括协议的格式,以及协议中每个字段的作用。 -
以太网学习(2)-- 网络协议简介
2022-03-20 10:48:31TCP/IP是一个协议族,是一个多层协议系统,每一层完成不同的功能,且通过若干协议来实现,上层协议使用下层协议提供的服务。。对于开发人员听到最多就是就是应用层协议,比如HTTP、FTP、MQTT等。 TCP/IP是一个庞大... -
POWERLINK 工业实时以太网协议简介
2022-03-19 13:14:40平常我们听的最多用的最多的Internet互联网,应用上使用多的也是http,ftp等应用层协议。 工业以太网是应用于工业控制领域的以太网技术。在技术上与商用以太网(即IEEE 802.3标准)兼容,但是实际产品和应用却又完全... -
以太网MAC协议--CSMA/CD协议
2019-11-27 11:38:55以太网MAC协议–CSMA/CD协议 @(计算机网络) 为了通信的方便,以太网采用了两种重要的措施: CSMA/CD协议 采用无连接的工作方式:传输数据之前不用建立连接 对发送的帧不进行编号,也不要求接收方发回确认帧。这样... -
以太网完整协议(一)
2017-05-03 15:54:31一、太网中数据帧结构 以太网是目前最流行的一种局域网组网技术(其他常见局域网...在物理层上看,一个完整的以太网帧有7个字段,事实上,前两个字段并不能算是真正意义上的以太网数据帧,它们是以太网在物理层上发送 -
以太网是什么意思?以太网是什么数据类型?以太网是什么协议?以太网是什么概念? -解决方
2020-12-29 17:27:39(1)结构分层以太网的网络结构分为三层:物理层、数据链路层和高层用户层,如图1所示。控制器插件板完成数据链路层的功能,同袖电缆侧的收发器完成物理层的功能。图2详细地说明了各层功能。 图1 以... -
ppp协议与以太网协议的异同
2017-09-26 16:52:48大家都知道当ip数据报传到数据链路层时需要封装成帧,ppp协议采用的方式是通过在ip在每个帧的首尾都添加一个帧定界符(soh与eot),但是以太网协议生成的帧却只有头部帧定界符,为什么mac帧不需要尾部定界符呢?... -
以太网物理层协议整理-百兆/千兆以太网
2017-06-27 09:55:501) 物理层各子层功能 Reconciliation Sublayer (RS): 协调子层。汇聚功能,使不同介质类型对MAC子层透明 Medium Independent Interface (MII): 介质无关接口。提供公共接口,屏蔽这些物理层的不同细节... -
以太网物理层协议整理-万兆以太网
2017-06-27 09:51:11在万兆以太网标准化过程中,IEEE和10GEA(万兆以太网联盟)是两个最重要的组织。 万兆以太网标准和规范都比较繁多,在标准方面,首先有2002年的IEEE 802.3ae,后来也不断有新的万兆以太网规范推出,如2006年的IEEE ... -
以太网物理层(MAC)接口协议
2020-03-14 21:09:30‘本次的以太网协议,我们将完成与前面DDR3相类似的实验内容,也就是FPGA开发板发送视频内容,在电脑的上位机上显示。详细的实验内容,我们会在后面的文章中介绍,本次实验我们主要介绍以太网常见的物理层协议,物理... -
网络通信基础-osi七层模型及协议简介,socket 层简介
2022-03-26 13:46:59osi 七层模型简介 各层协议的工作流程与规定 socket 简介 Tcp 服务端与客户端的"三次握手与四次挥手", Tcp 协议比 Udp 协议更加可靠的原因 -
网络原理IP协议/以太网
2022-05-05 10:44:551.以太网协议 2.DNS协议 一、网络层 1.IP协议 ①IP协议的报头格式以及各部分说明: ②对以上其它重要部分再次进行说明: 1.16位总长度: 16位,64k,也就是说单个IP数据报最大程度不能够超过64k。但是在...