[计算机网络]四、交换机的工作原理与配置(数据链路层、以太网交换机、交换机的基本配置)

  • Post author:
  • Post category:其他



目录


1、数据链路层


1.1、数据链路层的功能


1.2、以太网工作在数据链路层


1.2.1、以太网的发展


1.2.2、以太网MAC地


1.2.3、网卡、路由器和交换机厂商有哪些


1.2.4、以太网帧的格式(这个需要记下来)⭐⭐⭐


2、以太网交换机


2.1、交换机设备简介


2.2、交换机的工作原理⭐⭐⭐


2.2.1、arp广播


2.2.2、 网络的通信方式


2.3、 [工作原理总结]


2.4、练习(查看局域网中正在使用的IP地址,并调出它对应的MAC地址)


2.5、以太网接口的双工模式


2.5.1、单工


2.5.2、半双工


2.5.3、全双工


2.5.4、以太网接口速率


3、交换机的基本配置


3.1、交换机的基本命令以及配置


3.2、图形操作查看MAC地址表


3.2.1、各种设备中查看MAC地址的命令


3.3、各种设备中存在的表


3.3.1、傻瓜交换机和智能(网管)交换机


3.4、调整接口的模式



内容总览

1、数据链路层


数据链路层

位于网络层与物理层之间

1.1、数据链路层的功能

1.2、以太网工作在数据链路层

以太网(Ethernet):就是我们经常讲的局域网

以太坊(Ethereum):虚拟货币

1.2.1、以太网的发展

现在是万兆以太网了

1.2.2、以太网MAC地

MAC地址:只要是支持tcp/ip协议的设备硬件都会有。只在数据链路层使用。是由造网卡的厂商固定到设备的芯片里去的,一般不会去修改的。也叫做物理地址或着硬件地址

图片中是48个二进制转化为12个16进制的,因为48个二进制太长太难记了,换成16进制好看一些。

1.2.3、网卡、路由器和交换机厂商有哪些

网卡:Realtek(瑞昱)、intel、qualcomm(高通)

路由器和交换机:vmare、tplink、华为、锐捷、cisco(思科)

1.2.4、以太网帧的格式(这个需要记下来)⭐⭐⭐

源MAC地址(6个字节)和目的MAC地址 (6个字节)

mtu:最大传输单元,一数据帧里的数据,最大只能够1500个字节(如下图linux所示,且一般都是如此)⭐⭐⭐

帧的大小范围:18+46~1500=64~1518  ⭐⭐⭐

2、以太网交换机

🦖[交换机的种类]🦖

有2层交换机,工作在数据链路层的;有3层交换机,既可以工作在数据链路层,又可以工作在网络层。有路由功能,例子:如无线路由器。

无线路由器的功能:可以接有线也可以接无线,还有dns、dhcp、vpn、限制速度等功能

2.1、交换机设备简介

2.2、交换机的工作原理⭐⭐⭐


(1)初始状态(未插电状态)

因为MAC地址表是存储在内存中,所以每次重新开机的时候,它里边什么数据都没有。


(2)MAC地址学习

MAC地址表格式:mac地址(源) + 接口  + vlan(默认所有的接口都是vlan1,所以现在可以把这个弱化,后边会讲到)

MAC地址表作用:记录哪台电脑




交换机

的哪个接口,会读取帧里的

源MAC地址

写到

MAC地址表

里。


另外

,MAC地址表是

存放在内存中

的,停电里面的内容会丢失的


(3)广播未知数据帧

广播转发数据给每一个接口


(4)接收方回应

B电脑封装好数据帧,通过交换机,传送给A电脑

(5)交换机实现单播通信

经过学习交换机知道了所有电脑的MAC地址,然后就能进行精准的传送数据信息。这就叫单播。

2.2.1、arp广播

🦖[

提出问题

]🦖

A电脑在封装的时候, 它是怎么知道B电脑的MAC?

数据(

上层数据

)都是从应用层经过一层一层的封装的,到达数据链路层之前,会经过网络层的封装,给数据加上IP头部变成数据包。在这个IP头部中含有源地址IP和目标地址IP。有了目标的IP地址,但是没有目标的MAC地址,所以会发送

