计算机网络中的MAC帧

发布时间:2020-07-23 11:35:57 作者:mdd9502053669
来源:网络 阅读:2755

一.数据链路层

  数据链路层实现的是相邻结点之间的逻辑链接,其使用的协议单元为数据帧。在两个结点之间传送数据时,数据链路层将网络层交下来的IP数据报组装成帧,在两个相邻节点间的链路上传送帧。

   数据链路层的三个基本问题:

         1.封装成帧,2.透明传输,3.差错检测

下来讨论一下封装成帧 :

   封装成帧就是在一段数据的前后分别添加首部和尾部,这样就构成了一个帧。网络层的IP数据报传送到数据链路层就成为了帧的数据部分,在帧的数据部分前后分别加上头部和尾部就构成了一个完整的帧。

二.以太网的MAC层

   1.MAC 层的硬件地址

       在局域网中,硬件地址又称为物理地址或者MAC 地址长度是48位,是在网卡出厂

时固化的。在LINUX 下用ifconfig命令看一下,“HWaddr 00:15:F2:14:9E:3F”部分就是硬件地址。在生产适配器时,这6字节MAC地址已被固化在适配器的ROM中。因此实际上就是适配器地址或适配器标识符。

   2.MAC帧的格式

   计算机网络中的MAC帧

其中目的地址和源地址就是MAC地址,帧协议类型字段有三种值,分别对应IP、ARP(地址解析)、RARP(逆地址解析)。帧末尾是CRC校验码。

 以太网帧中的数据长度规定最小46字节,最大1500字节,ARP和RARP数据包的长度不够46字节,要在后面补填充位。最大值1500称为以太网的最大传输单元(MTU),不同的网络类型有不同的MTU,如果一个数据包从以太网路由到拨号链路上,数据包长度大于拨号链路的MTU了,则 需要对数据包进行分片(fragmentation)。LINUX下的ifconfig命令的输出中也有“MTU:1500”。注意,MTU这 个概念指数据帧中有效载荷的最大长度,不包括帧首部的长度。

3.ARP数据报格式 

在网络通讯时,源主机的应用程序知道目的主机的IP地址和端口号,却不知道目的主机的硬件地址,而数据包首先是被网卡接收到再去处理上层协议的,如果接收到的数据包的硬件地址与本机不符,则直接丢弃。因此在通讯前必须获得目的主机的硬件地址。ARP协议就起到这个作用。

   源主机发出ARP请求,询问“IP地址是192.168.0.1的主机的硬件地址是多少”,并将这个请求广播到本地网段(以太网帧首部的硬件地址填FF:FF:FF:FF:FF:FF表示广播),目的主机接收到广播的ARP请求,发现其中的IP地址与本机相符,则发送一个ARP应答数据包给源主机,将自己的硬件地址填写在应答包中。

每台主机都维护一个ARP缓存表,在LINUX下可以用arp -a命令查看。缓存表中的表项有过期时间(一般为20分钟),如果20分钟内没有再次使用某个表项,则该表项失效,下次还要发ARP请求来获得目的主机的硬件地址。

 ARP数据报帧格式如下图所示:

  计算机网络中的MAC帧

 

注意到源MAC地址、目的MAC地址在以太网首部和ARP请求中各出现一次,对于链路层为以太网 的情况是多余的,但如果链路层是其它类型的网络则有可能是必要的。硬件类型指链路层网络类型,1为以太网,协议类型指要转换的地址类型,0x0800为IP地址,后面两个地址长度对于以太网地址和IP地址分别为6和4(字节),op字段为1表示ARP请求,op字段为2表示ARP应答。

下面举一个具体的例子:

 主机1向主机2发送ARP请求:

计算机网络中的MAC帧

 主机2向主机1ARP应答:


计算机网络中的MAC帧





  

  


推荐阅读:
  1. 视频帧类型及区别
  2. 什么是控制帧和数据帧?

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

以太网 帧格式 ma

上一篇:centos不能使用vim的原因是什么

下一篇:oracle 11g与oracle 10g内存管理

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》