一、数据链路层
1.数据链路层概述
- Data Link Layer,属于TCP/IP协议栈的第二层,传输单元为帧
2.帧结构
1)帧的构成
-
帧头、上三层数据、帧尾
-
2层帧头和帧尾之间的对于链路层来说叫上三层数据,上三层数据的重要性远高于帧头帧尾----因为如果传输距离很远过程复杂,帧头帧尾在传输过程中是要发生变化的,但是上三层数据是一定不能变的,其实对于接收方上三层数据才是有价值的。所以我们又称帧头帧尾为运载工具,上三层数据为乘客
举例说明:比如现在一台交换机连接一台PC1,这个交换机支持无线wifi传输,另一台PC2用wifi连接到交换机。现在PC1要发信息给PC2,PC1将上三层数据传到有线网卡(数据链路层),经过有线网卡使用802.3格式的帧头帧尾运载上三层数据通过有线传给交换机,交换机属于二层设备,根据帧头帧尾中的信息转发,发现PC2使用无线连接,所以需要将帧头帧尾值使用802.11协议重新封装一下(但注意交换机没有重新生成新的帧头帧尾的能力),再将帧发通过空气传给PC2。
2)帧格式
- 帧头帧尾有两种协议802.3和802.11:有线网卡封装的帧头帧尾格式为802.3,只能在网线中跑;而由无线网卡封装的帧头帧尾使用802.11格式,可以在空气中无线传输。所以制造网卡要么遵循802.11标准,要么遵循802.3标准
3)帧头
-
由目标MAC、源MAC、类型字段,组成帧头(只有帧头中目标的信息在源的信息前)
-
只有已知目标MAC和源MAC之后,才能封装成帧。所以在封装帧头帧尾前需要想办法知道目标MAC(后面学习)
-
类型字段:只有两种0x0800和0x0806
-
因为三层只有两个协议处理的数据能传向二层。一个是IP协议,一个是ARP协议。ICMP协议是无法直接传到二层的。所以如果类型字段值为0x0800则表示三层数据是通过IP协议传到二层的;如果是值为0x0806则表示三层通过ARP协议传到二层。那么当接收方进行解封装时,二层会根据帧头中的类型值将数据解封装送到三层选择相应的协议IP或ARP来继续处理数据
-
总结:类型字段的作用是识别上层协议,为上层提供服务
-
4)帧的最大长度
-
一个帧的最大长度为(14 + 1500 + 4 = 1518字节)
- 帧头的长度(6 + 6 + 2 = 14字节)
- MAC地址长度为48位,即6字节
- 类型字段长度为2字节
- 帧头帧尾能运载的最大数据长度(MTU值)
- 中国的局域网中最大传输单元MTU值为1500字节(差不多1KB多一点),即帧头帧尾之间的数组最大长度为1500字节(国外可能不同),所以如果去国外,需要将1500这个值改为当地规定的值,不然交换机可能拒收
- 帧尾的长度(4字节)
- 帧头的长度(6 + 6 + 2 = 14字节)
二、交换机工作原理
1.详细过程
通过例子说明:以下是同一个局域网,有两台全新的交换机sw1、2,现在电脑AA的5000端口向电脑DD的80端口发送一条信息hello
![image-20211029141803263](https://edimadezhou-typora.oss-cn-chengdu.aliyuncs.com/image-20211029141803263.png)
-
AA的hello数据从应用层传到传输层,将源端口5000和目标端口80等信息封装;在发送到网络层将源IP10.1.1.1和目标IP10.1.1.4等信息封装;再发到数据链路层,假设已经知道目标主机的MAC地址,将目标MAC地址DD和源MACAA等信息封装帧头再加上帧尾,就构成了一个完整的帧(最后用比特流在网线中传播,物理层暂且不考虑)。
-
将帧从交换机sw1的F0/1端口流入,流入时交换机为二层设备,可以得到帧头帧尾的信息,根据源MAC地址和帧流入端口形成MAC地址表。则交换机上的MAC地址表形成一条记录:AA F0/1。然后再继续分析帧头帧尾数据,得知数据要传给DD,但是自己的MAC地址表上没有记录DD对应的自己的端口号(即不知道发给DD应该将数据运载到自己的哪个端口),所以需要在局域网内广播,将此帧向自己的各个端口转发
注意一个问题:后面学习会学到一种广播是由三层ARP协议生成一个广播帧,去得到对方的MAC地址;但是这里交换机是二层设备,而且无法自己生成新的帧头和帧尾,所以交换机广播的帧就是用AA发来的完整的帧向各个端口转发
-
从F0/2转发出去给电脑BB,BB收到后会检查帧头中目标MACDD是否是自己,不是就丢弃
-
帧从F0/2也转发出去一份,从F0/2端口进入交换机sw2,sw2先根据帧头中的源MAC地址和数据流入的端口形成MAC地址表:AA F0/2(MAC地址表不代表AA主机就一定连接在自己的F0/2端口,有时只表示一个转发的方向),然后sw2查看自己的MAC地址表也没有记录转发给DD主机需要从哪个端口转发出去,所以只能将帧进行广播,从各个端口转发一遍
-
从F0/9端口出去,CC接收到解析目标MAC不是自己,丢弃
-
从F0/1端口转发,电脑DD接收到后查看目MAC是自己,于是将帧解封装送往三层,查看目标IP是自己,再解封装送到四层,得到应该发往80端口,再解封装送到第五层,得到hello信息
- DD现在给AA回信息,从F0/1端口进入sw2,sw2先根据源MAC和流入端口形成在MAC表中形成一条记录:DD F0/1,然后sw1再查看目标MAC地址,刚好MAC地址表中已经记录了AA与应该转发的端口号,所以直接将帧从自己的F0/2端口转发出去
- 从F0/3端口流入交换机sw1,交换机先根据源MAC和流入端口形成MAC地址表的一条记录:DD F/3,在查看帧的目标MAC地址为AA,MAC地址表中有AA记录,所以将帧直接从F0/1转发出去,到达AA
2.工作原理总结
- 收到一个数据帧后:首先自动根据帧中源MAC地址和帧流入端口号来形成或更新MAC地址表
- 然后检查帧中的目标MAC地址,并匹配MAC地址表:
- 如表中有匹配项,则单播转发
- 如表中无匹配项,则除接收端口外广播转发
- MAC地址表的老化时间默认是300秒(可修改)
- 如果收到帧发现有相同的MAC地址但是端口好与MAC表中冲突会立即更新
三、交换机端口相关概念
1.端口命名规则
-
Ethernet属于十兆接口–10Mb/s,简称E(一般不会使用)
-
FastEthernet属于百兆接口–100Mb/s,简称FE
-
GigabitEthernet属于千兆接口–1Gb/s,简称GE
-
TenGigabitEthernet属于万兆接口–10000Mb/s,简称Te
-
第一个数字表示模块号,第二个数字表示端口号:比如
F0/1
表示0模块号上端口号为1的百兆端口
2.端口速率自适应
- 接口速率自适应:1000/100/10M自适应。表示:速率工作模式可以为10,100,1000MB/s任何一种状态
3.端口状态
-
端口状态:up/down
-
端口处于down状态原因
-
人工down掉
-
端口速率不匹配
-
设备的双工模式不匹配(双工duplex)
双工模式分为:单工、半双工、全双工
单工表示连接双发只能由一方发送消息,一方接收消息;半双工为双方既可以发消息也可以收消息,但是只能你发时我听、我发时你听;全双工为双发既可以发消息也可以收消息,且发和收可以同时进行。比如网卡就是全双工模式–可以同时下载和上传;交换机也是如此有支持半双工的(老版),有支持全双工的,还有自适应的(但要选择自动不能选择手动),双发的双工模式要匹配才可以
-
-
up状态表示开启且可以正常出入数据
-
-
一般来说,二层设备的端口默认情况下是开启的,三层设备的端口默认是禁用的
-
端口列表说明:可以看到端口显示两个状态(一个为status,一个为protocal)
-
status为物理状态----表示人工的开启和关闭,如果显示
administratively down
表示人为将此端口关闭了;如果显示down
表示人为开启了,但是此时没有设备连接此端口或对方未开启端口;如果显示up
表示此端口人为开启了,并且连接了设备(但是不一定能与对方连通) -
protocal为协商状态----表示连接双方是否满足连通的要求,如果显示
down
表示可能因为速率不匹配或者人工关闭或者双工模式不匹配导致down;如果显示up
表示双方满足条件,端口可以与另一个连接设备正常通信 -
两个都显示
up
才表示能正常通信 -
只有四种情况:
- up up #表示人工开启端口并且有设备连接此端口,且与对方协商成功可以通信
- up down #表示人工开启端口并且有设备连接此端口,但不满足通信的条件未协商成功
- down down #表示人工开启端口但没有设备连接此端口或连接了但对方未开启端口号
- administratively down down #表示人工关闭端口
-
四、配置交换机
1.如何进入配置界面
1)现实中配置全新交换机
-
购买了交换机设备,厂家一般会配一根console线在产品包装中。第一次配置企业级网络设备一般需要用到console线。使用console线一段连接到交换机,一段连接到工程师笔记本的com口,如果没有就买一根com转usb的线,将console先连接到转化线,再连接到电脑的usb接口上
-
然后在工程师笔记本上下载
超级终端
等软件用来通过在自己的电脑上配置新买的网络设备,选择连接到com口,网络设备的命令配置窗口就显示在自己的PC上,就可以对网络设备进行相关的配置了
2)用思科模拟器来模拟配置过程
- 单击设备–选择CLI(命令行窗口)–进入到交换机的命令配置窗口
2.交换机的基本五大工作模式
- 用户模式,特权模式、全局配置模式、接口配置模式、console口/线/控制台模式。交换机处在不同的工作模式下可以进行不同的相关权限的操作和配置
-
用户模式(switch>):可以查看交换机的基本简单信息,且不能做任何修改配置!
-
特权模式(switch#):可以查看所有配置,且不能修改配置,但可以做测试、保存、初始化等操作
在用户模式下输入:enable ———> 进入配置模式 switch>enable switch# //已经进入特权模式
-
全局配置模式(switch(config)#):默认不能查看配置!但可以修改配置,且全局生效(比如要对所有端口全生效;改交换机的名字就可以进入此模式敲命令)!
在特权模式下输入:configure terminal ---> 进入全局配置模式 switch#configure terminal switch(config)# //已经进入全局配置模式
-
接口配置模式(switch(config-if)#):默认不能查看配置!但可以修改配置,且对该端口生效!
在接口配置模式输入:interface f0/1(要配置的接口名) ---> 进入接口配置模式 switch(config)#interface f0/1 switch(config-if)# //已经进入接口配置模式
-
console口/线/控制台模式:默认不能查看配置!可以修改配置,且对console口生效!(比如给交换机设置密码,如果别人也想连接console来该配置,必须要输入密码;或者开启远程控制端口号等)
在特权模式下输入:line console 0 ---> 进入控制台模式 switch(config)#line console 0 switch(config-line)# //已经进入console口模式
注意:只能一级一级的进入工作模式,从用户模式进入特权模式,从特权模式再进入到全局配置模式、接口配置模式、console口模式。不能跳级进入!
3.远程管理交换机
1)同网段管理
-
我们都知道交换机是二层设备,那么它的接口即为二层接口,二层接口是无法配置IP的,只有三层接口才能配置IP,而远程管理:telnet和ssh需要输入管理的设备的IP,那么怎么实现远程管理交换机呢?
-
我们可以这样理解:交换机生产出来,为了方便远程管理,会设置一个虚拟接口,可以给这个虚拟接口配IP,这个IP叫这台交换机的管理IP地址。(设置IP不是为了做路由器那些三层设备的功能,只是为了远程管理)
可以理解为交换机内部有一台虚拟PC,PC三层以上设备可以配置IP,虚拟PC有一个虚拟接口,即可以给这个虚拟接口配置IP,最终远程管理这台交换机就使用这个虚拟接口的管理IP地址即可
-
总结:进入虚拟接口配置模式,配置管理IP,开启虚拟接口;再开启相应的远程管理端口23/22,再配置一些必须的设置,即可远程管理(命令详见day12、5 - Cisco网络设备配置命令)
2)跨网段管理
-
如果管理人员的PC与要管理的交换机不在同一网段(如下图),现在PC1想要管理交换机2,给PC1配IP和指网关,那么PC1就可以向20网段设备发包,但是20网段的交换机2如果没有只配置了管理IP(实际上是给虚拟端口配IP),但是没有给交换机2配置网关,那么交换机2即使收到了10网段的信息,也无法向10网段的发包。所以还需要给交换机2配置网关
-
总结:进入虚拟接口配置模式,配置管理IP,开启虚拟接口;再进入全局配置模式,配置网关;再开启相应的远程管理端口,配置一些需要配置的,即可跨网段远程管理