随笔分类 - 网络
摘要:正常情况tcp四层握手关闭连接,rst基本都是异常情况,整理如下: 1. GFW 2. 对方端口未打开,发生在连接建立 如果端口打开,只是sync_backlog满了的话,sync简单被丢弃,表现为超时,而不会rst。 3. close Socket 时recv buffer 不为空 例如,客户端发
阅读全文
摘要:linux TIME_WAIT 相关参数: 注意: - 不像Windows 可以修改注册表修改2MSL 的值,linux 需要修改内核宏定义重新编译,tcp_fin_timeout 不是2MSL 而是Fin-WAIT-2状态超时时间. - tcp_tw_reuse 和 SO_REUSEADDR 是两
阅读全文
摘要:上篇Erlang C1500K长连接推送服务-性能提到:150w连接,使用了23GB内存,每个连接占用15KB,约一半是内核使用。大概分析一下:1. Erlang 节点 12GB,内部因为有内存池碎片问题,实际使用9GB,也就是实际每个进程+Port占用越6K,因为采用hibernate策略,已经...
阅读全文
摘要:Whatsapp已经使用Erlang在生产环境跑到96GB内存单机 3M长连接,参加:WhatsApp的Erlang世界。毕竟业务级别能达到Whatsapp那样极少,现在只有千万级,单机太多挂一台影响太大,再者就是没有多线接入,每个机房都得扔那么几台机器吧,所以1M就能满足要求。Erlang 作为长...
阅读全文
摘要:因为需要,尝试了预研下面常用几个软负载,大概整理了如下:(自己只是在虚机部署,大概跑跑,没做详细性能测试,性能数值为网上看到的文章归纳,仅供参考):1.LVS 性能最强1. LVS :Linux Virtual Server(VS),请求对于RealServer(RS)都是透明的(不修改Src),使...
阅读全文
摘要:问题场景:非常重要带状态服务,经常出现机器硬件故障,需要运维手动切换备机,修改配置,反应速度慢。 想过解决方案:1. 一致性hash,目前使用zk临时节点方案有些问题。像如果机器因为网络不稳定掉线,Zookeeper Client在触发Session Expried 事件时,无法确定已经掉线多长时...
阅读全文
摘要:主机有时会使用自己的IP地址作为目标地址发送ARP请求。这种ARP请求称为Gratuitous ARP,主要有两个用途:(1)检查重复地址(如果收到ARP响应表明存在重复地址)。 在windows NT下,网卡启动时,TCP/IP协议栈初始化时会最大发送3次Gratuitous ARP请求(初始化...
阅读全文
摘要:所了解到的网络设备设计情况,网络设备CPU很弱,只用来完成如DHCP、ARP路由更新等较轻工作,主要的路由转发直接有ASIC专用芯片。ASIC芯片类似于一段固定程序由硬件来实现,处理速度和能效相比CPU要高出一两个数量级,而且可以由很多物理核心并行完成;这好比GPU要比CPU在专用计算上的差距。思科...
阅读全文
摘要:曾经写过一个远程网络抓包工具,为啥原远程抓了?在解决现网问题,或者统计数据,需要快速准确的抓取特点的网络吧。我们应用都是windows机器,经常需要抓XX服务某A机到XX服务B机的网络包,定位机器、查部署情况、IP地址、负载配置、同时操作多台设备等等都特别耗时,因为有了这个工具的设计初衷。于是开...
阅读全文
摘要:为内存映射文件模块单独弄设计的,用于MMF上实现多进程见消息传输;测试中发现命名管道的效率很差,性能还不如用Socket Loopback,决定试试MMF。测试了下性能还不错,在我机器上:测试每个包4K 每秒可以执行近100w写入+读取操作,也就是每秒8G的数据操作,可以满足觉大多数业务需求。唯一不...
阅读全文
摘要:闲着没事试着写写,本来想应该挺简单的,但一写就折腾大半天。Http要实现多线程现在需要WebHost对HttpHeader中Range支持,有些资源不支持Range头就必须顺序下载。协议参考 rfc2616:http://www.ietf.org/rfc/rfc2616.txt大概步骤:1.检测Ra...
阅读全文
摘要:这个前段时间无聊写的,还有不基于IIS的实现,HttpListener和Socket(Socket暂时没写)请移步到这儿下载源代码。 所谓的长连接就是服务端长时间挂起请求, 不立即返回,等必要时在返回。至于客户端通常有Iframe的Chunked方式和普通的XMLHTTPRequest。Iframe
阅读全文

浙公网安备 33010602011771号