数据链路层 帧结构_osi数据封装及解封装的过程

数据链路层 帧结构_osi数据封装及解封装的过程数据链路层(2层DataLinkLayer)25/100_链路层fcs

数据来源

1、数据链路层属于2层

2、传输单元:帧

        帧格式:

                802.3    有线网卡

                802.11  无线网卡,无线路由器都支持802.11

802开头的都是国际标准,是由IEEE国际学术组织制定的标准

3、帧结构的构成:MAC子层(帧头)+上三层数据+FCS(帧尾)

数据帧的形成:5层应用层传出数据如:“Hello”,4层传输层的防火墙封装TCP/UDP头,3层网络层的路由器封装IP包头,2层数据链路层的网卡封装帧头和帧尾 

数据链路层 帧结构_osi数据封装及解封装的过程

MAC子层(帧头)构成:目标MAC地址(6字节),源MAC地址(6字节),类型(2字节),总的大小=6+6+2 = 14 字节

FCS(帧尾):提供了一种错误检测机制,用来验证帧在传输过程中的完整性(4个字节)。

一个帧的容量是有限的:MTU值(最大传输单元),国内是1500字节,再加帧头+帧尾18个字节 =1518 字节就是帧的最大长度

MAC地址6字节如何算出来的?网卡的MAC地址就是16进制,由12位组成如:A3-CE-C9-11-AA-39

占用内容大小计算方法:一个16进制占4bit(比特),8bit = 1Byte(字节),而MAC地址的是由12位组成,所以大小为:12 * 4  = 48 bit,转为字节单位: 48 / 8 = 6 个字节

类型:

  • 0x0800:IP协议
  • 0x0806:ARP协议
  • 0x 代表16进制

类型字段的作用:识别上层协议,为上层提供服务 

ARP协议的主要功能:是将IP地址解析为MAC地址

ip协议的主要作用:能使连接到网上的所有计算机网络实现相互通信的一套规则,规定了计算机在因特网上进行通信时应当遵守的规则。任何厂家生产的计算机系统,只要遵守IP协议就可以与因特网互连互通

图示:

数据链路层 帧结构_osi数据封装及解封装的过程

4、 工作在数据链路层的设备:交换机/网卡

        交换机的作用:交换机是根据MAC地址转发数据

        网卡的作用:生成帧(就是加帧同和帧尾)

5、交换机的工作原理:

设:当同一局域网下的两台PC进行通信

        信息发送到目标的过程:

        1)如:MAC地址为AA的PC向DD发送“Hello a”,会从应用层一路往下直到数据链路层,数据链路层的网卡会给数据包(报文)封装帧头和帧尾,形成数据帧,然后把数据继续传。

MAC地址表,记录物理端口和MAC地址的对应关系

        2)当数据帧到达交换机的时候:交换机不需要把帧解封装只读取数据帧中的帧头帧尾,解析完成后就能知道源MAC地址(发送消息PC的MAC)、目标MAC地址(接收消息的PC)和发消息的PC所在的端口(物理端口,如F0/1),然后交换机就完成机生第一次学习学习源MAC地址(一台新的交换机)生成MAC地址表,如果表已经存在那就将记录添加进去(记录物理端口和源MAC地址的对应关系如:AA (源MAC) F0/1(所在的端口))然后交换机根据帧的信息(目标MAC地址DD)转发。

        3)转发过程:交换机会先从MAC地址表中寻找,如没找到交换机会把帧除了帧进来的端口都进行广播,连接了这台交换机的设备都会收到这条广播,如:MAC地址为BB的PC也收到了,这时BB的网卡就会判断这个的帧的帧头里面的目标MAC地址是给我的?不是,就不会继续解封装不继续往上送,干掉。直到DD这台PC收到就会进行解封装操作,得到AA发来的数据“Hello a”,这一过程中可能在当前交换机(1)的端口都找不到DD,这时就会找和当前交换机连接的交换机(2),交换机(2)也会继续交换机(1)的过程,生成MAC地址表,进行广播寻找,直到找到DD这台PC进行解封装操作,得到AA发来的数据“Hello a”。这里需要注意的是:交换机(2)生成的MAC地址表的端口号是他自己的端口号,也就是交换机1进入交换机2的端口号,如:交换机1是从交换机2的F0/2端口进来的那地址表就是:AA (源MAC) F0/2(所在的端口)。

