随笔分类 -  网络技术

摘要:http://www.codeproject.com/Articles/172241/Push-Framework-A-Cplusplus-toolkit-for-high-perforTable of contentsIntroductionDeployment layoutThe developer perspectiveTechnicalarchitectureTutorials and examplesChat applicationClient-serverusing the Google Protobuf protocolUsing Websocket to communicate 阅读全文
posted @ 2013-12-19 22:05 blockcipher 阅读(720) 评论(0) 推荐(0)
摘要:http://www.cppblog.com/isware/archive/2011/07/19/151390.htmlhttp://pl.atyp.us/content/tech/servers.html引言本文将与你分享我多年来在服务器开发方面的一些经验。对于这里所说的服务器,更精确的定义应该是每秒处理大量离散消息或者请求的服务程序,网络服务器更符合这种情况,但并非所有的网络程序都是严格意义上的服务器。使用“高性能请求处理程序”是一个很糟糕的标题,为了叙述起来简单,下面将简称为“服务器”。本文不会涉及到多任务应用程序,在单个程序里同时处理多个任务现在已经很常见。比如你的浏览器可能就在做一些 阅读全文
posted @ 2013-12-19 21:33 blockcipher 阅读(575) 评论(0) 推荐(0)
摘要:1.客户端-服务器结构 客户端-服务器结构的物理部署分为三类: (1)在同一台机器上:理想环境,只要压力不大,分组不会丢失、延迟和乱序,是理想的测试环境,可以用作评估客户端和服务器端程序的原始性能; (2)在同一局域网内:接近理想环境,分组很少丢失、乱序,但是有延迟; (3)在广域网内:分组丢失、重传、重复、乱序比较常见。2.基本套接字API (1)sys/socket.h、winsock2.h:SOCKET socket(int domain, int type, int protocol) 成功时返回套接字,失败时返回-1(linux),INVALID_SOCKET(win... 阅读全文
posted @ 2013-12-14 13:08 blockcipher 阅读(531) 评论(0) 推荐(0)
摘要:http://www.cnblogs.com/vamei/archive/2012/12/02/2796988.htmlIPv4与IPv6头部的对比我们已经在IP接力中介绍过,一个IP包分为头部(header)和数据(payload/data)两部分。头部是为了实现IP通信必须的附加信息,数据是IP通信所要传送的信息。黄色区域 (同名区域)我们看到,三个黄色区域跨越了IPv4和IPv6。Version(4位)用来表明IP协议版本,是IPv4还是IPv6(IPv4, Version=0100; IPv6, Version=0110)。Source Adrresss和Destination Add 阅读全文
posted @ 2013-12-10 13:22 blockcipher 阅读(600) 评论(0) 推荐(0)
摘要:参考:http://blog.sae.sina.com.cn/archives/1988http://sznmail.iteye.com/blog/1882829一、理论限制1. 单机最大连接数系统用一个4四元组来唯一标识一个TCP连接:{local ip, local port, remote ip, remote port}。client每次发起tcp连接请求时,除非绑定端口,通常会让系统选取一个空闲的本地端口(local port),该端口是独占的,不能和其他tcp连接共享。tcp端口的数据类型是unsigned short,因此本地端口个数最大只有65536,端口0有特殊含义,不能使用 阅读全文
posted @ 2013-12-09 21:57 blockcipher 阅读(1998) 评论(0) 推荐(0)
摘要:转自http://www.valleytalk.org/2012/08/05/epoll-linux%E5%86%85%E6%A0%B8%E6%BA%90%E4%BB%A3%E7%A0%81%E5%AE%9E%E7%8E%B0%E5%8E%9F%E7%90%86%E5%88%86%E6%9E%90/EPOLL Linux内核源代码实现原理分析黄江伟will.huang@aliyun-inc.comepoll的实现主要依赖于一个迷你文件系统:eventpollfs。此文件系统通过eventpoll_init初始化。在初始化的过程中,eventpollfs create两个slub分别是:epit 阅读全文
posted @ 2013-12-03 22:33 blockcipher 阅读(392) 评论(0) 推荐(0)
摘要:转自http://xlambda.com/gevent-tutorial/gevent程序员指南由Gevent社区编写gevent是一个基于libev的并发库。它为各种并发和网络相关的任务提供了整洁的API。介绍贡献者核心部分Greenlets同步和异步执行确定性创建GreenletsGreenlet状态程序停止超时猴子补丁(Monkey patching)数据结构事件队列组和池锁和信号量线程局部变量子进程Actors真实世界的应用Gevent ZeroMQ简单serverWSGI Servers流式serverLong PollingWebsockets聊天server介绍本指南假定读者有中 阅读全文
posted @ 2013-11-29 21:47 blockcipher 阅读(680) 评论(0) 推荐(0)
摘要:域名详解作者: JeremyWei | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明网址: http://weizhifeng.net/talking-about-domain.html域名域名就是用来唯一标示互联网上的服务器的,当我们访问一个网站时候,比如http://www.example.com/index.html,其中的com,example.com,www.example.com都是域名。域名不区分大小写,即www.example.com与WWW.EXAMPLE.COM一样。FQDNFQDN(Fully qualified domain name)即全域名,大 阅读全文
posted @ 2013-10-07 15:24 blockcipher 阅读(3256) 评论(0) 推荐(0)
摘要:http://highscalability.com/blog/2013/5/13/the-secret-to-10-million-concurrent-connections-the-kernel-i.htmlNow that we have theC10K concurrent connection problemlicked, how do we level up and support 10 million concurrent connections? Impossible you say. Nope, systems right now are delivering 10 mil 阅读全文
posted @ 2013-08-18 20:38 blockcipher 阅读(279) 评论(0) 推荐(0)
摘要:准备翻译从http://pl.atyp.us/content/tech/servers.html摘过来的文章Server DesignI actually wrote this ages ago – the individual chapters are still in the blog archive as posts in July/August of ’02 – and then made a separate document out of it. This version is just the same thing imported as a WordPress page. Am 阅读全文
posted @ 2013-02-18 15:54 blockcipher 阅读(378) 评论(0) 推荐(0)
摘要:在TCP的三次握手中,后采用随机产生的初始化序列号进行请求,这样做主要是出于网络安全的因素着想。如果不是随机产生初始序列号,黑客将会以很容易的方式获取到你与其他主机之间通信的初始化序列号,并且伪造序列号进行攻击,这已经成为一种很常见的网络攻击手段。通常短连接是这样:连接->传输数据->关闭连接那什么是长连接?一般长连接相对短连接而言的,长连接在传输完数后不关闭连接,而不断的发送包保持连接等待处理下一个数据包。such as:连接->传输数据->保持连接->传输数据->。。。->关闭连接。那什么时候用短连接呢?一般长连接用于少数client-endto 阅读全文
posted @ 2010-09-04 11:24 blockcipher 阅读(190) 评论(0) 推荐(0)