2021-5-26 NTD第二阶段第三天

回顾

OSI 模型,是一个业界的参考模型;也是一个国际标准。【7】

实际工作中,使用的是 TCP/IP 模型 【4/5】

网络环境中的任何的软件和硬件,都是基于 TCP/IP 模型开发出来的。

所以,按照相同模型制造出来的设备之间的通信过程,是这样的:
(A/B设备,A与B之间的通信)
1.A发送数据          【5层的软件,产生数据,最终沿着1层的网线 -- 封装】
2.中间网络传输数据   【通信网络,是由“通信设备”,例如交换机/路由器】
3.B接收数据          【数据从物理层接收后,转发到应用层 -- 解封装】
4.B返回数据          【精准理解“通信”的概念,指的是“双向”的。】
5.中间网络传输数据 
6.A接收数据

-物理层
-数据链路层
-网络层
-传输层
-应用层


如果我们使用的那些“基于TCP/IP模型”制造出来的设备,他们之间的数据
是不能互通的,那么问题有可能存在:(A/B)
1.A->B有问题
   *A发送不出来
   *中间的网络传输不过去
   *B接收不了
2.B->A有问题
   *B发送不出来
   *中间的网络传输不过去
   *A接收不了

1层:
  -协议,无
  -设备,网线(双绞线)
            *线序: 568a/b
            *类型:直通线,不同类型的设备之间互联使用;
                   交叉线,相同类型的设备之间互联使用;
  -数据表示:
       在第一层表示的时候,是通过“电信号”,只有两种状态:高/低电压
       体现在数据层面,就是 0 和  1 ;
       所以,在第一层线路上传输的网络信号,通常称之为 0/1比特流。
      【比特(bit)指的是网络中的信息的大小的最小单位】
  -数制以及数制转换
      *2进制
      *10进制

 

IP地址: 
   任何一个上网的设备,都必须拥有一个IP地址。
   但是IP地址的表示,是通过 点分十进制的方式。
   并且, 
   IP地址分为网络/主机位,所以就必须了解“网络掩码”
   通过网络掩码,就可以轻松的判断出:两个IP地址是不是同一个网段。 
   
   
任何两个设备之间通信的类型,都分为两种:

1.交换:同网段的设备之间的通信;
        依靠设备:交换机 
        
2.路由:不同网段设备之间的通信;
        依靠设备:路由器 

交换机: 
    主要是依靠自己的核心工作表“MAC地址表” 以及 数据帧中的 MAC 地址。
    
-工作原理: 
   1.形成MAC地址表[靠源MAC]
       *任何时候,在任何一个端口上,收到任何一个数据帧的时候,
        都会将数据帧中的“源MAC地址” 和 “数据帧的入端口” 记录下来,
        形成“MAC地址表” :
              MAC地址  --------- 端口    ------- 类型(dynamic)
   2.查找MAC地址表
       *在交换机的MAC地址表中,查找是否有与 “目标MAC地址”相同的
        MAC地址条目:
            &能查到,则从对应的端口转发出去;
            &查不到,则进行广播

注意: 
   交换机从来不会“更改”数据的MAC地址和IP地址。
   交换机是一个2层设备,它的功能,只能是查看设备的2层地址
   无法查看3层地址

LLDP:
   链路层发现协议,公有标准。 
   主要是用来查看设备之间的“连接端口”。
 -配置思路: 
     1.开启LLDP功能 
     2.查看LLDP邻居

 -除了上述的办法,我们还可以通过其他手段来判断设备之间的连接: 
     1.标签
     2.接口的描述信息
         interface gi0/0/x 
         description  TO-CEO

IP数据包格式

网络层功能

  • 定义了基于IP协议的逻辑地址
  • 连接不同媒介类型
  • 选择数据包通过网络的最佳路径

实验

2021-5-26 NTD第二阶段第三天

在GE 0/0/0和GE 0/0/1抓包