arp

广播。

arp(Address Resolution Protocol),地址解析协议:将IP地址解析到对应的MAC地址

MAC地址的广播地址:FF:FF:FF:FF:FF:FF


🚀[arp广播的原理]🚀

使用MAC地址的广播地址。在封装成帧的时候,目的MAC地址全填FF:FF:FF:FF:FF,这样所有的机器都会收到这个数据帧,接收之后进行解封。解封之后,若是该电脑收到的IP地址与自己的IP地址一致,那么就会进行回复,那么该交换机就会得到目标的MAC地址。那么这两台机器之后的传输都是使用单播的方式传输了。

🚀[arp缓存表]🚀

使用”arp -a”命令可以调用这个表出来。每台电脑、手机和交换机都有这个表

2.2.2、 网络的通信方式


  • 单播

    (unicast:point to point),点到点的通信方式;

  • 多播

    (multicast:point tO multipoint),点到多点的通信方式;也叫做组播
  • 汇播(concast:multipoint to point),多点到一点的通信方式;
  • 群播(multipoint tO multipoint),多点到多点的通信方式,多播的一种推广;

  • 广播

    (broadcast:point to all point),点到所有节点的通信方式。

2.3、🍎 [工作原理总结]🍎



第一步


:学习

学习帧里的源MAC地址,然后写入到MAC地址表里



第二步


:转发


第一种情况

,不知道目的MAC地址,会广播。然后给每一个接口都复制一份数据,转发过去。这样可以保证其他的所有机器都可以接收到一份相同的数据


第二种情况

,知道目的MAC地址,会单播。


只有两种情况会进行广播

。第一种是到MAC地址为FF:FF:FF:FF:FF:FF时,会被认为是一个广播帧,进行广播;另一种是MAC地址表中没有目的的MAC地址时,会进行广播。

🦖[

广播风暴

]🦖

因为有MAC地址为FF:FF:FF:FF:FF:FF这种情况,所以会形成一种叫广播风暴情况。若出现了这种情况,会消耗交换机的cpu、内存和带宽,导致网络速度越来越慢,最后导致网络不可用。

产生的原因:

交换机和交换机之间形成了环路

。所以一定要避免环路的形成。

避免环路的方法:1、构建网络的时候,人为的注意不要形成。2、靠交换机里启用树协议(spanning tree),会自动阻塞一条链路,防止出现环路。即物理上是连接的是环路,但是实际上是有一条断开的。

🍓[搞个例题]🍓

哪个口子接的是交换机?(3号口)

⭐[地址的使用范围]⭐

MAC地址只是在局域网里使用;广域网使用IP地址

比如,我们使用”ping 114.114.114.114″成功之后,就代表我们与这个IP地址通信了,但是我们在arp缓存表中却看不到这个IP地址和MAC地址

2.4、练习(查看局域网中正在使用的IP地址,并调出它对应的MAC地址)

🦖[写代码中包含知识点]🦖


(1)ping

-c,发包的次数

-w,deadline:多少时间内必须完成

-W,timeout:超过多少时间就停止

-i,interval:包和包之间的时间间隔

[root@fttsaxf menu]# time ping 192.168.29.128 -c 4
PING 192.168.29.128 (192.168.29.128) 56(84) bytes of data.
64 bytes from 192.168.29.128: icmp_seq=1 ttl=64 time=0.040 ms
64 bytes from 192.168.29.128: icmp_seq=2 ttl=64 time=0.120 ms
64 bytes from 192.168.29.128: icmp_seq=3 ttl=64 time=0.067 ms
64 bytes from 192.168.29.128: icmp_seq=4 ttl=64 time=0.058 ms

--- 192.168.29.128 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3039ms
rtt min/avg/max/mdev = 0.040/0.071/0.120/0.030 ms

real	0m3.043s
user	0m0.001s
sys	0m0.003s
[root@fttsaxf menu]# time ping 192.168.29.128 -c 4 -i 0.1
PING 192.168.29.128 (192.168.29.128) 56(84) bytes of data.
64 bytes from 192.168.29.128: icmp_seq=1 ttl=64 time=0.063 ms
64 bytes from 192.168.29.128: icmp_seq=2 ttl=64 time=0.093 ms
64 bytes from 192.168.29.128: icmp_seq=3 ttl=64 time=0.088 ms
64 bytes from 192.168.29.128: icmp_seq=4 ttl=64 time=0.083 ms

