米葫芦网

丢失消息的检测

热度:9℃ 发布时间:2024-11-17 16:10:31

关于检测由于通信子系统的问题造成的消息丢失,我又三个建议。第一个可能是它们中功能最强而且最轻易实现的,因为没有新的概念而又能重发知道丢失的消息。
第一个方案:
主机在发送一个消息后,保存一个消息的拷贝,直到:
*返回一个RFNM,这说明一些正常,然后处理下一个消息。
*返回一个INCOMPLETETRANSMISSION,这种情况下重发消息(这可能是一个循环,因此要设置一个重复发送一个消息的最大次数)。
*返回DESTINATIONDEAD,这说明目的主机关机,要求在进一步通信之前必须交换reset命令。
*其它返回表明在网络中或者本地接口报文处理器(IMP)发生错误,这时至少要记录错误,关闭对话。
按照以上步骤,可以防止消息的丢失。
第二个方案:
在主机发送消息时,消息号被包含消息中在主机对主机的头区域中,而且消息按顺序发送(这跟目前网络中的除了有优先级的消息除外的情况一样,因此这个建议要求主机发送任何东西时没有优先级区分),然后接收主机把接收到的消息号跟上次收到的消息号进行比较,这样可以发现消息的丢失。
当交换reset命令时,这对主机间的序号设为0。
每次发送一个消息时,把当前发送消息号添到消息头的指定区域,然后把当前发送消息号+1(对N取模,假设N=256)。
每收到一个消息,就把这个消息号跟目前的接收消息号相比较:
假如接收的消息是希望接收的,那么该消息可以接受,然后目前的接收消息号+1(对N取模)。
假如接收的消息不是希望接收的,那说明消息丢失。
当检测到消息丢失需要干什么并不明显,但是至少要记录下来,并且汇报给网络控制中心。消息的丢失对于交互会话可能不大重要,但是对于文件传输却是致命的。因此建议假如消息没有恢复就治理对话。
第三个方案:
可以要求主机与主机之间进行应答。这个应答方案可以用与接口报文处理器之间的应答相类似的方式实现。由于这要大幅修改目前的协议,要制定出一种合理的应答策略还需要进一步的研究,因此在这里我不对它进行具体说明。
上面三个建议中,第一个是最实用,也是最轻易实现的。这几个方案互相没有冲突,可以同时实现并使用。
网友评论
评论
发 布

更多软件教程
  • 软件教程推荐
更多+
Greenfoot设置中文的方法

Greenfoot设置中文的方法

Greenfoot是一款简单易用的Java开发环境,该软件界面清爽简约,既可以作为一个开发框使用,也能够作为集成开发环境使用,操作起来十分简单。这款软件支持多种语言,但是默认的语言是英文,因此将该软件下载到电脑上的时候,会发现软件的界面语言是英文版本的,这对于英语基础较差的朋友来说,使用这款软件就会...

07-05

Egret UI Editor修改快捷键的方法

Egret UI Editor修改快捷键的方法

Egret UI Editor是一款开源的2D游戏开发代码编辑软件,其主要功能是针对Egret项目中的Exml皮肤文件进行可视化编辑,功能十分强大。我们在使用这款软件的过程中,可以将一些常用操作设置快捷键,这样就可以简化编程,从而提高代码编辑的工作效率。但是这款软件在日常生活中使用得不多,并且专业性...

07-05

KittenCode新建项目的方法

KittenCode新建项目的方法

KittenCode是一款十分专业的编程软件,该软件给用户提供了可视化的操作界面,支持Python语言的编程开发以及第三方库管理,并且提供了很多实用的工具,功能十分强大。我们在使用这款软件进行编程开发的过程中,最基本、最常做的操作就是新建项目,因此我们很有必要掌握新建项目的方法。但是这款软件的专业性...

07-05

Thonny设置中文的方法

Thonny设置中文的方法

Thonny是一款十分专业的Python编辑软件,该软件界面清爽简单,给用户提供了丰富的编程工具,具备代码补全、语法错误显示等功能,非常的适合新手使用。该软件还支持多种语言,所以在下载这款软件的时候,有时候下载到电脑中的软件是英文版本的,这对于英语基础较差的小伙伴来说,使用这款软件就会变得十分困难,...

07-05

最新软件下载