一开始的思路是想写两个程序的,发送端和接收端.但是后来想了下,因为是模拟的,所以不用这么麻烦,直接自己定制场景(比如说丢包阿,包出错阿,超时之类的). 基本上是根据上图所写的,一个函数发包,一个函数接包(比如上图的wait_for_ack0),在这个发包函数里定制场景,在接包函数里处理场景. 说到处理场景,仔细看看wait for ack0上所写的: 翻译一下: ) ) // 如果有接受到包且包坏了, 或者接受到的ACK是1,那么就什么都不用做,因为会执行下面的超时函数 { ;// do not…
去中心化交换协议的发展 从Bitshare,Stellar到以太坊上的Etherdelta,Bancor,0x协议,去中心化交换协议也经过了好几代发展和很多模式的探索,每一代都通过前面的协议的痛点来进行改进和深化, 主要分为: 链上orderbook,链上结算; 链下orderbook,链上结算; 基于智能合约管理的资金池; 链上orderbook,链上结算 最早的 基于以太坊的去中心化交换协议的成功探索非Etherdelta莫属,曾一度占据去中心化交换市场的半壁江山.Etherdelta是较为…
一转眼从听华为3Com的路由交换课程到如今已经13年有余了,依稀记得第一节课的时候我带着老婆去听的课(老婆是日语系的.那时还是女朋友,并不懂网络,仅仅是跟着我去上课的).抢了个头排,讲师宋岩老师提问了一个问题:"为什么要学习网络?"然后看没人回答就要点名,可能是宋老师对美丽的女生感兴趣吧.直接点名了我老婆...然后就尴尬了,只是没想到老婆回答的还真不错.自那以后,我也就開始了对网络的兴趣.对网络设备的兴趣,路由和交换这门课整体学的还不错.只是,后来我成了程序猿.也就没有机会去触摸那些设…
一.SRMP目标定位 经过十多年实战经验积累以及多方共同讨论,新生命团队(https://github.com/newlifex)制订了一种简单而又具有较好扩展性的RPC(Remote Procedure Call)协议. 全称:简易远程消息交换协议,简称: SRMP(Simple Remote Messaging Protocol) SRMP主要定位于以下场景: 内网高速通信,大吞吐量(>100万tps).低延迟(<1ms) 外网远程通信,稳定可靠,海量连接(>10万) 物联网硬件设备…
理解分布式一致性:Paxos协议之Generalized Paxos & Byzantine Paxos Generalized Paxos Byzantine Paxos Byzantine Multi-Paxos Fast Byzantine Multi-Paxos 在前面一篇文章我们讲到了理解分布式一致性:Paxos协议之Cheap Paxos & Fast Paxos,本篇文章我会讲解Paxos协议的另外两个变种:Generalized Paxos和Byzantine Paxos.…
理解分布式一致性:Paxos协议之Cheap Paxos & Fast Paxos Cheap Paxos Message flow: Cheap Multi-Paxos Fast Paxos Message flow: Fast Paxos, non-conflicting Message flow: Fast Paxos, conflicting proposals Message flow: Fast Paxos with uncoordinated recovery, collapsed…
理解分布式一致性:Paxos协议之Multi-Paxos Multi-Paxos without failures Multi-Paxos when phase 1 can be skipped Multi-Paxos when roles are collapsed Multi-Paxos when roles are collapsed and the leader is steady 在前面一篇文章我们讲到了理解分布式一致性:Paxos协议之Basic Paxos,本篇文章我会讲解更加通用…
理解分布式一致性:Paxos协议之Basic Paxos 角色 Proposal Number & Agreed Value Basic Paxos Basic Paxos without failures Basic Paxos when an Acceptor fails Basic Paxos when an Proposer fails Basic Paxos when multiple Proposers conflict 在理解分布式一致性:Raft协议中,我们详细分析了什么是分布式…
理解分布式一致性:Raft协议 什么是分布式一致性 Leader选举 日志复制流程 term选举周期 timeout 选举和选举timeout 选举分裂 日志复制和心跳timeout 在分布式系统中,分布式一致性是一个非常重要的概念,它是指分布式系统的各个服务器都保持一个统一的状态(数据).但是在分布式系统中,通常由于网络,系统状态等原因会导致某些服务不可用或者不可靠.这就需要一种分布式一致性的协议来保证系统在某些服务失败的情况下仍然整体可用. Raft协议是受到Paxos的影响而产生的,相对于…
原文:浏览器扩展系列----异步可插入协议(pluggable protocol)的实现 IE中有很多我们比较熟悉的协议,如http,https,mailto,ftp等.当然你也可以实现自己定义的协议,稍微谈一下这里所说的协议,从我的理解来说这里的协议只有当你的网页引用某个资源时才会调用,而不是随便在某个属性的值前面加上某个协议的名称就可以了.常见的协议调用如img的src属性中,很多元素style中的background-image属性中,还有a标签的href属性中. 言归正传,前面说到的实现…
面向协议编程(Protocol Oriented Programming,简称POP) 是Swift的一种编程范式,Apple于2015年WWDC踢出 在Swift的标准库中,能见到大量POP的影子 同时,Swift也是一门面向对象的编程语言(Objec Oriented Programming,简称OOP) 在Swift开发中,OOP和POP是相辅相成的,任何一方并不能取代另一方 P- OP能弥补OOP一些设计上的不足 回顾OOP OOP的三大特性:封装.继承.多态 继承的经典使用场合: 当多…
1.OBEX协议概述 OBEX是IrOBEX的简称,IrOBEX协议是红外数据协会IrDA开发的用于红外数据链路上数据对象交换的会话层协议.OBEX是一种紧凑高效的二进制协议,功能类似于HTTP协议.为了支持不同的平台,OBEX不指定特定的传输数据类型,只定义传输对象(Object). OBEX在蓝牙系统中被映射到RFCOMM和TCP/IP层之上,其中OBEX over TCP/IP是作为可选项出现的.蓝牙只支持面向连接的OBEX应用.IrDA则同时支持面向连接和无连接的应用. OBEX协议本身…
1.面向连接和无连接指的是协议,本质区别在于:对于无连接协议来说,每个分组的处理都独立于其他的分组. 而对于面向连接的协议,协议实现维护了当前分组与后继分组有关的状态信息. 2.无连接就是指udp,分组称为数据报(datagram),每个分组都独立寻址,udp会尽最大努力发送数据报, 但是不保证数据报不丢失,不延迟,不错序. 注意:对于udp,可以在应用层维护数据报的状态. 3.面向连接就是tcp,tcp的分组称为段(segment),协议维护了分组之间的状态,记住这些状态,协议可以提供可靠的传…
引言: 本周自己重新对底层通讯方式进行了学习,在此做一个输出. 分别从客户端发送多个请求的需求角度与服务端接收多个连接发送请求的需求角度,剖析4种基于java自身技术实现的消息方式通讯所带来的影响,解决方式以及各自通讯方式的区别和优缺点. 通讯协议的特性: 4种组合通讯方式区别和优缺点剖析: TCP/IP+BIO: 对于客户端同时发送多个请求到服务端的问题:   简单直接的解决方式:生成多个socket连接 上述解决方式带来的影响: 1.生成太多的socket客户端会消耗大量的本地资源,当客户端…
互联网实现分层:有的7层有的4层:阮一峰认为分五层(个人喜欢): 最底下的一层叫做"实体层"(Physical Layer),最上面的一层叫做"应用层"(Application Layer),中间的三层(自下而上)分别是"链接层"(Link Layer)."网络层"(Network Layer)和"传输层"(Transport Layer).越下面的层,越靠近硬件:越上面的层,越靠近用户. // 实体层 -…
目录 简介 redis的高级用法 Redis中的pipline Redis中的Pub/Sub RESP protocol Simple Strings Bulk Strings RESP Integers RESP Arrays RESP Errors Inline commands 总结 简介 redis是一个非常优秀的软件,它可以用作内存数据库或者缓存.因为他的优秀性能,redis被应用在很多场合中. redis是一个客户端和服务器端的模式,客户端和服务器端是通过TCP协议进行连接的,客户端…
原文:http://my.oschina.net/faint/blog/296785 第一部分 dll 1 下面大多数内容,都是使用c#编译的dll来实现的. 2 编译为dll后,要拖放到unity3d的Assets里面,才能using到. 3 有以下类似错误,就是使用了非.net 2.0编译的dll.注意项目必须是在.net 2.0版本编译的才能正常在unity3d当中使用. Unhandled Exception: System.TypeLoadException: Could not lo…
Corp(config)#rout rip Corp(config-router)#network 10.0.0.0 10.0.0.0/24 is subnetted, 5 subnets C 10.1.1.0 is directly connected, Vlan1 C 10.1.2.0 is directly connected, Serial1/0 C 10.1.3.0 is directly connected, Serial1/1 C 10.1.4.0 is directly conn…
自建Syncthing中继服务器(私密传输或造福大众) 一.介绍 我之前介绍了Syncthing,作为一款开源的文件同步程序,它的功能还是非常强大的,我也很高兴能看到它被越来越多的人知道和使用,前几天有位朋友留言说让我介绍下Syncthing的中继服务器的搭建,在这之前的一段时间我在网上偶尔看到过有朋友介绍过一次. 首先来科普一下? 不同于Resilio Sync(BT Sync)使用BT协议进行数据传输,Syncthing使用了BEP对等自由块交换协议(Block Exchange Proto…
1.1 TCP是什么? TCP是Tranfer Control Protocol的简称,TCP协议是一种面向连接的.可靠的.基于字节流的运输层通信协议.通过TCP协议传输,得到的是一个顺序的无差错的数据流.发送方和接收方的成对的两个socket之间必须建立连接,以便在TCP协议的基础上进行通信,当一个socket(通常都是server socket)等待建立连接时,另一个socket可以要求进行连接,一旦这两个socket连接起来,它们就可以进行双向数据传输,双方都可以进行发送或接收操作.  首…
    题外话:这几天天气突然转冷了.今天已是11月23日了,查查黄历,昨天(11月22日)刚好是小雪,一夜温度骤降,果然老祖先的经验有灵验!冬天来了,还是多加加衣服,注意保暖! 1.Abstract     前些天借用他人的一块MCS-51开发板来做实验,不想这块板子与我刚开始接触MCS-51的板子一样,实在是太亲切了!现在回过来看这块板子,功能算不上是太强大,麻雀虽小五脏俱全,该有的功能都有.于是又忍不住捣腾这块板子,倒不是写小程序一块,看着电路图,到处连线测试一下功能,从中体会下最初的学习…
from : https://blog.csdn.net/Neo233/article/details/72866230?locationNum=15&fps=1%20HTTP%E6%8F%A1%E6%89%8B   通俗理解: 但是为什么一定要进行三次握手来保证连接是双工的呢,一次不行么?两次不行么?我们举一个现实生活中两个人进行语言沟通的例子来模拟三次握手. 引用网上的一些通俗易懂的例子,虽然不太正确,后面会指出,但是不妨碍我们理解,大体就是这么个理解法. 第一次对话: 老婆让甲出去打酱油,…
通俗理解: 但是为什么一定要进行三次握手来保证连接是双工的呢,一次不行么?两次不行么?我们举一个现实生活中两个人进行语言沟通的例子来模拟三次握手. 引用网上的一些通俗易懂的例子,虽然不太正确,后面会指出,但是不妨碍我们理解,大体就是这么个理解法. 第一次对话: 老婆让甲出去打酱油,半路碰到一个朋友乙,甲问了一句:哥们你吃饭了么? 结果乙带着耳机听歌呢,根本没听到,没反应.甲心里想:跟你说话也没个音,不跟你说了,沟通失败.说明乙接受不到甲传过来的信息的情况下沟通肯定是失败的. 如果乙听到了甲说的话…
前提 最近学习Netty的时候想做一个基于Redis服务协议的编码解码模块,过程中顺便阅读了Redis服务序列化协议RESP,结合自己的理解对文档进行了翻译并且简单实现了RESP基于Java语言的解析.编写本文的使用使用的JDK版本为[8+]. RESP简介 Redis客户端与Redis服务端基于一个称作RESP的协议进行通信,RESP全称为Redis Serialization Protocol,也就是Redis序列化协议.虽然RESP为Redis设计,但是它也可以应用在其他客户端-服务端(C…
一.什么是TCP/IP TCP/IP是一个协议族,是因为TCP/IP协议包括TCP.IP.UDP.ICMP.RIP.TELNETFTP.SMTP.ARP.TFTP等许多协议,这些协议一起称为TCP/IP协议.通信类似于语言的沟通,可以把协议理解为语言沟通,大家都说中文,咱们两个人能够互相交流. TCP/IP协议族按照层次分为链路层.网络层.传输层.应用层四个层次.(与TCP/IP协议并列的还有OSI网络框架模型---开放式系统互连参考模型,分为物理层.数据链路层.网络层.传输层.会话层.表示层.…
本随笔系列主要介绍从一个Windows平台从事C#开发到Mac平台苹果开发的一系列感想和体验历程,本系列文章是在起步阶段逐步积累的,希望带给大家更好,更真实的转换历程体验.本文继续上一篇随笔<从C#到Object C,循序渐进学习苹果开发(2)--Objective-C和C#的差异>,继续对比介绍它们两者之间的差异,以便我们从C#阵营过来的人员加深印象,深入了解Objective-C语言的特性.本篇随笔主要针对Objective-C里面的分类(category)和协议Protocal概念的理解…
在httpcomponent 文档中看到如下段落: 1.4.1. HTTP transport safety It is important to understand that the HTTP protocol is not well suited to all types of applications. HTTP is a simple request/response oriented protocol which was initially designed to support s…
即时通讯技术简介 即时通讯技术(IM)支持用户在线实时交谈.如果要发送一条信息,用户需要打开一个小窗口,以便让用户及其朋友在其中输入信息并让交谈双方都看到交谈的内容.大多数常用的即时通讯发送程序都会提供各种各样的功能: 即时通讯 - 在用户和在线朋友之间来回发送信息 聊天 - 创建用户与朋友或工友的自定义聊天室 网页链接 - 共享用户喜爱的网址 支持图片 - 浏览朋友计算机中的图片 支持声音 - 给朋友播放音乐 支持文件传输 - 直接将文件发送给朋友,以便于共享 交谈 - 使用 Internet…
原创 2018-01-11 飞向未来 IPFS指南 BitSwap协议 IPFS节点之间是如何进行数据交换的?本文来讲一下这个问题. IPFS在BitTorrent的基础上实现了p2p数据交换协议:BitSwap协议   IPFS每一个节点都维护了两个列表: 已有的数据块(have_list) 想要的数据块(want_list) 当两个节点建立连接后,他们会根据hava_list和want_list互通有无.跟BitTorrent不一样的是:BitSwap获取数据块的时候不限于从同一个torre…
路由交换协议-----ARP ARP协议 ARP(Address Resolution Protocol),是根据IP地址获取MAC地址的一个TCP/IP协议,即将IP地址对应到物理地址,从而实现数据链路层的可达性. ARP的数据包是这样的: 硬件类型:发送方需要知道的硬件地址类型,一般为以太网(值为1). 协议类型:发送方提供的三层协议地址类型,一般为IP. 硬件地址长度和协议长度:硬件地址和协议地址的长度. 操作类型:用来表示这个报文的类型. 1表示ARP请求 2表示ARP响应 3表示RAR…