在这篇文章中,会先介绍局域网及其的组件,通过交换机延伸到 TCP/IP 中数据链路层,了解数据的传输介质,以及交换机的发展历程及原理。

最后介绍数据帧的格式。

在阅读后应该了解如下的内容:

  • 什么是局域网及其组件
  • Hub 和交换机的区别
  • 交换机的转发规则
  • 数据帧的格式
  • Ethernet2 和 IEEE 制订的标准的区别。

LAN

将在一定的限制区域内,有多个终端设备连接到一起的设备叫局域网。例如通过交换机连接起来的多台终端。

常用的组件:

终端:PC,IP 电话,打印机,移动电话,服务器

连接设备:网卡(NIC),网络介质(网线,无线电波)

网络设备:以太网交换机,路由器,AP(扩散无线信号,通过 WCL 集中控制)

协议:Ethernet,IP,ARP,DHCP

上面是常见的一个局域网中的架构图,由此可见,对于一个局域网来说,交换机是其中最重要的部分。

集线器 (Hub)

对于 2 台 PC 来说,可以将其直接连接起来,但对于 3 台甚至更多就不行了。在这时,先是出现一个叫 HUB 的设备,用于解决连接多台终端的问题。由于 HUB 本身内部的设计(一根总线,总线分出多根线连接其他设备),就决定了有如下的特性:

  • 工作在物理层,对收到的信号进行放大,以扩大网络的传输距离。

  • 集线器发送数据没有针对性,而是采用广播的形式发送,也就是说当它要向某个节点发送数据时,不是直接把数据发送到目的端口,而是把数据包发送到会集线器相连的所有节点

  • 当以 HUB 为中心设备时,网络中某条线路发生了故障并不影响其他的端口工作

但 HUB 有一个非常严重的问题,就是由于本身的设计,导致在同一时间只能有一根线传递数据,就意味着是半双工的工作模式。为了解决这个问题,就出现了一个技术 - CSMA/CD,载波监听多路检测。

实现 CSMA/CD 的方法就是:

  • 先听后发

  • 边听边发

  • 冲突停发

  • 随机分配

交换机

什么是交换机?

在 HUB 之后,交换机被发明出来,解决连接多台终端的问题。和 HUB 不同,交换机在设计时,非常采用总线的架构,而是采用交换矩阵的形式。这就意味着具有以下的特点:

  • 基于硬件转发,转发的速度是线性(可以忽略在交换机上处理数据的时间)并且是有选择的转发数据帧

  • 工作在 TCP/IP 的数据链路层

  • 默认全双工

  • 高速,并具有大量的帧缓存

  • 端口很多

  • 可拓展,可分为核心交换机和边缘交换机,连接起来的多台交换机同属于同一局域网

交换机的作用

当交换机收到数据时,检查数据包中的目的 MAC 地址,然后把数据从目的所在端口转发出去。

转发过程一般分为三种:

  • 直通式转发:转发时仅检查前 12 字节(源,目的 MAC 地址),避免不了转发无效残帧(小于 64 字节)
  • 存储式转发,检查数据包的所有字节,可靠性高,但有效率的损失
  • 无碎片式转发,检查前 64 字节,在可靠性和效率间取舍。

交换机的原理

在交换机内部有一张 MAC 地址表,表中记录了网络中所有 MAC 地址和该交换机各端口的对应信息,以及老化时间(300s)。

在交换机收到数据时会遵循如下的处理流程:

  1. 先查询 MAC 表,看表中是否存在所在端口源 MAC 地址。

    • 如果存在,不做处理

    • 不存在,则将源 MAC 和交换机所在端口号记录。

  2. 再次查询 MAC 表,看表中是否存在目的 MAC 地址。

    • 如果存在,则单播转发。

    • 不存在,进行泛洪操作(广播)。终端在收到数据包会先检查二层报头,不是自己的 MAC 则丢弃,是自己则继续拆包到应用层,接着回包。

规范:

  1. 交换机只记录源 MAC 地址(因为通常来说数据都是有来有回的,这样双方的 MAC 地址都能记住)
  2. 广播帧和组播帧向所有的端口进行转发
  3. 泛洪:收到未知单播帧(MAC 地址未知)或者广播帧
  4. 转发:收到已知的单播帧
  5. 丢弃:FCS 损坏,或者目的 MAC 不是自己

MAC 地址表的老化时间

