更多 标签 'TCP'
  • TCP keepalive概述
  • keep tcp alive,从字面上看,它能够检测你的 TCP socket 并检测连接是否在运行或者是否已经被破坏。keepalive概念很简单:当建立一个TCP连接时,你将一系列的定时器与该连接相关联。这些定时器中某些用于处理keepalive过程。当keepalive定时器变为0时,你给你的同伴(也就是对方)发送一个keepalive 探针包(probe packet),包内没有数据并且ACK标识打开。
  • HTTP协议中的长连接与短连接
  • 长连接与短连接的不同主要在于client和server采取的关闭策略不同。短连接在建立连接以后只进行一次数据传输就关闭连接,而长连接在建立连接以后会进行多次数据数据传输直至关闭连接(长连接中关闭连接通过Connection:closed头部字段)。
  • 弄清楚HTTPServer与Request处理流程
  • TCPServer.bind_sockets()会返回一个socket对象的列表,列表中的socket都是用来监听客户端连接的。列表由TCPServer.add_sockets()处理。在这个函数里我们就会看到IOLoop相关的东西。首先,io_loop是TCPServer的一个成员变量,这说明每个TCPServer都绑定了一个io_loop。
  • 从代码分析TCPServer类的机制
  • 接上面一小节,开始看 TCPServer 的 code。TCPServer的__init__函数很简单,仅保存了参数而已。唯一要注意的是,它可以接受一个io_loop为参数。实际上io_loop对TCPServer来说并不是可有可无,它是必须的。不过TCPServer提供了多种渠道来与一个io_loop绑定,初始化参数只是其中一种绑定方式而已。
  • Tornado TCPServer类的设计解读
  • 前文已经说过,HTTPServer是派生自TCPServer,从协议层次上讲,这再自然不过。从TCPServer的实现上看,它是一个通用的server框架,基本是按照BSD socket的思想设计的。create-bind-listen三段式一个都不少。接下来我们就去看看TCPServer这个类的实现,它的代码放在tornado/tcpserver.py中。
  • Tornado在TCP层里的工作机制
  • 上一节是关于应用层的协议 HTTP,它依赖于传输层协议 TCP,例如服务器是如何绑定端口的?HTTP 服务器的 handle_stream 是在什么时候被调用的呢?本节聚焦在 TCP 层次的实现,以便和上节的程序流程衔接起来。首先是关于 TCP 协议。这是一个面向连接的可靠交付的协议。由于是面向连接,所以在服务器端需要分配内存来记忆客户端连接……
更多 推荐文章

Welcome to NowaMagic Academy

现代魔法 推荐于 2013-02-27 10:23

更多 目录树
更多 热门小组
魔法达人