先设置IP地址和网关。在GE 0/0/0处抓包,在PC1机 ping PC2。

2021-5-26 NTD第二阶段第三天

IP头部分析:

* TTL:
    time  to  live ,存活时间。
    IP数据包在传输过程中,每经过一个路由器,TTL都会减1;
    当减为0的时候,数据包就被丢弃了。
    该参数的这个特点,可以防止IP数据包的环路。

*协议号:
     表示的是IP头部后面包含的是什么类型的数据包;
     常见的协议号:ICMP -- 1 
                              UDP  -- 17
                              TCP  -- 6

*Identification (标识符--ID):
     用于区分同一个设备发送的多个数据包;

*Source address :源IP地址
     表示的是发送数据包的设备的接口的IP地址

*Destination address :目标IP地址
     表示的是接收数据包的设备的接口的IP地址

注意:IP地址不变,MAC地址一直在变。

 ICMP协议

ICMP协议的封装

2021-5-26 NTD第二阶段第三天

2021-5-26 NTD第二阶段第三天

Ping:主要用于测试设备之间的双向连通性
  -使用的协议:ICMP 
  -工作原理: 
     1.发送ICMP 请求报文
     2.返回ICMP 响应报文 
     
经常使用的参数:{在网络设备上使用的 ping 命令} 
   ping -c ,后面跟的是发送的 ICMP 报文的数量,默认是5个
     例如:ping -c 500  192.168.1.1 ,即向 192.168.1.1 发送 500个报文
     
   ping -t ,后面跟的是“请求报文和响应报文”之间的最长等待时间;
             如果超过这个时间,还没收到“响应报文”,
             就认为 ping “是不通的”。默认是 2s 
     例如:ping -t 3  192.168.1.1,即向 192.168.1.1 发送的请求报文
             如果在 3s 内没收到响应报文,则认为不通!
    
   ping -s ,后面跟的是“每个测试数据包”的大小,默认是56字节; 
     例如:ping -s 1500 192.168.1.1,即向192.168.1.1 发送的每个 
               ping 的请求报文的大小是 1500 个字节;
             
 注意:   
   如果想要中止 ping 命令操作,可以直接使用组合键: ctrl+c 
   
在实际的工作中,我们经常需要做的是:
   -长时间的 ping 无数多个数据包,即调用 -c 参数
   -长时间的 ping 大的数据包,即调整测试数据包的大小,调用 -s 参数

实验ICMP查询报文

2021-5-26 NTD第二阶段第三天

ARP协议

2021-5-26 NTD第二阶段第三天

2021-5-26 NTD第二阶段第三天2021-5-26 NTD第二阶段第三天

2021-5-26 NTD第二阶段第三天2021-5-26 NTD第二阶段第三天

2021-5-26 NTD第二阶段第三天2021-5-26 NTD第二阶段第三天

《理解ARP的工作原理》

 

1.首先判断PC1与PC2是否属于相同网段,
   -如果是相同网段,则直接向PC2发送数据包;
   -如果是不通网段,则直接向网关发送数据包;

在该案例中,PC1的地址为 192.168.1.1/24
              我们需要访问的目标是 192.168.1.2
    所以,PC1使用自己的掩码,来判断一下出目标IP地址的网络地址是:
           192.168.1.0/24
    即,PC1认为PC2的IP地址与自己是相同网段。      
    所以,PC1直接向 PC2 发送 ping 数据 ( ping 的请求报文:request)

 

2.PC1如果想要发送 ping 的请求报文,那么数据的封装如下:
    -ICMP头部+测试数据 ,默认大小是 56字节
    -IP头部,默认是20个字节  
        *源  :192.168.1.1
        *目标:192.168.1.2
        *协议号: 1
    -2层头部
        *源MAC:PC1的网卡 
        *目标MAC: ???(???表示MAC不固定,随时在变)
        *类型:0x0800
        
    但是,在上述的封转过程中,2层头部因为缺少“目标MAC”地址,
    导致“封装失败”;
    
    所以,为了能够让 PC1 成功的发送这个 Ping 的请求报文, 
    必须想办法获得:目标IP地址 192.168.1.2 所使用的目标MAC地址。
    此时,就需要使用到“ARP”协议。
    
