那么查看一下本地缓存:
windows: arp -alinux: arp -nvmac: arp -nla
文章插图
这里说明一下交换机的作用哈 。
交换机的主要功能包括:学习功能、转发过滤和消除回路 。学习功能:以太网交换机知道连接到每个端口的设备的MAC地址 , 将该地址与相应的端口进行映射,并存储在交换机缓存的MAC地址表中 。转发过滤:当数据帧的目的地址在MAC地址表中被映射时,它被转发到与目的节点相连的端口,而不是所有端口 。消除环路:当交换机包括一个冗余环路时,以太网交换机通过生成树协议避免环路 , 同时允许备份路径 。
现在一般是路由器了,路由器包含了交换机的功能,如果交换机1是路由器的话,那么直接这个路由器也是有arp的缓存的 , 如果有对应ip的mac地址直接发给了a了 。那么来看一下arp的报文格式 。
arp 报文格式:
文章插图
硬件类型: 如1 表示以太网协议类型,如0*0800 表示ipv4硬件地址长度,如6协议地址长度: 如4表示ipv4操作码:1 表示请求,2表示应答发送方硬件地址发送方协议地址目标硬件地址目标协议地址
这里抓个包看下哈:
文章插图
看下请求的哈:
文章插图
这里opcode 为1,那么就是请求的了 。
如果protocol size是4,protocol type 是0x0800,那么就是ipv4了 。
然后请求的地址是192.168.0.100 。
然后随便找一个响应的:
文章插图
然后有一个非常关键的问题得说明一下,那就是arp协议是存在局域网中 , 而不是广域网 。
1、arp是地址解析协议,根据IP地址获取物理地址的一个TCP与IP协议 。2、arp协议工作的解析范围只限于本地网络也就是局域网之中,arp协议工作的范围是不能用于广域网的 。
所以不要想通过arp找到百度的mac地址 。
怎么说呢? 如果是广域网的话 , 你的包首先发送给了网关,网关会修改你包中的mac地址 。
抓个百度的包看下:
文章插图
看到了吧目标的mac地址是你的网关地址 。
然后看下百度给你的,到你手里的包是怎么样的?
文章插图
这个发送给你的mac地址是网关 。
那么有ip解析成mac,自然就有mac解析成ip了 , 这个就是rarp 。
这个怎么说呢?就是如果你电脑启动的时候是没有分配ip的,那么你就得问?。业膍ac地址是这个,那么我的ip地址是怎么样的呢?
文章插图
协议如下:
文章插图
硬件类型: 如1 表示以太网协议类型,如0*0800 表示ipv4硬件地址长度,如6协议地址长度: 如4表示ipv4操作码:3 表示请求,4表示应答发送方硬件地址发送方协议地址目标硬件地址目标协议地址
然后介绍一个arp攻击,这个攻击很简单 。
比如 , a b c 机器的mac地址分别是aa,bb,cc
当a要发信息给b192.168.0.2的时候,那么c 回答 192.168.0.2 的mac地址是cc 。
同样c要发消息给192.168.0.3 的时候,c也回答a的地址是cc 。那么a b 直接的通信都到了c 。
结先到这里,后续继续补充ip相关协议 。
推荐阅读
- OpenFeign
- 中 学习ASP.NET Core Blazor编程系列十——路由
- 抢鲜体验 JetBrains新产品Aqua——自动化测试开发工具
- 3 onps栈使用说明——tcp、udp通讯测试
- Docker | 专栏文章整理🎉🎉
- JUC学习笔记——共享模型之管程
- AGC007C Pushing Balls —— 期望的神题
- 2 onps栈使用说明——ping、域名解析等网络工具测试
- 常用Python库整理
- Java8新特性—四大内置函数式接口