在整个过程中交换机就干了两件事请:

  1. 这个帧来源那台PC的MAC地址,我需不需要学习生成MAC地址表
  2. 这个帧要去哪,我的MAC地址表有没有记录了,没有广播寻找

可参考下图:

数据链路层 帧结构_osi数据封装及解封装的过程

目标pc收到信息后会进行响应回包过程如下:

        1)这时是开始的目标MAC地址为DD的PC给AA回包, 所以源MAC地址变成了DD目标MAC地址成了AA,DD向AA回包过程中交换机(2)也会进行学习,对源MAC地址进行学习,因为之前交换机已经创建MAC地址表,所以现在是向MAC地址表添加,记录物理端口和源MAC地址的对应关系参照下图就是添加记录:DD(源MAC) F0/1(所在的端口)

数据链路层 帧结构_osi数据封装及解封装的过程

         2)向MAC地址表添加完记录后,交换机就会安照DD提交的数据帧里面帧头包含的目标MAC地址(AA)进行转发数据,交换机就会找MAC地址为AA的PC在哪里?交换机转发数据的唯一依据就是自己的MAC地址表恰好有记录目标地址AA与物理端口(F0/2)的对应关系,所以这里不需要广播寻找,直接单播数据帧发送到AA对应的F0/2物理端口,这是数据帧就来到了交换机(1),交换机(1)就会查看帧头内的源MAC地址,你是谁发送过来的呀?目标PC的MAC地址是谁呀?这时交换机(1)就会发现,自己的MAC地址表没有关于源MAC地址为DD的记录,所以交换机(1)再次学习源MAC地址DD然后添加进自己的地址表内:DD(源MAC) F0/3(所在的端口)

数据链路层 帧结构_osi数据封装及解封装的过程

        3)到这里可能会疑惑,DD对应数据帧不是从交换机(2)的F0/1端口的PC发出来的?为啥记录在交换机(1)的MAC地址表里面就是 F0/3?因为交换机只管数据从自己的那个端口传进来的,不会管,最开始是从那个交换机端口发出的,(简单理解就是:交换机的MAC地址表,只会记录自己的端口,而且只会学习记录源MAC地址,不学习目标地址)

        4)交换机(1)学习完之后,就会找你的数据帧内对应的目标MAC地址我的表里面有没有啊?恰好有记录目标地址AA与物理端口(F0/1)的对应关系,然后交换机(1)会把数据帧,通过单播的形式转发给AA也就是IP地址为10.1.1.1的PC,这时该PC就能都到数据帧了

数据链路层 帧结构_osi数据封装及解封装的过程

如果已经某台PC对应的MAC地址已存在,交换机的MAC地址表内记录了,那么把这根网线拔掉对应的记录会默认在300s后消失,如果在这300s内把网线插到另一台PC上,那对应的表记录会立即更新,如:A对应的物理端口是F0/1,把B对应的物理端口是F0/2,拔出换给A,最后A的记录是F0/2(就是同一个MAC地址出现了不同的端口,表中该记录会立即更新到目前的状态)

注意:这里讲的过程在现实中交换机都是自动完成的,而且都是电脑连接交换机之后开机就自动完成了, 因为电脑一开机就会发送DHCP Discovery(发现)广播包(目的:寻求服务器),这时就会被交换机的MAC地址表记录下来,之后就很少会使用广播寻找,都使用单播,除非,目标是表里没有的,交换机不知道,才会再次广播。

工作原理总结:

收到一个数据帧后:

1)首先学习帧中的源MAC地址来形成MAC地址表:

  • 如MAC地址表已经存在,那就查询该源MAC地址在表示是否已经记录,如MAC地址表中已经存在有关与该源MAC地址的记录,且完全相同,那不作操作,如不相同,更新表中该条记录
  • 如MAC地址表不存在,学习帧中的源MAC地址来形成MAC地址表

2)然后检查帧中的目标MAC地址,并匹配MAC地址表:

  • 如表中有匹配项,则单播转发
  • 如表中无匹配项,则除接受端口外广播转发帧

3)MAC地址表的老化时间默认是300s(可修改)

6、 交换机的端口:

  • E 10Mb
  • F 100Mb
  • G 1000Mb
  • Te 10000Mb

