摘要: 在讲P2P的应用和实际问题前, 我先说说我为什么会研究与实现P2P模式. 原因其实蛮简单的, 我希望搭建一个网络平台出来, 这点第3篇文章的时候已经提及到了, 我希望的是用一种网络通讯手段将灵活多变的多种网络应用集合在一个平台内, 而通过这个平台可以给用户提供尽可能完善的网络服务. 而涉及到的端对端通讯也是需要实现的功能点, 当然端对端也不是可以在任何网络情况下都可以实现的(这个我们后面再说). 但是作为一种简便廉价的网络通讯手段还是有很多好处的. 其实P2P说简单点就是利用穿透路由器门禁加上外网服务器的协助完成不同域之间内部终端的直接通讯. 相信很多通讯应用都需要这样的状态, 比如互传文件. 阅读全文
posted @ 2013-02-26 21:22 天佐 阅读(194) 评论(0) 推荐(0)
摘要: 关于UDP数据丢包的问题, 其实第4章已经提及, 就是重发数据和确认数据包达到. 但是当实际应用中才会发现, 很多原理很简单的东西, 实现起来会遇到各种各样的疑难杂症, 不过话说回来也是欠考虑分析的原因. 什么问题呢, 那就是数据包重复接收的问题... 我们来具体分析下吧, 接收端为什么会重复接收数据呢? 首先说下数据包发送和接收的过程, 发送端将数据发送过去后, 接收端收到数据, 进行确认包的回复. 这样发送端在收到接收端回发的确认包后就可认定, 本次数据包的发送成功到达接收端. 如果超时没有收到的话就会进行数据重发, 这就是主动重发模式, 当然还有一种是索取模式. 那么现在问题就来了, . 阅读全文
posted @ 2013-02-26 19:27 天佐 阅读(193) 评论(0) 推荐(0)
摘要: 上篇文章说到解决UDP通讯丢包和乱序所采取的滑动窗口协议,而我则更进一步将其改良成了并行滑动窗口协议, 精髓也无非在于解决发送等待的空耗问题, 具体细节可能后续还会因为涉及到整个平台的稳定性而提及. 这里就不啰嗦了. 大家知道散打评书吧, 其特点就是说主题的时候会散出去说些相关的话题, 然后再散回来. 有点像游戏里做主线任务的时候顺道去做做支线任务, 然后还是会回来继续做主线任务. 并且主线任务才是大头. 我现在也发挥下这个功能吧, 从UDP通讯这块散出去吧, 虽然上回说数据库的时候已经想散了... 其实细心的看客应该已经发现了, 我提及的技术细节并没有深入进行剖析, 为什么呢? 原因很简单. 阅读全文
posted @ 2013-02-26 09:44 天佐 阅读(179) 评论(0) 推荐(0)