MAC 地址

OSI第二层的作用,使局域网中的机器能互相连接并建立通信,还能够侦测传输错误。要向局域网中的其他机器发送信息,就需要借助 MAC 地址,来指定发送信息的目的地。

MAC 地址其实就是网卡的地址,一台电脑有一个或多个网卡,但是每个网卡都只一个独一无二的 MAC 地址。

MAC地址用16进制表示,由6个字节编码组成,每个字节用冒号隔开,如 00:0c:29:10:5a:55

一个字节(byte)是8个比特位(bit),一个比特位就是一个二进制的位,一个二进制的位只能取值0或1,因此一个比特位可以取 2^1=2 个值,8个比特位可以取 2^8=256 个值,那么一个字节可以取256个值,从 0 ~ 255 的整数。

MAC 地址是由 6 个字节编码组成,因此可以取 2^48 个值,这是一个很大的数,肯定能保证每个 MAC 地址都是唯一的,网卡制造商会购买 MAC 地址区块,因此不会有重复的 MAC 地址。

其中有一个特殊地址,每一个二进制位都是1,二进制的11111111转换为十六进制是 ff,因此这个地址是 ff:ff:ff:ff:ff:ff

这个地址被称为广播地址,广播地址可以代替任意一个网卡,因此发送到广播地址的信息就会发送到所在网络的所有网卡上。

以太网协议

为了使连接到网络上的机器能够相互交流,需要定义一种语言,也称之为协议,第二层使用的就是以太网协议,协议定义了信息的传输格式,术语称为帧或者数据帧。

一个以太网帧的格式如下

DST 是 destination 的缩写,表示接收方。

SRC 是 source 的缩写,表示发送方。

应用在发送信息的时候,osi从上到下穿越,第三层会告诉第二层第三层应用了什么协议,并封装在以太网帧中,在接收信息的时候,osi从下到上穿越,接收方在接收数据校验 MAC 目标地址后,如果是自己的地址,就可以将信息发送到第三层对应的协议。

CRC 是一个用于校验错误的数值,发送方和接收方都会使用某个公式计算被传输信息的一个 CRC 值,如果两个CRC一致,则说明发送帧和接收帧是一样的,验证发送过程中没有出错。如果不一致,则说明发送帧和接收帧不一样,说明发送过程中有出错,接收方可要求发送方重新发送。

交换机

交换机是外观上拥有多个RJ45接口的盒子,是一个能够互联多个机器的设备。

类似于第一层中的集线器,但是比集线器强大很多,因为交换机可以隔离对话,它的内存中有一个 CAM 表。这个表将交换机中的每一个 RJ45 接口与一个 MAC 地址相关联,交换机就是依据这个表里的对应关系和帧里面包含的目标地址,将数据帧发送到正确的机器上。

CAM 表是以动态方式构建的,当交换机读取一个流经的帧的时候,都会去扩充 CAM 表里的内容或更新已有内容。

当 CAM 表在刚开始构建的时候,交换机如果找不到此帧中的目标 MAC 地址,那么它就会把这个帧发送给除了帧来源以外的所有机器,这样目标机器收到这个帧的时候,看到 MAC 地址是自己的就会接收这个帧,同时向发送帧的机器回复一个信息,这样 CAM 表就会被更新。

交换机带来的变革

之前总线拓扑上需要用到 CSMA/CD 协议去解决冲突,在交换机上这种冲突就不会存在了,交换机使用双绞线链接设备,双绞线中使用不同的线进行接收信息和发送信息,因此不会产生这种冲突。(集线器也能使用双绞线,但集线器是以半双工的模式工作)

如果有多台机器向同一台机器发送信息,则多条信息都会到达这台机器的接收线上,因为交换机拥有内存,当它接收到多个帧时,可以将其储存在内存中,当目标机器连接的双绞线传输对空闲的时候再转发该帧。

因此,在没有交换机之前,机器发送信息必须监听,确定网络是空闲的时候才能发送帧,而交换机出现后,可以确保不发生冲突,机器想发送帧的时候就能发送。

三种通信方式

在交换机上,网卡是以全双工的方式运作。在集线器上使用 CSMA/CD 协议通信,网卡是以半双工方式运作,还有一种方式叫单工。

单工:数据传输是单向的,一方固定为发送端,一方固定为接收端,帧只能沿一个方向传输,类似于汽车单行道。

半双工:数据传输是双向的,但是不能同时进行,无线对讲机就是一种半双工设备。

全双工:数据传输是双向的并且能够同时进行,类似于汽车双向车道。

总的来说,集线器无法配置,总是以总线拓扑半双工的方式运作,需要配合 CSMA/CD 协议才能很好的工作,如果把集线器与交换机相连,那么交换机连接集线器所在的端口将以半双工的方式来运作,其他端口则维持全双工。

VLAN虚拟局域网

交换机可以将端口分割到不同的网络中,就好像有多个交换机一样,属于同一网络中的机器通信不受影响,但这些被分割开的端口就不能再相互通信了。

这种技术可以方便管理有多种人群的网络,同时也不用购买多个交换机

交换机环路

