参考:
https://juejin.cn/post/6844903951452602375
心跳包
- UDP:用户数据报协议:主要用在实时性要求比较高的以及对质量相对较弱的地方.但是面对现在高质量的线路不会容易丢包,除非是一些拥塞条件下,如流媒体
- TCP:传输控制协议:是面连接的那么运行环境必然要求其可靠性不可丢包,有良好的拥塞控制机制如 http ftp telnet等。
心跳检测步骤:
1.客户端每隔一个时间间隔发生一个探测包给服务器 2.客户端发包时启动一个超时定时器 3.服务器端接收到检测包,应该回应一个包 4.如果客户机收到服务器的应答包,则说明服务器正常,删除超时定时器 5.如果客户端的超时定时器超时,依然没有收到应答包,则说明服务器挂了Heartbeat和ARP的差别
Heartbeat(心跳包)和ARP(地址解析协议,Address Resolution Protocol)之间存在本质上的区别,它们在网络中扮演着不同的角色并服务于不同的目的。
Heartbeat(心跳包)
- 用途:Heartbeat机制主要用于监测网络中的两个点(例如,两台服务器或客户端和服务器之间)的连通性。通过定期发送小的数据包(即心跳包)来确认对方是否在线和可响应。这种机制广泛用于高可用性系统中,以确保系统组件间的持续通信,并快速检测故障。
- 层级:心跳包可以在多种网络层级上实现,包括应用层、传输层(TCP/UDP)或更低的网络层。
ARP(地址解析协议)
- 用途:ARP的目的是解决网络层到链路层地址的映射问题。在IPv4网络中,当一个设备需要向同一局域网(LAN)内的另一个设备发送数据时,它需要将目标设备的IP地址转换为物理MAC地址。ARP允许任何设备广播一个请求,来询问具有特定IP地址的设备的MAC地址。
- 层级:ARP工作在链路层,直接与网络接口卡(NIC)交互,以解析网络层的IP地址到链路层的MAC地址。
主要差别
- 目的不同:Heartbeat用于监控和维护网络连接的状态,而ARP用于解析网络地址到物理地址。
- 工作原理不同:Heartbeat通过发送和接收简单的消息包来检测网络连通性;ARP通过广播请求来查询特定IP地址对应的MAC地址,并接收回应。
- 应用场景不同:Heartbeat多用于确保高可用性和故障转移场景中的设备或服务连通性,ARP是局域网内部设备进行通信的基础服务。
总的来说,Heartbeat和ARP服务于网络通信的不同方面,Heartbeat关注于连接的持续性和可靠性,而ARP解决的是如何在网络中准确地定位和通信到特定的设备。
Heartbeat与ICMP的异同
ICMP用于实现类似心跳包操作的ping
命令和其他类型的心跳包机制之间存在一些关键的相似之处和差异。下面是它们之间的一些主要异同点:
相似之处
- 连通性检测:ICMP的
ping
命令和心跳包都被用来检测网络中的设备是否可达,即对方是否在线且网络连接是否正常。 - 基于消息的简单请求-响应模型:无论是ICMP的
ping
操作还是其他心跳机制,通常都采用了简单的请求-响应模型来实现。发送方发送一个请求(或心跳包),并等待接收方的响应。 - 网络诊断工具:它们都可以作为网络诊断的工具,帮助识别网络中的问题,比如路由问题、延迟、丢包等。
差异
- 协议层级:ICMP是一个网络层协议,直接由IP层处理,主要用于传递控制消息。而心跳包可以在不同的层级实现,如应用层(通过特定的应用协议发送心跳)、传输层(TCP/UDP)或甚至是会话层。
- 用途和功能:ICMP除了可以用于实现
ping
操作外,还设计用来传递网络通信过程中遇到的问题和控制消息,如目标不可达、时间超时等。心跳包的主要用途是保持网络连接的活跃状态,监测对方是否在线,以及在一些系统中用于负载均衡和故障转移。 - 数据包结构和内容:ICMP消息有其特定的格式,包括类型、代码和校验和等字段,用于不同类型的控制消息。心跳包的结构更加灵活,根据其设计的目的和所在的协议层级,可以包含从简单到复杂的各种信息,如状态信息、序列号、时间戳等。
- 反馈信息的详细程度:ICMP错误消息可以提供关于网络问题的详细信息,而心跳包机制的反馈通常仅限于确认对方是否活跃或响应。
总的来说,ICMP的ping
操作和心跳包机制都是网络通信中用于确保连通性和监测网络状态的重要工具。它们在实现方法、用途、以及操作层级上存在一些关键的差异,但共同目标是帮助管理和维护网络的稳定性和可靠性。
心跳包的结构
参考设计:
数据部分填入64字节的0。
标签:ARP,UDP,发送,心跳,Heartbeat,ICMP,以太网,客户端 From: https://www.cnblogs.com/VerweileDoch/p/18119881