Zeromq是个啥玩意?Connectyourcodeinanylanguage,onanyplatform.Carriesmessagesacrossinproc,IPC,TCP,TPIC,multicast.Smartpatternslikepub-sub,push-pull,androuter-dealer.High-speedasynchronousI/Oengines,inatinylibrary.Backedbyalargeandactiveopensourcecommunity.Su..
分类:
Web程序 时间:
2014-07-23 13:45:57
阅读次数:
328
接着上一篇网络编程Socket之TCP之close/shutdown详解...
分类:
其他好文 时间:
2014-07-23 13:11:26
阅读次数:
202
I/O模型:
1. 阻塞式I/O模型
2. 非阻塞式I/O模型:使用fcntl将套接字设置成非阻塞;然后轮询读取数据,这样会耗费大量CPU时间;
3. I/O复用模型:阻塞在select上;
4. 信号驱动式I/O模型:
5. 异步I/O模型:aio_read,信号直到数据已复制到应用进程缓冲区才产生
select:
select的最后一个时间参数:
1. ...
分类:
其他好文 时间:
2014-07-23 13:06:46
阅读次数:
202
sk_buff结构可能是linux网络代码中最重要的数据结构,它表示接收或发送数据包的包头信息。它在中定义,并包含很多成员变量供网络代码中的各子系统使用。 这个结构被不同的网络层(MAC或者其他二层链路协议,三层的IP,四层的TCP或UDP等)使用,并且其中的成员变量在结构从一层向另一层传递时改变。...
分类:
Web程序 时间:
2014-07-23 11:51:16
阅读次数:
247
信号驱动式I/O的本质就是:进程预先告知内核当某个描述符发生事件时,内核会向该进程发送SIGIO信号通知进程,进程可在信号处理函数中进行处理
进程可以通过fcntl打开O_ASYNC标志或ioctl打开FIOASYNC标志来通知内核,二者的区别是一些系统不支持fcntl,所以应尽量使用ioctl
对于TCP套接字产生SIGIO信号的条件:
1.监听套接字上有新连接请求完成
...
分类:
其他好文 时间:
2014-07-23 00:04:48
阅读次数:
223
ICMP协议介绍
1、ICMP是“Internet Control Message Protocol”(Internet控制消息协议)的缩写。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。
2、ICMP报文作为IP层数据报...
分类:
其他好文 时间:
2014-07-22 23:58:38
阅读次数:
544
前言 对于每个TCP连接,TCP一般要管理4个不同的定时器:重传定时器、坚持定时器、保活定时器、2MSL定时器。 重传定时器 非常明显重传定时器是用来计算TCP报文段的超时重传时间的(至于超时重传时间的确定,这里涉及到一大堆的算法,书上有说,我这里不细谈了)。每发送一个报文段就会启动重传定...
分类:
其他好文 时间:
2014-07-22 23:29:07
阅读次数:
296
IP输入函数(ipintr)将在验证分组格式(检验和,长度等)之后,确定分组是否到达目的地之前,对选项进行处理。这表明分组所
遇到的每个路由器以及最终的目的主机都对要分组的选项进行处理。
IP分组内可以包含某些在分组被转发或被接收之前处理的可选字段。IP实现可以用任意顺序处理选项。标准IP首部之后最多可跟
40字节的选项。
1.选项格式
IP选项字段可能包含0个或多个单独选项。选...
分类:
其他好文 时间:
2014-07-22 22:33:53
阅读次数:
246
XMPP 要点.
1. 客户端(C) 和服务器端(S) 通过TCP连接5222端口进行全双工通信.2. XMPP 信息均包含在 XML streams中.一个XMPP会话, 开始于 标签, 并结束于标签.所有其他的信息都位于这俩标签之间.3. 出于安全目的考虑, 开始之后, 后续的内容会被适度的使用 Transpor Layer Security (TLS) 协商传输 和强制性的 S...
分类:
其他好文 时间:
2014-07-22 22:33:53
阅读次数:
364
产生RST的三个条件:
1. 目的地为某端口的SYN到达,然而该端口上没有正在监听的服务器;
2. TCP想取消一个已有的连接;
3. TCP接收到一个根本不存在的连接上的分节;
现在模拟上面的三种情况:
client:
struct sockaddr_in serverAdd;
bzero(&serverAdd, sizeof(serverAdd));...
分类:
其他好文 时间:
2014-07-22 17:57:21
阅读次数:
333