--- 192.168.29.128 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 322ms
rtt min/avg/max/mdev = 0.063/0.081/0.093/0.015 ms

real	0m0.327s
user	0m0.000s
sys	0m0.005s


# 这个192.168.29.129这个IP地址现在ping不通
[root@fttsaxf menu]# time ping 192.168.29.129 -c 1
PING 192.168.29.129 (192.168.29.129) 56(84) bytes of data.
From 192.168.29.128 icmp_seq=1 Destination Host Unreachable

--- 192.168.29.129 ping statistics ---
1 packets transmitted, 0 received, +1 errors, 100% packet loss, time 0ms


real	0m3.033s
user	0m0.000s
sys	0m0.005s
[root@fttsaxf menu]# time ping 192.168.29.129 -c 1 -w 1
PING 192.168.29.129 (192.168.29.129) 56(84) bytes of data.

--- 192.168.29.129 ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms


real	0m1.018s
user	0m0.001s
sys	0m0.003s


(2)并行计算和串行计算

并行计算:同时启用多个进程在后台进行计算。

格式

:(命令)&,把这个命令产生子进程放在后台进行运行。

串行计算:排成一队,一个一个的执行,有先后顺序,必须前边的执行完成后,才去执行后边的

(3)arp -a或者arp -n

调出arp缓存表。

另外一个命令”acping + IP地址”更加好

[root@fttsaxf menu]# arping 192.168.29.2
ARPING 192.168.29.2 from 192.168.29.128 ens33
Unicast reply from 192.168.29.2 [00:50:56:EE:E5:6D]  0.700ms
Unicast reply from 192.168.29.2 [00:50:56:EE:E5:6D]  0.830ms
Unicast reply from 192.168.29.2 [00:50:56:EE:E5:6D]  2.548ms
Unicast reply from 192.168.29.2 [00:50:56:EE:E5:6D]  1.593ms
^CSent 4 probes (1 broadcast(s))
Received 4 response(s)

# 发送了4个探测包(probes),响应了4个。Unicast,单播;broadcast,广播

🍎[代码测试]🍎

#!/bin/bash

# 清空日志文件
>used_ip.log
>unused_ip.log
>ip_mac.log

# ip地址和mac获取工具
for i in {1..254}
do
	
	# ping是测试网络是否畅通的工具
	( if ping -c 1 -w 1  192.168.28.$i  &>/dev/null;then
		echo "192.168.28.$i" >>used_ip.log
	else
		echo "19.168.28.$i" >>unused_ip.log
	fi )&
	# 这个脚本是并行计算
done
wait
# 统计没有使用的ip地址的个数
num=$(cat unused_ip.log |wc -l)
echo "total ip:$num"  >>unused_ip.log

# 得到所有在使用的IP对应的mac
arp -a |grep -v "incomplete"|awk '{print $2,$4}'|tr -d "()" >ip_mac.log

在这个代码中,串行计算出来得到的结果是有顺序的,但是并行计算出来得到的结果是无序的。跟cpu调度和阻塞时间(ping不通的时候会阻塞等待)有关系

io密集型:对文件或者网络上的数据。例如,读取文件或者取网上下载图片

计算密集型:i++

python的多进程: 适合计算密集型

多线程:适合io密集型;线程在进程里边;python有全局解析锁(GIL)导致并发性能不是很好。如,在网络上爬东西,在网络上耽误的时间和在cpu里排队的时间就差不多抵消了,所以使用多线程就好一些。

python进程里起了10个线程,要抢到这把锁(GIL)才能够取核心里运行,但是每一个进程和一个cpu绑定,所以线程抢到锁之后,这个进程就会在cpu中进行,但是运行的只是这个抢到这把锁的线程,其他的线程还要排队等待,等着那个线程使用完这个锁。如果没有这个锁,多线程也可以同时到别的核心中,就不需要等待了。

🍎[

注意

]🍎⭐⭐⭐

