在java里头读取/proc/net/dev

2017-01-30
阅读 4 分钟
3.4k
直接读取/proc/net/dev {代码...} doc NetStatReader LinuxNetStatJMXWrapper

tcp的半连接与完全连接队列

2017-01-28
阅读 4 分钟
14.9k
在三次握手协议中,服务器维护一个半连接队列,该队列为每个客户端的SYN包开设一个条目(服务端在接收到SYN包的时候,就已经创建了request_sock结构,存储在半连接队列中),该条目表明服务器已收到SYN包,并向客户发出确认,正在等待客户的确认包(会进行第二次握手发送SYN+ACK 的包加以确认)。这些条目所标识的连接在...

关于netstat的ListenOverflows等参数

2017-01-27
阅读 2 分钟
12.3k
tcp_v4_syn_recv_sock():三路握手最后一步完成之后,Accept queue队列(完全连接队列,其大小为min(/proc/sys/net/core/somaxconn, backlog))超过上限时加1.

Cache-Control参数

2017-01-23
阅读 1 分钟
3.7k
no-cache:响应不会被缓存,而是实时向服务器端请求资源,这使得HTTP认证能够禁止缓存以保证安全性。实际中这个容易让人产生误解,字面理解是响应不被缓存,而实际上no-cache情况下也是会被缓存的,只是每次客户端都要向服务器评估缓存响应的有效性。

tomcat的acceptCount、maxThreads、connectionTimeout参数调整

2017-01-10
阅读 2 分钟
13.7k
当该值设置为比较大的时候,请求的突增,会很快填满accept队列(完成三次握手建立连接,等待工作线程处理响应,如果一直没得到service,则client得不到响应,出现read timeout,最糟糕的情况是连接在accept队列等待了很久,等到能得到worker线程服务的时候,已经超时了,这样其实浪费了很多连接),让woker线程非常繁忙,...

tomcat的acceptCount与maxConnections

2017-01-09
阅读 7 分钟
18.6k
关于tomcat的参数,有acceptCount、maxConnections、maxThreads、minSpareThreads这几个参数比较容易混淆,这里做一下澄清。

netstat及tcp状态

2017-01-07
阅读 2 分钟
3.1k
netsat {代码...} 得到 {代码...} 整体统计 {代码...} 得到 {代码...} TCP的状态机 建立连接时对应的状态 doc TCP 的那些事儿(上) TCP连接的状态详解以及故障排查

网络数据发送过程

2016-12-20
阅读 1 分钟
2.3k
说到数据的发送,也就是数据从主机进入线路的这段旅程,一般需要经过以下几个环节:应用程序首先得将要发送的数据写入该进程的内存地址空间中,熟悉网络编程的开发者对这个环节一定非常熟悉,通常在程序开发中这只需要一般的运行时变量赋值即可。应用程序通过系统函数库接口(比如send函数)向内核发出系统调用,由系统...

网关瓶颈

2016-12-19
阅读 1 分钟
2k
尽管如此,作为NAT服务器的网关也成为制约集群扩展的瓶颈,我们知道,NAT服务器不仅要将用户的请求转发给实际服务器,同时还要将来自实际服务器的响应转发给用户,所以,当实际服务器数量较多,并且响应数据流量较大时,来自多个实际服务器的响应数据包将有可能在NAT服务器发生拥挤。显然,考验NAT服务器转发能力的时刻...

DNS故障转移

2016-12-10
阅读 1 分钟
3.7k
对于负载均衡调度器后端的多台实际服务器,我们完全可以通过监控系统来实时了解它们的状态,一旦发现某台服务器出现故障,这时候就需要立刻将它从调度策略中拿掉,也就是暂停指向该服务器的DNS记录,以免用户访问到发生故障的服务器而感到莫名其妙。对于基于DNS的负载均衡系统,要做到这一点的确让人非常头疼,因为有一...

磁盘及网络IO工作方式解析

2016-12-04
阅读 5 分钟
14.4k
PIO我们拿磁盘来说,很早以前,磁盘和内存之间的数据传输是需要CPU控制的,也就是说如果我们读取磁盘文件到内存中,数据要经过CPU存储转发,这种方式称为PIO。显然这种方式非常不合理,需要占用大量的CPU时间来读取文件,造成文件访问时系统几乎停止响应。

阻塞、超时和关闭

2016-05-13
阅读 6 分钟
4.5k
TCP套接字的write方法在没有足够的空间缓存传输的数据时可能阻塞,ServerSocket的accept方法和Socket的构造函数都会阻塞等待,直到连接建立。同时,长的信息往返时间,高错误率的连接和慢速的(或已发生故障的)服务器,都可能导致需要很长的时间来建立连接。所有这些情况,只有在连接请求得到满足后这些方法才会返回。

数据帧及消息定界

2016-05-10
阅读 2 分钟
2.8k
framing 成帧(framing):解决接收端如何定位消息的首尾位置的问题。 无论信息是编码成文本、多字节二进制数、或是两者结合,应用程序协议必须制定消息的接收者如何确定何时消息已完整接收。 如果是采用DatagramPacket发送,则没有问题,因为它有一个确定的长度告诉接收者,让其知道消息的结束位置。 如果是通过TCP传送...

网络协议及编码

2016-05-09
阅读 5 分钟
6k
网络层:完成将分组报文(packet)传输到它的目的地,即路由功能,一般采用IP协议。IP协议提供了一种数据服务:每组分组报文都有网络独立处理和分发,就像信件或包裹通过邮政系统发送一样。每个IP报文必须包含一个保存其目的地址的字段。

通信协议设计要点

2016-02-20
阅读 4 分钟
6.2k
(1)采用什么字符集编码/解码(2)单个字符到字节的顺序(big-endian还是little-endian)(3)多个字符的分隔方式(采用分隔符还是定长方式,还是带字符长度的信息)