数据通信
文章平均质量分 91
安静平和
这个作者很懒,什么都没留下…
展开
-
HTTPS加密流程
转载自:https://www.toutiao.com/a6613628254299357703/?tt_from=mobile_qq&utm_campaign=client_share&timestamp=1539909614&app=news_article&utm_source=mobile_qq&iid=46547913405&utm_med...转载 2018-10-19 10:24:59 · 2905 阅读 · 0 评论 -
几个RTP的开源实现
玩了两天rtp协议,基本把rtsp/rtcp/rtp/rtmp/srtp/strcp/mms,几个协议的区别和概念弄明白了。这里记录一下。rtsp:类似用户界面操作,和Http比较类似,提供播放,停止,加入等功能。注意,这里rtsp只负责发送操作命令,实际的音视频数据,并不由这个协议承载。这是我困惑很久之后才明白的(我是不是太弱了,呵呵) rtsp协议并没有转载 2016-12-09 16:23:05 · 11197 阅读 · 1 评论 -
socket编程之bind()函数
名称bind()把名字和套接字相关联使用格式#include sys/types.h>#include sys/socket.h>int bind(int sockfd, const struct sockaddr *addr,socklen_t *addrlen);功能描述当用socket()函数创建套接字以后,套接字在名称空间转载 2016-12-09 13:02:08 · 815 阅读 · 0 评论 -
RTP协议
RTP(Real-time Transport Protocol)是由IETF开发的实时传输协议,可以在面向连接或无连接的下层协议上工作,通常和UDP协议一起使用。RTP的工作机理与RSVP不同,主要实现一种端到端的多媒体流同步控制机制,既不需要事先建立连接,也不需要中间节点的参与,为其保留资源。在网络带宽充足的情况下,RTP具有一定的带宽调控能力,保证端到端的多媒体流同步。在网络带宽不足时,RT转载 2016-12-13 18:05:21 · 2868 阅读 · 0 评论 -
P2P的原理和常见的实现方式(为libjingle开路)
为了项目的后期IM应用,最近在研究libjingle,中间看了也收集了很多资料,感慨网上很多资料要么太过于纠结协议(如STUN、ICE等)实现细节,要么中间有很多纰漏。最后去伪存真,归纳总结了一下,希望对以后的同行有些许帮助。 如果有什么需要讨论或者指正的,欢迎留言或者邮件peakflys@gmail.com P2P实现的原理转载 2016-12-05 22:26:45 · 382 阅读 · 0 评论 -
差网络模拟工具---clumsy
我们开发基于网络的应用时,经常需要考虑当网路较差时的异常处理,clumsy就是这个可以用来进行网络延迟的工具,可以实时的修改网络延迟、丢包、篡改等网络异常情况。clumsy 能在 Windows 平台下人工造成不稳定的网络状况,方便你调试应用程序在极端网络状况下的表现。简介利用封装 Winodws Filtering Platform 的WinDivert 库, clumsy 能实时的转载 2016-11-23 09:00:23 · 3857 阅读 · 0 评论 -
为什么udp为什么不能发送大于1472字节数据
在进行UDP编程的时候,我们最容易想到的问题就是,一次发送多少bytes好? 当然,这个没有唯一答案,相对于不同的系统,不同的要求,其得到的答案是不一样的,这里仅对像ICQ一类的发送聊天消息的情况作分析,对于其他情况,或许也能得到一点帮助: 首先,我们知道,TCP/IP通常被认为是一个四层协议系统,包括链路层,网络层,传输层,应用层.UDP属于运输层,下面我们由下至上一步一转载 2016-11-22 10:15:53 · 1254 阅读 · 0 评论 -
《视频直播技术详解》系列之一:采集
随着互联网用户消费内容和交互方式的升级,支撑这些内容和交互方式的基础设施也正在悄悄发生变革。手机设备拍摄视频能力和网络的升级催生了大家对视频直播领域的关注,吸引了很多互联网创业者或者成熟企业进入该领域。七牛云作为一家以基础服务能力见长的云计算公司,于 6 月底发布了一个针对视频直播的实时流网络 LiveNet 和完整的直播云解决方案,很多开发者对这个网络和解决方案的细节和使用场景非常感兴趣转载 2016-12-03 22:57:02 · 912 阅读 · 0 评论 -
C#编程UDP通信过程中出现【远程主机强迫关闭了一个现有的连接0x80004005】的解决方法
一直郁闷 UDP不是面向非连接的?? 在UDP通信过程中, 使用try...catch语句接受数据时,总是会出现一个错误:System.Net.Sockets.SocketException (0x80004005): 远程主机强迫关闭了一个现有的连接。最初的最愚蠢的解决方法就是,在catch语句里不做任何动作,让监听端口函数继续运行。但这并非一个长久之计,后来在网转载 2016-12-12 15:24:00 · 12016 阅读 · 2 评论 -
关于Socket和NetWorkstream介绍
一.本文中介绍的程序设计及运行环境 (1).微软视窗2000 服务器版 (2)..Net Framework SDK Beta 2以上版本 二.服务器端程序设计的关键步骤以及解决办法: 在下面接受的程序中,我们采用的是异步阻塞的方式。 (1).首先要要在给定的端口上面创建一个"tcpListener"对象侦听网络上面的请求。当接收到连结请求后通转载 2016-12-14 18:23:13 · 2093 阅读 · 1 评论 -
UDP内网和外网连接通信的问题
如我内网的IP为:192.168.0.2,端口为3200,此时我想和外网的IP:220.120.123.42,端口为23654通信,从客户端发起请求,可以根据外网的IP和端口顺利找到服务器,这是单项通信,可是服务器给内网的机器发就困难了,不以为然的同学请先仔细考虑下再来拍砖。整个数据流的路途是这样的:我的内网IP和端口在经过我的网关之后,都会发生变化。可能会变为网关的外网如:124转载 2016-12-14 18:02:44 · 5866 阅读 · 3 评论 -
Socket编程中,阻塞与非阻塞的区别
阻塞:一般的I/O操作可以在新建的流中运用.在服务器回应前它等待客户端发送一个空白的行.当会话结束时,服务器关闭流和客户端socket.如果在队列中没有请示将会出现什么情况呢?那个方法将会等待一个的到来.这个行为叫阻塞.accept()方法将会阻塞服务器线程直到一个呼叫到来.当5个连接处理完闭之后,服务器退出.任何的在队列中的呼叫将会被取消. 非阻塞:非阻塞套接字是指执行此套接字的网络调用时转载 2016-12-14 17:49:59 · 619 阅读 · 0 评论 -
UDP的Socket发送数据,出现连续丢包现象(一)
UDP丢包原因一、主要丢包原因1、接收端处理时间过长导致丢包:调用recv方法接收端收到数据后,处理数据花了一些时间,处理完后再次调用recv方法,在这二次调用间隔里,发过来的包可能丢失。对于这种情况可以修改接收端,将包接收后存入一个缓冲区,然后迅速返回继续recv。2、发送的包巨大丢包:虽然send方法会帮你做大包切割成小包发送的事情,但包太大也不行。例如超过50K的一个转载 2016-12-14 16:42:14 · 11285 阅读 · 1 评论 -
Socket编程 (连接,发送消息) (Tcp、Udp) - Part1
http://www.cnblogs.com/zengqinglei/archive/2013/04/27/3046119.html本篇文章主要实现Socket在Tcp\Udp协议下相互通讯的方式。(服务器端与客户端的通讯) 1.基于Tcp协议的Socket通讯类似于B/S架构,面向连接,但不同的是服务器端可以向客户端主动推送消息。 使用Tcp协议通讯需要具转载 2016-12-15 09:22:25 · 613 阅读 · 0 评论 -
大型网站架构演化历程(下)
在大型网站架构演化历程(上)(请戳我)中已经介绍了利用服务器分离、使用缓存、应用服务器集群来提高网站的性能。本文继续介绍优化服务器架构的其它几种方案。数据库读写分离网站在使用缓存后,使对大部分数据读操作访问都可以不通过数据库就能完成,但是仍有一部分读操作(缓存访问不命中、缓存过期)和全部的写操作都需要访问数据库,在网站的用户达到一定规模后,数据库因为负载压力过高而成为网站的转载 2017-12-04 09:27:25 · 647 阅读 · 0 评论 -
初探GF-Complete(伽罗瓦运算库)
GF-Complete 是一个开源、综合性的伽罗瓦运算库,相应的文章发表在FAST13 中(见参考文献【1】)。作者是大名鼎鼎的Jim Plank 教授,作为开源纠错码库Jerasure 的开发者,在这个伽罗瓦运算库中创新地采用了SSE 指令集来加速纠错码运算的瓶颈---伽罗瓦运算中的乘法运算,并采用了其他运算方法,综合得到GF-Complete。该库可在Plank 主页中下载得到,下面就GF-C转载 2017-11-24 23:17:29 · 1158 阅读 · 0 评论 -
IOCP的一些思考(粘包,断包的处理)
最近接触了IOCP服务器的编写,对IOCP有了自己的一些认识,希望能对希望正在使用IOCP 的有些建议。我对IOCP了解不多,只是用到了,所以看了一下,还没怎么熟悉。IOCP的一大优势是高并发率,同时连接1万个用户,CPU的使用率也不会很高,只是内存稍微增大一些了。而且对CPU的利用率很好,线程的量被固定了,所以线程可以更好的处理事情。[cpp] view plain转载 2017-11-16 17:38:08 · 1794 阅读 · 1 评论 -
完成端口(CompletionPort)详解
本系列里完成端口的代码在两年前就已经写好了,但是由于许久没有写东西了,不知该如何提笔,所以这篇文档总是在酝酿之中……酝酿了两年之后,终于决定开始动笔了,但愿还不算晚….. 这篇文档我非常详细并且图文并茂的介绍了关于网络编程模型中完成端口的方方面面的信息,从API的用法到使用的步骤,从完成端口的实现机理到实际使用的注意事项,都有所涉及,并且为了让朋友们更直观的体会完成端口的用法,本转载 2017-11-18 06:20:22 · 498 阅读 · 0 评论 -
Socket的accept函数解析
今天与同学争执一个话题:由于socket的accept函数在有客户端连接的时候产生了新的socket用于服务该客户端,那么,这个新的socket到底有没有占用一个新的端口? 讨论完后,才发现,自己虽然熟悉socket的编程套路,但是却并不是那么清楚socket的原理,今天就趁这个机会,把有关socket编程的几个疑问给搞清楚吧。 先给出一个典型的TCP/转载 2017-03-15 14:16:10 · 669 阅读 · 0 评论 -
二层-三层网络
学习网络,主要学习的就是协议,首先学习TCP/IP五层模型,了解TCP/IP每一层的协议,数据包和数据走向,然后开始学习思科二层交换机学起,vlan,vtp,stp,三层交换机,然后学习思科的路由器,大部分全部是协议,命令是固定的你只要记住就好了。 二层交换机就是传统意义上的交换,使用mac地址作为转发依据,建立起mac到端口的映射(cam表,类似于{00-13-20-B1-3A-97 p转载 2017-03-27 19:31:58 · 7839 阅读 · 0 评论 -
二层交换与MAC地址
根据国际标准化组织(ISO)提出的开放系统互连参考模型(OSI-RM),依据链路层(二层)进行数据帧转发的称为二层交换。相应地,仅支持二层交换的交换机称为二层交换机。 二层交换机工作在数据链路层,它对数据包的转发是建立在MAC地址的基础上的。二层交换机内部通常使用称为ASIC的芯片来实现对数据包的转发,由于是硬件转发,性能非常高。 MAC地址是二转载 2017-03-27 19:17:43 · 5480 阅读 · 0 评论 -
P2P通信原理与实现(C++)
1.简介 当今互联网到处存在着一些中间件(MIddleBoxes),如NAT和防火墙,导致两个(不在同一内网)中的客户端无法直接通信。这些问题即便是到了IPV6时代也会存在,因为即使不需要NAT,但还有其他中间件如防火墙阻挡了链接的建立。 当今部署的中间件大多都是在C/S架构上设计的,其中相对隐匿的客户机主动向周知的服务端(拥有静态IP地址和DNS名称)发起链接请求。大多数中间转载 2017-02-28 21:37:40 · 1558 阅读 · 1 评论 -
P2P通信
在传统的集中式网络中,都是一台服务器(集群)对外提供服务,所有客户端都依赖中央服务器进行与服务端的通信或者其他客户端的通信。如图 这样的通信方式,一个数据包从一个客户端发送到另一个客户端都要在服务端中进行中转,服务端承受的压力非常大,很容易因为线程问题而当机。 于是提出另一种通信方式:P2P通信(peer to peer) 对等通信。 即:在p2p的网络中,所有网络节点都是同等地转载 2017-02-28 21:33:29 · 1968 阅读 · 0 评论 -
浅析TCP字节流与UDP数据报的区别
“TCP是一种流模式的协议,UDP是一种数据报模式的协议”,这句话相信大家对这句话已经耳熟能详~但是,“流模式”与“数据包模式”在编程的时候有什么区别呢?以下是我的理解,仅供参考!1、TCP打个比方比喻TCP,你家里有个蓄水池,你可以里面倒水,蓄水池上有个龙头,你可以通过龙头将水池里的水放出来,然后用各种各样的容器装(杯子、矿泉水瓶、锅碗瓢盆)接水。上面的例子中,往水池里倒转载 2016-12-15 09:48:31 · 712 阅读 · 0 评论 -
协议森林17 我和你的悄悄话 (SSL/TLS协议)
作者:Vamei 出处:http://www.cnblogs.com/vamei 转载请先与我联系。 TLS名为传输层安全协议(Transport Layer Protocol),这个协议是一套加密的通信协议。它的前身是SSL协议(安全套接层协议,Secure Sockets Layer)。这两个协议的工作方式类似,但TLS协议针对SSL协议进行了一些改善。SSL/TLS协议利用转载 2016-11-20 00:05:07 · 423 阅读 · 0 评论 -
协议森林16 小美的桌号(DHCP协议)
作者:Vamei 出处:http://www.cnblogs.com/vamei 转载请先与我联系。 DHCP协议用于动态的配置电脑的网络相关参数,如主机的IP地址,路由器出口地址、DNS域名服务器地址等。一台电脑只要接上网,就可以通过DHCP协议获得相关配置,从而顺利的畅游网络。 网络配置电脑刚刚接上网络时,像一个走入一家新餐厅的食客,不免会有很多疑惑:转载 2016-11-19 23:22:53 · 390 阅读 · 0 评论 -
协议森林03 IP接力赛 (IP, ARP, RIP和BGP协议)
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 网络层(network layer)是实现互联网的最重要的一层。正是在网络层面上,各个局域网根据IP协议相互连接,最终构成覆盖全球的Internet。更高层的协议,无论是TCP还是UDP,必须通过网络层的IP数据包(datagram)来传递信息。操作系统也会提供转载 2016-11-13 13:28:48 · 455 阅读 · 0 评论 -
协议森林02 小喇叭开始广播 (以太网与WiFi协议)
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! “小喇叭开始广播啦”,如果你知道这个,你一定是老一辈的人。“小喇叭”是五十年代到八十年代的儿童广播节目。在节目一开始,都会有一段这样的播音:“小朋友,小喇叭开始广播了!” 听到这里,收音机前的小朋友就兴奋起来,准备好听节目了:这一期的内容是以太网(Ethernet)转载 2016-11-13 11:08:39 · 421 阅读 · 0 评论 -
协议森林01 邮差与邮局 (网络协议概观)
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 信号的传输总要符合一定的协议(protocol)。比如说长城上放狼烟,是因为人们已经预先设定好狼烟这个物理信号代表了“敌人入侵”这一抽象信号。这样一个“狼烟=敌人入侵”就是一个简单的协议。协议可以更复杂,比如摩尔斯码(Morse Code),使用短信号和长信号的转载 2016-11-13 09:58:46 · 346 阅读 · 0 评论 -
协议森林
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 互联网是为了通信,通信又依赖于协议。我们交谈时,要符合语法和用语规范。机器之间的通话也要符合协议。否则,鸡同鸭讲,无法相互理解。“协议森林”是我的一系列关于网络协议的文章,总结了多个网络协议。网络协议属于技术,但深受政策与历史的影响。Ethernet, IP, UDP,转载 2016-11-13 09:57:49 · 571 阅读 · 0 评论 -
纠删码:定义及常见类型
你能给纠删码一个好的定义吗? Ethan Miller:纠删码是在丢失部分数据的情况下根据剩余数据将丢失的数据重建的一组算法。举个例子,如果我想保护六份数据,我会使用一种纠删码算法来产生两份额外的数据,这样总共就会有八份数据。这八份数据中的任意六份数据都能恢复另外两份数据。 纠删码的要点是你可以选择对数据做任意数量的分片。我知道一些纠删码可以将数据至多分成200片或者奇数片,你也可以选择校验数转载 2016-11-28 22:21:38 · 3194 阅读 · 0 评论 -
Jerasure库接口简介及性能测试
http://blog.chinaunix.net/uid-20196318-id-3277600.htmlJerasure库提供Reed-Solomon和Cauchy Reed-Solomon两种编码算法的实现.Reed-Solomon编解码接口1. 编码矩阵生成 // generate matrix, last m rows mat转载 2016-10-31 15:44:36 · 1567 阅读 · 2 评论 -
分布式系统下的纠删码技术(一) -- Erasure Code (EC)
近几个月主要参与一个分布式存储系统的纠删码部分(用于数据容错),纠删码在学术界出现比较早,现在ceph,微软的存储系统,Hadoop 3.0等都用了EC。文章会分为多篇,主要将Erasure Code,LRC, 以及相关的数学基础,作为学习总结。 一、纠删码简介 分布式系统需要在硬件失效等故障发生后仍然能继续提供服务。就数据而言,HDFS采用每份数据3副本转载 2016-10-31 15:41:20 · 2423 阅读 · 0 评论 -
前向纠错码(FEC)的RTP荷载格式
http://www.rosoo.net/a/201110/15146.html本文档规定了一般性的前向纠错的媒体数据流的RTP打包格式。这种格式针对基于异或操作的FEC算法进行了特殊设计,它允许终端系统使用任意长度的纠错码,并且可以同时恢复出荷载数据和RTP头中的关键数据。由于FEC作为一个分离的数据流进行传送,这种方案可以向后兼容那些没TAG: 中文版 RTP荷载 FE转载 2016-10-31 13:17:51 · 1104 阅读 · 0 评论 -
多播(组播)原理分析
为什么要使用多播: 网卡从网络上接收到目标物理地址对应的所有bit位都为1的数据报时,会收到这条消息并将其上传给驱动程序,网卡的这种工作模式称为广播模式,网卡的缺省工作模式包含直接模式和广播模式。利用这一特性,UDP(用户数据报协议)还提供了向多个目标地址发送广播数据包的能力。广播数据即数据从一个工作站上发出,只要将数据包的目标物理地址对应的所有bit位都设为1,局域网内的所有工转载 2016-10-31 09:46:12 · 643 阅读 · 0 评论 -
伽罗华域(Galois Field,GF,有限域)乘法运算
最近在做毕设,在看RS编码原理时,关于其乘法运算一直没看明白,文献也没有细说,今天发现一篇博客,看完之后豁然开朗,特地将此博客转载了过来,略作补充,红色为补充内容。原文地址:http://blog.csdn.net/mengboy/article/details/1514445GF(2m)域当m=8时,本原多项式为P(x) = x8 + x4 +x3 + x2 +转载 2016-10-28 16:35:03 · 2380 阅读 · 0 评论 -
我所理解的Reed solomon 算法
http://volcanozhd.blog.163.com/blog/static/8941120200692257170/在数据传输过程中难免会遇到部分数据丢失或者受到干扰而出错,因此利用算法来恢复错误的数据,reed Solomon(简称RS)便是其中的一种常用的算法。RS算法是以牺牲带宽为代价的,编码过程中会产生一定量的冗余数据。这种增加冗余数据来获得有效数据的方法在我转载 2016-10-28 14:48:45 · 1696 阅读 · 0 评论 -
协议森林04 地址耗尽危机 (IPv4与IPv6地址)
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!谢谢xwpcom纠错 IP地址是IP协议的重要组成部分,它可以识别接入互联网中的任意一台设备。在IP接力中,我们已经看到,IP包的头部写有出发地和目的地的IP地址。IP包上携带的IP地址和路由器相配合,最终允许IP包从互联网的一台电脑传送到另一台。转载 2016-11-13 14:29:14 · 375 阅读 · 0 评论 -
协议森林05 我尽力 (IP协议详解)
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 在粗略了解了IP接力和IP地址后,我们再反过来,看一看IP协议的具体细节和设计哲学。 IPv4与IPv6头部的对比我们已经在IP接力中介绍过,一个IP包分为头部(header)和数据(payload/data)两部分。头部是为了实现IP通信必转载 2016-11-13 15:00:28 · 412 阅读 · 0 评论 -
协议森林15 先生,要点单吗? (HTTP协议概览)
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 我在TCP流通信中说明了,TCP协议实现了数据流的传输。然而,人们更加习惯以文件为单位传输资源,比如文本文件,图像文件,超文本文档(hypertext document)。*** 超文本文档中包含有超链接,指向其他的资源。超文本文档是万维网(World转载 2016-11-19 22:34:37 · 395 阅读 · 0 评论