• 2010-06-03

    endless_tcp – 一种适应极端网络环境的网络软件架构

    Views: 29124 | No Comments

    TCP 是一种可靠连接的协议, 即使在恶劣的网络环境中(如丢包率高), 也能实现数据的可靠传输. 可以简单地和 UDP 对比. 使用 UDP 发出一份数据, 你无法通过 UDP 本身判断数据是否已经被对方收到. 但是使用 TCP, 你可以判断, 因为如果 TCP 无法保证对端收到数据, 连接便会使自己失败, 从而你得到一个通知.

    TCP 会话依赖于 IP 和端口, 也就是说, 一旦双方的任意一方的 IP 和端口发生了改变, TCP 连接就失效了. 另外, 虽然 TCP 有重传机制, 但重传失效的次数和时限用户转难控制. 为解决这两个问题, 需要实现一种不依赖于 IP/Port, 适应极其恶劣(超过 TCP 的容忍范围)的网络环境的连接协议, 称为 endless_tcp.

    Continue reading »

    Posted by ideawu at 2010-06-03 22:12:04 Tags:
  • 2009-10-22

    TCP读取报文不完整的问题分析(粘包,拆包)

    Views: 29037 | No Comments

    首先解释一下这个题目, "报文"指的是业务层自定义的报文, TCP是流式协议, 不像UDP那样是报文协议.

    某两个系统间进行网络交互, 请求报文的格式为:

    <json串>&sig=xxx

    请求方用PHP的stream_socket_sendto()进行发送. 服务器端使用Python的twisted框架. 上线后, 出现问题, 服务器端接收到的报文不完整. 例如, json串只读了一半, 或者缺少"&sig=xxx", 缺少的数据是随机的, 但只缺少尾部, 已经接收到数据没有差错.
    Continue reading »

    Posted by ideawu at 2009-10-22 19:21:02 Tags:
|<<<1>>>| 1/1 Pages, 2 Results.