在这篇文章中,会先介绍局域网及其的组件,通过交换机延伸到 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. HashiCorp遭禁不必过于担忧,博云云管产品自主可控

    近日,国外知名 DevOps 服务商 HashiCorp 官网相关条款页面更新,声明中表示禁止在中国使用其 Vault 企业版产品,此事件引发国内开源界广泛关注. HashiCorp解释是由于中国的出 ...

  2. 我终于看懂了HBase,太不容易了...

    前言 只有光头才能变强. 文本已收录至我的GitHub精选文章,欢迎Star:https://github.com/ZhongFuCheng3y/3y 在我还不了解分布式和大数据的时候已经听说过HBa ...

  3. Java实现 LeetCode 785 判断二分图(分析题)

    785. 判断二分图 给定一个无向图graph,当这个图为二分图时返回true. 如果我们能将一个图的节点集合分割成两个独立的子集A和B,并使图中的每一条边的两个节点一个来自A集合,一个来自B集合,我 ...

  4. Java实现 LeetCode 707 设计链表(环形链表)

    707. 设计链表 设计链表的实现.您可以选择使用单链表或双链表.单链表中的节点应该具有两个属性:val 和 next.val 是当前节点的值,next 是指向下一个节点的指针/引用.如果要使用双向链 ...

  5. Java实现 蓝桥杯VIP 算法提高 3-1课后习题2

    算法提高 3-1课后习题2 时间限制:1.0s 内存限制:256.0MB 问题描述 编写一个程序,接受用户输入的10个整数,输出它们的和. 输出格式 要求用户的输出满足的格式. 例:输出1行,包含一个 ...

  6. Java实现串的简单处理

    串的处理 在实际的开发工作中,对字符串的处理是最常见的编程任务.本题目即是要求程序对用户输入的串进行处理.具体规则如下: 把每个单词的首字母变为大写. 把数字与字母之间用下划线字符(_)分开,使得更清 ...

  7. 点击 button 自动刷新页面

    问题:为什么点击 button 会刷新页面 ? 原因:你代码的写法可能如下图,把 <button> 按钮 写在 <form> </form> 标签里边啦. < ...

  8. QPS、TPS、并发用户数、吞吐量关系

    1.QPS QPS Queries Per Second  是每秒查询率 ,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准, 即每秒的响应请求数,也即 ...

  9. 除了FastJson,你也应该了解一下Jackson(二)

    概览 上一篇文章介绍了Jackson中的映射器ObjectMapper,以及如何使用它来实现Json与Java对象之间的序列化和反序列化,最后介绍了Jackson中一些序列化/反序列化的高级特性.而本 ...

  10. 一个小小的即时显示当前时间的jqurey控件

    效果: <div class="nowTime"> <span></span>年 <span></span>月 < ...