p2p优势 多个客户端连接服务端,通过单一的服务端转发数据,服务端压力太大,所以使用p2p,以服务端为媒介,两个客户端做直连,服务端的压力会减小很多。 内网和外网隔离的限制,p2p在内网和外网使用的协议不同,p2p在外网和内网间会更为复杂。 网上有很多p2p的简单实现,大多是针对内网的 跨网段编程 tcp 在lan和wan之间通信,路由器(三层交换机,转发ip层数据)默认根据ip协议中的ip地址,查找路由表中的数据,并转发下一级,找到目标并回传回来 外网云服务器在配置了安全访问规则和设置防火墙允许后可以直接ping通外网不同网段的地址 路由跟踪 ping使用icmp协议测试目标电脑通断,限制在相同冲突域内(外网ping不同) tracert和 protocol unreachable 3 = port unreachable 4 = fragmentation needed and DF set 5 = source route failed ip协议中的
第二种方式就是是通过 FTP(文件传输协议)。FTP 采用两个 TCP 连接来传输一个文件。 控制连接。服务器以被动的方式,打开众所周知用于 FTP 的端口 21,客户端则主动发起连接。 后来,一种创新的,称为 P2P 的方式实现了我们的愿望。 P2P P2P 就是 peer-to-peer。 而 Kedemlia 协议 就是一种著名的 DHT 协议。我们来基于这个协议来认识下这个神奇的 DHT 网络。 这两种都是集中下载的方式,而 P2P 则换了一种思路,采用非中心化下载的方式; P2P 有两种。一种是依赖于 Tracker 的,也就是元数据集中,文件数据分散。 参考: 维基百科-DHT 网络词条; 维基百科-Kademlia 词条; 刘超 - 趣谈网络协议系列课;
在P2P通信标准协议(二)中,介绍了TURN的基本交互流程,在上篇结束部分也有说到,TURN作为STUN协议的一个拓展,保持了STUN的工具性质,而不作为完整的NAT传输解决方案,只提供穿透NAT的功能 SDP ICE信息的描述格式通常采用标准的SDP,其全称为Session Description Protocol,即会话描述协议.SDP只是一种信息格式的描述标准,不属于传输协议,但是可以被其他传输协议用来交换必要的信息 ICE是一个用于在offer/answer模式下的NAT传输协议,主要用于UDP下多媒体会话的建立,其使用了STUN协议以及TURN协议,同时也能被其他实现了offer/answer模型的的其他程序所使用 RTP/RTCP协议在数据包中进行复用(而不是在端口上复用). ICE是使用STUN/TURN工具性质的最主要协议之一,其中TURN一开始也被设计为ICE协议的一部分.值的一提的是, 本文只是对这几种协议作了概述性的说明,而具体工作过程和详细的属性描述都未包含,因此如果需要根据协议来实现具体的应用程序
在前面几篇文章中我们介绍了建立p2p通信的一般协议(簇),以及一种完整的NAT传输解决方案ICE, 但是对于多用户的通信情况,还有一些通用协议来实现标准化的管理,如之前讲过的SDP和SIP等,SIP(Session SIP同时也提供了注册函数以允许用户上传他们的当前地址供代理服务器使用.SIP协议运行在多个不同的传输协议之上. SIP协议结构 SIP是一个分层的协议,这意味着其行为由一系列同级但独立的段(stage)描述. Content-Type: 消息体(message body)的格式, 如SDP信息则为"application/sdp”,关于SDP可以参考前一篇博客P2P通信标准协议(三)之ICE. 至此, P2P通信系列的介绍也就告一段落了. P2P的去中心化,一直是个很令人振奋的话题,无论是在信息技术上,还是在金融,政治上,都有无限潜力.
前一段时间在P2P通信原理与实现中介绍了P2P打洞的基本原理和方法,我们可以根据其原理为自己的网络程序设计一套通信规则,当然如果这套程序只有自己在使用是没什么问题的。 可是在现实生活中,我们的程序往往还需要和第三方的协议(如SDP,SIP)进行对接,因此使用标准化的通用规则来进行P2P链接建立是很有必要的。 本文就来介绍一下当前主要应用于P2P通信的几个标准协议,主要有STUN/RFC3489,STUN/RFC5389,TURN/RFC5766以及ICE/RFC5245。 STUN是一个C/S架构的协议,支持两种传输类型。 我本来打算一篇文章把P2P通信的所有协议都介绍完不过现在看来似乎篇幅过长了, 所以关于TURN和ICE就放在下一篇介绍好了。
上一篇P2P通信标准协议(一)介绍了在NAT上进行端口绑定的通用规则,应用程序可以根据这个协议来设计网络以外的通信。 但是,STUN/RFC5389协议里能处理的也只有市面上大多数的Cone NAT(关于NAT类型可以参照P2P通信原理与实现),对于Symmetric NAT,传统的P2P打洞方法是不适用的。 因此为了保证通信能够建立,我们可以在没办法的情况下用保证成功的中继方法(Relaying),虽然使用中继会对服务器负担加重,而且也算不上P2P,但是至少保证了最坏情况下信道的通畅,从而不至于受NAT类型的限制 实例 在上一章也提到过,因为RFC是标准协议,因此实现上往往有良好的兼容性和拓展性.现存的开源P2P应用程序, 如果按照标准来设计,可以很容易与之对接.其中比较著名的就是PJSIP,PJSIP是一个开源的多媒体通信库 TURN协议因为是STUN的拓展,当然也沿袭了STUN的工具性质,只为穿越NAT提供方法,而不作为P2P通信的完整解决方案.一个比较适合研究的TurnServer源代码我也放到这里了,而客户端的实现则根据每个人的具体需求而不同
7-2 寻找大富翁 分数 25 全屏浏览题目 切换布局 作者 陈越 单位 浙江大学 胡润研究院的调查显示,截至2017年底,中国个人资产超过1亿元的高净值人群达15万人。
7.2 P2P基础知识介绍 WFA定义的P2P协议文档全名为“Wi-Fi Peer-to-Peer(P2P) Technical Specification”,目前的版本为1.1,全长160页。 不过,由于Legacy Clients不能处理P2P协议,所以P2P一些特有功能在这些Legacy Clients中无法实现。 正是这种相似性,使得P2P能充分利用现有的一些技术规范。图7-2所示为P2P及其依赖的技术项: ? 图7-2 P2P及其依赖的技术项 由图7-2可知: 为了保证一定的传输速率,P2P要求P2P Device必须支持802.11g及以上的规范。其中,安全部分必须支持WPA2。 在如图7-2所示的技术项中,P2P Discovery是P2P所特有的,也是其核心。本章将主要围绕它进行介绍。首先来看P2P Discovery。
7-2 符号配对(20 分) 请编写程序检查C语言源程序中下列符号是否配对:/*与*/、(与)、[与]、{与}。 输入格式: 输入为一个C语言源程序。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/shiliang97/article/details/102924532 7-2 树种统计 (20 分) 随着卫星成像技术的应用,自然资源研究机构可以识别每一棵树的种类
在一个长度为 n 的正整数序列中,所有的奇数都出现了偶数次,只有一个奇葩奇数出现了奇数次。你的任务就是找出这个奇葩。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/shiliang97/article/details/96301355 7-2 到底有多二 一个整数“犯二的程度”定义为该数字中包含2的个数与其位数的比值
的每个数的各位数的立方相乘,再将结果的各位数求和,得到一批新的数字,再对这批新的数字重复上述操作,直到所有数字都是 1 位数为止。这时哪个数字最多,哪个就是“数字之王”。
P2P没有绝对的服务器和客户端之分。连接的双方分别作为临时的服务器和客户端。P2P通信的双方还可能更换IP地址。 P2P的一个最为流行的应用是BT种子,相信各位老司机对BT种子和迅雷都不陌生吧! 这是一个文件分发协议。P2P的出现使得服务器在处理文件传输的时候,能够减少服务器的负载。在P2P中,每个对等方能够向任何其他的对等方重新分发它收的的该文件的任何部分。 (断点续传) BT协议是一个非常复杂的协议。每个洪流都有一个基础的设施节点,称为“追踪器”。当一个对等方加入该洪流的时候,它向追踪器进行注册,并且周期性的通知洪流,它仍在。 而对P2P传输没有贡献。 P2P的应用现在已经非常多了,大家经常使用的迅雷去下载种子。 另外一个每天都在使用的应用QQ,它也广泛的使用了P2P技术。即时消息就是基于P2P的。
7-2 列车调度(25 分) 火车站的列车调度铁轨的结构如下图所示。 两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道。
7-2 冒泡法排序 (30分) 将N个整数按从小到大排序的冒泡排序法是这样工作的:从头到尾比较相邻两个元素,如果前面的元素大于其紧随的后面元素,则交换它们。
7-2 歌唱比赛计分 (15分) 设有10名歌手(编号为1-10)参加歌咏比赛,另有6名评委打分,每位歌手的得分从键盘输入,计算出每位歌手的最终得分(扣除一个最高分和一个最低分后的平均分),最后按最终得分由高到低的顺序输出每位歌手的编号及最终得分
将N个整数按从小到大排序的冒泡排序法是这样工作的:从头到尾比较相邻两个元素,如果前面的元素大于其紧随的后面元素,则交换它们。通过一遍扫描,则最后一个元素必定是最大的元素。然后用同样的方法对前N−1个元素进行第二遍扫描。依此类推,最后只需处理两个元素,就完成了对N个数的排序。
的每个数的各位数的立方相乘,再将结果的各位数求和,得到一批新的数字,再对这批新的数字重复上述操作,直到所有数字都是 1 位数为止。这时哪个数字最多,哪个就是“数字之王”。