F0/1

  • 0 模块号
  • 1 接口号

接口速率自适应:1000/100/10M自适应

速率工作模式可以为10,100,1000任何一种状态

端口状态:up/down(开启/关闭)

接口/端口状态含义:

物理层状态(1层) 数据链路层状态(2层) 含义
up      up 成功:物理层的网线插上了,数据链路层的交换机之类的也匹配成功
down down 没插网线
up down 物理层的网线插上了,数据链路层没匹配成功
administratively down down 物理层的接口被人工关闭了(命令:shutdown 关闭 no shutdown 开启)

down的3中可能:

  • 人工down掉
  • 速率不匹配
  • 双工模式不匹配

双工模式:单工、半双工、全双工

        单工:单向通信(如BB机、收音机)

        半双工:虽然能双向通信,但不能同时(如:你说我听或你说我听,但是不能同时说话)

        全双工:能同时双向通信(如:现在手机打电话)

接口的默认状态: 

  • 2层接口(如:交换机)默认已开启ou
  • 3层接口(如:路由器)默认都是管理down(人工shutdown)

7、交换机的5大基本工作模式及命令(思科)

        第一次配置网络设备,需要使用console线,一头连接需要配置网络设备,一头连接PC

        在PC需要使用“超级终端”或其他软件

1)用户模式:Switch>   

        可以查看交换机的基本简单,且不能做任何修改配置!

2)特权模式:Switch#

        进入特权模式命令:

                Switch>enable # 缩写:en

        可以查看所有配置,不能修改配置,但可以做测试、保存、初始化等操作

数据链路层 帧结构_osi数据封装及解封装的过程

3)全局配置模式:Switch(config)#

        进入命令:

                Switch#configure terminal  # 缩写:conf t

默认不能查看配置,但可以修改配置,且全局生效

数据链路层 帧结构_osi数据封装及解封装的过程

 4)接口配置模式:Switch(config-if)#

        命令:

                Switch(config)#interface 接口名(如:fa0/1) # 缩写:int f0/1

 默认不能查看配置,但可以修改配置,且对该接口生效

数据链路层 帧结构_osi数据封装及解封装的过程

 5)console口/线/控制台配置模式 

        进入命令:

                Switch(config)#line console 0  # 缩写:line co 0

        默认不能查看配置,但可以修改配置,且对console口生效

 数据链路层 帧结构_osi数据封装及解封装的过程

8、其他命令

        exit  # 退到上一级

        end # 直接退到特权模式

9、快捷键

        ctrl + u # 光标前面的字符全部删除

        ctrl + a # 快速定位光标到行首

        ctrl + e # 快速定位光标到行尾

10、设置交换机名

        line co 0  # 进入console 口控制模式

        hostname 名称(如:sw-gz-01-04)# 修改交换机名称)

        缩写:ho 名称

注意:要进入 console 口需要从全局配置模式下输入命令进入,要进入全局配置模式下就要从特权模式进入

11、用户模式设置密码

        line co 0  # 进入console 口控制模式

        password 密码   

        login   # 下次进入交换机的用户模式时需要登录验证

12、给特权模式设置密码

        conf t # 进入全局配置模式

        enable password 密码(明文)

        enable secret  密码 (密文:在配置文件内是以哈希值的形式保存)

13、重启交换机

        en         # 进入特权模式

        reload   # 重启交换机,会询问是否确定重新加载,会车就好,重启之后之前的配置都会消失

14、running-config  文件

        在内存中存在一个文件:running-config  里面存储了我们对交换机所有的配置

        第一次开机,系统会在内存中自动创建一个干净的 running-config 文件

15、保存配置

建议:每配置一些设置就保存一下配置

en # 进入特权模式

copy running-config  startup-config  # 把内存中的running-config文件复制到交换机的内置硬盘,并改名为startup-config

write  缩写:wr

16、交换机开机动作:

先从硬盘好查找startup-config文件是否存在

  • 如果不存在,就会在内存中创建新的running-config文件
  • 如果存在,则复制startup-config文件到内存中并改名为running-config

17、查看running-config配置文件

        en # 进入特权模式

        show running-config   简写:sh run

        show startup-config   # 查看硬盘中的startup-config配置文件

