飞鸽协议教程.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
飞鸽协议教程

精心打造飞鸽协议教程,欢迎大家交流 本文重点在于对飞鸽协议原理及部分网络知识进行普及性的介绍,尽量避免用专业的术语吓跑非计算机专业朋友,如果有介绍的不合理的地方,也欢迎高手出来拍砖。 飞鸽概述 飞鹆传书作为免费的开源软件,在全世界各国享有声誉,其原作者是H.Shirouzu,其windows平台的C++源码下载地址为 HYPERLINK /IPMsg/ipmsg206src.zip \t _blank /IPMsg/ipmsg206src.zip。除windows平台的实现以外,还存在大量其它平台的飞鸽实现,如Mac,Linux,甚至还存在平台无关的Java版本。 本人开发的飞鸽传书,实际上是在M8平台上实现了该协议子集。从而能够实现局域网内用户发现,接收PC版飞鸽传入的消息、文件、文件夹。 本人实现的飞鸽,可参考如下两个帖子: 1  HYPERLINK /thread-791903-1-1.html \t _blank /thread-791903-1-1.html 2  HYPERLINK /thread-814371-1-1.html \t _blank /thread-814371-1-1.html 飞鸽能够实现这种异构平台之间的通信,在于它的源码和协议是开放的,只要遵守相应的传输协议,就可以实现通信。 这里要强调一个概念,网络传输类应用程序,协议是重中之重。那么,协议到底是什么呢?协议可以让运行于两个不同平台的程序之间做到“心有灵犀一点通”,也有点像黑帮内部的切口:A说了天王盖地虎,B就要说宝塔镇荷妖。 有点扯远了,计算机网络应用中的协议,是要解决一些很实际的问题,比如,以飞鸽为例,计算机A向计算机B可以发消息,也可以传文件。都是通过网络传递数据,B如何能知道,这些数据中什么是消息,什么是文件呢?这就需要设计通信协议,通过一些命令字描述当前或即将传送的数据是什么内容。从而使得接收方,能够正确理解发送方发出的内容。 网络基础,TCP/IP协议简介 TCP/IP是很复杂的,要介绍这个已经远远超出我的能力范围,但我仍然可以对它的上层使用做简单的介绍。 前面我们花了大量的篇幅加口水强调协议在网络应用中的重要性。那所谓的飞鸽协议,与我们平时常常听到???TCP/IP有什么区别和联系呢?这个问题问的好(我自己问的)! 计算机网络的设计有着非常多的成功的可取之处,其中之一就是分层。按照问题所在的领域,将问层划分到不同的层中去解决(读者可自行参考OSI的七层模型以及TCP/IP的五层模型)。TCP/IP协议在传输层提供的UDP和TCP传输协议,成为了我们构建应用层软件(如,聊天,下载,邮件,http等等)的基础。 TCP传输协议规定了通信双方需要一个“连接-接受”这样的连接确认过程,既所谓的三次握手过程。一但连接建立成功,双方可以通过该连接,进行可靠的数据通信。 UDP传输协议不需要双方进行连接,发送方只需要指定接收方的地址和端口,若接收方此时正在该端口等待接收,那接收方就有可能(网络质量不好的话,可能会丢,不过局域网里通常不会发生这样的情况)收到消息。 除此之外,还有一个重要的概念是广播,将数据包发送到广播地址(用UDP协议发送),则该网段的所有用户,都可以收到这条数据。 飞鸽协议分析 飞鸽的协议也属于应用层协议,它描述了飞鸽程序通信时的语法和语义。 其语法定义如下(所有的命令字,都必需符合这样的格式要求): Ver(1): PacketNo:SenderName:SenderHost:CommandNo:AdditionalSection 每部分分别对应为:版本号(现在是1):数据包编号:发送主机:命令:附加数据 其中: 数据包编号,一般是取毫秒数。利用这个数据,可以唯一的区别每个数据包; SenderName指的是发送者的昵称(m8飞鸽被我统一的写死为m8,现在知道怎么定制了吧?); 发送主机,指的是发送主机的主机名; 命令,指的是飞鸽协议中定义的一系列命令,具体见下文; 附加数据,指的是对应不同的具体命令,需要提供的数据,具体见下文。 上面介绍了数据包的语法,即格式,这些命令都是通过UDP协议向其它主机发送的。 接下来列出协议的命令,包括命令字及附加选项: ? ???1) Command functions (Low 8 bits from command number 32 bits) ? ? ? ? IPMSG_NOOPERATION? ? ? ? No Operation ? ? ? ? IPMSG_BR_ENTRY? ? ? ? ? ? ? ? Entry to service (Start-up with a Broadcast command) ? ? ? ? IPMSG_B

文档评论(0)

xy88118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档