如果在一个网络中将帧发送到目标机器有两种路径,那么这就会形成一个交换机环路。这会使得帧被发送到目标机器两次,在发送广播帧的情况下会更加严重,广播帧在两个路径上发送再沿着两个路径返回,这会导致交换机很快就饱和导致网络崩溃,这种现象也被称为广播现象。

上一篇:OSI模型第一层物理层

下一篇:OSI模型第三层网络层中的IP地址和子网掩码

网络协议osi模型_网络协议|OSI模型第二层数据链路层相关推荐

  1. reactor多线程模型_网络编程模型的演进之路

    在没有IO多路复用的模型的情况下,为了支持高并发采取以下网络模型 一:阻塞IO+多线程 client连接服务器,服务器有一个线程阻塞的调用accept,accept接收到连接后,创建一个线程来读写读写 ...

  2. 系统备用服务器连接配置异常,网络配置的DNS服务老是异常网络连接老是异常...._网络编辑_帮考网...

    banyangwo 新兵答主 08-08 TA获得超过3262个赞 DNS 是域名系统 (Domain Name System) 的缩写,它是由解析器和域名服务器组成的.域名服务器是指保存有该网络中所 ...

  3. 网络切片技术缺点_网络切片和服务质量(QoS)有什么区别?

    原标题:网络切片和服务质量(QoS)有什么区别? [OEM合作]小鸟云OEM能够为合作商提供完整的OEM公有云业务管理系统 + 无限制资源池API接口,合作商无需考虑复杂的资源池建设方案,也无需考虑庞 ...

  4. 网络天才网页中文版_网络天才网页版(在线玩)

    为广大用户带来网络天才网页版在线玩游戏.网络天才网页版游戏给玩家带来精彩的问答类解谜游戏.游戏中你将化身Akinator,将被询问几个问题.从这几个问题中你将被猜出你心中所想.游戏非常的神奇,还没体验 ...

  5. 基于python的网络爬虫开题报告_网络爬虫开题报告.docx

    网络爬虫开题报告 网络爬虫开题报告 篇一:毕设开题报告 及开题报告分析 开题报告如何写 注意点 1.一.对指导教师下达的课题任务的学习与理解 这部分主要是阐述做本课题的重要意义 2.二.阅读文献资料进 ...

  6. 机器学习结构化学习模型_生产化机器学习模型

    机器学习结构化学习模型 The biggest issue in the life-cycle of ML project isn't to create a good algorithm or to ...

  7. 一般线性模型和线性回归模型_您的线性回归模型指南

    一般线性模型和线性回归模型 Interpretability is one of the biggest challenges in machine learning. A model has mor ...

  8. 软件工程生命周期模型_软件生命周期模型比较| 软件工程

    软件工程生命周期模型 软件生命周期模型 (Software Lifecycle Models) There are five software lifecycle models that are co ...

  9. 空间计量模型_截面数据空间计量模型空间误差模型及Stata操作和应用

    来源:计量经济学服务中心编辑整理,转载请联系1 前言 空间分析起源于地理学.空间经济学和相关学科.到目前为止,它被认为是专业的领域,因此不是大多数统计软件的标准部分.就stata而言,有许多用户编写的 ...

最新文章

  1. ssh,FTP到远程服务器时,显示自定义的警告信息
  2. pythonweb毕业设计-[分享]我发现了一个快速完成物联网毕业设计的好方法!
  3. java深度优先迷宫生成_通过深度优先搜索产生的迷宫的Java代码
  4. ASP.NET Core 之 Identity 入门(二)
  5. JDBC第二篇 【PreparedStatment、批处理、处理二进制、自动主键、调用存储过程、函数】...
  6. python回归结果可视化图表解读_一个基于可视化理论的完美Python图表,快学起来
  7. MySQL某列增加标注_MySQL 使用CASE表达式给行做标记
  8. 12月中旬计算机会议,2019年12月泰国曼谷--深度学习与计算机视觉国际会议(DLCV 2019)...
  9. C# 控制台如何播放音频文件
  10. 软件测试工程师的自我认识和定位!!
  11. 使用google的zxing制作二维码
  12. html背景图片css怎么添加,css样式怎么插入背景图片?
  13. linux centos 中的挂载是什么意思介绍和解释介绍及如何挂载
  14. nginx软件安装部署
  15. filelist文件
  16. 自己搭深度学习环境踩坑血泪史
  17. security基于数据库的认证(二)
  18. CAD填充图案面积测量
  19. 4G和5G频谱共享技术
  20. php-bease源码加密扩展,PHP代码加密详细教程

热门文章

  1. JAVA中两个char类型相加_1、JAVA中的几种基本类型,各占用多少字节?
  2. 用 Mathematica 获取图片的 RGB 三基色
  3. Detected cartesian product for LEFT OUTER join
  4. 第三章 springboot + jedisCluster(转载)
  5. 常见的问题:https://localhost:1158/em 无法打开
  6. [容易]在二叉查找树中插入节点
  7. cmd对应linux sleep命令,linux sleep命令参数及用法详解(linux休眠延迟执行命令)
  8. 复制文本朗读_原创:昭明文选配乐朗读 卷第五十一 论一 东方曼倩 非有先生论 王子渊 四子讲德论 并序...
  9. 基础编程题目集 6-8 简单阶乘计算 (10 分)
  10. 7 centos 时钟跟物理机同步_同步FIFO和异步FIFO