这几天一直在研究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,不过只有一个主界面,消息发送窗口都没有,比较郁闷
相关文章
- Android实现基于TCP和UDP协议的即时通讯,含android端和服务器端
- 网络协议之:基于UDP的高速数据传输协议UDT
- 分享:基于UDP协议实现可靠的数据传输
- 轨迹系列——Socket总结及实现基于TCP或UDP的809协议方法
- Linux中使用C语言实现基于UDP协议的Socket通信示例
- 网络协议之:基于UDP的高速数据传输协议UDT
- Python+Socket实现基于UDP协议的局域网广播功能示例
- 阿里云PTS分享-用性能测试工具JMeter实现基于供应链业务上对于WebSocket 协议的压测
- Java基于socket服务实现UDP协议的方法
- Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能示例