因为有全局解析锁的原因,只有python中多进程比多线程快。其他的软件都是多线程比多进程快!!所以全局解析锁导致了python的并发性能比较差

2.5、以太网接口的双工模式

2.5.1、单工

两个数据站之间只能沿着单一方向传输数据

2.5.2、半双工

两个数据站之间可以双向数据传输,但是不能够同时进行

2.5.3、全双工

两个数据站之间可以双向且同时进行数据传输;默认情况下配置的都是全双工。

🍎[ethtool ens33]🍎

linux里边怎么看自己的接口,使用”ethtool ens33″命令

[root@fttsaxf ~]# ethtool ens33
Settings for ens33:
	Supported ports: [ TP ]
	Supported link modes:   10baseT/Half 10baseT/Full   # 这是支持的链路模式
	                        100baseT/Half 100baseT/Full 
	                        1000baseT/Full 
	Supported pause frame use: No
	Supports auto-negotiation: Yes
	Supported FEC modes: Not reported
	Advertised link modes:  10baseT/Half 10baseT/Full 
	                        100baseT/Half 100baseT/Full 
	                        1000baseT/Full 
	Advertised pause frame use: No
	Advertised auto-negotiation: Yes
	Advertised FEC modes: Not reported
	Speed: 1000Mb/s
	Duplex: Full  # 表示链路是全双工的
	Port: Twisted Pair
	PHYAD: 0
	Transceiver: internal
	Auto-negotiation: on
	MDI-X: off (auto)
	Supports Wake-on: d
	Wake-on: d
	Current message level: 0x00000007 (7)
			       drv probe link
	Link detected: yes

2.5.4、以太网接口速率

(1)接口连接时进行协商;(2)协商失败则无法正常通信

3、交换机的基本配置

3.1、交换机的基本命令以及配置

因为思科的命令和华为的命令不一样,所以我们可以学习怎么图形化操作,因为原理都是一样的的,只是不同系统的命令不一样。这个软件是”Cisco Packet Tracer”

🍓[操作过程]🍓

拖动(按住鼠标左键就行)这个交换机到界面来

拖动三个pc端

选直通线,让pc端和交换机连接

用直通线,点一下pc0



点击之后,会出现一条线,然后点击交换机



然后按上面的步骤继续操作,把三台pc端都连接交换机。这里会显示pc端连上的交换机的接口

[若是没有显示可以这样操作。点击”Options”,进入界面之后,点击”Preferences”,然后选择”Customize User Experience”框的”Port Labels Always Shown”模块,就能够显示端口的标签]

我们都连上之后,会发现这个灯由暗黄色变成了绿色,表示

交换机和pc端协商

的过程

🍓[给pc0配上IP地址]🍓

点pc0,会出现这个界面

然后选择”IP” 进行配置IP地址,点击”Static”,然后输入IP地址

然后依次对pc1和pc2进行配置;对界面进行标注(只是为了让人看的明白)

🍎[对pc0进行网络测试]🍎

点击pc0,会进入到这个界面,然后点击”Command Prompt”

然后执行以下命令

这说明这三个pc都能互相ping

3.2、图形操作查看MAC地址表

点击

交换机

,到”CLI选项”,在这命令框下输入”end”,等运行完毕之后,再输入”show mac-address-table”,然后就能看到MAC地址表

3.2.1、各种设备中查看MAC地址的命令


windows

:ipconfig /all


linux

:ip add

3.3、各种设备中存在的表

电脑中没有MAC地址表,有arp缓存表和路由表;交换机里有MAC地址表,若是交换机中配置了IP地址也是有arp缓存表和路由表,没有配置就没有。

3.3.1、傻瓜交换机和智能(网管)交换机

交换机有两种:傻瓜交换机和智能交换机

傻瓜交换机:不能配置的,只有MAC地址表

智能交换机:可以配置的,可以配置IP地址,肯定就有arp缓存表、路由表和MAC地址表。例如,三层交换机,无线路由器和好的交换机。

3.4、调整接口的模式

点击图中的交换机,到”Config”模块,进行如下操作

由绿色变成红色



版权声明:本文为m0_48638643原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。