CSDN博客

img nichlurs

基于UDP的通讯协议(zz)

发表于2004/10/25 21:22:00  1653人阅读

摘要:基于目前UDP协议的不足:无连接和通信不可靠;在参考TCP协议及ISO 7层协议、X.25协议的基础下,设计一套基于UDP的通信协议来实现基于UDP的可靠通信及弱连接特性。
关键词:UDP,通讯协议,TCP,不可靠,弱连接。

1、 用UDP通信的优势:
1.1系统开销小、速度快
1.2对绝大多数基于消息包传递的应用程序来说,基于帧的通信(UDP)比基于流的通信(TCP)更为直接和有效
1.3对应用部分实现系统冗余、任务分担提供了极大易实现性及可操作性
1.4对等的通信实体、应用部分可方便的根据需要构造成客户/服务器模型及分布处理模型,大大加强应用在可操作性及维护性的能力
1.5可实现完全图模型的网状网络拓扑结构,可大大增强系统的容错性
2、 目前UDP协议的不足:
2.1 无连接
2.2通信不可靠
无连接特性在某些应用可能是优势,但大部分的应用都是需要有连接的,我们在参考TCP协议及ISO 7层协议、X.25协议的基础下,设计了一套基于UDP的通信协议来实现基于UDP的可靠通信及弱连接特性
3、主要由以下几点保证:
3.1有序
3.2可靠性保证
3.2.1 同步 3.2.2 超时重拨
3.2.3 N-RAQ确认(包括捎带机制)
3.2.4 选择拒绝
3.3量控制(滑动窗口协议)
4、UDP协议的状态驱动图:如图1




图1 UDP协议的状态驱动图
5、UDP协议的工作流程:
是一个基于UDP的弱连接的协议,该概念意味着协议要维护流入、流出通信模块的每个用户数据帧的状态和状态信息这样的一个事实,但对连接的建立及释放也没有TCP等协议要求的严格。通信模块用一个TCB(Transfer Control Block)来管理、维护一个链路的状态。下图2是一个正常的通信过程。

图2 一个正常的通信过程             图3 数据帧PDU丢失图                   图4 确认帧丢失图
6、 下面是对几种网络丢包的处理:
6.1数据帧PDU(Protocol Data Unit)丢失。如图3,发送方PDU(3)在传输中丢失,接收方(p2)在收到PDU(1),PDU(2)后接收到PDU(4),因为当前要接收的序号为3,因此接收方发送REJ(3),表示当前要接收的是PDU(3),同时也对3以前的PDU进行一次确认;发送方收到REJ(3)后,直接重发PDU(3),同时把重发队列中序号小于3的帧从队列中移走(已确认)。
6.2确认帧丢失。如图4,ACK(3)丢失,但接收方下一确认帧ACK(5),就对于5以下的自然确认。若发送方的一个确认帧也没有收到,则发送方在重发定时器到达后,把重发队列尾的PDU重发出去接收方在收到序号比当前接收序号n小的PDU后,立即发送ACK(n)。
综上所述,无论是丢失数据帧还是丢失确认帧,协议均能纠正过来,保证数据的可靠传递。
控制帧的发送及等待帧均有多次重试机会,对于网络的丢失包也不失引起协议的工作不正常。如在握手阶段的SYN帧,在未收到SYN-ACK之前连续启动握手定时器8次,直到收到SYN-ACK为止。在重发若干次PDU后均不能收到ACK后,链路进入poll状态,发送RR控询包,在未收到RR-ACK或RNR之前连续启动探询定时器5次,直到收到应答消息为止。
7、 UDP协议对下列几种异常情况作相应处理:
7.1正在通信的两方中,发送方异常退出,后又再建立连接。
7.2正在通信两方中,接收方异常退出。
综上所述,在通信过程中,任何一方发生故障,在故障排除通信模块工作后,协议均可保证通信自动恢复,这在实现系统的冗余备份,任务分担等功能时至关紧要。

阅读全文
0 0

相关文章推荐

img
取 消
img