看了erlang的一些开源网络框架RabbitMQ、Ranch,他们都使用多个进程同时accept一个socket。这种方式在使得socket端口监听的工作分担了更多的调度机会,但是,在erlang中,socket接受一个新连接后,如果想让另一个进程处理消息,就要显式的调用gen_tcp:controlling_process(Socket, Pid)。所以问题来了,erlang多个进程同时监听一个socket安全吗?文章将会重点讨论这个问题及对这个问题做优化。...
分类:
其他好文 时间:
2014-06-03 03:52:52
阅读次数:
218
TCP流量控制的目的是限制发送端的发送速率,使得接收方能够及时接收。TCP主要是通过滑动窗口来实现流量控制的。实际上,发送窗口的大小不仅受接收窗口rwnd的大小的限制,还受拥塞窗口cwnd窗口的限制,为了实现点到点的流量控制,本文假设拥塞窗口足够大(即网络链路比较流畅),仅考虑发送窗口swnd受接收窗口的限制。...
分类:
其他好文 时间:
2014-06-03 02:39:49
阅读次数:
543
TCP是一种面向连接的、可靠的、基于字节流的协议。可靠性指的是发送应用程序把数据流交付给TCP后,能够把数据流按序地、无差错地交给接收端的接收端的应用程序。TCP通过差错控制来提供可靠性,TCP差错控制包括:(1)检测并重传受损伤的报文段;(2)重传丢失的报文段;(3)丢弃重传的报文段并重传该报文段的ACK;(4)保证接收缓冲区的报文段按序交给接收端的应用程序...
分类:
其他好文 时间:
2014-06-03 02:34:03
阅读次数:
564
Node即学即用
REPL(Read-Evaluate-Print-Loop)
console.log
.clear .help .exit
require('http') createServer
聊天服务器
tcp服务器
require(‘net')
on connection
on data...
分类:
其他好文 时间:
2014-06-01 18:20:16
阅读次数:
464
Net/3组把协议关联到一个域,并且用一个协议族常量来标识每个域。Net/3还通过所有的编址方法将协议分组。在一个域中
的每个协议使用同类地址,并且每种地址只被一个域使用。作为结果,一个域能通过它的协议族或地址族常量唯一标识。
下图是是我们讨论的协议和常量。
1.domain结构
一个协议有一个下图所示的domain结构来表示。
下图显示了一个domains列表的...
分类:
其他好文 时间:
2014-06-01 17:32:52
阅读次数:
324
程序分为编码端和解码端,两端通过tcp socket通信,编码端一边编码一边将编码后的数据发送给解码端,解码端一边接收数据一边将解码得到的帧显示出来。
代码中的编码端编码的是实时屏幕截图。代码调用了Qt SDK。
#ifndef MAPTHREAD_H
#define MAPTHREAD_H
#include
#include
#include
#include
#include ...
分类:
其他好文 时间:
2014-06-01 15:36:55
阅读次数:
415
一篇非常糟糕的分析常见的通信协议实验报告,以及所带来的反思,说不定也有你的影子,也欢迎大家指出更多的批评和建议。...
分类:
其他好文 时间:
2014-06-01 07:23:25
阅读次数:
314
参考了 ss的源代码
以及 netlink相关资料:http://blog.csdn.net/scdxmoe/article/details/27711205
实现结果为:
gcc netlink_dig_530_7.c -o netlink_dig_530_7
./netlink_dig_530_7
state family l.addr...
分类:
Web程序 时间:
2014-06-01 05:15:58
阅读次数:
424
SAN是storage area network(存储区域网络)的简写,早期的san采用的是光纤通道技术,后期当iscsi协议出现以后,为了区分两者,就划分了IP SAN和FC SAN。FC SAN由于其昂贵的价格让许多企业退避三舍,IP SAN作为一个很好的代替产品出现在了人们的视线中。现在大部分存储设备提供支持基于TOE技术的接口,可以在硬件基础上处理TCP/IP协议。这意味着ISCSI设备可...
分类:
其他好文 时间:
2014-06-01 01:56:19
阅读次数:
369