TCP/IP
yuzegao
专注移动互联网行业音视频通信领域
展开
-
面试题:非阻塞tcp socket调用close时缓冲区未发送数据的处理逻辑
这个问题主要考虑两方面,close是否会阻塞调用?write写入的数据能否正确发送到对端?经过实现验证:close之前已设置过非阻塞,所以会立即返回,如果tcp缓冲区还有数据需要发送,数据能够正确的发送到对端。但有一点要注意:在发送的最后一个包会加FIN标志;如果另一端也要关闭发FIN时,本端就会发RST,因为本端的SOCKET已经关了。原创 2013-10-26 19:37:41 · 4074 阅读 · 4 评论 -
TCP未完成队列和完成队列
已完成连接队列(completed connection queue)(1)三次握手已经完成,但还未被应用层接收(accept),但也处于ESTABLISHED状态.(2)队列长度由listen的backlog参数和内核的 net.core.somaxconn 参数共同决定.(3)当这个队列满了之后,不管未完成连接队列是否已满,是否启用syncookie,都不在接收新的SYN请求.(该原创 2015-01-04 15:48:19 · 2446 阅读 · 2 评论