分享:基于UDP协议实现可靠的数据传输

时间:2022-09-25 23:50:10
这几天一直在研究P2P相关的技术,对于底层的传输使用了UDP协议,但是大家都知道UDP协议是不可靠的,如果在传输对话信息或文件的时候发生丢包,那么就会造成数据出错;即使不丢包,UDP协议也不能保证接收方按照发送的顺序接收到那些包,也会造成数据出问题!

为了使UDP有序可靠地发送数据,那么必须在它的基础上进行封装,实现类似TCP协议的功能,在网上找到的资料有:
http://dev.csdn.net/author/huanghongbo/760eee4d4e7f48bbac43495ebd58a872.html
http://www.htbsp.com/data/2007/0104/article_23737.htm
http://www.codelover.com/dev/5201/4191654.htm
http://dev.csdn.net/article/56/56196.shtm

上面资料中提到的方法大都是模拟TCP的做法,也就是重复“发送-确认-发送-确认……”,当然这种过程是比较低效的,比较好的实现会使用“滑动窗口”机制进行流量控制,从而提升一部分性能!


附:正在做一个仿MSN(或QQ、泡泡等)的IM程序,界面实在做得难看,大家如果有这方面的源码(只要有界面即可)不妨贡献一下,呵呵!

再附:我已经知道windowforms.net上面有一个 MSN Messenger Clone,不过只有一个主界面,消息发送窗口都没有,比较郁闷