一.数据链路层
目前创新互联建站已为1000多家的企业提供了网站建设、域名、雅安服务器托管、成都网站托管、企业网站设计、青山湖网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。数据链路层实现的是相邻结点之间的逻辑链接,其使用的协议单元为数据帧。在两个结点之间传送数据时,数据链路层将网络层交下来的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地址,帧协议类型字段有三种值,分别对应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地址在以太网首部和ARP请求中各出现一次,对于链路层为以太网 的情况是多余的,但如果链路层是其它类型的网络则有可能是必要的。硬件类型指链路层网络类型,1为以太网,协议类型指要转换的地址类型,0x0800为IP地址,后面两个地址长度对于以太网地址和IP地址分别为6和4(字节),op字段为1表示ARP请求,op字段为2表示ARP应答。
下面举一个具体的例子:
主机1向主机2发送ARP请求:
主机2向主机1ARP应答:
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
本文题目:计算机网络中的MAC帧-创新互联
本文URL:http://lswzjz.com/article/ddcojd.html