
Linux网络编程
文章平均质量分 76
bookxiao
这个作者很懒,什么都没留下…
展开
-
tcp连接的建立与终止
理解TCP连接,需要首先记住以下几点:TCP是双向连接。两个方向的连接可以独立关闭。TCP是基于字节流的连接。每个tcp socket在内核里有接收缓冲区和发送缓冲区。应用程序只能操纵缓冲区数据,而不能干扰实际的数据发送过程。应用程协议可能有自己的协议格式,但在TCP看来全是一个一个的字节。下面基于以上3点,谈一下TCP连接的建立、数据传输和终止过程。建立连接正常的连接过程需要3路握手,不再原创 2015-05-19 15:30:11 · 942 阅读 · 0 评论 -
poll和epoll的内核实现
本文主要介绍poll和epoll的内核实现,在此基础上讨论为什么epoll的效率比poll高。原创 2015-05-13 11:03:29 · 2848 阅读 · 0 评论 -
Linux eventfd的使用
eventfd其实是内核为应用程序提供的信号量。它相比于POSIX信号量的优势是,在内核里以文件形式存在,可用于select/epoll循环中,因此可以实现异步的信号量,避免了消费者在资源不可用时的阻塞。这也是为什么取名叫eventfd的原因:event表示它可用来作事件通知(当然是异步的),fd表示它是一个“文件”。原创 2015-05-22 11:02:36 · 5397 阅读 · 0 评论