[toc]

ARP协议:通过IP地址知晓MAC地址

要先再网络层知道对方的MAC地址,再传到数据链路层中进行封装——ARP协议(Address Resolution Protocol),通过IP地址知晓MAC地址

ARP目的

ARP(Address Resolution Protocol)地址解析协议,实现通过对方的IP地址(域名)寻找对方的MAC地址的功能

ARP协议工作流程

  1. 主机A首先查看自己的ARP表,如果找到了的主机B的MAC地址,则直接对IP数据包进行帧封装,发送给主机B;
  2. 如果主机A在ARP表中找不到主机B的MAC地址,则将缓存该数据报文,然后以广播方式发送一个ARP请求报文。ARP请求报文中带上源IP地址和源MAC地址(主机A);目标IP地址和目标MAC地址为主机B的IP地址和全0的MAC地址。进行广播,该网段上的所有主机都可以接收到该请求,但只有被请求的主机(即主机)会对该请求进行处理。
  3. 主机B比较自己的IP地址和ARP请求报文中的目标IP地址,当两者相同时进行如下处理:将 ARP请求报文中的发送端(即主机A)的IP地址和MAC地址存入自己的ARP表中。之后以单播方式发送ARP响应报文给主机A,其中包含了自己的MAC地址。
  4. 主机A收到ARP响应报文后,将主机B的MAC地址加入到自己的ARP表中以用于后续报文的转发,同时将IP数据包进行封装后发送出去。

Wireshark抓包理解ARP协议

  1. arp -a命令查看ARP表:静态即是可以自行配置的,动态的就是通过ARP协议学习到的

  2. arp -d命令清空ARP表

  3. 此时再访问1中出现的动态类型的IP地址,就要先通过ARP协议先进行学习,此过程可以通过Wireshark抓取ARP数据包

    1. 本地物理地址和IP地址

    2. ping 某个ARP表中没有的IP地址 ping 192.168.1.103,由于此时ARP表没有此条目,则会通过ARP协议广播ARP请求报文来获取此IP的MAC地址

    3. Wireshark进行抓包

      1. Wireshark选择当前上网的无线网卡进行抓包并过滤arp报文

      2. 查看ARP请求数据包

      3. 查看ARP响应数据包

  4. 通过以上的一来一回,本机就得到了目的IP的MAC地址,重新查看ARP表可以看到新增ARP条目

IP协议

IP协议和IP地址

IP(Internet Protocol)

定义

分配给用户上网使用网际协议的设备的数字标签

分类

IPv4:32位二进制数——→点分十进制表示

IPv6:128位二进制数——→十六进制表示 弥补IPv4地址池不够

IP地址组成

IP地址由32bit组成,分成4段用” . ”分隔,如:192.168.0.1

结构:IP地址 = 网络号(网络号标识的是一个子网) + 主机号(主机号标识的是子网中的某台主机)

确定网络号和主机号

确定主机是否在同一个子网?只有在同一个子网(在一个网段)的主机才能直接通信,网络号相同 == 同一个子网

仅仅通过192.168.0.1无法判断哪些位是网络号,哪些位是主机号——子网掩码

子网掩码

作用

用来标识子网,必须跟IP地址一起存在

组成

子网掩码跟P地址一样,也是由连续的1和0组成,连续的1表示网络地址,连 续的表示主机地址。只有网络地址相同的主机在同一个子网,才能直接通信。

表示方式

255.255.255.0,或者/24.

二进制:11111111.11111111.11111111.00000000

前面的3个255标识网络号,后面的0标识主机号

示例

示例1

192.168.1.87 255.255.255.0 —机器1

192.168.2.77 255.255.255.0 —机器2

以上二者能否直接通信?也即是否是在同一个子网?

答:不能。二者不再同一个子网下(分别是192.168.1.0和192.168.2.0),无法进行直接通信

示例2

192.168.1.87 255.255.0.0 —机器1

192.168.2.77 255.255.0.0 —机器2

以上二者能否直接通信?也即是否是在同一个子网?

答:可以。二者在同一个子网下(俊文192.168.0.0),可以进行直接通信

路由协议及路由表

当参与通信的两台主机不再同一个子网下,要进行通信时需要通过路由协议选择最优路径——→路由协议实现不同网段(子网)之间的通信以及通信时的路径选择

路由协议

定义

路由协议(Routing Protocol)指定数据包转送方式的网上协议(是一组协议并非一个)

分类

静态路由:

对于目的地址,直接指定下一跳的地址;

默认路由(主机—默认网关)是一种特殊的静态路由,对于不同子网的所有通过本机(192168.1.106)的内容都要通过192.168.1.1这个默认网关,由它决定向哪里去转发

动态路由

(RIP ,OSPF,BGP)配置之后,动态学习路由条目——路由表

路由表

查看路由表 route print

站内搜索

没有找到内容!