MAC地址表项的老化时间为300秒。从一个地址记录加入地址表以后开始计时,如果在老化时间内各端口未收到源地址为该 MAC 地址的帧,那么这些地址将从动态转发地址表(由源 MAC 地址、目的 MAC 地址和它们相对应的交换机的端口号)中被删除。静态MAC地址表不受地址老化时间影响。

现在我们知道,交换机工作在数据链路层,下面来了解下链路层具体的一些内容。

TCP/IP - 数据链路层

先说一下链路层的实际传输介质,Ethernet 的实际转发速度取决于实际的传输媒介,一般为:

  • 双绞线
  • 光纤
  • 同轴电缆(早期,淘汰)

双绞线(应用较多)

双绞的目的,为了屏蔽内部的电磁干扰。一般来说,双绞线的速度可以从 10 Mbps 到 40 Gbps.,传输的最大距离是 100 m.

双绞线的线序:

T568B 线序为: 橙白,橙,绿白,蓝,蓝白,绿,粽白,粽

T568A 线序:绿白,绿,橙白,蓝,蓝白,橙,棕白、棕

其实 1,2 发生数据,3,6 接受数据

不同线序的目的:

同种设备连接需要用交叉线(568a,568b),不同种设备需要用直通线(568b)。原因在于同种设备使用直通线会冲突,因为 1,2 都是发送,3,6是接受。

交叉线:交换机和交换机,路由器和路由器,路由器和PC,PC 和 PC

直通线:交换机和路由器,交换机和 PC,交换机和服务器。

光纤

多模光纤(ST),波长 850nm,1310nm,光由二级发光产生,传输距离短,造价低。

单模光纤(SC,LC,FC),波长 1310nm,1550 nm,由激光产生,距离长,造价高。

数据链路层-数据帧的结构

Ethernet 2 的数据帧格式:

大小为 6 字节,48 bits. 前 24 bits 由 OUI 组成,后 24 bits 由 vendor assigned 组成。

由于在早期,Ethernet 2 为私有协议,IEEE 为了通用化,发明了一个新的标准,将数据链路层拆分为两层 MAC 子层和 LLC 子层,对应协议如下:

数据链路层 LLC 子层 - 与网络层打交道 802.2 802.2 802.2 802.2
数据链路层 MAC 子层 - 与物理层打交道 802.3 802.1 802.5 FDDI
物理层 双绞线 无线 令牌 光纤

下面以 802.3 为例,说一下和 Ethernet2 的对比:

Ethernet2 长度:14Byte, 6Byte 源 MAC,6Byte 目的MAC,2Byte 类型

IEEE802.3 MAC 子层:长度:14Byte, 6Byte 源 MAC,6Byte 目的MAC,2Byte 长度

LLC 子层:

  • SAP:长度:3Byte,1Byte DSAP(Ox42),1Byte DSAP(Ox42), 1Byte CON(Ox03) -- 上层是 STP 协议

    • 将 802.3 和802.2 合起来实现 Ethernet2 的功能,公有协议
  • SNAP: 长度: 8Byte, 1Byte DSAP(Ox42),1Byte DSAP(Ox42), 1Byte CON(Ox03), 3Byte (Ox00000c), 2Byte PID -- 上层是 CDP
    • 为了实现私有协议

一般来说,协议的传输用 802.3,用户流量用的是 Ethernet2.

