随笔分类 - Linux网络编程
摘要:参考 http://blog.csdn.net/allenlinrui/article/details/5964046 x/<n/f/u> <addr> n、f、u是可选的参数。 n是一个正整数,表示需要显示的内存单元的个数,也就是说从当前地址向后显示几个内存单元的内容,一个内存单元的大小由后面的u
阅读全文
摘要:目前linux中的signal()是通过sigation()函数实现的。 由signal()安装的实时信号支持排队,同样不会丢失。 先看signal 和 sigaction 的区别: 关键是 struct sigaction act; 里面有三个部分,除了 signal函数会关注的 sa_handl
阅读全文
摘要:这篇讲的非常好 http://blog.csdn.net/liuzhanchen1987/article/details/7325376 红黑树确保没有一条路径会比其他路径长出俩倍,因而是接近平衡的。 1)每个结点要么是红的,要么是黑的。2)根结点是黑的。3)每个叶结点,即空结点(NIL)是黑的。4
阅读全文
摘要:看这里: http://blog.csdn.net/lollipop_jin/article/details/8499530 shared_ptr可以多线程同时读,但是涉及到写,需要加锁。 shared_ptr开销较大。 多个(5个以上)shared_ptr共享一个动态对象,那么每个shared_p
阅读全文
摘要:看这篇文章: http://www.cnblogs.com/woaiyy/p/3554182.html 窗口滑动,如下图: 流量控制 流量控制方面主要有两个要点需要掌握。一是TCP利用滑动窗口实现流量控制的机制;二是如何考虑流量控制中的传输效率。 关于二,一个显而易见的问题是:单个发送字节单个确认,
阅读全文
摘要:TCP层为了可靠性,还额外需要解决3个大问题:丢包(网络分组在传输中存在的丢失)、重复(协议层异常引发的多个相同网络分组)、延迟(很久后网络分组才到达目的地)。另外,是不是还有顺序。 涉及到滑动窗口和拥塞控制。重要的一点:TCP协议是保证了整体网络的性能的最优化。而不是本身端对端两点网络性能的最优化
阅读全文
摘要:accept的时候,三次连接是建立的。 有一种DOS攻击是SYN FLOOD,就是大量的SYN到达,但是没有ACK,无法建立起连接。 防御的方法,有多种,如下: 比如,禁止部分源地址; 到达一定阈值之后,丢弃半连接。 延缓TCB等数据结构的分配时间。 采用防火墙或者proxy,来过滤。
阅读全文
摘要:这个网页里面写了: http://blog.csdn.net/plusboy/article/details/1523308 其可靠性必须由上层应用实现。一般都会采用消息重传来实现其可靠性,采用消息重传的时候有两种方式,一种是发送者发起,另一种是接收者发起。 前一种接收者发的是ACK。发送者收到AC
阅读全文
摘要:这篇写的很好 http://blog.chinaunix.net/uid-24774106-id-3065234.html UNIX系统编程,这本书中有大量的重启系统调用,例如下面的例子:选自P50, 还有对read,write的重启操作。 UNP volume1中提到slow system cal
阅读全文
摘要:接上一篇,复习一下 启动php或hhvm: 启动nginx或lighttpd: 从php切换到hhvm 如果使用hhvm,则需要切换webserver的配置到hhvm。Nginx配置切换需要修改webserver/conf/vhost/php.conf: 这是因为fast-cgi监听的方式有两种,一
阅读全文
摘要:这篇文章讲的不错 http://blog.csdn.net/liujiyong7/article/details/43346829 先说结论吧: 1. Linux多进程accept系统调用的惊群问题(注意,这里没有使用select、epoll等事件机制),在linux 2.6版本之前的版本存在,在之
阅读全文
摘要:这篇写的不错 http://www.cnblogs.com/linguoguo/p/5511293.html Nginx为啥性能高-多进程异步IO模型 1. 对于每个worker进程来说,独立的进程,不需要加锁,所以省掉了锁带来的开销,同时在编程以及问题查找时,也会方便很多。 2. 采用独立的进程,
阅读全文
摘要:开宗明义,epoll以及BSD的kqueue就是推出来解决 C10K的。Linux2.6 2003年左右。 可以看这篇文章 http://www.oschina.net/translate/the-secret-to-10-million-concurrent-connections-the-ker
阅读全文
摘要:我觉得这篇讲的不错。 http://blog.csdn.net/c_cyoxi/article/details/8673645 Nagle算法的基本定义是任意时刻,最多只能有一个未被确认的小段。 关闭:通过加TCP_NODELAY选项。 TCP_CORK 选项: 所谓的CORK就是塞子的意思,形象地
阅读全文