网络编程
zlxfogger
这个作者很懒,什么都没留下…
展开
-
apache.httpclient工具包HTTP连接池请求例子
在工作中有用到HTTP请求外部地址传递数据.用Url这个类明显效率低下,所以改用连接池概念的URL请求,这将大大提高了请求效率.主发送类[java] view plaincopypackage com.cdg.test; import java.util.HashMap; import java转载 2015-03-31 16:04:25 · 1547 阅读 · 0 评论 -
CLOSE_WAIT状态的原因与解决方法
这个问题之前没有怎么留意过,是最近在面试过程中遇到的一个问题,面了两家公司,两家公司竟然都面到到了这个问题,不得不使我开始关注这个问题。说起CLOSE_WAIT状态,如果不知道的话,还是先瞧一下TCP的状态转移图吧。关闭socket分为主动关闭(Active closure)和被动关闭(Passive closure)两种情况。前者是指有本地主机主动发起的关闭;而后者则是指本地主机转载 2015-04-08 14:29:57 · 777 阅读 · 0 评论 -
服务器TIME_WAIT和CLOSE_WAIT详解和解决办法
昨天解决了一个HttpClient调用错误导致的服务器异常,具体过程如下:http://blog.csdn.net/shootyou/article/details/6615051里头的分析过程有提到,通过查看服务器网络状态检测到服务器有大量的CLOSE_WAIT的状态。 在服务器的日常维护过程中,会经常用到下面的命令:netstat -n | awk '/^tcp转载 2015-04-08 09:48:24 · 838 阅读 · 0 评论 -
Linux下高性能网络编程中的几个TCP/IP选项_SO_REUSEADDR、SO_RECVBUF、SO_SNDBUF、SO_KEEPALIVE、SO_LINGER、TCP_CORK、TCP_NODE
最近在新的平台上测试程序,以前一些没有注意到的问题都成为了性能瓶颈,通过设置一些TCP/IP选项能够解决一部分问题,当然根本的解决方法是重构代码,重新设计服务器框架。先列出几个TCP/IP选项:选项man 7 socket:SO_REUSEADDRSO_RECVBUF/SO_SNDBUFSO_KEEPALIVESO_LINGERman 7 tcp:TCP_CORK转载 2015-04-07 17:10:57 · 2866 阅读 · 0 评论 -
深入Jetty源码之Buffer
概述在Jetty中Buffer是对Java中Stream IO中的buffer和NIO中的buffer的抽象表示,它主要用于缓存连接中读取和写入的数据。在Jetty中,对每个连接使用Buffer从其InputStream中读取字节数据,或将处理后的响应字节写入OutputStream中,从而Jetty其他模块在处理请求和响应数据时直接和Buffer打交道,而不需要关注底层IO流。转载 2015-04-07 17:41:55 · 702 阅读 · 0 评论 -
linux server的idle timeout情况整理(设置不好有可能会导致事故)
总的来说idle timeout的配置使用可以分出这样一些使用情况:1、内网: (1) php或cgi -------àSERVER A(仅提供服务的server) 这里php和cgi都是短连接操作后端svr A的,所以SERVER这里的idle timeout可以尽量设置的长一些转载 2015-04-07 17:25:36 · 2586 阅读 · 0 评论 -
http的KeepAlive详解
KeepAlive既熟悉又陌生,踩过坑的同学都知道痛。一线运维工程师踩坑之后对于KeepAlive的总结,你不应该错过! 最近工作中遇到一个问题,想把它记录下来,场景是这样的:从上图可以看出,用户通过Client访问的是LVS的VIP, VIP后端挂载的RealServer是Nginx服务器。 Client可以是浏览器也可以是一个客户端程序。一般情况下,这种架构转载 2015-04-07 14:29:20 · 10368 阅读 · 0 评论 -
一个前辈写的网络协议学习方法
网络这东西就是一个靠实践的东西,只靠看书是不行的。当年在学校还上过史美林教授/张公忠教授所讲的计算机网络体系结构课,用的是Tanabaum写的那本,考试还得了九十多分,可实际还是连TCP和UDP有什么区别都分不清,就是死记背,到毕业的时候基本上是忘光了,工作后等于重新来过。 上班了要在Linux做一些底层的网络处理,不得不从头来学Linux和网络,编程部分主要看Richard S转载 2015-04-07 17:29:54 · 362 阅读 · 0 评论 -
wireshark怎么抓包、wireshark抓包详细图文教程
wireshark是非常流行的网络封包分析软件,功能十分强大。可以截取各种网络封包,显示网络封包的详细信息。使用wireshark的人必须了解网络协议,否则就看不懂wireshark了。为了安全考虑,wireshark只能查看封包,而不能修改封包的内容,或者发送封包。wireshark能获取HTTP,也能获取HTTPS,但是不能解密HTTPS,所以wireshark看不懂HTTPS转载 2015-04-07 15:08:38 · 1135 阅读 · 0 评论 -
神秘的40毫秒延迟与 TCP_NODELAY
最近的业余时间几乎全部献给 breeze 这个多年前挖 下的大坑—— 一个异步 HTTP Server。努力没有白费,项目已经逐渐成型了, 基本的框架已经有了,一个静态 文件模块也已经实现了。写 HTTP Server,不可免俗地一定要用 ab 跑一下性能,结果一跑不打紧,出现了一个困扰了我好几天的问题:神秘的 40ms 延迟。Table of Contents转载 2015-04-07 15:20:53 · 407 阅读 · 0 评论 -
Java Socket超时浅析
套接字或插座(socket)是一种软件形式的抽象,用于表达两台机器间一个连接的“终端”。针对一个特定的连接,每台机器上都有一个“套接字”,可以想象它们之间有一条虚拟的“线缆”。JAVA 有两个基于数据流的套接字类:ServerSocket,服务器用它“侦听”进入的连接;Socket,客户端用它初始一次连接。侦听套接字只能接收新的连接请求,不能接收实际的数据包。 套接字是基于TCP/IP实转载 2015-04-01 15:54:29 · 392 阅读 · 0 评论 -
java socket参数详解:BackLog
输入连接指示(对连接的请求)的最大队列长度被设置为 backlog 参数。如果队列满时收到连接指示,则拒绝该连接。注意: 1. backlog参数必须是大于 0 的正值。如果传递的值等于或小于 0,则假定为默认值。 2. 经过测试这个队列是按照FIFO(先进先出)的原则。3. 如果将accept这个函数放在一个循环体中时,backlog参数也不会有什么作用。或者简单的讲运行Serv转载 2015-03-31 16:07:18 · 444 阅读 · 0 评论 -
java servlet或者struts通过HTTP方式传输数据到另外一系统
在工作中有用到HTTP请求外部地址传递数据.用Url这个类明显效率低下,所以改用连接池概念的URL请求,这将大大提高了请求效率.主发送类[java] view plaincopypackage com.cdg.test; import java.util.HashMap; import转载 2015-03-31 16:04:45 · 542 阅读 · 0 评论 -
HttpClient连接池抛出大量ConnectionPoolTimeoutException: Timeout waiting for connection异常排查
今天解决了一个HttpClient的异常,汗啊,一个HttpClient使用稍有不慎都会是毁灭级别的啊。这里有之前因为route配置不当导致服务器异常的一个处理:http://blog.csdn.net/shootyou/article/details/6415248里面的HttpConnectionManager实现就是我在这里使用的实现。问题表现:t转载 2015-04-08 09:51:11 · 516 阅读 · 0 评论