举个栗子

好读书,不求甚解

tcp retransmission

为什么tcp会存在retransmission?tcp协议是一个可靠的协议。它通过重新发送(retransmission)来实现tcp片段传输的可靠性。简单来说,tcp会不断重复发送tcp片段,知道片段被正确接收。 超时重新发送当发送方送出一个TCP片段后,将开始计时,等待该TCP片段的ACK回复。如果接收方正确接收到符合次序的片段,接收方会利用ACK片段回复发送方。发送方得到ACK回复后,继续移动窗口,发送接下来的TCP片段。 阅读全文

使用node.js开发proxy程序

这是一个工作中的遗留问题。 对_http_client.js、_http_server.js、stream.js源码的简单研究 之前使用node.js写了一个proxy程序,完成http请求的转发任务,在生产环境中一直存在hang up的问题,proxy大概的工作原理如下: 阅读全文

SIGTERM vs. SIGKILL

在Unix系统中使用kill命令给进程发送信号对于大多数系统管理员来说不是什么新鲜事,但是对于kill和kill -9有什么不同,我还是被询问过很多次。 阅读全文

Node.js socket hang up error

报socket hang up错误一般有2种可能,下面通过2个例子来说明: 客户端客户端发送请求给远程服务端,没有及时收到服务端响应(默认超时时间为2分钟),这个时候socket就会结束,并抛出socekt hang up的错误信息,我们应该捕获这个错误并正确的处理它。 阅读全文

使用nvm管理node版本

nvm安装传送门https://github.com/creationix/nvm 此处需要注意的是:nvm安装完成后需要关闭终端,重新连接终端才可以使用nvm 阅读全文