随笔分类 -  Linux网络编程

摘要:ip_conntrack就是linux NAT的一个跟踪连接条目的模块,ip_conntrack模块会使用一个哈希表记录 tcp 通讯协议的 established connection记录,当这个哈希表满了的时候,便会导致nf_conntrack: table full, dropping packet错误。 查看目前 ip_conntrack buffer 的使用状况 cat... 阅读全文
posted @ 2013-07-02 08:00 浪里飞 阅读(1237) 评论(0) 推荐(0)
摘要:ab命令作apache压力测试 ./ab -c 100 -n 10000 http://127.0.0.1/index.php -c 100 即:每次并发100个 -n 10000 即: 共发送10000个请求 原文 http://bjlfp.blog.163.com/blog/static/773684612012010201436/ http://li... 阅读全文
posted @ 2013-07-02 07:50 浪里飞 阅读(313) 评论(0) 推荐(0)
摘要:TCP协议三次握手过程分析 TCP(Transmission Control Protocol) 传输控制协议 TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接: 位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结... 阅读全文
posted @ 2013-06-29 19:45 浪里飞 阅读(429) 评论(0) 推荐(0)
摘要:常见状态 1、建立连接 2、关闭连接 阅读全文
posted @ 2013-06-29 18:46 浪里飞 阅读(332) 评论(0) 推荐(0)
摘要:cat /proc/net/sockstat [root@VP-CS-243 ~]# !cat cat /proc/net/sockstat sockets: used 294 TCP: inuse 35 orphan 0 tw 0 alloc 45 mem 1 UDP: inuse 13 mem 2 UDPLITE: inuse 0 RAW: in... 阅读全文
posted @ 2013-06-29 18:20 浪里飞 阅读(1902) 评论(0) 推荐(0)
摘要:The "Out of socket memory" error I recently did some work on some of our frontend machines (on which we run Varnish) at StumbleUpon and decided to track down some of the errors the Linux kernel ... 阅读全文
posted @ 2013-06-28 01:04 浪里飞 阅读(1640) 评论(0) 推荐(0)
摘要:关于TIME_WAIT可能引发的网络问题 统计? shell> netstat -nt | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"\t",state[key]}' 如何减少? 网络上已经有不少相关的介绍,大多是建议: shell> sysctl net.ipv4.tcp_tw_r... 阅读全文
posted @ 2013-06-02 11:15 浪里飞 阅读(680) 评论(0) 推荐(0)
摘要:TCP Timestamp选项 Description Protocol suite: TCP/IP. Protocol type: Transport layer protocol. Option length: 10 bytes. The TCP Timestamp option obsoletes the TCP Echo request and Ech... 阅读全文
posted @ 2013-06-02 11:08 浪里飞 阅读(3157) 评论(0) 推荐(0)
摘要:AES分组加密使用示例示例1/* tomcrypt(http://libtomcrypt.org/) aes分段加密演示。使用前 #include <tomcrypt.h> AES,分段长度16,密钥最大长度32 还支持以下各种分段加密方式,其分段长度和密钥长度参考 crypt.pdf 21页 Blowfish XTEA RC5 RC6 SAFER+ Rijndael (aka AES) Twofish SAFER (K64, SK64, K128, SK128) RC2 DES, 3DES CAST5 Noekeon Skipjack Anubis (with optional 阅读全文
posted @ 2013-05-31 07:58 浪里飞 阅读(12022) 评论(0) 推荐(0)
摘要:AES分组加密简介 1、首先应该明白AES是基于数据块的加密方式,也就是说,每次处理的数据是一块(16字节),当数据不是16字节的倍数时填充,这就是所谓的分组密码(区别于基于比特位的流密码),16字节是分组长度。 2、分组加密的几种方式 ECB:是一种基础的加密方式,密文被分割成分组长度相等的块(不足补齐),然后单独一个个加密,一个个输出组成密文。 CBC:是一种循环... 阅读全文
posted @ 2013-05-31 07:52 浪里飞 阅读(5237) 评论(0) 推荐(0)
摘要:对称加密和分组加密中的四种模式(ECB、CBC、CFB、OFB) 一. AES对称加密: AES加密 分组 二. 分组密码的填充 分组密码的填充 e.g.: ... 阅读全文
posted @ 2013-05-30 08:00 浪里飞 阅读(3388) 评论(0) 推荐(0)
摘要:http长连接200万尝试及调优 对于一个server,我们一般考虑他所能支撑的qps((QueryPerSecond)),但有那么一种应用, 我们需要关注的是它能支撑的连接数个数,而并非qps,当然qps也是我们需要考虑的性能点之一。这种应用常见于消息推送系统,也称为comet应用,比如聊天室或即时消息推送系统等。comet应用详细介绍可见我之前的介绍,在此不多讲。对于这类系统,因为... 阅读全文
posted @ 2013-05-27 00:53 浪里飞 阅读(426) 评论(1) 推荐(0)
摘要:For a TCP connection memory consumed depends on 1) size of sk_buff (internal networking structure used by linux kernel) 2) the read and write buffer for a connection the size of buffers ca... 阅读全文
posted @ 2013-05-27 00:30 浪里飞 阅读(1072) 评论(0) 推荐(0)
摘要:单机最大tcp连接数 网络编程 在tcp应用中,server事先在某个固定端口监听,client主动发起连接,经过三路握手后建立tcp连接。那么对单机,其最大并发tcp连接数是多少? 如何标识一个TCP连接 在确定最大连接数之前,先来看看系统如何标识一个tcp连接。系统用一个4四元组来唯一标识一个TCP连接:{local ip, local port,remote ... 阅读全文
posted @ 2013-05-27 00:18 浪里飞 阅读(20517) 评论(0) 推荐(2)
摘要:解决 nf_conntrack: table full, dropping packet 的几种思路 nf_conntrack 工作在 3 层,支持 IPv4 和 IPv6,而 ip_conntrack 只支持 IPv4。目前,大多的 ip_conntrack_* 已被 nf_conntrack_* 取代,很多 ip_conntrack_* 仅仅是个 alias,原先的 ip_conn... 阅读全文
posted @ 2013-05-19 18:23 浪里飞 阅读(11643) 评论(0) 推荐(1)
摘要:部分 TCP 参数简介 tcp_max_syn_backlog 端口最大 backlog 内核限制。此参数限制 服务端应用程序 可以设置的端口最大 backlog 值 (对应于端口的 syn_backlog 和 backlog 队列长度)。动机是在内存有限的服务器上限制/避免应用程序配置超大 backlog 值而耗尽内核内存。如果应用程序设置 backlog 大于此值,操作系统将... 阅读全文
posted @ 2013-05-16 00:14 浪里飞 阅读(409) 评论(0) 推荐(0)
摘要:通过调整tcp参数来防范DDOS攻击 虚拟主机服务商在运营过程中可能会受到黑客攻击,常见的攻击方式有SYN,DDOS等。通过更换IP,查找被攻击的站点可能避开攻击,但是中断服务的时间比较长。比较彻底的解决方法是添置硬件防火墙。不过,硬件防火墙价格比较昂贵。可以考虑利用Linux 系统本身提供的防火墙功能来防御。 抵御SYN SYN攻击是利用TCP/IP协议3次握手的原理,发送大量... 阅读全文
posted @ 2013-05-14 23:56 浪里飞 阅读(589) 评论(0) 推荐(0)
摘要:netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' 结果: 除了ESTABLISHED,可以看到连接数比较多的几个状态是:FIN_WAIT1, TIME_WAIT, CLOSE_WAIT, SYN_RECV和LAST_ACK;下面的文章就这几个状态的产生条件、对系统的影响以及处理方式... 阅读全文
posted @ 2013-05-14 22:42 浪里飞 阅读(2282) 评论(0) 推荐(0)
摘要:1. Orphan socket 不属于任何进程的socket叫orphan socket。这里顺便一下讨论orphan socket,因为很多网络资源不足导致的错误都和“孤儿socket”有关。 1.1 Orphan socket是怎么产生的呢? 网上没有明确的说明,我们做一个线上调查: Shell代码 [maoyidao@03701 ~]# netsta... 阅读全文
posted @ 2013-05-14 01:55 浪里飞 阅读(1911) 评论(0) 推荐(0)
摘要:两种情况会出发 "Out of socket memory" 的信息:1.有很多的孤儿套接字(orphan sockets)2.tcp socket 用尽了给他分配的内存首先看看情况 2。对于 TCP socket 来说,使用 pages 来计数的,而非 bytes,一般情况下 1 page = 4096 bytes。page 大小可以通过下面命令获得:$ getconf PAGESIZE4096查看内核分配了多少的内存给 TCP:$ cat /proc/sys/net/ipv4/tcp_mem69618 92825 139236第一个数字表示,当 tcp 使用的 page 阅读全文
posted @ 2013-05-14 01:38 浪里飞 阅读(1582) 评论(0) 推荐(0)