一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

反向地址解析方法及电子设备与流程

2021-12-03 19:55:00 来源:中国专利 TAG:


1.本技术涉及终端及通信技术领域,尤其涉及反向地址解析方法及电子设备。


背景技术:

2.如图1所示,移动分布式系统是由电子设备组织的对等结构的异步网络系统,要求在任意局域网络中,能够快速相互发现对方,完成所有成员设备之间的数据同步。移动分布式系统中的电子设备间通过局域网络相互通信,由于其基于传输控制协议/网际协议(transmission control protocol/internet protocol,tcp/ip)协议栈,因此通信时成员设备需要知道对端设备的ip地址。
3.目前,局域网络的移动分布式系统中,若电子设备a想要知道电子设备b的ip地址,一般需要电子设备a在应用层与电子设备b进行多次交互来获取。例如,通过访问电子设备a与电子设备b共同运行的应用程序的服务器来进行查找获取等。
4.但是,移动分布式系统中的电子设备b可能在随意时间,随意移动到各种位置。在离开再进入局域网络后,电子设备b申请到的ip地址可能是变化的。若电子设备a频繁的通过应用层从服务器去获取电子设备b最新的ip地址,则会造成极大的信令开销。且应用程序的服务器也并不一定稳定,若服务器出现故障,则电子设备a会无法取得电子设备b的ip地址,导致电子设备a无法与电子设备b正常通信。


技术实现要素:

