爱收集资源网

解决IP机器MAC地址问题

网络 2023-06-25 05:02

你们好,我是IT售前工程师Bernie。

我们晓得,在网路通讯中主机和主机通讯的数据包须要根据OSI模型从上到下进行数据封装,当数据封装完整后,再向外发出。所以在局域网的通讯中,除了须要源目IP地址的封装,也须要源目MAC的封装。

假如一台主机在数据帧封装前不晓得某个目的ip机器的mac地址如何办呢?这时侯就须要通过ARP合同来得知目的主机的MAC地址,完成数据封装。

哪些是ARP

ARP合同的全称是AddressResolutionProtocol,地址解析合同。说直白一点:ARP合同可以拿来按照ip地址找寻mac地址的合同。

ARP合同的工作原理

举个简单的事例,在同一个局域网内有4台主机通过交换机联接。这么,当pc1想要领到ip=192.168.1.4对应的mac地址时。它将进行如下的操作

第1步

它会查询自己的ARP合同表,瞧瞧有没有这个IP绑定的mac地址。我们可以通过cmd下输入arp-a指令查询ip与mac地址的对应关系表。倘若能查询到,则领到这个mac地址进行以太网合同的封装即可。

假如拿不到,就要通过arp广播的方式去寻问同一个网关下的所有主机。

第2步

pc1这台机器开始发送ARP广播,广播信息上面封装了ip地址和mac地址。这儿ip地址为pc4的地址192.168.1.4,mac地址因为不晓得,所以每一位都是0。

因为发送的是ARP广播合同,同一个vlan下的主机全都能接收到这条消息。

手机以太网mac地址无法获取_手机无线无法获取ip地址_路由器无法获取ip地址

第3步

每台主机收到了这条广播消息后,迅速查询下自己的ip地址和mac地址。假如发觉数据包中ip地址是自己的ip,这么就第一时间更新自己的ARP表,将PC1的ip\mac地址做更新。之后,将自己的mac地址借助时隙的方式返回给pc1。

第4步

pc1收到响应回去的mac地址,立刻更新到自己的ARP表中。同时,将IP数据包用这个mac地址为目的mac地址封装成帧与pc4通讯。

不同网关之间的ARP合同

换一个思路,假如pc1和pc4不在同一个网关,怎么能够领到pc4的mac地址呢?

例如右图,pc1和pc2\pc3在同一个网关,并且和pc4\pc5不在同一个公网。

很显著,pc1和pc4是不能直接使用ARP合同的,这么这就要使用ARP代理路由了。代理路由可以将pc1的广播转献给pc4/pc5,之后在响应时pc4也要依靠于ARP代理路由将mac地址传给pc1。

ARP数据包

为了让你们更好的理解ARP合同以及广播和时隙的概念,我们来看一下用抓包工具抓到到的真实网路中的ARP过程,通过数据包的形式来呈现,地址信息如下,部份MAC信息隐去。

恳求包

响应包

剖析

Hardwaretype:硬件类型,标示链路层合同

Protocoltype:合同类型,标示网路层合同

Hardwaresize:硬件地址大小,标示MAC地址宽度,这儿是6个字节(48bti)

路由器无法获取ip地址_手机无线无法获取ip地址_手机以太网mac地址无法获取

Protocolsize:合同地址大小,标示IP地址宽度,这儿是4个字节(32bit)

Opcode:操作代码,标示ARP数据包类型,1表示恳求,2表示回应

SenderMACaddress:发送者MAC

SenderIPaddress:发送者IP

TargetMACaddress:目标MAC,此处全0表示在恳求

TargetIPaddress:目标IP

总结

OSI模型把网路工作分为七层,IP地址在OSI模型的第三层,MAC地址在第二层。在通过以太网发送IP数据包时,须要先封装第三层(32位IP地址)、第二层(48位MAC地址)的报头。ARP合同在TCP/IP模型中属于IP层(网路层),在OSI模型中属于链路层。

我是IT售前工程师Bernie,欢迎关注!上期见~

手机以太网mac地址无法
上一篇:解决平板电脑游戏无声问题 下一篇:没有了