3.PC1直接产生并发送一个ARP 请求报文,通过广播的方式。
  数据报文格式如下:
     -ARP头部+请求数据
        *发送方的IP:PC1的IP
        *发送方的MAC:PC1的MAC
        *目标方的IP:192.168.1.2
        *目标方的MAC:?????
     -2层头部
        *源MAC:PC1的网卡 
        *目标MAC: 全F
        *类型:0x0806    
4.SW1在Gi0/0/1接口,接收到 PC1 发送的 ARP 请求报文:
    -形成MAC地址表
         *PC1的MAC ---- Gi0/0/1
    -查找MAC地址表
         *因为ARP请求报文的目标MAC地址是广播的,
          所以会将该报文,从 除了 Gi0/0/1以外的其他所有口发送出去         
5.SW1在 Gi0/0/2接口上发送出去,被 PC2 接收,对数据进行解封装,
  然后进行逐层分析:
    -分析2层头部:
       *因为目标MAC地址是“广播”,所以PC2可以接收;然后继续扔给上层处理
       *因为“类型”字段是 0x0806,所以我们得知:后面的数据是 ARP 协议的
    -分析3层头部:
       *该报文是一个 ARP 的请求报文 ;
       *包含了发送方的IP和MAC地址
       *包含了“目标方”的IP地址,并且这个地址,正好是和自己的IP地址相同
        所以,PC2进行以下2个动作:
           #1.在本地首先记录下发送方的IP和发送方的MAC地址,
              形成 ARP 表 ,所以在PC2本地的ARP表中,有以下的条目:
                 192.168.1.1  --- PC1的MAC地址
                 
                 查看PC2的ARP表的命令: 
                    arp -a  // 显示 ARP 表
                 
           #2.PC2向PC1返回一个 ARP 应答报文(reply),以单播的方式发送
               -ARP头部+应答报文 
                        *发送方的IP:PC2的IP
                        *发送方的MAC:PC2的MAC
                        *目标方的IP:192.168.1.1
                        *目标方的MAC:PC1的MAC地址 
               -2层头部 
                    *源MAC  : PC2的网卡 
                    *目标MAC: PC1的网卡
                    *类型:0x0806                     
              
6.SW1在Gi0/0/2接口,接收到该报文,然后: 
      *形成MAC地址表
          PC2的MAC ---- Gi0/0/2
      *查找MAC地址表 
          在表中查找 PC1 的MAC 所对应的转发条目, 
          因为之前PC1发送报文的时候,SW 已经形成了MAC地址表,
          所以该数据帧,直接从 Gi0/0/1 发送出去
7.PC1收到 ARP 应答报文之后,进行解封装: 
    -分析2层头部:
       *因为目标MAC地址是PC1的MAC,所以PC1接收;然后继续扔给上层处理
       *因为“类型”字段是 0x0806,所以我们得知:后面的数据是 ARP 协议的
    -分析3层头部:
       *该报文是一个 ARP 的应答报文 ;
        所以就直接使用报文中的“发送方IP和发送方MAC”形成ARP表:
        
                 192.168.1.2  --- PC2的MAC地址
                 
                 查看PC1的ARP表的命令: 
                    arp -a  // 显示 ARP 表      
    
8.既然通过上面的ARP,PC1已经获得了 PC2 对应的MAC地址地址
  所以,直接放在2层头部的“目标MAC地址”字段,将 Ping 的请求报文 
  发送出去。 

9.PC2收到请求报文后,直接返回一个Ping 响应报文; 
  此时 PC1 和 PC2 互通。   

 

上一篇:IP网络层介绍和网络协议


下一篇:图解ARP协议(六)RARP与IARP:被遗忘的兄弟协议