博客
关于我
计算机网络MAC地址的作用
阅读量:396 次
发布时间:2019-03-05

本文共 1483 字,大约阅读时间需要 4 分钟。

简介

谈起MAC地址,不得不说一下IP地址。IP地址工作在TCP/IP参考模型的第三层网络层。IP地址专注于网络层,将数据包从一个网络转发到另外一个网络;而MAC地址专注于数据链路层,将一个数据帧从一个节点传送到相同链路的另一个节点。定位网络中的计算机的位置,最常用的有域名地址Ip地址MAC地址三种方式,它们分别对应于OSI模型中的应用层网络层数据链接层。通常IP地址是不断变化的,而MAC地址是计算机的物理网卡唯一对应的地址,好比每个人都有唯一对应的身份证号码一样具有唯一性。

MAC地址的定义

MAC(Media Access Control,介质访问控制)地址,也叫硬件地址,长度是48比特(6字节),由16进制的数字组成,分为前24位和后24位:

前24位叫做组织唯一标志符(Organizationally Unique Identifier,即OUI),是由IEEE的注册管理机构给不同厂家分配的代码,区分了不同的厂家。 后24位是由厂家自己分配的,称为扩展标识符。同一个厂家生产的网卡中MAC地址后24位是不同的。
MAC地址对应于OSI参考模型的第二层数据链路层,工作在数据链路层的交换机维护着计算机MAC地址和自身端口的数据库,交换机根据收到的数据帧中的“目的MAC地址”字段来转发数据帧。

MAC地址的作用

在一个正常的网络通信过程中,IP地址和MAC地址相互搭配,将客户端的数据包进行层层转发直到服务器接收此数据包。这里举个例子更方便我们对IP地址和MAC地址的理解。

客户端访问服务器端 可以从下图中可以选择A->B->C->F->G路线,也可以选择A->B->E->F->G路线。
在这里插入图片描述
在网络通信中,IP地址标识两个计算机网络地址信息。MAC地址负责表示计算机的数据链路层地址。每个网络设备都有它的MAC地址,通常在设备在出厂前已经设置好了,当发起网络请求时,首先会通过DNS解析服务器的域名,得到并确定服务器地址后,客户端将会向服务器发送请求数据包,数据包包含有客户端IP地址与服务器IP地址等信息。那么问题来了这个数据包是如何一步步传递到服务器的呢?
答案是通过MAC地址将数据包层层转发,以上图为例,当客户端发送数据包到交换机时候,除了携带有客户端的IP地址和服务器IP地址,还包含了客户端的MAC地址以及将要转发到交换机的MAC地址。这样以来通过MAC地址就将数据包从客户端传递到了交换机,类似的交换机在通过自己的MAC地址和A节点路由器MAC地址,将数据包发送到A路由,以此类推,一直将数据包传递到服务器上。而这个包含转发前机器的MAC地址与转发到机器的MAC地址的信息叫做数据链路层的协议数据单元,也叫做数据帧。

数据帧的传输过程

当服务器端接收到客户端请求会创对话处理此请求,处理完毕发送响应数据包给客户端如下图所示:

在这里插入图片描述
假设服务器发送给客户端的数据包我们称作A数据包,请注意这里当客户端收到此数据包时,会给服务器一个成功接收的响应,然后服务器会发送下一个数据包(假设数据包为B),否则将会再次发送A数据包给客户端。

客户端到服务器整个流程

客户端请求到服务器一共有以下几个阶段:

  1. 客户端访问域名后,将会向DNS服务器查询域名的IP地址。
  2. 客户端获得服务器的IP地址,将会发送数据包和数据帧到下一个节点
  3. 每个节点层层传输直到服务器接收到此数据包。
  4. 服务器创建会话处理请求返回数据包和数据帧给下一个节点。
  5. 每个节点层层传输直到客户端接收此数据包

在你上述24步骤如果失败将会进行重试,直到对方接收到数据包并返回成功的响应。

转载地址:http://dgnwz.baihongyu.com/

你可能感兴趣的文章
mysql 敲错命令 想取消怎么办?
查看>>
Mysql 整形列的字节与存储范围
查看>>
mysql 断电数据损坏,无法启动
查看>>
MySQL 日期时间类型的选择
查看>>
Mysql 时间操作(当天,昨天,7天,30天,半年,全年,季度)
查看>>
MySQL 是如何加锁的?
查看>>
MySQL 是怎样运行的 - InnoDB数据页结构
查看>>
mysql 更新子表_mysql 在update中实现子查询的方式
查看>>
MySQL 有什么优点?
查看>>
mysql 权限整理记录
查看>>
mysql 权限登录问题:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)
查看>>
MYSQL 查看最大连接数和修改最大连接数
查看>>
MySQL 查看有哪些表
查看>>
mysql 查看锁_阿里/美团/字节面试官必问的Mysql锁机制,你真的明白吗
查看>>
MySql 查询以逗号分隔的字符串的方法(正则)
查看>>
MySQL 查询优化:提速查询效率的13大秘籍(避免使用SELECT 、分页查询的优化、合理使用连接、子查询的优化)(上)
查看>>
mysql 查询数据库所有表的字段信息
查看>>
【Java基础】什么是面向对象?
查看>>
mysql 查询,正数降序排序,负数升序排序
查看>>
MySQL 树形结构 根据指定节点 获取其下属的所有子节点(包含路径上的枝干节点和叶子节点)...
查看>>