![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
网络
文章平均质量分 87
细水长流-青山
成功与失败皆取决于思想的力量。
展开
-
浏览器访问网页全过程
浏览器访问网页全过程:1, 开打浏览器输入网址,然后回车;2, 浏览器对输入网址的域名进行DNS解析,获取域名的IP地址;(重要细节:浏览器首先要查看DNS缓存和hosts文件,如果这两个地方都没有域名的IP地址,再向网络发起DNS查询)3, 跟域名所在IP地址进行TCP链接,并发起HTTP请求;4, 服务器回应HTTP请求,将所请求资源发回浏览器;5, 重要细节:浏览器最初获得的是一个HTML文档转载 2017-07-13 13:10:10 · 1798 阅读 · 0 评论 -
IO五种模型(阻塞IO、非阻塞IO、多路复用IO、信号驱动IO、异步IO)
为了区分IO的五种模型,下面先来看看同步与异步、阻塞与非阻塞的概念差别。同步:所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。按照这个定义,其实绝大多数函数都是同步调用(例如sin, isdigit等)。但是一般而言,我们在说同步、异步的时候,特指那些需要其他部件协作或者需要一定时间完成的任务。最常见的例子就是 SendMessage。该函数发送一个消息给某个窗口,在对方处转载 2017-07-17 16:55:58 · 1993 阅读 · 0 评论 -
select、 poll 、epoll 区别与联系
理解完IO复用后,我们在来看下实现IO复用中的三个API(select、poll和epoll)的区别和联系select,poll,epoll都是IO多路复用的机制,I/O多路复用就是通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知应用程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写原创 2017-07-25 16:45:48 · 357 阅读 · 0 评论 -
epoll的内部实现 看了就会懂
epoll是Linux高效网络的基础,比如event poll(例如nodejs),是使用libev,而libev的底层就是epoll(只不过不同的平台可能用epoll,可能用kqueue)。epoll能够高效支持百万级别的句柄监听。epoll高效,是因为内部用了一个红黑树记录添加的socket,用了一个双向链表接收内核触发的事件。是系统级别的支持的:当某一进程调用epoll_create方法时,L转载 2017-07-24 15:45:35 · 4938 阅读 · 3 评论 -
select、epoll的好文章待有时间整理一下
这篇总结的挺好:还给出了许多学习链接; select、poll、epoll之间的区别总结[整理] 但是和我以前的看的一篇文章很像,不知到谁是原著。 那篇的名字:【实现IO复用中的三个API(select、poll、epoll)的区别和联系】链接没了头重脚轻,对IO操作理解的好 我读过的最好的epoll讲解–转自”知乎 https://my.oschina.net/dclink/blog/2原创 2017-08-15 09:38:36 · 364 阅读 · 0 评论 -
面试题【网络收发数据与缓存大小不匹配问题,TCP/UDP分析】
—————-此篇为找工作后的小脆所写, 比较基础——————题目 前提: 发送方一次发送20M数据,接受缓存4K; 讨论: TCP 和 UDP 协议下 ,发送方、接收方现象,并解释原因。 先回答问题:TCP协议: 发送方能发出去,接受方能接收到数据, 每次接收大小为4K,可循环接收; 【 相关函数: send recv】UDP协议: 发送方发送失败返回-1,接受方自然没收到数原创 2017-10-17 20:18:16 · 5158 阅读 · 1 评论