CCNA-Part3 - 数据链路层的趣事 - 走进交换机的更多相关文章

  1. 交换机与VLAN

    1. 交换机 1.1 定义 交换机是一种基于MAC地址识别,能完成封装转发数据帧功能的网络设备. HUB集线器是一种物理层共享设备,HUB本身不能识别MAC 地址和IP地址,当同一局域网内的A主机给B ...

  2. OSI七层模型详解 TCP/IP协议

      总结 OSI中的层 功能 TCP/IP协议族 应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 等等 表示层 数据格式化,代码转 ...

  3. python网络编程-OSI七层模型详解

    OSI 七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯,因此其最主要的功能就是帮助不同类型的主机实现数据传输 . 完成中继功能的节点通常称为中继系统.在OSI七层模型中,处于 ...

  4. OSI7层模型详解

    首先我们借用百度百科上的图片来基本了解一下OSI7层模型的名称以及结构.下面我将从最底层一层一层往上介绍. 物理层:基于Bit传输,是属于物理信道,最基本的机械.电子.定时接口通信信道. 数据链路层: ...

  5. OSI七层模型

    OSI 七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯,因此其最主要的功能就是帮助不同类型的主机实现数据传输 . 完成中继功能的节点通常称为中继系统.在OSI七层模型中,处于 ...

  6. Openstack入坑指南

    什么是云计算 概念 云计算是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息,可以按需求提供给计算机和其他设备.用户不需要了解”云“中的基础设施细节,不必具有相应的专业知识,也无需直接控 ...

  7. [转载]OSI七层模型详解

    OSI 七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯,因此其最主要的功能就是帮助不同类型的主机实现数据传输 . 完成中继功能的节点通常称为中继系统.在OSI七层模型中,处于 ...

  8. 高可用与负载均衡(7)之聊聊Lvs-DR+Keepalived的解决方案

    今天直接开门见山了,直接说配置吧.首先介绍下我这的环境 如有问题,请联系我18500777133@sina.cn IP 安装软件 192.168.1.7 lvs1+keepalived master角 ...

  9. TCP与UDP协议

    传输控制协议(Transmission Control Protocol, TCP)和用户数据报协议(User Datagram Protocol, UDP)是典型的传输层协议. 传输层协议基于网络层 ...

随机推荐

  1. Python环境搭建—安利Python小白的Python和Pycharm安装详细教程

    人生苦短,我用Python.众所周知,Python目前越来越火,学习Python的小伙伴也越来越多.最近看到群里的小伙伴经常碰到不会安装Python或者不知道去哪下载Python安装包等系列问题,为了 ...

  2. Java实现 LeetCode 789 逃脱阻碍者(曼哈顿距离)

    789. 逃脱阻碍者 你在进行一个简化版的吃豆人游戏.你从 (0, 0) 点开始出发,你的目的地是 (target[0], target[1]) .地图上有一些阻碍者,第 i 个阻碍者从 (ghost ...

  3. Java实现 蓝桥杯 基础练习 杨辉三角形

    基础练习 杨辉三角形 时间限制:1.0s 内存限制:256.0MB 提交此题 锦囊1 锦囊2 问题描述 杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数. 它的一个重要性质 ...

  4. Java实现 蓝桥杯 算法提高 上帝造题五分钟

    算法提高 上帝造题五分钟 时间限制:1.0s 内存限制:256.0MB 问题描述 第一分钟,上帝说:要有题.于是就有了L,Y,M,C 第二分钟,LYC说:要有向量.于是就有了长度为n写满随机整数的向量 ...

  5. java实现和为定值的两个数

    1 问题描述 输入一个整数数组和一个整数,在数组中查找两个数,满足他们的和正好是输入的那个整数.如果有多对数的和等于输入的整数,输出任意一对即可.例如,如果输入数组[1,2,4,5,7,11,15]和 ...

  6. java实现第六届蓝桥杯灾后重建

    灾后重建 题目描述 Pear市一共有N(<=50000)个居民点,居民点之间有M(<=200000)条双向道路相连.这些居民点两两之间都可以通过双向道路到达.这种情况一直持续到最近,一次严 ...

  7. org.openqa.selenium.WebDriverException: It is impossible to create a new session because 'createSession' which takes HttpClient, InputStream and long was not found or it is not accessible 异常

    检查项目配置的jdk版本是否过低,修改一下配置就解决了.如果是jdk版本过低的就升级一下jdk.

  8. Redis学习笔记(十六) Sentinel(哨兵)(下)

    消失了一段时间,我又回来啦.不多说,继续把哨兵看完. 检测主观下线状态 默认情况下,Sentinel会以每秒一次的频率向所有与他创建了命令连接的实例(主从服务器以及其他Sentinel)发送PING命 ...

  9. Spire.Cloud.SDK for Java 合并、拆分Excel单元格

    Spire.Cloud.SDK for Java 是Spire.Cloud云产品系列中,用于处理Word.Excel.PowerPoint以及PDF文档的JAR文件,可执行文档编辑.转换.保存等操作. ...

  10. Autoware 进行 Robosense-16 线雷达与 ZED 双目相机联合标定!

    项目要标定雷达和相机,这里记录下我标定过程,用的速腾 Robosense - 16 线雷达和 ZED 双目相机. 一.编译安装 Autoware-1.10.0 我没有安装最新版本的 Autoware, ...