5.本技术提供了反向地址解析方法及电子设备,在移动分布式系统中,不依赖服务器,快速获取目标电子设备的ip地址。
6.第一方面,本技术实施例提供了一种反向地址解析方法,该方法包括:发送端电子设备在网络中广播第一请求包,该第一请求包的以太网载荷中包含目标电子设备的mac地址;该发送端电子设备接收该目标电子设备返回的第一应答包,该第一应答包的以太网载荷中包含该目标电子设备的ip地址;该发送端电子设备从该第一应答包获取该目标电子设备的ip地址。
7.本技术实施例中,发送端电子设备通过广播携带了目标电子设备的mac地址的第一请求包,即可接收到目标的电子设备返回的包含有该目标电子设备的ip地址的第一应答包,从而获取到该目标电子设备的ip地址。通过在发送的第一请求包的以太网载荷中包含目标电子设备的mac地址,即可得到在以太网载荷中包含目标电子设备的ip地址的第一应答包。在数据链路层即可完成该操作,不需要通过应用层的多次交互。实现了在移动分布式系统中,不依赖服务器,快速获取目标电子设备的ip地址的目的。
8.对于上述第一请求包和第一应答包:
9.可选的,结合第一方面,在一些实施例中,该第一请求包的以太网头部或以太网载荷中携带有请求标识,该请求标识用于标识该第一请求包用于根据目标电子设备的mac地址请求目标电子设备的ip地址。
10.本技术实施例中,通过第一请求包中携带的请求标识,接收到该第一请求包的电子设备可以判定该第一请求包是用于根据目标电子设备的mac地址请求目标电子设备的ip地址。
11.可选的,结合第一方面的一些实施例,在一些实施例中,该第一应答包的以太网头部或以太网载荷中携带有应答标识,该应答标识用于标识该第一应答包用于应答该第一请求包。
12.本技术实施例中,通过第一应答包中携带的应答标识,发送端电子设备接收到该第一应答包后,可以确定该第一应答包是用于应答该第一请求包。
13.可选的,结合第一方面的一些实施例,在一些实施例中,该第一请求包和该第一应答包为数据链路层的数据帧,该第一请求包的以太网头部包含以太网广播地址,该第一应答包的以太网头部包含该发送端电子设备的mac地址。
14.可选的,结合第一方面的一些实施例,在一些实施例中,该第一请求包的以太网载荷中还包含该发送端电子设备的ip地址和mac地址;该第一应答包的以太网载荷中还包含该目标电子设备的mac地址。
15.本技术实施例中,第一请求包的以太网载荷中还包含该发送端电子设备的ip地址和mac地址,可以让目标电子设备确定返回第一应答包的目的地。该第一应答包的以太网载荷中还包含该目标电子设备的mac地址,可以让发送端电子设备接收到第一应答包后,确定接收到的第一应答包来至于正确的目标电子设备。
16.结合第一方面的一些实施例,在一些实施例中,该发送端电子设备从该第一应答包获取该目标电子设备的ip地址的步骤之后,该方法还包括:该发送端电子设备存储该目标电子设备的ip地址。
17.本技术实施例中,发送端电子设备可以存储得到的该目标电子设备的ip地址,以便于后续使用。
18.结合第一方面的一些实施例,在一些实施例中,该发送端电子设备在网络中广播第一请求包的步骤之前,该方法还包括:该发送端电子设备调用分布式反向地址解析协议库接口,请求获取该目标电子设备的ip地址;响应于该发送端电子设备调用分布式反向地址解析协议库接口获取该目标电子设备的ip地址的请求,该发送端电子设备构造该第一请求包。
19.本技术实施例中,发送端电子设备可以基于应用层调用分布式反向地址解析协议库接口,请求获取该目标电子设备的ip地址,来构造该第一请求包并执行后续在数据链路层获取目标电子设备的ip地址的步骤。不在需要通过应用层的多次交互并需要依赖于应用程序的服务器才能得到目标电子设备的ip地址,简化了获取目标电子设备的ip地址的过程,减小了获取目标电子设备的ip地址的开销。
20.结合第一方面的一些实施例,在一些实施例中,该调用分布式反向地址解析协议库接口获取该目标电子设备的ip地址的请求中携带有该目标电子设备的mac地址。
21.本技术实施例中,调用分布式反向地址解析协议库接口时直接携带目标电子设备的mac地址,由于mac地址的唯一性,简化了确定获取ip地址的目标电子设备的过程。
22.结合第一方面的一些实施例,在一些实施例中,该调用分布式反向地址解析协议库接口获取该目标电子设备的ip地址的请求中携带有一种除该目标电子设备的mac地址外
的目标电子设备的设备标识,该设备标识用于在该发送端电子设备中唯一标识该目标电子设备;该发送端电子设备构造该第一请求包的步骤之前,该方法还包括:该发送端电子设备根据该目标电子设备的设备标识,确定该目标电子设备的mac地址。
23.本技术实施例中,调用分布式反向地址解析协议库接口时携带的是除mac地址外的一种设备标识,在构造第一请求包之前,通过该设备标识确定目标电子设备的mac地址。应用层调用分布式反向地址解析协议库接口时只需要使用自己常用的设备标识即可,不需要先找到该设备标识对应的mac地址,减少了应用层需要进行的处理过程,与现有协议流程兼容性较好。
24.结合第一方面的一些实施例,在一些实施例中,该发送端电子设备调用分布式反向地址解析协议库接口,请求获取该目标电子设备的ip地址的步骤之前,该方法还包括:该发送端电子设备使用记录ip地址与该目标电子设备建立通信连接,该记录ip地址为该发送端电子设备记录的上一次与该目标电子设备建立通信连接时该目标电子设备的ip地址;当该发送端电子设备解析该记录ip地址失败时,执行该发送端电子设备调用分布式反向地址解析协议库接口,请求获取该目标电子设备的ip地址的步骤。
25.本技术实施例中,发送端电子设备调用分布式反向地址解析协议库接口通过数据链路层获取目标电子设备的ip地址之前,可以先使用记录ip地址尝试与目标电子设备建立通信连接。在解析该记录ip地址失败后,才调用分布式反向地址解析协议库接口进行处理。提升了与现有协议处理过程的兼容性。
26.结合第一方面的一些实施例,在一些实施例中,该发送端电子设备对该记录ip地址进行地址解析,获取该记录ip地址对应的mac地址;当该发送端电子设备无法获取到该记录ip地址对应的mac地址,或获取的该记录ip地址对应的mac地址与该目标电子设备的mac地址不同时,该发送端电子设备确定解析该记录ip地址失败。
27.结合第一方面的一些实施例,在一些实施例中,该发送端电子设备调用分布式反向地址解析协议库接口,请求获取该目标电子设备的ip地址的步骤之后,该发送端电子设备构造该第一请求包的步骤之前,该方法还包括:该发送端电子设备查找本地分布式反向地址解析协议库表项,确定是否有未老化的包含有该目标电子设备的ip地址的对应关系条目;该本地分布式反向地址解析协议库表项中包含有与该发送端电子设备建立过通信连接的电子设备的mac地址和ip地址的对应关系条目,其中,老化的对应关系条目表示无效,未老化的对应关系条目表示有效;当确定该本地分布式反向地址解析协议库表项中没有未老化的包含有该目标电子设备的ip地址的对应关系条目时,执行该发送端电子设备构造该第一请求包的步骤。
28.本技术实施例中,发送端电子设备调用分布式反向地址解析协议库接口后,在数据链路层,构造第一请求包之前,发送端电子设备还可以先查找本地分布式反向地址解析协议库表项中是否有未老化的包含有该目标电子设备的ip地址的对应关系条目。如果没有未老化的包含该目标电子设备的ip地址的对应关系条目,才构造第一请求包进行后续的数据链路层ip地址获取过程。否则,可以直接从该本地分布式反向地址解析协议库表项中得到目标电子设备的ip地址,简化了获取目标电子设备的ip地址的交互过程,降低了信令开销。
29.结合第一方面的一些实施例,在一些实施例中,该发送端电子设备周期性的对该
本地分布式反向地址解析协议库表项中的对应关系条目进行心跳检测,该心跳检测用于确定使用对应关系条目中的ip地址能与对应关系条目中对应的mac地址所属的电子设备成功建立通信连接;当一个对应关系条目连续预设检测次数的心跳检测都不成功时,该发送端电子设备将其置为老化。
30.本技术实施例中,发送端电子设备周期性的对本地分布式反向地址解析协议库表项中的对应关系条目进行心跳检测,以保障其中的对应关系条目的老化状态真实有效。
31.结合第一方面的一些实施例,在一些实施例中,该发送端电子设备和该目标电子设备位于由网关服务器连接的不同的局域网中;该发送端电子设备接收该目标电子设备返回的第一应答包,具体包括:该发送端设备接收该网关服务器代理转发的该目标电子设备返回的第一应答包。
32.结合第一方面的一些实施例,在一些实施例中,该第一请求包和该第一应答包的以太网头部或以太网载荷中携带有代理转发标识,该代理转发标识用于请求该网关服务器代理转发该第一请求包或该第一应答包。
33.上述实施例中,发送端电子设备和目标电子设备位于不同的局域网中,可以通过网关服务器对第一请求包和第一应答包进行代理转发,从而实现了跨局域网的ip地址获取。
34.本技术的一些实施例中个,第一请求包的以太网载荷中包含的目标电子设备的mac地址可以为一个、多个或空值:
35.可选的,结合第一方面的一些实施例,在一些实施例中,该第一请求包的以太网载荷中包含的目标电子设备的mac地址为一个电子设备的mac地址,该请求标识为在预设字段上的第一数值。
36.可选的,结合第一方面的一些实施例,在一些实施例中,该第一请求包的以太网载荷中携带的目标电子设备的mac地址为多个电子设备的mac地址,该请求标识为在预设字段上的第二数值。
37.可选的,结合第一方面的一些实施例,在一些实施例中,该第一请求包用于请求局域网中全部电子设备的ip地址,该第一请求包的以太网载荷中携带的目标电子设备的mac地址为空值或以太网广播地址,该请求标识为在预设字段上的第三数值。
38.上述实施例中个,第一数值、第二数值和第三数值互不相同。
39.可选的,结合第一方面的一些实施例,在一些实施例中,该方法还包括:当该发送端电子设备接收到该目标电子设备返回的该第一应答包时,该发送端电子设备刷新记录的该目标电子设备的在线状态为在线;其中,该目标电子设备的在线状态为在线表示该目标电子设备处于可建立通信连接的状态。
40.本技术实施例中,通过确定返回了第一应答包的目标电子设备在线,刷新纪录的该目标电子设备的在线状态。从而使得分布式反向地址解析协议库接口还可以提供确定局域网中其他电子设备的在线状态的功能。
41.第二方面,本技术实施例提供了一种反向地址解析方法,该方法包括:目标电子设备接收发送端电子设备广播的第一请求包,该第一请求包的以太网载荷中包含该目标电子设备的mac地址;该目标电子设备确定该第一请求包是用于请求自己的ip地址;该目标电子设备返回第一应答包给该发送端电子设备,该第一应答包的以太网载荷中包含该目标电子
设备的ip地址。
42.本技术实施例中,目标电子设备接收到发送端电子设备广播的在以太网载荷中包含有目标电子设备的mac地址的第一请求包后,返回在以太网载荷中包含有目标电子设备的ip地址的第一应答包给该发送端电子设备。在数据链路层即可完成该操作,不需要通过应用层的多次交互。实现了在移动分布式系统中,不依赖服务器,快速获取目标电子设备的ip地址的目的。
43.对于上述第一请求包和第一应答包:
44.可选的,结合第二方面,在一些实施例中,该第一请求包的以太网头部或以太网载荷中携带有请求标识,该请求标识用于标识该第一请求包用于根据目标电子设备的mac地址请求目标电子设备的ip地址。
45.本技术实施例中,通过第一请求包中携带的请求标识,目标电子设备可以判定该第一请求包是用于根据目标电子设备的mac地址请求目标电子设备的ip地址。
46.可选的,结合第二方面的一些实施例,在一些实施例中,该第一应答包的以太网头部或以太网载荷中携带有应答标识,该应答标识用于标识该第一应答包用于应答该第一请求包。
47.本技术实施例中,通过第一应答包中携带的应答标识,发送端电子设备接收到该第一应答包后,可以确定该第一应答包是用于应答该第一请求包。
48.可选的,结合第二方面的一些实施例,在一些实施例中,该第一请求包和该第一应答包为数据链路层的数据帧,该第一请求包的以太网头部包含以太网广播地址,该第一应答包的以太网头部包含该发送端电子设备的mac地址。
49.可选的,结合第二方面的一些实施例,在一些实施例中,该第一请求包的以太网载荷中还包含该发送端电子设备的ip地址和mac地址;该第一应答包的以太网载荷中还包含该目标电子设备的mac地址。
50.本技术实施例中,第一请求包的以太网载荷中还包含该发送端电子设备的ip地址和mac地址,可以让目标电子设备确定返回第一应答包的目的地。该第一应答包的以太网载荷中还包含该目标电子设备的mac地址,可以让发送端电子设备接收到第一应答包后,确定接收到的第一应答包来至于正确的目标电子设备。
51.目标电子设备确定该第一请求包是用于请求自己的ip地址的方式有多种:
52.可选的,结合第二方面的一些实施例,在一些实施例中,该目标电子设备确定该第一请求包是用于请求自己的ip地址,具体包括:该目标电子设备确定该第一请求包的以太网载荷中携带有与自己的mac地址相同的mac地址时,确定该第一请求包是用于请求自己的ip地址。
53.可选的,结合第二方面的一些实施例,在一些实施例中,该目标电子设备确定该第一请求包是用于请求自己的ip地址,具体包括:该目标电子设备确定该第一请求包的以太网载荷中携带的目标电子设备的mac地址为空值或以太网广播地址时,确定该第一请求包是用于请求自己的ip地址。
54.上述实施例中,根据不同的情况,第一请求包的以太网载荷中携带有与自己的mac地址相同的mac地址时,或第一请求包的以太网载荷中携带的目标电子设备的mac地址为空值或以太网广播地址时,目标电子设备均可以确定该第一请求包是用于请求自己的ip地
址。
55.结合第二方面的一些实施例,在一些实施例中,该发送端电子设备和该目标电子设备位于由网关服务器连接的不同的局域网中;该目标电子设备接收发送端电子设备广播的第一请求包,具体包括:该目标电子设备接收该网关服务器代理转发的该发送端电子设备广播的第一请求包;该目标电子设备返回该第一应答包给该发送端电子设备,具体包括:该目标电子设备返回该第一应答包给该网关服务器,使得该网关服务器代理转发该第一应答包给该发送端电子设备。
56.结合第二方面的一些实施例,在一些实施例中,该第一请求包和该第一应答包的以太网头部或以太网载荷中携带有代理转发标识,该代理转发标识用于请求该网关服务器代理转发该第一请求包或该第一应答包。
57.上述实施例中,发送端电子设备和目标电子设备位于不同的局域网中,可以通过网关服务器对第一请求包和第一应答包进行代理转发,从而实现了跨局域网的ip地址获取。
58.第三方面,本技术实施例提供了一种电子设备,作为发送端电子设备,该电子设备包括:一个或多个处理器和存储器;该存储器与该一个或多个处理器耦合,该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令,该一个或多个处理器调用该计算机指令以使得该电子设备执行:在网络中广播第一请求包,该第一请求包的以太网载荷中包含目标电子设备的mac地址;接收该目标电子设备返回的第一应答包,该第一应答包的以太网载荷中包含该目标电子设备的ip地址;从该第一应答包获取该目标电子设备的ip地址。
59.结合第三方面,在一些实施例中,该第一请求包的以太网头部或以太网载荷中携带有请求标识,该请求标识用于标识该第一请求包用于根据目标电子设备的mac地址请求目标电子设备的ip地址。
60.结合第三方面的一些实施例,在一些实施例中,该第一应答包的以太网头部或以太网载荷中携带有应答标识,该应答标识用于标识该第一应答包用于应答该第一请求包。
61.结合第三方面的一些实施例,在一些实施例中,该第一请求包和该第一应答包为数据链路层的数据帧,该第一请求包的以太网头部包含以太网广播地址,该第一应答包的以太网头部包含该发送端电子设备的mac地址。
62.结合第三方面的一些实施例,在一些实施例中,该第一请求包的以太网载荷中还包含该发送端电子设备的ip地址和mac地址;该第一应答包的以太网载荷中还包含该目标电子设备的mac地址。
63.结合第三方面的一些实施例,在一些实施例中,该一个或多个处理器,还用于调用该计算机指令以使得该电子设备执行:在该存储器中存储该目标电子设备的ip地址。
64.结合第三方面的一些实施例,在一些实施例中,该一个或多个处理器,还用于调用该计算机指令以使得该电子设备执行:调用分布式反向地址解析协议库接口,请求获取该目标电子设备的ip地址;响应于调用分布式反向地址解析协议库接口获取该目标电子设备的ip地址的请求,构造该第一请求包。
65.结合第三方面的一些实施例,在一些实施例中,该调用分布式反向地址解析协议库接口获取该目标电子设备的ip地址的请求中携带有该目标电子设备的mac地址。
66.结合第三方面的一些实施例,在一些实施例中,该调用分布式反向地址解析协议库接口获取该目标电子设备的ip地址的请求中携带有一种除该目标电子设备的mac地址外的目标电子设备的设备标识,该设备标识用于在该发送端电子设备中唯一标识该目标电子设备;该一个或多个处理器,还用于调用该计算机指令以使得该电子设备执行:根据该目标电子设备的设备标识,确定该目标电子设备的mac地址。
67.结合第三方面的一些实施例,在一些实施例中,该一个或多个处理器,还用于调用该计算机指令以使得该电子设备执行:使用记录ip地址与该目标电子设备建立通信连接,该记录ip地址为该发送端电子设备记录的上一次与该目标电子设备建立通信连接时该目标电子设备的ip地址;当解析该记录ip地址失败时,执行该调用分布式反向地址解析协议库接口,请求获取该目标电子设备的ip地址的步骤。
68.结合第三方面的一些实施例,在一些实施例中,该一个或多个处理器,还用于调用该计算机指令以使得该电子设备执行:对该记录ip地址进行地址解析,获取该记录ip地址对应的mac地址;当无法获取到该记录ip地址对应的mac地址,或获取的该记录ip地址对应的mac地址与该目标电子设备的mac地址不同时,确定解析该记录ip地址失败。
69.结合第三方面的一些实施例,在一些实施例中,该一个或多个处理器,还用于调用该计算机指令以使得该电子设备执行:查找本地分布式反向地址解析协议库表项,确定是否有未老化的包含有该目标电子设备的ip地址的对应关系条目;该本地分布式反向地址解析协议库表项中包含有与该发送端电子设备建立过通信连接的电子设备的mac地址和ip地址的对应关系条目,其中,老化的对应关系条目表示无效,未老化的对应关系条目表示有效;当确定该本地分布式反向地址解析协议库表项中没有未老化的包含有该目标电子设备的ip地址的对应关系条目时,执行该构造该第一请求包的步骤。
70.结合第三方面的一些实施例,在一些实施例中,该一个或多个处理器,还用于调用该计算机指令以使得该电子设备执行:周期性的对该本地分布式反向地址解析协议库表项中的对应关系条目进行心跳检测,该心跳检测用于确定使用对应关系条目中的ip地址能与对应关系条目中对应的mac地址所属的电子设备成功建立通信连接;当一个对应关系条目连续预设检测次数的心跳检测都不成功时,将其置为老化。
71.结合第三方面的一些实施例,在一些实施例中,该发送端电子设备和该目标电子设备位于由网关服务器连接的不同的局域网中;该一个或多个处理器,具体用于调用该计算机指令以使得该电子设备执行:接收该网关服务器代理转发的该目标电子设备返回的第一应答包。
72.结合第三方面的一些实施例,在一些实施例中,该第一请求包和该第一应答包的以太网头部或以太网载荷中携带有代理转发标识,该代理转发标识用于请求该网关服务器代理转发该第一请求包或该第一应答包。
73.结合第三方面的一些实施例,在一些实施例中,该第一请求包的以太网载荷中携带的目标电子设备的mac地址为一个电子设备的mac地址,该请求标识为在预设字段上的第一数值。
74.结合第三方面的一些实施例,在一些实施例中,该第一请求包的以太网载荷中携带的目标电子设备的mac地址为多个电子设备的mac地址,该请求标识为在预设字段上的第二数值。
75.结合第三方面的一些实施例,在一些实施例中,该第一请求包用于请求局域网中全部电子设备的ip地址,该第一请求包的以太网载荷中携带的目标电子设备的mac地址为空值或以太网广播地址,该请求标识为在预设字段上的第三数值。
76.结合第三方面的一些实施例,在一些实施例中,该一个或多个处理器,还用于调用该计算机指令以使得该电子设备执行:当接收到该目标电子设备返回的该第一应答包时,刷新记录的该目标电子设备的在线状态为在线;其中,该目标电子设备的在线状态为在线表示该目标电子设备处于可建立通信连接的状态。
77.第四方面,本技术实施例提供了一种芯片系统,该芯片系统应用于电子设备,该芯片系统包括一个或多个处理器,该处理器用于调用计算机指令以使得该电子设备执行如第一方面以及第一方面中任一可能的实现方式描述的方法。
78.可以理解的是,该芯片系统可以包含一个如图7所示的电子设备100中的处理器110,也可以包含多个如图7所示的电子设备100中的处理器110,该芯片系统中还可以包含有其它一个或多个芯片,例如可以包含如图7所示的电子设备100中的摄像头193中的图像信号处理芯片,还可以包含显示屏194中的图像显示芯片等,此处不作限定。
79.第五方面,本技术实施例提供一种包含指令的计算机程序产品,当上述计算机程序产品在电子设备上运行时,使得上述电子设备执行如第一方面以及第一方面中任一可能的实现方式描述的方法。
80.第六方面,本技术实施例提供一种计算机可读存储介质,包括指令,当上述指令在电子设备上运行时,使得上述电子设备执行如第一方面以及第一方面中任一可能的实现方式描述的方法。
81.可以理解地,上述第三方面提供的电子设备、第四方面提供的芯片系统、第五方面提供的计算机程序产品和第六方面提供的计算机存储介质均用于执行本技术实施例第一方面所提供的方法。因此,其所能达到的有益效果可参考对应方法中的有益效果,此处不再赘述。
82.第七方面,本技术实施例提供了一种电子设备,作为目标电子设备,该电子设备包括:一个或多个处理器和存储器;该存储器与该一个或多个处理器耦合,该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令,该一个或多个处理器调用该计算机指令以使得该电子设备执行:接收发送端电子设备广播的第一请求包,该第一请求包的以太网载荷中携带有该目标电子设备的mac地址;确定该第一请求包是用于请求自己的ip地址;返回第一应答包给该发送端电子设备,该第一应答包的以太网载荷中携带有该目标电子设备的ip地址。
83.结合第七方面,在一些实施例中,该第一请求包的以太网头部或以太网载荷中携带有请求标识,该请求标识用于标识该第一请求包用于根据目标电子设备的mac地址请求目标电子设备的ip地址。
84.结合第七方面的一些实施例中,在一些实施例中,该第一应答包的以太网头部或以太网载荷中携带有应答标识,该应答标识用于标识该第一应答包用于应答该第一请求包。
85.结合第七方面的一些实施例中,在一些实施例中,该第一请求包和该第一应答包为数据链路层的数据帧,该第一请求包的以太网头部包含以太网广播地址,该第一应答包
的以太网头部包含该发送端电子设备的mac地址。
86.结合第七方面的一些实施例中,在一些实施例中,该第一请求包的以太网载荷中还包含该发送端电子设备的ip地址和mac地址;该第一应答包的以太网载荷中还包含该目标电子设备的mac地址。
87.结合第七方面的一些实施例中,在一些实施例中,该一个或多个处理器,具体用于调用该计算机指令以使得该电子设备执行:
88.确定该第一请求包的以太网载荷中携带有与自己的mac地址相同的mac地址时,确定该第一请求包是用于请求自己的ip地址。
89.结合第七方面的一些实施例中,在一些实施例中,该一个或多个处理器,具体用于调用该计算机指令以使得该电子设备执行:确定该第一请求包的以太网载荷中携带的目标电子设备的mac地址为空值或以太网广播地址时,确定该第一请求包是用于请求自己的ip地址。
90.结合第七方面的一些实施例中,在一些实施例中,该发送端电子设备和该目标电子设备位于由网关服务器连接的不同的局域网中;该一个或多个处理器,具体用于调用该计算机指令以使得该电子设备执行:接收该网关服务器代理转发的该发送端电子设备广播的第一请求包;返回该第一应答包给该网关服务器,使得该网关服务器代理转发该第一应答包给该发送端电子设备。
91.结合第七方面的一些实施例中,在一些实施例中,该第一请求包和该第一应答包的以太网头部或以太网载荷中携带有代理转发标识,该代理转发标识用于请求该网关服务器代理转发该第一请求包或该第一应答包。
92.第八方面,本技术实施例提供了一种芯片系统,该芯片系统应用于电子设备,该芯片系统包括一个或多个处理器,该处理器用于调用计算机指令以使得该电子设备执行如第二方面以及第二方面中任一可能的实现方式描述的方法。
93.可以理解的是,该芯片系统可以包含一个如图7所示的电子设备100中的处理器110,也可以包含多个如图7所示的电子设备100中的处理器110,该芯片系统中还可以包含有其它一个或多个芯片,例如可以包含如图7所示的电子设备100中的摄像头193中的图像信号处理芯片,还可以包含显示屏194中的图像显示芯片等,此处不作限定。
94.第九方面,本技术实施例提供一种包含指令的计算机程序产品,当上述计算机程序产品在电子设备上运行时,使得上述电子设备执行如第二方面以及第二方面中任一可能的实现方式描述的方法。
95.第十方面,本技术实施例提供一种计算机可读存储介质,包括指令,当上述指令在电子设备上运行时,使得上述电子设备执行如第二方面以及第二方面中任一可能的实现方式描述的方法。
96.可以理解地,上述第七方面提供的电子设备、第八方面提供的芯片系统、第九方面提供的计算机程序产品和第十方面提供的计算机存储介质均用于执行本技术实施例第二方面所提供的方法。因此,其所能达到的有益效果可参考对应方法中的有益效果,此处不再赘述。
附图说明
97.图1是本技术实施例中移动分布式系统一个场景示意图;
98.图2是osi七层参考模型与tcp/ip四层概念模型的对应关系示意图;
99.图3是arp协议的一个工作过程示意图;
100.图4是rarp协议的一个工作过程示意图;
101.图5是arp/rarp分组格式的一个示意图;
102.图6是本技术实施例中使用反向地址解析方法的一个场景示意图;
103.图7是本技术实施例提供的电子设备的结构示意图;
104.图8是本技术实施例是电子设备的软件结构框图;
105.图9是本技术实施例中电子设备在tcp/ip四层概念模型中的一个示例性信令交互示意图;
106.图10是本技术实施例中电子设备在tcp/ip四层概念模型中的另一个示例性信令交互示意图;
107.图11是本技术实施例中反向地址解析方法的一个信令交互示意图;
108.图12是本技术实施例中第一请求包和第一应答包分组格式的一个示例性示意图;
109.图13是本技术实施例中第一请求包和第一应答包分组格式的另一个示例性示意图;
110.图14是本技术实施例中第一请求包和第一应答包分组格式的另一个示例性示意图;
111.图15是本技术实施例中第一请求包和第一应答包分组格式的另一个示例性示意图;
112.图16是本技术实施例中第一请求包和第一应答包分组格式的另一个示例性示意图;
113.图17是本技术实施例中反向地址解析方法一个示例性信息流交互示意图;
114.图18是本技术实施例中第一请求包一个示例性示意图;
115.图19是本技术实施例中第一应答包一个示例性示意图;
116.图20是本技术实施例中p2p group一个场景示意图。
具体实施方式
117.本技术以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本技术的限制。如在本技术的说明书和所附权利要求书中所使用的那样,单数表达形式“一个”、“一种”、“所述”、“上述”、“该”和“这一”旨在也包括复数表达形式,除非其上下文中明确地有相反指示。还应当理解,本技术中使用的术语“和/或”是指并包含一个或多个所列出项目的任何或所有可能组合。
118.以下,术语“第一”、“第二”仅用于描述目的,而不能理解为暗示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征,在本技术实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
119.由于本技术实施例涉及反向地址解析技术的应用,为了便于理解,下面先对本申
请实施例涉及的相关术语及概念进行介绍。
120.(1)开放式系统互联(open system interconnect,osi)参考模型:
121.osi参考模型是国际标准化组织研究的网络互连模型。osi参考模型定义了网络互连的七层框架:
122.物理层:用于机械、电子、定时接口通信信道上原始比特流传输;
123.数据链路层,用于提供介质访问和链路控制。即可以进行物理寻址,同时将原始比特流转变为逻辑传输线路;
124.网络层:用于ip选址及路由选择。即可以控制子网的运行,如进行逻辑编址、分组传输、路由选择等;
125.传输层:用于建立、管理和维护端到端的连接。即可以接受会话层的数据,在必要的时候把数据进行分割,并将这些数据交给网络层,且保证这些数据段有效到达对端;
126.会话层:用于建立、管理和维护会话。即可以在不同机器上的用户之间建立及管理会话;
127.表示层:用于数据格式转换,数据加密。即进行信息的语法语义以及他们的关联处理,例如加密解密、转换翻译、压缩解压缩等。
128.应用层:用于为应用程序提供服务。其可以包含各种应用程序协议,例如超文本传输协议(hypertext transfer protocol,http)、文件传输协议(file transfer protocol,ftp)、简单邮件传输协议(simple mail transfer protocol,smtp)、邮局协议版本3(post office protocol-version 3,pop3)等。
129.每一层实现各自的功能和协议,并完成与相邻层的接口通信。osi参考模型的服务定义详细说明了各层所提供的服务。某一层的服务就是该层及其下各层的一种能力,它通过接口提供给更高一层。各层所提供的服务与这些服务是怎么实现的无关。
130.(2)tcp/ip协议簇:
131.osi参考模型是一种理论下的模型。tcp/ip协议簇参照该osi参考模型,提出了tcp/ip四层概念模型。如图2所示,为osi七层参考模型与tcp/ip四层概念模型的对应关系示意图。
132.其中,数据链路层,对应于osi参考模型中的物理层和数据链路层;
133.网络层,对应于osi参考模型中的网络层;
134.传输层,对应于osi参考模型中的传输层;
135.应用层,对应于osi参考模型中的会话层、表示层和应用层。
136.可以理解的是,本技术实施例中的反向地址解析方法涉及到的各数据包,由于其主要涉及根据mac地址寻找ip地址的功能,因此可以将其划分在tcp/ip协议簇的数据链路层。
137.(3)地址解析(address resolution protocol,arp)协议:
138.arp协议为根据ip地址获取mac地址的一个tcp/ip协议。
139.示例性的,如图3所示,为现有技术中arp协议的一个工作过程示意图。电子设备a、电子设备b和电子设备c都通过以太网连接。其中电子设备a的ip地址为1.1.1.1/24,物理地址(media access control address,mac地址)为11-11-11-11-11-11;电子设备b的ip地址为1.1.1.2/24,mac地址为22-22-22-22-22-22;电子设备c的ip地址为1.1.1.3/24,mac地址
为33-33-33-33-33-33。其中/24表示32位的ip地址中子网掩码的位数为24。
140.在电子设备a知道在电子设备b的ip地址的情况下,当电子设备a要和电子设备b通讯时,电子设备a会先检查其arp缓存内是否有电子设备b的mac地址。如果没有,电子设备a会在局域网中广播一个arp请求包,此包内包含着其欲与之通信的电子设备的ip地址,也就是图2中电子设备b的ip地址。该arp请求包会广播到局域网中的所有联网的其他电子设备,比如电子设备b和电子设备c。
141.当电子设备b收到此arp请求包之后,比对该arp请求包中的ip地址与自己的ip地址相同,会将自己的mac地址利用arp响应包传给电子设备a,并更新自己的arp缓存,也就是将电子设备a的ip地址/mac地址对保存起来,以供后面使用。电子设备a在得到电子设备b的mac地址之后,就可以与电子设备b通信了。同时电子设备a也将电子设备b的ip地址/mac地址对保存在自己的arp缓存内。
142.当电子设备c收到此arp请求包之后,比对该arp请求包中的ip地址与自己的ip地址不同,则会丢弃该arp请求包。
143.使用arp协议,通过广播携带有目标电子设备ip地址的arp请求包,电子设备a得到了目标电子设备的mac地址。
144.(4)rarp协议:
145.rarp协议为根据自身mac地址获取ip地址的一个tcp/ip协议,允许局域网的电子设备从网关服务器的arp表或者缓存上请求其ip地址。需要理解的是,rarp协议仅用于电子设备从网关服务器请求自己的ip地址。
146.网络管理员会在局域网网关路由器里创建一个表以映射mac地址和与其对应的ip地址。当设置一台新的电子设备时,该电子设备的rarp客户机程序需要向网关路由器上的rarp服务器请求与自己的mac地址相应的ip地址。假设在网关路由表中已经设置了一个记录,rarp服务器将会返回ip地址给该电子设备,该电子设备就会将得到的ip地址存储起来以便日后使用。rarp协议可以使用于以太网、光纤分布式、数据接口及令牌环等网络中。
147.示例性的,如图4所示,为现有技术中rarp协议的一个工作过程示意图。电子设备a、电子设备b、电子设备c与局域网网关路由器中的rarp服务器都通过局域网连接。
148.网络上的每台设备都会有一个独一的硬件地址,通常是由设备厂商分配的mac地址。电子设备a接入网络后,从网卡上读取mac地址,然后在网络上广播一个rarp请求包,该rarp请求包中包含电子设备a自己的mac地址:11-11-11-11-11-11,请求rarp服务器回复ip地址。
149.电子设备b,电子设备c收到该rarp请求包后,会丢弃该rarp请求包。
150.rarp服务器收到了rarp请求包后,为电子设备a分配ip地址:1.1.1.1,并发送rarp应答包给电子设备a。该rarp应答包中包含有为电子设备a分配的ip地址。电子设备a收到rarp应答包后,就使用得到的ip地址进行通讯。
151.使用rarp协议,电子设备a通过广播携带有自己mac地址的rarp请求包,可以得到rarp服务器回复的为其分配的ip地址。
152.(5)arp/rarp分组格式:
153.现有技术中,arp协议和rarp协议中的数据包使用相同结构的分组格式。如图5所示,为现有技术中arp/rarp分组格式的一个示意图。
154.arp/rarp分组格式由共占32个字节的12个字段组成,包括占14个字节的以太网首部和占28个字节的arp/rarp的请求/应答部分。
155.以太网首部中有3个字段:占6个字节的以太网目的地址,占6个字节的以太网源地址和占2个字节的帧类型。
156.其中,以太网目的地址和以太网源地址都是物理地址。
157.以太网目的地址为全1时,是广播地址。
158.以太网源地址是发送端的mac地址。
159.帧类型表示后面数据的类型。例如,arp请求或应答的帧类型值为0x0806。
160.arp/rarp的请求/应答有9个字段:占2个字节的硬件类型,占2个字节的协议类型,占1个字节的硬件地址长度,占1个字节的协议地址长度,占2个字节的操作字段,占6个字节的发送端以太网地址,占4个字节的发送端ip地址,占6个字节的目的以太网地址,占4个字节的目的ip地址。
161.其中,硬件类型表示硬件地址的类型。例如,其值为1时表示硬件地址的类型为以太网地址。
162.协议类型表示要映射的协议地址的类型。例如,其值为0x0800是表示协议地址的类型为ip地址。
163.硬件地址长度和协议地址长度分别指出硬件地址和协议地址的长度,以字节为单位。例如,对于以太网上ip地址的apr请求或应答来说,它们的值分别为6和4。
164.操作字段指出四种操作类型,它们分别是arp请求(值为1)、arp应答(值为2)、rarp请求(值为3)和rarp应答(值为4)。
165.发送端以太网地址和发送端ip地址分别记录发送端的以太网地址和发送端的ip地址。
166.目的以太网地址和目的ip地址分别记录目的设备的物理地址和目的设备的ip地址。
167.(6)wi-fi p2p:
168.wi-fi p2p是现有技术中一种构建移动分布式系统的技术,它是2010年wi-fi联盟(wi-fi alliance)推出的一项重要技术规范,是一种点对点,一对多的技术。android中称之为wi-fi直连(wi-fi direct),ios中称之为隔空投送(airdrop)。
169.wi-fi p2p架构中定义了三个组件,将其称之为一个设备,两种角色。这三个组件分别是:
170.p2p device:它是p2p架构中终端角色的实体,也可把它当做一个wi-fi设备。
171.p2p group owner:p2p group owner(简称go)是一种角色,其作用类似于wifi网络结构中的接入点(ap),即wifi热点。
172.p2p client:简称glient,为另外一种角色,其作用类似于wifi网络结构中的站点(sta),是具有wifi通信功能的,并且连接到无线网络中的终端设备。
173.在组建p2p group之前,智能终端都是一个一个的p2p device。当这些p2p device设备之间完成p2p协商后,那么其中将有一个并且只能有一个p2p device来扮演go的角色(即充当ap),而其他p2p device来扮演client的角色。通过wi-fi p2p作为传输手段,通过套接字(socket)作为信息载体,进行通信。p2p group owner自动向所有客户端通报物理地
址(mac)信息。在通过wi-fi p2p技术组成的p2p group组织结构中,不支持根据物理地址查询ip地址。
174.(7)本地arp表项:
175.电子设备中存储有本地arp表项,该本地arp表项使用于数据链路层,用于存储与该电子设备建立过通信连接的其他电子设备的mac地址和ip地址的对应关系。根据tcp/ip协议的规定,该本地arp表项中的对应关系条目具有老化时间,且该老化时间较短。
176.具体的,若电子设备a的本地arp表项中存储有条目1:电子设备b的mac地址和ip地址的对应关系。当电子设备a与电子设备b结束通信连接后,该本地arp表项中的条目1则进入老化时间倒计时。若在该老化时间倒计时结束前,电子设备a与电子设备b没有再次建立通信连接,则该条目1老化,会从该本地arp表项中被删除。本地arp表项中不再存储有该电子设备b的mac地址和ip地址。
177.(8)本地分布式反向地址解析协议库(distributed reverse address resolution protocol,drarp)表项:
178.本技术实施例中,电子设备中还可以存储有本地drarp表项,该本地drarp表项适用于数据链路层,用于存储于该电子设备建立过通信连接的其他电子设备的mac地址和ip地址的对应关系。
179.与本地arp表项不同,本地drarp表项记录的对应关系条目老化后,并不会直接删除整个对应关系条目,而是会保留该对应关系条目中的mac地址。
180.电子设备可以根据多种指标确定是否将该本地drarp表项中记录的对应关系条目老化:
181.示例性的,电子设备可以对本地drarp表项记录的对应关系条目进行心跳检测,根据心跳检测结果对本地drarp表项中的对应关系条目进行老化处理。
182.具体的,若电子设备a中存储有条目1:电子设备b的mac地址和ip地址的对应关系。电子设备a会周期性的持续的对该条目1进行心跳检测,确定使用该条目1中的ip地址是否能正常与该条目1中mac地址的电子设备正常建立通信连接。能正常建立通信连接,则表示心跳检测成功。如果心跳检测成功,则电子设备a保持该条目1有效。如果对该条目1连续预设检测次数(例如3次)都不成功,则电子设备a将该条目1置为老化,使该条目1表示的对应关系无效,但是不删除该条目1。
183.示例性的,电子设备还可以按照预设老化时长对本地drarp表项记录的对应关系条目进行老化处理。
184.具体的,若电子设备a中存储有条目1:电子设备b的mac地址和ip地址的对应关系。当电子设备a与电子设备b断开通信连接达到预设老化时长后,电子设备a可以将该条目1置为老化。
185.可以理解的是,电子设备还可以根据其他的指标,来将该本地drarp表项中记录的对应关系条目老化。例如,可以为在确定对应关系条目中电子设备已经离线时将该对应关系条目老化、还可以为在确定对应关系条目中电子设备的ip地址已经变更时将该对应关系条目老化等等。具体可以根据实际情况设定,此处不作限定。
186.需要说明的是,本地drarp表项中对应关系条目除了可以包含电子设备的mac地址和ip地址的对应关系,还可以包含该电子设备的其他信息与mac地址的对应关系,此处不作
限定。例如,该条目1中还可以包含电子设备b的设备名称或电子设备b的设备标识等,此处不作限定。
187.可选的,本地drarp表项中对应关系条目中还可以包含老化标志位,当该老化标志位的值为第一数值时,表示该对应关系条目有效。当该老化标志位的值为第二数值时,表示该对应关系条目老化,该对应关系条目表示的对应关系无效。
188.可选的,本地drarp表项中对应关系条目被置为老化时,电子设备可以删除该对应关系条目中的ip地址。
189.现有技术,无论是arp/rarp协议,还是wi-fi p2p,均不支持在没有服务器的情况下,获取其他电子设备的ip地址。
190.而在移动分布式系统中,由于电子设备可以在随意时间,随意移动到各种位置。在不同的地理位置,电子设备可能接入不同的局域网络,在不同的局域网络中,电子设备申请到的ip地址可能是变化的。因此,在这样ip地址变化快速,且服务器状态不稳定的情况下,电子设备能在不依赖服务器的情况下,及时获取到局域网中目标电子设备变更后的ip地址是非常必要的。
191.本技术实施例中,在移动分布式系统中,发送端电子设备能通过在局域网中广播目标电子设备的mac地址,由该目标电子设备直接应答其自身的ip地址,从而快速获取到该目标电子设备的ip地址。且由于该过程工作处于数据链路层,相比于通过应用层的多次交互从应用服务器获取目标电子设备的ip地址,不仅减少了信令开销,而且实现了在不依赖服务器的情况下,在任意局域网中,均能快速通过mac地址获取到对应设备的ip地址,提升了移动分布式系统中进行网络通信的稳定性。
192.如图6所示,为本技术实施例中使用反向地址解析方法的一个场景示意图。在由电子设备a,电子设备b,电子设备c和电子设备d组成的移动分布式系统中,电子设备a想要和电子设备d通信。由于此前电子设备a与电子设备d进行过通信,因此电子设备a中存储有电子设备d的mac地址:44-44-44-44-44-44。但由于频繁的移动,电子设备d在一个时间段脱离过该局域网,过了一段时间才又加入进来,导致电子设备d的ip地址产生过变化。电子设备a使用记录的电子设备d以前的ip地址无法与电子设备d正常通信。因此电子设备a在局域网中广播一个第一请求包,在该第一请求包中携带电子设备d的mac地址,请求回复电子设备d的ip地址。
193.局域网中的电子设备b、电子设备c和电子设备d均会接收到该第一请求包。电子设备b和电子设备c在接收到该第一请求包后,确定其中的mac地址与自己的不同,丢弃该第一请求包。电子设备d接收到该第一请求包后,确定其中的mac地址与自己的相同,回复第一应答包给电子设备a。该第一应答包中携带有电子设备d的ip地址和mac地址。电子设备a收到该第一应答包后,就确定了电子设备d最新的ip地址,又可以顺利的与电子设备d进行通信了。
194.下面介绍本技术实施例提供的示例性电子设备100。
195.该示例性电子设备100既可以是本技术实施例中的发送端电子设备,也可以是本技术实施例中的目标电子设备,此处不作限定。
196.图7是本技术实施例提供的电子设备100的结构示意图。
197.下面以电子设备100为例对实施例进行具体说明。应该理解的是,电子设备100可
以具有比图中所示的更多的或者更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
198.电子设备100可以包括:处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,usb)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170a,受话器170b,麦克风170c,耳机接口170d,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194以及用户标识模块(subscriber identification module,sim)卡接口195等。其中传感器模块180可以包括压力传感器180a,陀螺仪传感器180b,气压传感器180c,磁传感器180d,加速度传感器180e,距离传感器180f,接近光传感器180g,指纹传感器180h,温度传感器180j,触摸传感器180k,环境光传感器180l,骨传导传感器180m等。
199.可以理解的是,本发明实施例示意的结构并不构成对电子设备100的具体限定。在本技术另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
200.处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,ap),调制解调处理器,图形处理器(graphics processing unit,gpu),图像信号处理器(image signal processor,isp),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,dsp),基带处理器,和/或神经网络处理器(neural-network processing unit,npu)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
201.其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
202.处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
203.在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,i2c)接口,集成电路内置音频(inter-integrated circuit sound,i2s)接口,脉冲编码调制(pulse code modulation,pcm)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,uart)接口,移动产业处理器接口(mobile industry processor interface,mipi),通用输入输出(general-purpose input/output,gpio)接口,用户标识模块(subscriber identity module,sim)接口,和/或通用串行总线(universal serial bus,usb)接口等。
204.i2c接口是一种双向同步串行总线,包括一根串行数据线(serial data line,sda)和一根串行时钟线(derail clock line,scl)。在一些实施例中,处理器110可以包含多组i2c总线。处理器110可以通过不同的i2c总线接口分别耦合触摸传感器180k,充电器,闪光灯,摄像头193等。例如:处理器110可以通过i2c接口耦合触摸传感器180k,使处理器110与触摸传感器180k通过i2c总线接口通信,实现电子设备100的触摸功能。
205.i2s接口可以用于音频通信。在一些实施例中,处理器110可以包含多组i2s总线。处理器110可以通过i2s总线与音频模块170耦合,实现处理器110与音频模块170之间的通信。在一些实施例中,音频模块170可以通过i2s接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。
206.pcm接口也可以用于音频通信,将模拟信号抽样,量化和编码。在一些实施例中,音频模块170与无线通信模块160可以通过pcm总线接口耦合。在一些实施例中,音频模块170也可以通过pcm接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。所述i2s接口和所述pcm接口都可以用于音频通信。
207.uart接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它将要传输的数据在串行通信与并行通信之间转换。在一些实施例中,uart接口通常被用于连接处理器110与无线通信模块160。例如:处理器110通过uart接口与无线通信模块160中的蓝牙模块通信,实现蓝牙功能。在一些实施例中,音频模块170可以通过uart接口向无线通信模块160传递音频信号,实现通过蓝牙耳机播放音乐的功能。
208.mipi接口可以被用于连接处理器110与显示屏194,摄像头193等外围器件。mipi接口包括摄像头串行接口(camera serial interface,csi),显示屏串行接口(display serial interface,dsi)等。在一些实施例中,处理器110和摄像头193通过csi接口通信,实现电子设备100的拍摄功能。处理器110和显示屏194通过dsi接口通信,实现电子设备100的显示功能。
209.gpio接口可以通过软件配置。gpio接口可以被配置为控制信号,也可被配置为数据信号。在一些实施例中,gpio接口可以用于连接处理器110与摄像头193,显示屏194,无线通信模块160,音频模块170,传感器模块180等。gpio接口还可以被配置为i2c接口,i2s接口,uart接口,mipi接口等。
210.sim接口可以被用于与sim卡接口195通信,实现传送数据到sim卡或读取sim卡中数据的功能。
211.usb接口130是符合usb标准规范的接口,具体可以是mini usb接口,micro usb接口,usb type c接口等。usb接口130可以用于连接充电器为电子设备100充电,也可以用于电子设备100与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他电子设备,例如ar设备等。
212.可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本技术另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
213.充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。
214.电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。
215.电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
216.天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆
盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
217.移动通信模块150可以提供应用在电子设备100上的包括2g/3g/4g/5g等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,lna)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
218.调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170a,受话器170b等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
219.无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wireless local area networks,wlan)(如无线保真(wireless fidelity,wi-fi)网络),蓝牙(bluetooth,bt),全球导航卫星系统(global navigation satellite system,gnss),调频(frequency modulation,fm),近距离无线通信技术(near field communication,nfc),红外技术(infrared,ir)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
220.在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,gsm),通用分组无线服务(general packet radio service,gprs),码分多址接入(code division multiple access,cdma),宽带码分多址(wideband code division multiple access,wcdma),时分码分多址(time-division code division multiple access,td-scdma),长期演进(long term evolution,lte),bt,gnss,wlan,nfc,fm,和/或ir技术等。所述gnss可以包括全球卫星定位系统(global positioning system,gps),全球导航卫星系统(global navigation satellite system,glonass),北斗卫星导航系统(beidou navigation satellite system,bds),准天顶卫星系统(quasi-zenith satellite system,qzss)和/或星基增强系统(satellite based augmentation systems,sbas)。
221.电子设备100通过gpu,显示屏194,以及应用处理器等实现显示功能。gpu为图像处理的微处理器,连接显示屏194和应用处理器。gpu用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个gpu,其执行程序指令以生成或改变显示信息。
222.显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液
晶显示屏(liquid crystal display,lcd),有机发光二极管(organic light-emitting diode,oled),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode,amoled),柔性发光二极管(flex light-emitting diode,fled),miniled,microled,micro-oled,量子点发光二极管(quantum dot light emitting diodes,qled)等。在一些实施例中,电子设备100可以包括1个或n个显示屏194,n为大于1的正整数。
223.电子设备100可以通过isp,摄像头193,视频编解码器,gpu,显示屏194以及应用处理器等实现拍摄功能。
224.isp用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给isp处理,转化为肉眼可见的图像。isp还可以对图像的噪点,亮度,肤色进行算法优化。isp还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,isp可以设置在摄像头193中。
225.摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,ccd)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,cmos)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给isp转换成数字图像信号。isp将数字图像信号输出到dsp加工处理。dsp将数字图像信号转换成标准的rgb,yuv等格式的图像信号。在一些实施例中,电子设备100可以包括1个或n个摄像头193,n为大于1的正整数。
226.数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
227.视频编解码器用于对数字视频压缩或解压缩。电子设备100可以支持一种或多种视频编解码器。这样,电子设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,mpeg)1,mpeg2,mpeg3,mpeg4等。
228.npu为神经网络(neural-network,nn)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过npu可以实现电子设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
229.外部存储器接口120可以用于连接外部存储卡,例如micro sd卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
230.内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用(比如人脸识别功能,指纹识别功能、移动支付功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如人脸信息模板数据,指纹信息模板等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,ufs)等。
231.电子设备100可以通过音频模块170,扬声器170a,受话器170b,麦克风170c,耳机接口170d,以及应用处理器等实现音频功能。例如音乐播放,录音等。
232.音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
233.扬声器170a,也称“喇叭”,用于将音频电信号转换为声音信号。电子设备100可以通过扬声器170a收听音乐,或收听免提通话。
234.受话器170b,也称“听筒”,用于将音频电信号转换成声音信号。当电子设备100接听电话或语音信息时,可以通过将受话器170b靠近人耳接听语音。
235.麦克风170c,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风170c发声,将声音信号输入到麦克风170c。电子设备100可以设置至少一个麦克风170c。在另一些实施例中,电子设备100可以设置两个麦克风170c,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,电子设备100还可以设置三个,四个或更多麦克风170c,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。
236.耳机接口170d用于连接有线耳机。耳机接口170d可以是usb接口130,也可以是3.5mm的开放移动电子设备平台(open mobile terminal platform,omtp)标准接口,美国蜂窝电信工业协会(cellular telecommunications industry association of the usa,ctia)标准接口。
237.压力传感器180a用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180a可以设置于显示屏194。压力传感器180a的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器180a,电极之间的电容改变。电子设备100根据电容的变化确定压力的强度。当有触摸操作作用于显示屏194,电子设备100根据压力传感器180a检测所述触摸操作强度。电子设备100也可以根据压力传感器180a的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。例如:当有触摸操作强度小于第一压力阈值的触摸操作作用于短消息应用图标时,执行查看短消息的指令。当有触摸操作强度大于或等于第一压力阈值的触摸操作作用于短消息应用图标时,执行新建短消息的指令。
238.陀螺仪传感器180b可以用于确定电子设备100的运动姿态。在一些实施例中,可以通过陀螺仪传感器180b确定电子设备100围绕三个轴(即,x,y和z轴)的角速度。陀螺仪传感器180b可以用于拍摄防抖。示例性的,当按下快门,陀螺仪传感器180b检测电子设备100抖动的角度,根据角度计算出镜头模组需要补偿的距离,让镜头通过反向运动抵消电子设备100的抖动,实现防抖。陀螺仪传感器180b还可以用于导航,体感游戏场景。
239.气压传感器180c用于测量气压。在一些实施例中,电子设备100通过气压传感器180c测得的气压值计算海拔高度,辅助定位和导航。
240.磁传感器180d包括霍尔传感器。电子设备100可以利用磁传感器180d检测翻盖皮套的开合。在一些实施例中,当电子设备100是翻盖机时,电子设备100可以根据磁传感器
180d检测翻盖的开合。进而根据检测到的皮套的开合状态或翻盖的开合状态,设置翻盖自动解锁等特性。
241.加速度传感器180e可检测电子设备100在各个方向上(一般为三轴)加速度的大小。当电子设备100静止时可检测出重力的大小及方向。还可以用于识别电子设备姿态,应用于横竖屏切换,计步器等应用。
242.距离传感器180f,用于测量距离。电子设备100可以通过红外或激光测量距离。在一些实施例中,拍摄场景,电子设备100可以利用距离传感器180f测距以实现快速对焦。
243.接近光传感器180g可以包括例如发光二极管(led)和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。电子设备100通过发光二极管向外发射红外光。电子设备100使用光电二极管检测来自附近物体的红外反射光。当检测到充分的反射光时,可以确定电子设备100附近有物体。当检测到不充分的反射光时,电子设备100可以确定电子设备100附近没有物体。电子设备100可以利用接近光传感器180g检测用户手持电子设备100贴近耳朵通话,以便自动熄灭屏幕达到省电的目的。接近光传感器180g也可用于皮套模式,口袋模式自动解锁与锁屏。
244.环境光传感器180l用于感知环境光亮度。电子设备100可以根据感知的环境光亮度自适应调节显示屏194亮度。环境光传感器180l也可用于拍照时自动调节白平衡。环境光传感器180l还可以与接近光传感器180g配合,检测电子设备100是否在口袋里,以防误触。
245.指纹传感器180h用于采集指纹。电子设备100可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。
246.温度传感器180j用于检测温度。在一些实施例中,电子设备100利用温度传感器180j检测的温度,执行温度处理策略。例如,当温度传感器180j上报的温度超过阈值,电子设备100执行降低位于温度传感器180j附近的处理器的性能,以便降低功耗实施热保护。在另一些实施例中,当温度低于另一阈值时,电子设备100对电池142加热,以避免低温导致电子设备100异常关机。在其他一些实施例中,当温度低于又一阈值时,电子设备100对电池142的输出电压执行升压,以避免低温导致的异常关机。
247.触摸传感器180k,也称“触控面板”。触摸传感器180k可以设置于显示屏194,由触摸传感器180k与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180k用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180k也可以设置于电子设备100的表面,与显示屏194所处的位置不同。
248.按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。
249.马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏194不同区域的触摸操作,马达191也可对应不同的振动反馈效果。不同的应用场景(例如:时间提醒,接收信息,闹钟,游戏等)也可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。
250.指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消
息,未接来电,通知等。
251.sim卡接口195用于连接sim卡。sim卡可以通过插入sim卡接口195,或从sim卡接口195拔出,实现和电子设备100的接触和分离。电子设备100可以支持1个或n个sim卡接口,n为大于1的正整数。sim卡接口195可以支持nano sim卡,micro sim卡,sim卡等。同一个sim卡接口195可以同时插入多张卡。所述多张卡的类型可以相同,也可以不同。sim卡接口195也可以兼容不同类型的sim卡。sim卡接口195也可以兼容外部存储卡。电子设备100通过sim卡和网络交互,实现通话以及数据通信等功能。
252.本技术实施例中,通过移动通信模块150或无线通信模块160,该电子设备100可以与其他电子设备组成移动分布式系统。
253.图8是本技术实施例的电子设备100的软件结构框图。
254.分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将系统分为四层,从上至下分别为应用程序层,应用程序框架层,运行时和系统库,以及内核层。
255.应用程序层可以包括一系列应用程序包。
256.如图8所示,应用程序包可以包括ftp,图库,日历,通话,地图,导航,wlan,蓝牙,音乐,视频,短信息等应用程序(也可以称为应用)。
257.应用程序框架层为应用程序层的应用程序提供应用编程接口(application programming interface,api)和编程框架。应用程序框架层包括一些预先定义的函数。
258.如图8所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
259.窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
260.内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
261.视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
262.电话管理器用于提供电子设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。
263.资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
264.通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话界面形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
265.运行时包括核心库和虚拟机。运行时负责安卓系统的调度和管理。
266.核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
267.应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
268.系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(media libraries),三维图形处理库(例如:opengl es),二维图形引擎(例如:sgl)等。
269.表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了二维(2-dimensional,2d)和三维(3-dimensional,3d)图层的融合。
270.媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:mpeg4,h.264,mp3,aac,amr,jpg,png等。
271.三维图形处理库用于实现3d图形绘图,图像渲染,合成,和图层处理等。
272.二维图形引擎是2d绘图的绘图引擎。
273.本技术实施例中,该系统库中可以包含有分布式反向地址解析协议库(distributed reverse address resolution protocol,drarp),用于支持本技术实施例的反向地址解析协议方法,提供根据移动分布式系统中目标电子设备的mac地址,快速解析其ip地址的能力。还可以提供快速感知移动分布式系统中其他电子设备在线信息的能力。
274.该分布式反向地址解析协议库工作在tcp/ip四层概念模型的数据链路层,对外提供drarp接口。tcp/ip四层概念模型中的其它层通过调用该drarp接口,输入某电子设备的标识信息(设备名、设备标识或设备的mac地址等),可以得到该电子设备的最新的ip地址。
275.内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动,虚拟卡驱动。
276.可以理解的是,网络协议,例如tcp/ip四层概念模型中各层的协议,一般均部署在电子设备100的系统库中。然而在实际应用中,根据需求不同,也可以将不同的协议部署在电子设备100的其他层级,此处不作限定。
277.下面结合捕获拍照场景,示例性说明电子设备100软件以及硬件的工作流程。
278.当触摸传感器180k接收到触摸操作,相应的硬件中断被发给内核层。内核层将触摸操作加工成原始输入事件(包括触摸坐标,触摸操作的时间戳等信息)。原始输入事件被存储在内核层。应用程序框架层从内核层获取原始输入事件,识别该输入事件所对应的控件。以该触摸操作是触摸单击操作,该单击操作所对应的控件为相机应用图标的控件为例,相机应用调用应用框架层的接口,启动相机应用,进而通过调用内核层启动摄像头驱动,通过摄像头193捕获静态图像或视频。
279.下面结合上述示例性电子设备100的软硬件结构,对本技术实施例中反向地址解析方法进行具体描述:
280.局域网中多个电子设备组成了移动分布式系统,若其中某个电子设备(下面称为发送端电子设备)需要与另外的电子设备(下面称为目标电子设备)建立通信连接。例如,发送端电子设备中的ftp应用程序需要从目标电子设备中读取文件。则发送端电子设备需要得到该目标电子设备的ip地址。
281.此时,根据数据链路层的本地drarp表项中是否记录有目标电子设备的ip地址和mac地址,可能会出现下列3种情况:
282.情况1:本地drarp表项中记录有目标电子设备的ip地址和mac地址;
283.若此前,目标电子设备与发送端电子设备建立过通信连接,则本地drarp表项和本地arp表项中都会有对应关系记录条目记录目标电子设备的ip地址和mac地址。但之后,目标电子设备与发送端电子设备在一段时间内没有建立通信连接,发送端电子设备的本地arp表项中该目标电子设备的对应关系记录条目会老化被删除。目标电子设备的ip地址也可能了发生过变化。例如,目标电子设备离开过该局域网,再次进入该局域网时,网关服务器为该目标电子设备分配的ip地址与该目标电子设备离开该局域网之前的ip地址不同。再如,在局域网中进行过ip地址重新分配,网关服务器为该目标电子设备重新分配的ip地址与在ip地址重新分配前该目标电子设备的ip地址不同等等。
284.在现有技术中,此时,发送端电子设备只能在应用层和应用程序的服务器进行多次交互来重新获取到该目标电子设备的ip地址。
285.本技术实施例中,发送端电子设备不需要在应用层进行多次交互,也不需要依赖于应用程序的服务器,可以直接在数据链路层,取得该目标电子设备的ip地址,然后继续与该目标电子设备建立通信连接。
286.具体的,下面结合tcp/ip四层概念模型,以如下场景a为例,对本技术实施例中电子设备a在tcp/ip四层概念模型中的信令交互过程进行描述:
287.场景a:电子设备a中的应用程序a与电子设备d建立过通信连接,电子设备a的本地drarp表项中保存有有电子设备d的ip地址和mac地址的对应关系条目。电子设备a的本地arp表项中记录的电子设备d的ip地址和mac地址的对应关系条目已老化被删除。一段时间后,电子设备a中的应用程序a想要读取电子设备d中的文件。其中,电子设备a即为上述发送端电子设备,电子设备d即为上述目标电子设备。
288.如图9所示,为本技术实施例中电子设备在tcp/ip四层概念模型中的一个示例性信令交互示意图。
289.该信令交互过程分为3个阶段:
290.第一阶段为步骤s901至s902,电子设备a的应用层被应用程序调用读取电子设备d的文件,电子设备a在应用层调用drarp接口,取得电子设备d最新的ip地址。
291.第二阶段为步骤s903至s908,为电子设备a的应用层调用drarp接口后,电子设备a在数据链路层为实现drarp接口提供的功能进行的操作,然后返回电子设备d最新的ip地址到应用层。该drarp接口为本技术实施例中分布式反向地址解析协议库提供的功能接口,用于根据输入的电子设备的标识信息,在数据链路层确定该电子设备最新的ip地址。
292.第三阶段为步骤s909至s918,为电子设备a的应用层得到电子设备d最新的ip地址后,与电子设备d建立通信连接的过程。
293.下面对各阶段的各步骤分别进行具体描述:
294.第一阶段:
295.s901、电子设备a的应用层接口被应用程序a调用,读取电子设备d中的文件;
296.可选的,电子设备a可以在被应用程序a调用读取电子设备d中的文件时,直接执行步骤s902。
297.可选的,电子设备a中在应用层也可以保存有一个记录表,用于记录此前与电子设备a建立过通信连接的电子设备的mac地址和ip地址的对应关系。电子设备a的应用层被应用程序a调用,读取电子设备d中的文件时,先使用该记录表中记录的电子设备d的ip地址和
mac地址,尝试与电子设备d建立连接,失败后,再执行步骤s902,此处不作限定。如图10所示,为本技术实施例中电子设备在tcp/ip四层概念模型中的另一个示例性信令交互示意图。
298.s1001、电子设备a的应用层调用传输层接口与第一ip地址的电子设备建立通信连接,该第一ip地址为电子设备a应用层的记录表中记录的电子设备d的ip地址;
299.可以理解的是,该第一ip地址为发送端电子设备记录的上一次与该目标电子设备建立通信连接时该目标电子设备的ip地址,该第一ip地址也可称为纪录ip地址。
300.s1002、电子设备a在传输层完成建联请求报文的传输层封装;
301.s1003、电子设备a在传输层调用网络层接口将该建联请求报文发送给第一ip地址的电子设备;
302.s1004、电子设备a在网络层完成建联请求报文的网络层封装;
303.s1005、电子设备a在网络层调用数据链路层接口将建联请求报文发送给该第一ip地址的电子设备;
304.s1006、电子设备a在数据链路层查找本地arp表项,失败;
305.本技术实施例中,查找本地arp表项失败的一种可能情况为:由于电子设备a有段时间没有与电子设备d建立过通信连接,本地arp表项中电子设备d的对应关系记录条目已经老化被删除。
306.如果电子设备a在数据链路层查找本地arp表项,得到了该第一ip地址对应的mac地址,但该第一ip地址对应的mac地址不是电子设备d的ip地址,则表示该第一ip地址已经被分配到了其他的电子设备,且该电子设备刚刚与电子设备a建立过通信连接。电子设备a可以执行步骤s1008。
307.如果电子设备a在数据链路层查找本地arp表项,得到了该第一ip地址对应的mac地址,且该第一ip地址对应的mac地址就是电子设备d的mac地址,则表示电子设备a刚刚使用该第一ip地址与电子设备d建立过通信连接,该第一ip地址就是电子设备d最新的ip地址。电子设备a可以将该第一ip地址作为第二ip地址,直接执行步骤s914。该第二ip地址为电子设备d最新的ip地址。
308.可选的,在实际应用中,在执行步骤s1006后,也可以不再执行步骤s1007和s1008,直接执行步骤s1009,此处不作限定。
309.s1007、电子设备a在数据链路层发送arp报文,广播查询该第一ip地址对应的mac地址;
310.查询本地apr表项失败后,电子设备a可以在数据链路层发送arp报文,广播查询该第一ip地址对应的mac地址。
311.s1008、电子设备a获取不到第一ip地址对应的mac地址,或获取到的mac地址与电子设备d的mac地址不同;
312.若该第一ip地址没有被网关服务器分配,则电子设备a在局域网中发送arp报文后,获取不到该第一ip地址对应的mac地址;若该第一ip地址被网关服务器分配给了局域网中的另一个电子设备c,则电子设备a在局域网中发送arp报文后,会得到电子设备c的mac地址,电子设备a能确定获取到的电子设备c的mac地址与需要通信的电子设备d的mac地址不同。电子设备a可以执行步骤s1009。
313.若电子设备a获取到第一ip地址对应的mac地址,且该mac地址为电子设备d的mac地址,则电子设备a可以将该第一ip地址作为第二ip地址,直接执行步骤s914。
314.s1009、电子设备a在数据链路层返回建立连接失败消息到网络层;
315.s1010、电子设备a在网络层返回建立连接失败消息到传输层;
316.s1011、电子设备a在传输层返回建立连接失败消息到应用层。
317.电子设备a在应用层接收到建立连接失败消息后,在现有技术中,电子设备a只能停止通信过程,或通过应用层的多次交互,从电子设备a和电子设备d共同运行的服务器中取得电子设备d的ip地址再重新建立连接。
318.本技术实施例中,电子设备a在应用层接收到建立连接失败消息后,可以不依赖服务器,直接执行步骤s902,在数据链路层取得电子设备d的ip地址。
319.s902、电子设备a在应用层调用drarp接口获取第二ip地址,该第二ip地址为电子设备d最新的ip地址;
320.drarp接口为上述图8所示软件架构中分布式反向地址解析协议库提供的接口,可以输入某电子设备的标识信息,得到该电子设备最新的ip地址。
321.由于该分布式反向地址解析协议库工作在数据链路层,因此,电子设备a在应用层调用该drarp接口后,电子设备a开始在数据链路层进行后续工作。
322.可以理解的是,电子设备a在调用drarp接口获取电子设备d的ip地址时,会携带电子设备d的标识信息。该电子设备d的标识信息可以为电子设备d的设备名称、电子设备d的设备标识、电子设备d的mac地址等,此处不作限定。
323.第二阶段:
324.在该第二阶段中,电子设备a可以先执行步骤s903,确定本地drarp表项中没有第二ip地址后,再执行步骤s905~s907,通过drarp交互过程获取第二ip地址。也可以从步骤s902直接执行步骤s905~s907,此处不作限定。
325.下面对第二阶段的各步骤分别进行描述:
326.s903、电子设备a在数据链路层查找本地drarp表项,确定是否有第二ip地址;
327.电子设备a在应用层调用drarp接口获取第二ip地址后,电子设备a可以先在数据链路层查找本地drarp表项,确定是否有第二ip地址。
328.具体的,电子设备a可以确定本地drarp表项中是否有未老化的包含有该目标电子设备的ip地址的对应关系条目,其中,老化的对应关系条目表示无效,未老化的对应关系条目表示有效;
329.可选的,电子设备a可以确定本地drarp表项中电子设备d的mac地址所在的对应关系条目是否老化。
330.若电子设备d的mac地址所在的对应关系条目没有老化,则表示本地drarp表项中有未老化的包含有该目标电子设备的ip地址的对应关系条目,即本地drarp表项中有电子设备d最新的ip地址,也即有该第二ip地址。
331.若电子设备d的mac地址所在的对应关系条目已经老化,则表示本地drarp表项中没有未老化的包含有该目标电子设备的ip地址的对应关系条目,即本地drarp表项中没有电子设备d最新的ip地址,也即没有该第二ip地址。
332.可以理解的是,电子设备a调用drarp接口获取第二ip地址时,携带有电子设备d的
标识信息。
333.可选的,若该电子设备d的标识信息为电子设备d的mac地址,则电子设备a可以直接根据该电子设备d的mac地址查找本地drarp表项。
334.可选的,若该电子设备d的标识信息不是电子设备d的mac地址,而是一种其他的设备标识,例如为电子设备d的设备名称等,则本地drarp表项的对应关系条目中还可以包含该电子设备d的设备标识。电子设备a可以通过确定该本地drarp表项中电子设备d的设备标识所在的对应关系条目是否老化,来确定是否有第二ip地址。
335.可选的,若该电子设备d的标识信息不是电子设备d的mac地址,而是一种其他的设备标识,例如为电子设备d的设备名称等,则电子设备a在数据链路层查找本地drarp表项之前,可以先根据电子设备d的设备标识,查找电子设备a中的设备信息表,得到电子设备d的mac地址。该设备信息表中可以包含电子设备d的标识信息和电子设备d的mac地址的对应关系。
336.s904、确定有,电子设备a在数据链路层将第二ip地址返回给应用层;
337.在电子设备a通过查找本地drarp表项,确定本地drarp表项中有第二ip地址时,电子设备a在数据链路层将该第二ip地址返回给应用层。
338.s905、电子设备a在数据链路层发起drarp交互过程,根据电子设备d的mac地址,获取该第二ip地址;
339.在电子设备a在应用层调用drarp接口获取第二ip地址时,或电子设备a在数据链路层查找本地drarp表项确定没有第二ip地址时,电子设备a可以在数据链路层发起drarp交互过程,根据电子设备d的mac地址,获取该第二ip地址。
340.具体的,电子设备a在数据链路层发起的drarp交互过程可以如图11所示。如图11所示,为本技术实施例中反向地址解析方法的一个信令交互示意图。其中电子设备a为发送端电子设备,电子设备d为目标电子设备。
341.s1101、发送端电子设备构造第一请求包;
342.该第一请求包的以太网载荷中包含目标电子设备的mac地址。该第一请求包用于请求目标电子设备回复该目标电子设备的ip地址。
343.应答该第一请求包的是第一应答包。该第一应答包用于应答该第一请求包。该第一应答包的以太网载荷中包含该目标电子设备的ip地址。
344.该第一请求包和第一应答包都可以为数据链路层的数据帧。由于该第一请求包为一种广播数据包,因此,该第一请求包的以太网头部包含以太网广播地址。该第一应答包应答该第一请求包,因此,只需要发送到该发送端电子设备,因此,该第一应答包的以太网头部包含该发送端电子设备的mac地址。
345.为便于其他电子设备回复该第一请求包,该第一请求包的以太网载荷中还可以包含该发送端电子设备的ip地址和mac地址。为便于发送端电子设备校验收到的第一应答包是否正确,该第一应答包的以太网载荷中还可以包含该目标电子设备的mac地址。
346.可选的,该第一请求包的以太网头部或以太网载荷中携带有请求标识,该请求标识用于标识该第一请求包用于根据目标电子设备的mac地址请求目标电子设备的ip地址。相应的,该第一应答包的以太网头部或以太网载荷中也可以携带有应答标识,该应答标识用于表示该第一应答包用于应答该第一请求包。
347.可以理解的是,第一请求包满足上述需求即可,而并不限定其具体是什么形式,或者其分组格式是怎样的。该第一请求包可以为全新定义的一种数据包,也可以是在现有通信协议数据包的基础上进行的修改,此处不作限定。
348.可选的,该第一请求包的以太网载荷中携带的目标电子设备的mac地址可以只有1个,可以为多个,也可以为空。当目标电子设备的mac地址只有一个时,若携带的是某个电子设备的mac地址,则可以表示只请求这一个电子设备的ip地址,若携带的是某网段的以太网广播地址,则可以表示请求该网段中所有电子设备的ip地址;当目标电子设备的mac地址有多个时,可以表示同时请求这多个电子设备的ip地址;当目标电子设备的mac地址为空时,可以表示请求网络中收到该第一请求包的电子设备均回复自己的ip地址。此处不作限定。
349.可选的,第一请求包中可以使用不同的请求标识来区分请求一个、多个还是局域网中全部电子设备的ip地址;也可以使用相同的请求标识,仅根据该第一请求包中携带的mac地址的数量以及mac地址的值,来区分请求一个、多个还是局域网中全部电子设备的ip地址。此处不作限定。相应的,第一应答包中可以使用不同的应答标识来区分回复不同类型的第一请求包,也可以使用相同的应答标识,此处不作限定。
350.可选的,该请求标识可以位于第一请求包的以太网头部,也可以位于第一请求包的以太网载荷中,此处不作限定。该应答表示可以位于第一应答包的以太网头部,也可以为与第一应答包的以太网载荷中,此处不作限定。
351.优选的,该第一请求包可以在tcp/ip协议中的arp/rarp分组格式的基础上进行修改,通过重新定义arp/rarp分组格式中现有字段取值含义、扩展现有字段取值范围、增加新字段等等方式,来达成该第一请求包的需求。
352.示例性的,作为一种修改arp/rarp分组格式来达成该第一请求包需求的方式,可以通过对现有字段取值范围和取值含义的扩展,得到一种第一请求包。本技术的一些实施例中,可以在维持如图4所示的现有arp/rarp分组格式的结构不变的情况下,对arp/rarp分组格式中的操作字段进行扩展。如图12所示,为本技术实施例中对rarp分组格式进行扩展,得到第一请求包和第一应答包分组格式的一个示例性示意图。该第一应答包用于对该第一请求包进行应答。其中操作字段取值为5时,可以作为请求标识,可以表示该数据包为第一请求包,用于根据mac地址请求ip地址。其中操作字段取值为6时,可以作为应答标识,可以表示该数据包为第一应答包,用于回复第一请求包。当其中操作字段值为5,目的以太网地址字段中为目的电子设备的mac地址时,可以表示请求该目的电子设备的mac地址。当该操作字段值为5,目的以太网地址字段中为全1的广播mac地址时,可以表示请求局域网中所有电子设备的ip地址。
353.除了对现有协议中数据包的分组格式进行修改得到该第一请求包和第一应答包外,也可以定义新的分组格式来得到该第一请求包和第一应答包。
354.示例性的,如图13所示,为本技术实施例中重新设计的第一请求包和第一应答分组格式的一个示例性示意图。该分组格式包括以太网目的地址、以太网源地址、帧类型、发送端以太网地址、发送端ip地址、目的以太网地址和目的ip地址字段。其中以太网目的地址、以太网源地址、发送端以太网地址、发送端ip地址、目的以太网地址和目的ip地址字段的定义可以与前述arp/rarp分组格式中定义相同,此处不作赘述。可以通过对帧类型字段的取值进行重新定义,作为请求标识或应答标识,从而表明该数据包的类型是第一请求包
还是第一应答包。例如,可以定义当帧类型的值为a1时,作为请求标识,该数据包为第一请求包,当帧类型的值为b1时,作为应答标识,该数据包为第一应答包。a1与b1的值不同,且不与现有帧类型的值相冲突。当其中帧类型值为a1,目的以太网地址字段中为目的电子设备的mac地址时,可以表示请求该目的电子设备的mac地址。当该帧类型值为a1,目的以太网地址字段中为全1的广播mac地址时,可以表示请求局域网中所有电子设备的ip地址。
355.示例性的,第一请求包中可以携带多个mac地址。如图14所示,为本技术实施例中重新设计的第一请求包和第一应答分组格式的另一个示例性示意图。该分组格式为可扩展的格式,可以根据需求,携带有多个mac地址。其中各字段定义与图13所示分组格式中字段定义类似,此处不作赘述。当其中帧类型值为a1时,作为请求标识,第一请求包中可以有多个目的以太网字段,并可以根据需求进行扩展,多个目标电子设备的mac地址可以分别放入其中,表示请求这多个电子设备的ip地址。当其中帧类型值为b1时,作为请求标识,该第一应答包中可以有多个发送端ip地址字段,并可以根据需求进行扩展,将回复第一请求包的电子设备的多个ip地址都放入其中。
356.示例性的,第一请求包中可以使用不同的请求标识来区分请求一个、多个还是局域网中全部电子设备的ip地址。如图15所示,为本技术实施例中重新设计的第一请求包和第一应答分组格式的另一个示例性示意图。在该分组格式中,可以使用帧类型字段值为a2作为请求标识来表示该第一请求包是用于请求多个目标电子设备的ip地址,其中携带有多个目标电子设备的mac地址。与图13所示的只携带有一个mac地址的第一请求包使用不同的帧类型字段值,即使用不同的请求标识。同理,可以使用帧类型字段值为b2作为请求标识来表示为携带有目的电子设备的多个ip地址的第一应答包,与图13所示的只携带有一个目的电子设备的ip地址的第一应答包使用不同的帧类型字段值。
357.示例性的,第一请求包中可以携带有空的目标电子设备的mac地址,用来表示请求局域网中所有其他电子设备的ip地址。如图16所示,为本技术实施例中重新设计的第一请求包和第一应答分组格式的另一个示例性示意图。在该分组格式中,可以使用帧类型字段值为a3作为请求标识来表示该第一请求包是用于请求局域网中所有其他电子设备的ip地址,其中携带空的目标电子设备的mac地址。与图13所示的只携带有一个mac地址的第一请求包和图14所示的携带有多个mac地址的第一请求包均使用不同的帧类型字段值,即使用不同的请求标识。同理,可以使用帧类型字段值为b3作为请求标识来表示为是对请求局域网中所有其他电子设备的ip地址的第一请求包进行回复的第一应答包。
358.可以理解的是,此处仅仅是设计第一请求包和第一应答包分组格式的一些示例,还可以很多种设计第一请求包和第一应答包分组格式的方式,此处不作限定。
359.可选的,作为本技术另一个实施例,若第一请求包用于请求局域网中所有其他电子设备的ip地址,则此时该第一请求包不仅可用于获取其他电子设备的ip地址,而且可以作为一种确定局域网中其他电子设备的在线信息的数据包。在接收到其他电子设备返回的第一应答包时,该发送端电子设备可以刷新纪录的该目标电子设备的在线状态为在线。其中,该目标电子设备的在线状态为在线表示该目标电子设备处于可建立通信连接的状态。同时,发送端电子设备可以刷新没有回复第一应答包的电子设备的在线状态为离线。其中,电子设备的在线状态为离线表示该电子设备处于不可建立通信连接的状态。因此,上述图8所示软件架构中分布式反向地址解析协议库提供的drarp接口,还可以实现根据调用,反馈
局域网中电子设备的在线状态的功能。
360.s1102、发送端电子设备在网络中广播该第一请求包;
361.发送端电子设备构造完成第一请求包后,会通过数据链路层在网络中广播该第一请求包。
362.可以理解的是,一般情况下,发送端电子设备会在该发送端电子设备所在的局域网中广播该第一请求包。广播该第一请求包可以使局域网中其他电子设备均收到该第一请求包。一般的,需要广播某个数据包,可以将该数据包的目的mac地址设置为全1。
363.可选的,发送端电子设备也可以在不是自己所在的局域网中广播该第一请求包。此时,需要通过网关服务器进行代理转发。具体的,作为本技术另一个实施例,当发送端电子设备与目的电子设备不在同一个局域网时,根据分布式反向地址解析协议库的规定,局域网中的网关服务器接收到该第一请求包后,可以代理转发该第一请求包到该网关服务器连接的其他局域网中。在接收到位于其他局域网中的目的电子设备反馈的第一应答包后,该网关服务器可以将该第一应答包代理转发到该发送端电子设备。
364.可选的,该第一请求包的以太网头部或以太网载荷中可以包含标识是否需要网关服务器对第一请求包进行代理转发的代理转发标识。以如图13所示的第一请求包和第一应答包的分组格式为例,该分组格式的帧类型字段中还可以有值a4和b4,分别作为第一请求包和第一应答包中的代理转发标识。当该帧类型字段的值为a4时,作为第一请求包的代理转发标识,表示该第一请求包为一个需要网关服务器进行代理转发的请求包。同理,当该帧类型字段的值为b4时,作为第一应答包的代理转发标识,表示该第一应答包为一个需要网关服务器进行代理转发的应答包。否则,若第一请求包或第一应答包中没有包含需要网关服务器进行代理转发的代理转发标识,网关服务器可以不转发该第一请求包或第一应答包。可以理解的是,第一请求包或第一应答包中还可以有很多用于表示该代理转发标识的方式,例如可以增加一个代理标识字段,在该代理标识字段用用不同的值来表示是否需要网关服务器进行代理转发等,此处不作限定。
365.s1103、目标电子设备接收到该第一请求包后,解析该第一请求包,确定该第一请求包是用于请求自己的ip地址;
366.发送端电子设备在局域网中广播该第一请求包后,局域网中其他电子设备均会接收到该第一请求包,其中包括目标电子设备。目标电子设备接收到该第一请求包后,会解析该第一请求包,从而确定该第一请求包是用于请求自己的ip地址。
367.具体的,目标电子设备解析该第一请求包后,可以根据该第一请求包中的请求标识,确定该第一请求包是用于请求ip地址。又可以根据该第一请求包的以太网载荷中包含的目标电子设备的mac地址,确定该mac地址与自己的mac地址相同,从而确定该第一请求包是用于请求自己的ip地址。
368.可以理解的是,若该第一请求包中携带有多个mac地址,则只需要有一个mac地址与自己的mac地址相同,该目标电子设备即可确定该第一请求包是用于请求自己的ip地址。若该第一请求包中携带的是以太网广播地址或携带的是空的mac地址,表示的是请求局域网中所有电子设备的ip地址,该目标电子设备也可以确定该第一请求包是用于请求自己的ip地址。
369.示例性的,若接收到的第一请求包为图12所示的第一请求包,目标电子设备解析
该第一请求包后,得到操作字段值为6,则可以确定接收到的第一请求包用于请求ip地址。又可以得到目的以太网地址字段的值与自己的mac地址相同,则可以确定该第一请求包是用于请求自己的ip地址。
370.s1104、目标电子设备构造第一应答包;
371.目标电子设备在确定接收到的第一请求包是用于请求自己的ip地址后,会构造第一应答包。对于第一应答包的描述可以参阅s1101,此处不再赘述。
372.可以理解的是,第一应答包满足s1101中对第一应答包的描述需求即可,而并不限定其具体是什么形式,或者其分组格式是怎样的。该第一应答包可以为全新定义的一种数据包,也可以是在现有通信协议数据包的基础上进行的修改,此处不作限定。
373.优选的,该第一应答包可以在tcp/ip协议中的arp/rarp分组格式的基础上进行修改,通过重新定义arp/rarp分组格式中现有字段取值含义、扩展现有字段取值范围、增加新字段等等方式,来达成该第一应答包的需求。
374.示例性的,作为一种修改arp/rarp分组格式来达成该第一应答包需求的方式,如图12所示,其中操作字段取值为6时,作为应答标识,可以表示该数据包为第一应答包,用于回复第一请求包。
375.示例性的,作为一种重新设计的分组格式来达成该第一应答包需求的方式,如图13所示,其中帧类型字段值为b1时,作为应答标识,可以表示该数据包为第一应答包,用于回复第一请求包。
376.示例性的,若目标电子设备有多个ip地址,可以均在该第一应答包中进行回复。如图14所示,作为另一种重新设计的分组格式来达成该第一应答包需求的方式,当帧类型字段值为b1时,作为应答表示,可以表示该数据包为第一应答包,该第一应答包中的发送端ip地址字段可以有多个,并且可以根据需求进行扩展,可以在其中携带目标电子设备的多个ip地址。
377.示例性的,第一应答包中可以含有不同的应答标识来分别表示对请求一个电子设备的ip地址、多个电子设备的ip地址还是局域网中全部电子设备的ip地址的第一请求包的回复。如图16所示,作为一个重新设计的分组格式来达成该第一应答包需求的方式,可以使用帧类型字段值为b3的第一应答包对请求局域网中全部电子设备的ip地址的第一请求包进行回复。
378.可以理解的是,具体的第一请求包和第一应答包的分组格式可以在分布式反向地址解析协议库中根据实际需求进行规定,本技术实施例中仅是示例性的举例,此处不作限定。
379.s1105、目标电子设备返回该第一应答包给该发送端电子设备;
380.目标电子设备在构造完成第一应答包后,可以返回该第一应答包给该发送端电子设备。由于目标电子设备已经接收到了发送端电子设备发送的第一请求包,所以该目标电子设备已经能确定该发送端电子设备的ip地址和mac地址。因此,为了节省信令资源,该目标电子设备回复第一应答包时可以使用单播的方式,只发送给该发送端电子设备,而不再需要使用广播的方式。
381.s1106、发送端电子设备解析该第一应答包,得到该目标电子设备的ip地址;
382.发送端电子设备接受到目标电子设备回复的第一应答包后,可以解析该第一应答
包,得到该目标电子设备的ip地址。
383.发送端电子设备得到该目标电子设备的ip地址后,根据目标电子设备的ip地址和mac地址,发送端电子设备可以继续与目标电子设备建立通信连接。
384.发送端电子设备得到目标电子设备的ip地址后,可以存储该目标电子设备的ip地址。可选的,发送端电子设备可以更新本地arp表项,在其中记录目标电子设备的mac地址和目标电子设备的ip地址的对应关系。可选的,发送端电子设备可以更新本地drarp表项,在其中记录目标电子设备的mac地址和目标电子设备的ip地址的对应关系。可选的,发送端电子设备可以更新本地应用层的记录表,在其中记录目标电子设备与目标电子设备的ip地址的对应关系。发送端电子设备还可以在其他需要的位置存储该目标电子设备的ip地址,此处不作限定。
385.s1107、局域网中其他电子设备接收到该第一请求包后,解析该第一请求包,确定不是请求自己的ip地址;
386.步骤s1102中发送端电子设备在局域网中广播该第一请求包后,局域网中其他电子设备也会接收到该第一请求包。其他电子设备接收到该第一请求包后,会解析该第一请求包,从而确定该第一请求包不是用于请求自己的ip地址。
387.具体的,其他电子设备解析该第一请求包后,可以根据该第一请求包中表示请求目标电子设备的ip地址的标识,确定该第一请求包是用于请求ip地址。又可以根据其中携带的目标电子设备的mac地址,确定该mac地址与自己的mac地址不同,从而确定该第一请求包不是用于请求自己的ip地址。
388.s1108、该其他电子设备丢弃该第一请求包。
389.在局域网中该其他电子设备确定接收到的该第一请求包不是用于请求你自己的ip地址时,会丢弃该第一请求包。
390.本技术实施例中,在移动分布式系统构成的局域网中,发送端电子设备已知目标电子设备的mac地址,但是不知道目标电子设备的ip地址时,发送端电子设备可以在数据链路层广播携带有目标电子设备的mac地址的第一请求包到局域网中。当目标电子设备接收到该第一请求包后,解析该第一请求包确定是请求自己的ip地址时,会发送携带有自己ip地址的第一应答包到发送端电子设备。发送端电子设备可以解析该第一应答包得到目标电子设备的ip地址。实现了在分布式系统中,不需要服务器的支持,快速获取目标电子设备的ip地址。
391.通过该图11所示的drarp交互过程,电子设备a根据电子设备d的mac地址,即可得到电子设备d最新的ip地址。
392.下面结合具体的应用场景,对图11所示的反向地址解析方法进行描述。
393.请参阅图17,为本技术实施例中反向地址解析方法一个示例性信息流交互示意图。
394.假设第一请求包和第一应答包的分组格式是如图12所示的对rarp分组格式进行扩展得到的。电子设备a、电子设备b、电子设备c和电子设备d组成移动分布式系统,各电子设备中均存储有用于构造和解析第一请求包和第一应答包的第一函数。其中,电子设备d是在移动离开该局域网之后,再次加入进来的,因此,电子设备a的本地drarp表项中记录有电子设备d的mac地址,但是无法确定电子设备d最新的ip地址。
395.此时,电子设备a中的应用程序文件传输协议(file transfer protocol,ftp)需要从电子设备d中获取文件。
396.根据图9所示实施例中的步骤s902,当电子设备a中的应用层接口被应用程序ftp调用,从电子设备d中获取文件时,电子设备a在应用层调用drapr接口获取电子设备d最新的ip地址;
397.根据图9所示实施例中的步骤s905,电子设备a在应用层调用drapr接口输入电子设备d的mac地址:44-44-44-44-44-44后,电子设备a会在数据链路层发起drarp交互过程,根据该电子设备d的mac地址:44-44-44-44-44-44,得到电子设备d最新的ip地址:1.1.1.4。
398.该drarp交互过程具体可以为:
399.根据图11所示实施例中步骤s1101,电子设备a在数据链路层调用第一函数构造第一请求包,该第一请求包中包含电子设备d的mac地址:44-44-44-44-44-44;
400.根据图11所示实施例中步骤s1102,电子设备a广播该第一请求包,通过电子设备a中的以太网驱动程序,将该第一请求包1701发送到局域网内的每个电子设备上:电子设备b、电子设备c和电子设备d。
401.示例性的,如图18所示,为本技术实施例中第一请求包1701的一个示例性示意图。其中,以太网目的地址字段的值为十六进制值ff-ff-ff-ff-ff-ff,表示为全1的广播地址。以太网源地址字段的值为11-11-11-11-11-11,是构造该第一请求包的电子设备a的mac地址。帧类型字段值为0x0806,表示后面数据的类型是对rarp请求或应答消息的一种扩展。硬件类型字段值为1,表示为硬件地址的类型为以太网地址。协议类型字段值为0x0800,表示协议地址的类型是ip地址。硬件地址长度值为6,协议地址长度值为4,分别为mac地址的长度和以太网ip地址的长度。操作字段值为5,表示该数据包为一个第一请求包,用于根据目标电子设备的mac地址请求目标电子设备的ip地址。发送端以太网地址字段值为11-11-11-11-11-11,是发送该第一请求包的电子设备a的mac地址。发送端ip地址字段值为1.1.1.1,是发送该第一请求包的电子设备a的ip地址。目的以太网地址字段值为44-44-44-44-44-44,是该第一请求包想要获取的目标电子设备的mac地址,也即电子设备d的mac地址。目的ip地址字段的值为空。
402.根据图11所示实施例中步骤s1107,电子设备b和电子设备c通过以太网驱动程序,接收到该第一请求包1701后,调用第一函数解析该第一请求包1001。确定该第一请求包操作字段的值为6,是用于请求目标电子设备的ip地址。目标以太网地址字段的值为44-44-44-44-44-44,与自己的mac地址的值22-22-22-22-22-22和33-33-33-33-33-33不同,确定该第一请求包1701不是用于请求自己的ip地址。
403.根据图11所示实施例中步骤s1108,电子设备b和电子设备c丢弃该第一请求包1701。
404.根据图11所示实施例中步骤s1103,电子设备d使用以太网驱动程序接收到该第一请求包1701后,调用第一函数解析该第一请求包1701。确定该第一请求包操作字段的值为6,是用于请求目标电子设备的ip地址。目标以太网地址字段的值为44-44-44-44-44-44,与自己的mac地址的值44-44-44-44-44-44相同,确定该第一请求包1701是用于请求自己的ip地址。
405.根据图11所示实施例中步骤s1104,电子设备d调用第一函数构造第一应答包,在
该第一应答包中携带自己的ip地址:1.1.1.4。
406.根据图11所示实施例中步骤s1105,电子设备d通过以太网驱动程序发送该第一应答包1702到电子设备a。
407.示例性的,如图19所示,为本技术实施例中第一应答包1702的一个示例性示意图。其中,以太网目的地址字段的值为十六进制值11-11-11-11-11-11,是接收该第一应答包1702的电子设备a的mac地址。以太网源地址字段的值为44-44-44-44-44-44,是构造该第一应答包的电子设备d的mac地址。帧类型字段值为0x0806,表示后面数据的类型是对rarp请求或应答消息的一种扩展。硬件类型字段值为1,表示为硬件地址的类型为以太网地址。协议类型字段值为0x0800,表示协议地址的类型是ip地址。硬件地址长度值为6,协议地址长度值为4,分别为mac地址的长度和以太网ip地址的长度。操作字段值为6,表示该数据包为一个第一应答包,用于根据第一请求包1001回复目标电子设备的ip地址。发送端以太网地址字段值为44-44-44-44-44-44,是发送该第一应答包1002的电子设备d的mac地址。发送端ip地址字段值为1.1.1.4,是发送该第一请求包的电子设备d的ip地址,也即第一请求包1001请求的ip地址。目的以太网地址字段值为11-11-11-11-11-11,是接收该第一应答包1002的电子设备a的mac地址。目的ip地址字段的值为1.1.1.1,是接收该第一应答包1002的电子设备a的ip地址。
408.根据图11所示实施例中步骤s1106,电子设备a使用以太网驱动程序接收到该第一应答包1002后,调用第一函数解析该第一应答包1702,得到电子设备d的ip地址:1.1.1.4。
409.可选的,作为本技术另一个实施例,在步骤s905中,电子设备a在数据链路层发起drarp交互过程,根据电子设备d的mac地址,获取该第二ip地址。在实际应用中,可能此时电子设备d不在电子设备a所在局域网中,电子设备a根据该drarp交互过程获取不到第二ip地址。此时,电子设备a可以再次按照图11所示的drarp交互过程,广播用于获取局域网所有电子设备的ip地址的第一请求包,根据回复的第一响应包确定局域网中当前在线的电子设备,并获取到局域网中所有在线的电子设备的ip地址。具体过程可参阅图11所示实施例中的描述,此处不再赘述。
410.s906、电子设备a在数据链路层更新本地drarp表项,记录该第二ip地址与电子设备d的mac地址的对应关系;
411.s907、电子设备a在数据链路层将该第二ip地址返回给应用层。
412.第三阶段:
413.s908、电子设备a在应用层使用第二ip地址调用传输层接口与该第二ip地址的电子设备建立连接;
414.s909、电子设备a在传输层完成建联请求报文的传输层封装;
415.s910、电子设备a在传输层调用网络层接口将建联请求报文发送给该第二ip地址的电子设备;
416.s911、电子设备a在网络层完成建联请求报文的网络层封装;
417.s912、电子设备a在网络层调用数据链路层接口将建联请求报文发送给第二ip地址的电子设备;
418.s913、电子设备a在数据链路层查找本地arp表项,确定该第二ip地址对应的是电子设备d的mac地址;
或“如果检测到(所陈述的条件或事件)”可以被解释为意思是“如果确定
…”
或“响应于确定
…”
或“在检测到(所陈述的条件或事件)时”或“响应于检测到(所陈述的条件或事件)”。
435.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如dvd)、或者半导体介质(例如固态硬盘)等。
436.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:rom或随机存储记忆体ram、磁碟或者光盘等各种可存储程序代码的介质。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献