摘要:
一.TCP简介 TCP提供一种面向连接的,可靠的字节流服务。面对连接意味着两个使用TCP的应用,在彼此交换数据之前必须先建立一个连接。TCP通过以下方式提供可靠性: 1. 应用数据被分割成TCP认为最适合发送的数据块,由TCP传递给IP的信息单位成为报文段。 2. 当TCP发出一个段后,它就启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段。 3. 当TCP收到TCP连接另一端的数据,它将发送一个确认。这个确认不是立即发送,而是延迟发送的。 4. TCP将保持对它首部和数据的校验和,这是一个端到端的校验和,目的是检测数据在传输在传送过程中的任何变化。如果收 阅读全文
随笔分类 - 高性能网络服务框架
TCP长连接与短连接的区别
2011-06-26 13:22 by 后端技术, 37585 阅读, 收藏, 编辑
摘要:
1. TCP连接当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立是需要三次握手的,而释放则需要4次握手,所以说每个连接的建立都是需要资源消耗和时间消耗的经典的三次握手示意图:经典的四次握手关闭图:2. TCP短连接我们模拟一下TCP短连接的情况,client向server发起连接请求,server接到请求,然后双方建立连接。client向server发送消息,server回应client,然后一次读写就完成了,这时候双方任何一个都可以发起close操作,不过一般都是cli 阅读全文
linux线程退出时系统资源释放
2011-06-12 19:37 by 后端技术, 1725 阅读, 收藏, 编辑
摘要:
线程创建时,系统会分配给线程一些资源,我们可以看到的就是线程描述符,线程堆栈,在系统内部还会有更复杂的系统维护一些信息,这篇的目的不是为了深入探测内核为线程维护了多少资源,我们要了解的是在线程创建时,内核总会为其维护一些资源,比较理想的情况是线程运行结束后,这些资源可以释放,以备后来者的使用。 本文要说一下使线程执行结束后释放资源的三种方法,利用这些方法,我们可以避免线程退出时,资源仍然无法释放的情况:pthread_join,这个函数的原型是pthread_join(pthread_t thread, void **value_ptr),作用是使调用函数的线程阻塞等待指定线程退出。只有线程. 阅读全文