Megaco学习笔记之基于UDP的传输(重传,临时相应)

本文详细介绍了Megaco协议在基于UDP传输时如何处理消息丢失和重传,包括“最多一次”机制、重传定时器计算、长期定时器LONG-TIMER的应用以及临时响应TransactionPending在长事务执行中的作用。通过对事务处理流程的分析,讨论了如何避免无效重传和提高传输效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

D.1.1 提供“最多一次”功能

  • 当协议消息在UDP上进行传输时,可能会发生消息丢失。如果发送的消息无法获得及时响应,则可能导致命令重复发送。对重发的消息,协议处理进程必须遵循 “最多一次”机制。
  • 协议实体应当在各自的内存中保留两个列表, 一个用来记录执行完最近所接收到的TransactionRequest后返回的TransactionReply,另一个用来记录当前需要处理的事务。当协议实体接收到一个TransactionRequest 消息时, 它将接收到消息的TransactionID 与最近为具有相同MID 发出的TransactionReply响应的TransactionID相比较。两者经过比较后,如果发现TransactionID相同,则接收方不应执行接收到的事务,而只是重复发送TransactionReply响应消息。如果发现TransactionID不相同,则接收方将该接收到的TransactionRequest消息与需要处理的事务列表相比较。如果在列表中查找到TransactionID相同的消息,则表明此TransactionRequest消息为重复发送,接收方不应执行此TransactionRequest消息(参见D.1.4中TransactionPending发送机制)。
    协议处理机制规定了一个长定时器值(LONG-TIMER),LONG-TIMER设定的时间值应该大于一个事务的最大持续时间,该时间还应该考虑事务重复最大次数、重复定时器的最大值以及分组在网络中的最大传输时延。
  • 当协议实体发出响应消息后,如果LONG-TIMER超时,或者已接收到来自对等实体包含“ResponseAcknowledgement Parameter”参数的响应证实消息,则协议实体重复发送的TransactionReply响应消息应被丢弃。

D.1.3 计算重传定时器

  • 消息请求的发送方应为所有发送的事务指定一个重传定时器,当重传定时器超时,消息请求的发送方实体仍未接收到消息响应,则应当重复发送该事务。当重复多次发送的事务仍未获得响应时,且从第一次消息发送开始至定时器超时,请求的发送方应当采用其他机制和/或拆除现有或即将建立
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值