18、把交换机恢复出厂设置

        en # 进入特权模式

        erase startup-config # 重置硬盘的startup-config配置文件

19、查看MAC地址表

        en # 进入特权模式

        show mac-address-table  # 在软件上没有真实机哪么智能,MAC地址表要在软件上手动ping另一台pc才会生成

数据链路层 帧结构_osi数据封装及解封装的过程

数据链路层 帧结构_osi数据封装及解封装的过程

20、查看当前交换机接口状态列表

        en # 进入特权模式

        show ip int brief  # 缩写: sh ip int b

端口状态:up/down  down表示端口处于关闭状态,up则是打开状态

down的3中可能:

  • 人工down掉
  • 速率不匹配
  • 双工模式不匹配

数据链路层 帧结构_osi数据封装及解封装的过程

 21、人工物理down/up掉端口

        conf t # 进入全局配置模式

        int f0/1  # 进入要down掉的端口 f0/1

         shutdown # 关闭端口 

        no shutdown # 开启端口  缩写:no shut

数据链路层 帧结构_osi数据封装及解封装的过程

22、do的用法

其他模式加do空格可以强制使用特权模式下的命令

之前的使用方法例:

        1)查看running-config配置文件

                en # 进入特权模式  

                sh run  # 查看

        2)查看当前交换机接口状态列表

                en # 进入特权模式  

                sh ip int b

        3)查看MAC地址表

                en # 进入特权模式

                show mac-address-table

        4)把交换机恢复出厂设置

                en # 进入特权模式

                erase startup-config # 重置硬盘的startup-config配置文件

        5)保存配置

                en # 进入特权模式

                copy running-config  startup-config

之前都是要进入特权模式才能使用,这就显的很呆,频繁在切换模式,以后再其他模式在要使用特权命令方法:在特权模式命令前面加上do (普通模式除外,do 是无法使用tab键补全命令的 )

数据链路层 帧结构_osi数据封装及解封装的过程数据链路层 帧结构_osi数据封装及解封装的过程

 数据链路层 帧结构_osi数据封装及解封装的过程

 23、删除配置

1)在哪个模式下配置的,就在哪里删除

2)命令前加no空格

3)原命令中有参数,并且具有唯一性,删除时不需要加参数

 如:

配置交换机名:        conf t

                                hostname sw1

删除:        conf t

                   no   hostname      

        数据链路层 帧结构_osi数据封装及解封装的过程

         数据链路层 帧结构_osi数据封装及解封装的过程

         数据链路层 帧结构_osi数据封装及解封装的过程

 24、为3层端口配置IP(3层交换机/路由器)

路由器的模式和命令和交换机的差不多

        int 接口名(如:fa0/0)# 进入要配置的端口

        ip add IP地址 子网掩码 (如:ip add 10.1.1.254  255.255.255.0)

        no shut #开启端口

 当使用路由器连接交换机的时候,会发现连接提示灯是红色,那是因为路由器的端口默认是关闭状态,不同于交换机默认是开启状态

1)查看路由器的接口状态(特权模式:sh ip int b 其他模式:do sh ip int b)

数据链路层 帧结构_osi数据封装及解封装的过程

数据链路层 帧结构_osi数据封装及解封装的过程

 2)给路由器配置IP地址和子网掩码,然后开启端口

数据链路层 帧结构_osi数据封装及解封装的过程

 数据链路层 帧结构_osi数据封装及解封装的过程

 25、打开路由器的23端口,让PC可以远程控制

        1)打开路由器的23端口

                conf t         # 进入全局配置模式

                line vty 0 4   # 表示开启4台虚拟终端,最多只能4个人可以控制,取值0-15,如果只写一个0表示只有一人可以控制

数据链路层 帧结构_osi数据封装及解封装的过程

        2)开启登录验证设置远程登录密码为了安全起见,给该端口设置身份验证,以后别人要通过连接该端口远程控制路由器,就需要输入密码

                password 密码

                login          # 开启登录验证

                数据链路层 帧结构_osi数据封装及解封装的过程

        3)使用PC连接路由器进行远程管理

                连接命令:telnet 10.1.1.254(路由器的ip)

