什么是网络协议,有没有大神能够举例解释一下,我是小白

Erlay将通过减少网络参与者之间不必偠的通信帮助比特币网络保持去中心化。关于Erlay将如何影响比特币的猜

Erlay将通过减少网络参与者之间不必要的通信帮助比特币网络保持去Φ心化。

关于Erlay将如何影响比特币的猜想图

关于这一技术方案我首先是在Bitcoin Optech Newsletter (#49)上看到的(强烈推荐)。特别感谢作者能够让技术型读者能够接觸到这种技术而我希望通过这篇文章,让更多的人了解它

今天,比特币是怎样广播一笔交易的

下面这个人是Bob(鲍勃)。

Bob(鲍勃)想偠发送一笔比特币交易(我们不去考虑他的目的你可以自行猜测)。

他显然希望自己的交易能够尽快被纳入区块链为了实现这一点,洳果比特币网络中的很多参与者知道Bob(鲍勃)的钱包广播了他的交易这将是有所帮助的。这将增加他的交易被纳入下一个被创建的交易區块的机会(平均每10分钟发生一次)

由于Bob(鲍勃)对做某些事情很感兴趣,他并不拥有自己的比特币节点相反,他相信Alice(爱丽丝)的節点会广播从他钱包所接收到的交易

Bob(鲍勃)知道Alice(爱丽丝)在使用她的节点时不可能偷他的钱

Alice(爱丽丝)的节点首先检查Bob(鲍勃)的茭易,看他的钱包是否对交易进行了签名

当然,Alice(爱丽丝)的节点还会检查Bob(鲍勃)之前是否有花过他的比特币这是通过查看Bob(鲍勃)当前未使用交易的记录(称为UTXO)来实现的。

关于“什么是UTXO”的解释

“一笔比特币交易既有一个输入(你的比特币在你控制的地址上)叒有一个输出(接收地址)。

每个交易输出都可以反过来成为下一笔交易的输入。

为了确保你不会两次花费相同的比特币节点可检查網络上亿笔交易的历史记录,以确定以前是否使用过相同的交易输入

你可以想象,节点的工作量是有多么庞大而为了更高效,节点将遍历整个历史记录一次以创建一个尚未用作交易输入的所有交易输出的列表。

这被称为未花费交易输出简称为UTXO。

今天比特币网络中夶约有5600万 个UTXO,占用了大约3GB的存储空间另一方面,整个比特币区块链约220GB包含超过4.22亿笔交易。

每次发送一笔交易时节点都会删除已花费嘚旧UTXO,并添加新的UTXO以使列表保持最新。”

在检查完所有内容之后Alice(爱丽丝)的节点,会把有关Bob(鲍勃)的交易信息告诉它所连接的8個节点。

Bob(鲍勃)可能盲目地信任Alice(爱丽丝)的节点但它的对等节点则不是。它们将对Alice(爱丽丝)的节点执行与Bob(鲍勃)的交易相同的檢查

正如你可以想象的那样,很多节点在那之后会多次得知关于Bob(鲍勃)的交易因为它们都以不同的方式连接,并且不知道谁接收到哪些信息

显然,发送的消息要比需要的信息要多的多虽然这让比特币用户高度确信:世界上所有的节点都会知道他们的交易。但这给節点带来了不必要且很大的负担

这些节点发送和接收的数据远比需要的多。准确地说研究表明,节点间44%的流量都是这些不必要的消息!

这给节点增加了很大的压力尤其是那些网络连接较为落后的节点,或者随着比特币的使用越来越多其所有者不能一直为其网络订阅支付越来越多的费用。

而这个问题正是Erlay协议所要解决的。

如何使用 Erlay协议广播一笔交易

当你忙于了解UTXO以及节点的额外流量时Bob(鲍勃)已通过教程学习了如何设置自己的比特币节点。

Bob(鲍勃)已使Alice(爱丽丝)成为他的对等节点之一并将他的交易广播给她,以及其他7个对等節点在验证了他的交易之后,Bob(鲍勃)的对等节点也会告诉它们的8个对等节点

Bob(鲍勃)的对等节点用绿色线连接,对等节点各自的对等节点则用蓝色线连接

一旦这笔交易通过了网络,并不是每个节点都收到了Bob(鲍勃)的交易如果你没有被包含在一个由8个对等节点所組成的小组当中,你可能被漏掉了

不用担心,节点不必听到Bob(鲍勃)的交易相反,它将定期请求所有对等节点已接收的所有交易的概述(sketch)

  1. 每个对等节点发送一个表示它接收到的所有交易的概述(sketch),这比完整发送每笔交易占用的数据要少

  2. 然后,节点将生成它自己收到的交易的概述(sketch)并将此概述(sketch)与它收到的交易进行比较,这就好比一个“找茬”游戏

  3. 然后,节点可以从其对等节点请求其自巳的概述(sketch)中所缺少的确切交易

  4. 理解概述(sketch)和缺失交易之间差异的一个很好的比喻,是景观的全景视图(所有交易)或景观中单个婲朵或岩石的详细特写(一笔交易)


通过比较这些概述(sketch)以找出差异的方法,会导致一个缺点这使得一笔交易被全球比特币网络所囿节点知道所需花费的时间,要稍长一些(2.6秒)

由于比特币平均每10分钟产生一个新的数据块,因此这种减速相对于减轻节点大量的负担洏言似乎是值得的

通过这样做,节点可以做较少的工作那么人们就更容易地运行自己的节点,比特币网络可以保持去中心化

我们不唏望看到只有几个大数据中心运行比特币全节点的情况,因为我们所有人都必须信任它们能够诚实地处理我们的交易如果这样的事情发苼了,我们就会再次回到一个由中央控制的金融机构组成的世界这是比特币要避免发生的。

你可以试着想想这个Erlay协议是如何失败的论攵的作者也有考虑!

在这里,他们描述了用于比较这些概述(sketch)的最佳参数以及在节点无法找到概述(sketch)之间差异时,节点可以依靠哪些步骤

作者们还测试了该协议在一个由6万个节点组成的模拟网络和分布在世界各地的100个节点组成的实时网络上的性能。

如果节点将其对等节点的数量从8个增加到32个那么它们的流量通常会增加300%,而使用Erlay协议之后增加的流量花销仅为32%

那么,我们什么时候能够看到Erlay协议会被納入比特币软件当中呢

现在,这篇研究论文正在征求反馈意见的状态

如果其他研究者、测试人员以及开发人员没有提出异议,Gleb Naumenko计划编寫一个比特币改进提议(BIP),然后将其纳入最流行的比特币节点软件:Bitcoin Core.

另外Erlay只需要584行代码,它不需要对比特币进行任何基本的规则更改洇此不会导致新版本的软件与旧版本不兼容。实际上激活这一协议,要比其他比特币改进提议要更容易得多

声明:蜂鸟财经转载此文絀于传递更多信息之目的,内容仅供读者参考若存在侵权行为,请联系我们删除

  操作系统:(Operating System简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件任何其他软件都必须在操作系统的支持下才能运行。

紸:计算机(硬件)->os->应用软件



 以"COM"、"NET"、"ORG"、"BIZ"、"INFO"等结尾的域名均由国外公司负责管理。地理顶级域名是以国家或地区代码为结尾的域名如"CN"代表中国,"UK"代表英国地理顶级域名一般由各个国家或地区负责管理。

二级域名:二级域名是以顶级域名为基础的地理域名比喻中国的二級域有,..cn,.等.子域名是其父域名的子域名比喻父域名是或者*.是一个域名,是其中比较常用的记录一般默认是用这个,但是类似*.的二级

我們假定这个部分的长度为4960字节它会被嵌在TCP数据包之中。

TCP数据包需要设置端口接收方(Google)的HTTP端口默认是80,发送方(本机)的端口是一个隨机生成的之间的整数假定为51775。

TCP数据包的标头长度为20字节加上嵌入HTTP的数据包,总长度变为4980字节

然后,TCP数据包再嵌入IP数据包IP数据包需要设置双方的IP地址,这是已知的发送方是192.168.1.100(本机),接收方是172.194.72.105(Google)

IP数据包的标头长度为20字节,加上嵌入的TCP数据包总长度变为5000字节。

最后IP数据包嵌入以太网数据包。以太网数据包需要设置双方的MAC地址发送方为本机的网卡MAC地址,接收方为网关192.168.1.1的MAC地址(通过ARP协议得到)

以太网数据包的数据部分,最大长度为1500字节而现在的IP数据包长度为5000字节。因此IP数据包必须分割成四个包。因为每个包都有自己的IP標头(20字节)所以四个包的IP数据包的长度分别为1500、1500、1500、560。

经过多个网关的转发Google的服务器172.194.72.105,收到了这四个以太网数据包

根据IP标头的序號,Google将四个包拼起来取出完整的TCP数据包,然后读出里面的”HTTP请求”接着做出”HTTP响应”,再用TCP协议发回来

本机收到HTTP响应以后,就可以將网页显示出来完成一次网络通信。

协议就是两个或多個对象之间为了某个或多个需求而设置的约定即在什么时间,遇到什么情况该做什么

举例: 小强和小明约定周末一起去玩小霸王游戏机,但是如果遇上停电就去掏鸟窝

TCP/IP 协议就是为了满足世界上成千上万的网络设备的各种通信需求而设计的一套约定。

举例: 你偠从某网站下载一部电影如何实现呢?

首先网站服务器和你的电脑互相识别需要 IP协议;

为了跨越几千公里的互联网找到一条通往你电腦的路径,需要路由协议;

为了片子数据传输不丢失乱序重复需要 TCP协议;

另外你可以用FTP协议接收电影。单个协议就是单个约定以TCP为例,

约定了通信时超时怎么办?

网络拥塞了怎么办? 等等

三、TCP/IP为什么这么多协议?

? 不是协议多而是需求多,每个协议嘟是从具体的实际需求中产生的需求多了,问题就多为了解决一个个的问题,而出现了一个个的协议

举例:支付页面一般是https,因为安铨需求;

组播协议出现是因为网络点播需求;

IP over AOS 出现是因为宇航员方便上网的需求等等

四、TCP/IP协议为什么分层?

? “分层”嘚思想可以应用到很多领域,它是复杂问题简单化的有效方法

协议分层好处: 协议只需关注本层问题,直接利用下层提供的服务同时向仩层提供服务,并且每层的更改不会影响其他层

经典四层模型: 应用层—>传输层—>网络层—>物理层(链路层)

五、TCP/IP协议如哬入门?

要点1: 谨记“网络协议因需求而产生,以解决实际问题为目的”因此学习某个协议一定要了解它的应用场景和提出目的。

要点2: 选一夲好的入门教程本人极力推荐谢希仁教授的《计算机网络》,本书概念清晰思路明确,既不肤浅又不是很深入且面面俱到现在已经絀到第六版,本书阅读不得低于3遍

要点3: 针对某个协议,深入理解其报文格式是学习的关键协议程序化后就是“数据结构+算法”,报文格式就是“数据结构”

要点4: 一定要动手实验,这可以加深对协议理解比如可以用网络抓包(如wireshark)学习某个协议的算法,如ARP的发现过程TCP的握手协议,TFTP的文件传输原理还可以网络编程,如简单的网络攻击软件制作等

七、各协议层打包和拆包过程:

在浏览器发送信息到服务的时候,在通信协议的过程中会分为四层:

首先,是应用层(http协议)封装一些要传递的信息。

其佽到传输层(tcp协议), tcp协议对应用层数据进行打包。

然后到网络层(ip协议),通过ip找到对应的服务器

最后,到链路层(通过物理的介質传输数据)

每一层都会对上一层进行打包。

八、浏览器访问网页的整个流程:

九、举例:网上购物的请求流程

”接着它打开地址簿去查找(DNS),查找到对应的 IP(106.114.138.24) 地址

知道了具体的 IP 地址后,浏览器开始打包请求(HTTP):

经过应用层封装后浏览器会将应用层的包交给下一层去完成,通过 socket 编程来实现下一层是传输层(TCP, UDP),TCP 协议里面会囿两个端口,一个是浏览器监听的端口一个是电商的服务器监听的端口。操作系统往往通过端口来判断它得到的包应该给哪个进程。

傳输层封装完毕后浏览器会将包交给操作系统的网络层。网络层的协议是 IP 协议在 IP 协议
里面会有源 IP 地址,即浏览器所在机器的 IP 地址和目標 IP 地址也即电商网站所在服务器的

于是操作系统将 IP 包交给了下一层,也就是MAC 层网卡再将包发出去。由于这个包里面是
有 MAC 地址的因而咜能够到达网关。
网关收到包之后会根据自己的知识,判断下一步应该怎么走网关往往是一个路由器,到某个
IP 地址应该怎么走这个叫作路由表。

走到最后一个网关后通过 IP 找到具体的机器,通过端口找到对应的应用进行处理该笔请求

①书籍《图解HTTP》

②极客时间|趣谈网络协议 --刘超

内容来源于网络如有侵权请私信删除

我要回帖

 

随机推荐