- List item
数据链路层
一、基础认知
1、传输单元:帧
2、帧结构:
3、帧格式:
网卡类型 | 帧格式 |
---|---|
有线网卡 | 802.3 |
无线网卡 | 802.11 |
网卡为帧头封装“目标MAC地址(对方)、源MAC地(自己)、类型”
(1)类型字段:
Mac子层协议是封装帧头和帧尾,IP和ARP协议可以流到网络层,形成Mac子层协议
a、类型字段的协议:
识别上层的协议: \color{red}{识别上层的协议:} 识别上层的协议:
IP协议:0x0800指定IP协议传送通道
ARP协议:0x0806指定ARP协议传送通道
b、类型字段的作用
识别上层协议,(在解封装时)为上层提供服务(区分走的协议看帧头)
0x0800 | 0x0806 | 0x代表16进制 |
---|---|---|
上层为IP协议 | 上层为ARP协议 |
(2)、发送接收过程
接收端的网卡是看(目标MAC)地址是不是自己,是谁给我的(源MAC),向上一层提供服务的方向则靠(类型)去判读
(3)、帧头的字节=14
14个Byte=目标Mac(6)+源Mac(6)+类型(2)
a、目标Mac地址
查看Mac地址:ipconfig /all
(物理地址:像身份证一样)
b、Mac长度
二进制(bit):48位(0和1)=4x12
字节:6字节=48/8
c、源MAC地址
6字节
d、类型
2个字节(0x0800和0x0806)
(4)帧尾:校验(4字节)
(5)网卡字节:
18字节=帧头(14)+帧尾(4)
(6)MTU值:1500字节
4、帧长度
1518字节=1500+18
5、帧头用法
目标Mac地址
源Mac地址
说明:交换机和帧头都是二层,交换机只读这个数据
6、工作在数据链路层的设备
交换机和网卡
二、交换机的工作原理
(一)交换机初始化动态绑定MAC地址(表)
交换机是通过学习帧中的 源 M a c 地址 \color{red}{源Mac地址} 源Mac地址 来完成MAc地址表
MAC地址关系表=源Mac地址+帧的接口
交换机发送帧数据过程(广播)
1、交换机初始状态下无法找到目标pc的目标Mac地址(无存档),却可以动态读取到来源MAC地址AA(来源于哪台电脑);
源Mac地址 | 接口 |
---|---|
AA | F0/1 |
2、AA数据进入交换机(sw1)后,会向交换机(sw1)内所有接入端口的PC发出广播(此刻无指定接口)
出现广播:接入交换机的 P C 会同时接收到同一份帧数据,交换机此时没有详细的 M a c 地址表,复杂时会导致局域网瘫痪 \color{red}{出现广播:接入交换机的PC会同时接收到同一份帧数据,交换机此时没有详细的Mac地址表,复杂时会导致局域网瘫痪} 出现广播:接入交换机的PC会同时接收到同一份帧数据,交换机此时没有详细的Mac地址表,复杂时会导致局域网瘫痪
3、广播的同时其他PC的网卡(二层)会收到发送的Mac地址AA,判断不是给自己BB就立即丢掉
4、帧数据同时传到交换机(sw2):进入F0/2接口:就会形成属于交换机(sw2)的专属Mac地址表(存档),以后在数据传输时就以单播形式通信,不会形成广播
源Mac地址 | 接口 |
---|---|
AA | F0/2 |
5、帧数据被交换机(sw2)广播到cc10.3(扔掉了)和DD10.4(接收到)的PC上,10.4开始解封装,10.4就收到了数据请求
交换机总结:
1、学习源Mac地址和广播
2、 根据目标Mac地址来决定如何转发
图
交换机回包过程(单播转发)
1、源Mac地址DD,与sw2的route接口 进行动态绑定,形成新增MAC数据
源Mac地址 | 接口 |
---|---|
AA | F0/2 |
DD | F0/1 |
2、指定交换机已有Mac地址中的F0/2进行单播回包,转发出来,其他PC就没有收到垃圾数据(取决于交换机中Mac地址表的详细程度)
3、sw1接收了来自F0/2口的单播数据,生成新的MAC表
源Mac地址 | 接口 |
---|---|
AA | F0/1 |
DD | F0/3 |
4、AA接收到DD单播转发的数据
交换机学习到所有MAC地址表数据,需要像上述过程所演示的,才足够完整,方便以后单播数据
sw1Mac地址表
源Mac地址 | 接口 |
---|---|
AA | F0/1 |
DD | F0/3 |
BB | F0/2 |
CC | F0/3 |
sw2Mac地址表
源Mac地址 | 接口 |
---|---|
AA | F0/1 |
DD | F0/3 |
BB | F0/2 |
CC | F0/9 |
一台交换机的Mac地址表中所出现的端口全部是自己的
MAC地址表是会动态生成的,所以会消失
pc拔网线在300s后,交换机的MAC地址表中这条记录就会消失;
而PC接入交换机的另一端拔掉的电脑,后接口就马上更新为F0/2了
老化时间
同一Mac地址不同端口就立即更新;
连接的电脑不在发信息,Mac地址表中的条目就会立即消失
sw1Mac地址表
源Mac地址 | 接口 |
---|---|
AA | F0/2 |
DD | F0/3 |
BB | F0/2 |
CC | F0/3 |
交换机一开始就会出现大量广播,后期就不在出现大量广播了
(二)交换机的工作原理总结(二层)
工作原理(过程或方式)
收到数据帧后
1、学习帧中的源Mac地址来形成Mac地址表
(表中存在就不用再学——存在时判断相同的话就不用,不同接口就要更新)
2、检查帧中的目标Mac地址,并匹配Mac地址表:
如:表中有默认Mac地址匹配项,则单播转发;
如:表中无默认Mac地址匹配项,则除接受端口外广播转发
3、Mac地址表的老化时间默认是300s(可以修改)
交换机端口
项目 | Value |
---|---|
E | 10Mb |
F | 100Mb |
G | 1000Mb |
Te | 10000Mb |
F0/1 | 0为模块号 | 1为接口 |
---|
1、接口速率自适应:1000/100/10M自适应
2、速率工作模式是可以随交换机的端口接受状态进行相匹配10,100,1000,自适应失败时就无法通信,出现down关闭状态
3、端口状态:up/down
down有3中可能:
1)人工down掉:手工禁用
2)速率不匹配
3)双工模式不匹配(双工duplex)
(任意一个交换机端口(厂家手册的命令)、路由器端口、网卡都有以下三中状态)
单向通信:
①单工(淘汰)(类似交通):bb机,广播;收音机
双向通信:
②半双工(慢):不可以同时:对讲机
③全双工:手机,电话
二、交换机的基本工作模式及命令
(一)网络设备和软件
第一次配置网络设备(交换机、防火墙、路由器),要使用console线,PC上需要使用“超级终端”或其他软件
(二)打开命令提示符窗口(CLI)
工作模式:
Switch
是交换机的主机名
1、switch>
用户模式:
可以查看交换机的基本简单(曾经的无关紧要)信息,且不可(无权限)做任何修改配置!(可看不可进入)
命令一:enable
特权
Switch>enable
Switch# //进入特权模式
2、Switch#
特权模式:
可以查看所有(隐私)配置且不能修改配置,但可以做测试(ping),保存,初始化等操作
命令二:configure terminal
配置终端
Switch#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
//进入配置命令行(全局配置)
Switch(config)#
3、Switch(config)#
全局配置模式:
默认不可查看配置,可以修改配置,且全局生效!(对整个交换机生效)
例如:可在全局模式下配置交换机的所有端口(回车生效)
或对交换机Switch的重命名
4、Switch(config-if)#
接口配置模式:对某个接口生效(进入某个房间)
默认不可查看配置,可以修改配置,且只对该接口生效!
Switch(config)#interface f0/1
Switch(config-if)# //表示进入接口配置模式:对f0/1这个接口生效
//if是interface的缩写
进入某个接口+接口编号
命令三:interface
接口(接口+编号)
一定要从全局Switch(config)#
进入某个Switch(config-if)#
接口模式
报错信息:端口、接口类型错误 \color{red}{报错信息:端口、接口类型错误} 报错信息:端口、接口类型错误
Switch(config)#interface f0/28
% Invalid(不可用的) input detected at '^' marker.
//报错信息
可以进接口再退出:
Switch(config)#interface f0/1
Switch(config-if)#
5、Switch(config-line)#
进入console口/线/控制台配置模式
默认不可查看配置,可以修改配置,且只对该console口生效!
命令四:管理端口 line console 0
0表示第一个console口
Switch(config)#line console 0
Switch(config-line)#
命令五:exit
表示退出一级(只能一级一级的退出)
end
表示一次性退出:一键会到解放前(特权模式:Switch#
)
Switch#
%SYS-5-CONFIG_I: Configured from console by console
//屏幕上出现此消息可以回车继续
6、?
的用法,如en?
整体演示:
用户
Switch>en
//en是enable的缩写
特权
Switch#conf t
//conf t是configure terminal缩写
Enter configuration commands, one per line. End with CNTL/Z.
接口
Switch(config)#int f0/1
//int f0/1是interface f0/1缩写
Switch(config-if)#exit
线
Switch(config)##line co 0
Switch(config-line)#exit
(三)、支持名令缩写(以Cisco为例)
//询问命令
Switch>e?
enable exit
Switch>en
Switch#
Switch#con?
configure connect
Switch#conf?
configure
Switch#conf t?
terminal
Switch#conf ter
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)#ex
Switch#conf t
Switch(config)#in?
interface
Switch(config)#int f0/1
//等于全称:Switch(config)#int(erface) fastethernet 0/1
Switch(config-if)#line co 0 //可以直接跳转接口
Switch(config-line)#
7、历史命令可以敲↑键
8、tab键
:(补全键)命令及路径的补全技巧
(四)修改命令:
命令六:hostname sw1
修改主机(设备)名,以便指定位置的管理
全局配置模式下
Switch(config)#hostname sw1
sw1(config)#
//立即生效
如工作环境位置下:
sw1(config)#ho(stname) sw-sh-02-12
sw-sh-02-12(config)#
//例子:
sw-sh-02-12(config)#ho sw1
sw1(config)#
工作环境下的配置流程:接口可以直接切换
con口
控制台管理,配交换机,改命令
(1)笔记本+con线
(第一次拿路由器去机房配用con线,给路由器或交换机开启223端口号
(Telnet协议)以后来控制交换机)
(2)连上交换机con口(加密)
(3)打开超级终端进行配置
Switch#conf t
Enter configuration commands, one per line. End with CNTL/Z.
sw1(config)#line co 0
sw1(config-line)#pass
sw1(config-line)#password asdasd
//设置复杂性密码
sw1(config-line)#login
//登录验证
sw1(config-line)#end
sw1#
%SYS-5-CONFIG_I: Configured from console by console
(4)现实中拔出con线,再插上去
接上方的代码:
sw1#exit
//模拟了刚刚插con线的状态:
User Access Verification
Password: (设置的密码)
Switch> //进去啦
(*)特殊情况:解决方法就是:等或换一台交换机进行设置
Switch>as
//交换机没有的命令,会出现的
Translating "as"...domain server (255.255.255.255)//正在翻译,四个255是全局广播地址
命令七:hostname 设备名
在全局模式下修改主机名
conf t
hostname 设备名
命令八:password 密码
设置用户密码
line co 0 //配置控制台端口
password 密码
login
exit
(5)快捷键
快熟删除一行:Ctrl+u
光标快速切换到行首:Ctrl+A
光标快速切换到行尾:Ctrl+e
删除内容:Ctrl+N
三、交换机的命令
(一)reload
重新加载,是重启的意思
Switch>
Switch>en
//改主机设备名为gogo:
Switch#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)#ho gogo
//设置用户密码:
gogo(config)#line co 0
gogo(config-line)#pas
gogo(config-line)#password gogogo
gogo(config-line)#login
gogo(config-line)#exit
//重启:
gogo#
%SYS-5-CONFIG_I: Configured from console by console