数据链路层 帧结构_osi数据封装及解封装的过程

         数据链路层 帧结构_osi数据封装及解封装的过程

        注意:如果是在远程控制模式下要进入特权模式,且路由器的特权模式没有设置密码,会报错提示“未设置密码”解决方法:设置路由器特权密码,远程连接时通过密码进入

        数据链路层 帧结构_osi数据封装及解封装的过程

         去设置路由器特权密码(如果是现实中需要拿console线插到路由器进行设置)

                conf t # 进入全局配置模式

                enable password 密码(明文)

                enable secret  密码 (密文:在配置文件内是以哈希值的形式保存)

        两种设设置密码方式选一种就行

        数据链路层 帧结构_osi数据封装及解封装的过程

         重新从PC上进入路由器的特权模式

        数据链路层 帧结构_osi数据封装及解封装的过程

        4)ssh的方式连接路由器的22端口,实现远程管理

                因为使用telnet链接23端口,不安全容易被人截获,为了安全起见不使用23端口,使用ssh连接过程都是加密的

        conf t         # 进入全局配置模式

        line vty 0 4   # 这条命令默认开启23端口

        transport input ssh # 开启指定的端口,可选参数:ssh(22)telnet (23)all(23和22)none(不开启)

        ip domain-n xx.com # 为路由器起个域名,最后的 xx.com和公司的域名没关系,随便写就行

        crypto key generate rsa  # 生成秘钥,执行这条命令的前提是有自定义域名和路由器名

数据链路层 帧结构_osi数据封装及解封装的过程

        5)最后使用pc利用ssh方式连接路由器的22端口 

                ssh -l 路由器名称 路由器ip # 如:ssh -l R1 10.1.1.254

                如何现实中的路由器使用上面的命令连接不上,可以试试:ssh R1@10.1.1.254

         数据链路层 帧结构_osi数据封装及解封装的过程

        6)完善登录流程,让PC需要输入用户名 + 密码进行登录

                上面的登录时的身份验证,还是有缺点,用户名都是使用交换机名的,没有和个人绑定的

                conf t         # 进入全局配置模式

                line vty 0 4   # 开启远程连接

                no login      # 关闭之前的身份验证

                login local   这条命令需要执行   line vty命令成功才能配置login 开启身份验证,local 使用本地的数据库进行身份验证

                username 用户名 password 密码  # 往数据库添加信息 

数据链路层 帧结构_osi数据封装及解封装的过程

        可以使用 do sh run 查看本地运行配置文件,看命令有没有配置成功

        以后远程登录管理路由器,无论是使用telnet 或者 ssh 登录都需要用户名和密码,并且每配置一条命令,日志文件都有记录是谁配置的

        数据链路层 帧结构_osi数据封装及解封装的过程

26、为交换机配置管理IP

        conf t                 # 进入全局配置模式

        int  vlan 1          # 进入虚拟接口1

        ip add ip地址 子网掩码

        no shut             # 开启接口

        数据链路层 帧结构_osi数据封装及解封装的过程

         可以查看交换机的接口状态验证一下:do sh ip int b

数据链路层 帧结构_osi数据封装及解封装的过程

27、为交换机开启23端口,使PC可以远程连接

         交换机配置了IP后交换机一样可以像上面写的路由器一样可以被远程管理,命令一样,先用PC使用ping  交换机IP  # 看两个能否连通 

        conf t         # 进入全局配置模式

        line vty 0 4   # 开启远程连接

        no login      # 关闭之前的身份验证

        login local   这条命令需要执行   line vty命令成功才能配置login 开启身份验证,local 使用本地的数据库进行身份验证

        username 用户名 password 密码  # 往数据库添加信息 

        连接命令:telnet 10.1.1.253(交换机的ip)

                        之后就是输入登录交换机的登录密码 

28、为交换机配置默认网关

        目的:可被跨网段管理

        如:10.1.1.0的网段的PC,要管理处于20.1.1.0网段的交换机

         conf t         # 进入全局配置模式

        ip default-gateway  20.1.1.254(交换机所在的路由器IP地址) 

数据链路层 帧结构_osi数据封装及解封装的过程

 29、关闭自动解析功能

        目的:有时输错命令,要等很久才能在输入,应该一直在解析还解析不了

        conf t

        no ip domain-lookup

今天的文章数据链路层 帧结构_osi数据封装及解封装的过程分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/82568.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注