查看: 6733|回复: 8

如何保障基于UDP协议的传输数据的可靠性?

[复制链接]
发表于 2006-11-22 17:20:28 | 显示全部楼层 |阅读模式
我们都知道,UDP是无连接的协议,它不保障数据传输的可靠性。
但实际我们发现,很多应用程序,都基于UDP进行工作。
那么,像这种基于UDP协议进行工作的应用程序,他们传输数据时,如何保障数据传输的可靠性呢?
回复

使用道具 举报

发表于 2006-11-22 20:40:13 | 显示全部楼层
书上说好象它利用高层的协议保证传输的正确性吧,。。。。
回复

使用道具 举报

发表于 2006-11-23 11:10:24 | 显示全部楼层
原帖由 yerguang 于 2006-11-22 20:40 发表
书上说好象它利用高层的协议保证传输的正确性吧,。。。。


没错,确切的说在传输层不保证其正确性,但会在应用层保证其正确性!
回复

使用道具 举报

发表于 2006-11-23 13:50:58 | 显示全部楼层
UDP协议使用报头中的校验值来保证数据安全,数据在发出是经过特殊的计算,然后在接受时必须要经过重新计算,看是否损坏和被修改
回复

使用道具 举报

发表于 2006-11-23 14:47:03 | 显示全部楼层
原帖由 fff123 于 2006-11-23 13:50 发表
UDP协议使用报头中的校验值来保证数据安全,数据在发出是经过特殊的计算,然后在接受时必须要经过重新计算,看是否损坏和被修改



UDP的包头中的校验和是可选的,也就是说,他不一定每次都工作。其次这个校验和只是保证了目的地收到的UDP头和数据与发送端发出的内容是一致的,仅次功能而已。其次与TCP相比,UDP不能保证接收端一定能收到发送端发出的UDP包。这就是所谓的提供不可靠的连接。而这个不可靠性的优点就是节约了系统的资源。一些比较著名的DOS攻击手段都是通过TCP的一些漏洞耗尽服务器的资源。而如何保证发送端每一个数据包,接收端都能收到。这才是那些以UDP来通信的应用程序所应该保证的。
回复

使用道具 举报

发表于 2006-11-23 14:59:52 | 显示全部楼层
原帖由 ValorZ 于 2006-11-23 14:47 发表



UDP的包头中的校验和是可选的,也就是说,他不一定每次都工作。其次这个校验和只是保证了目的地收到的UDP头和数据与发送端发出的内容是一致的,仅次功能而已。其次与TCP相比,UDP不能保证接收端一定能收到发 ...



说的好!UDP相对与TCP虽然存在不可靠的,但是UDP排除了可靠的传输机制,将安全和排序叫给上层应用来完成,降低了执行时间,保证了速度。

像目前流行的视频等应用都是使用UDP,牺牲一些可靠性,靠保证很好实际效果(比如画面帧的刷新速率)。
回复

使用道具 举报

发表于 2006-11-24 13:00:22 | 显示全部楼层
UDP在传输过程中会通过多次发送同样的包的机制来保证数据的正确性。
回复

使用道具 举报

发表于 2006-11-26 11:45:53 | 显示全部楼层
利用传输层上层软件保障可靠性
回复

使用道具 举报

发表于 2006-12-20 22:24:25 | 显示全部楼层
最后一个最准确.也最精炼....
回复

使用道具 举报

您需要登录后才可以回帖 登录 | CSNA会员注册

本版积分规则

快速回复 返回顶部 返回列表