- 介绍下proactor和reactor
https://www.jianshu.com/p/5fe6c59e5c00 - reactor的组成
https://zhuanlan.zhihu.com/p/87443227
有一个或多个并发输入源,有一个Service Handler,有多个Request Handlers
这个Service Handler会同步的将输入的请求(Event)多路复用的分发给相应的Request Handler - TIME_WAIT危害
如果客户端的并发量持续很高,此时部分客户端就会显示连接不上 - TIME_WAIT时长,为什么?
2个msl,一般为1-4分钟
这2个MSL中的第一个MSL是为了等自己发出去的最后一个ACK从网络中消失,而第二MSL是为了等在对端收到ACK之前的一刹那可能重传的FIN报文从网络中消失。另外,虽然说维持TIME_WAIT状态一段时间有2个目的,但这段时间具体应该多长主要是为了达成上述第二个目的而设计的。
https://blog.51cto.com/10706198/1775555 - IP为什么要分片
https://blog.csdn.net/u013014610/article/details/79741501 - 项目中说用到线程池,开多大,为什么运用线程池?
线程池大小 = ((线程 IO time + 线程 CPU time )/线程 CPU time ) CPU数目**
为了防止资源不足,服务器应用程序需要一些办法来限制任何给定时刻处理的请求数目。 线程池为线程生命周期开销问题和资源不足问题提供了解决方案。 通过对多个任务重用线程,线程创建的开销被分摊到了多个任务上。
-
select和epoll区别
select的效率低于epoll,因为它需要大量拷贝fd_set,并且需要不断遍历监听列表,而epoll这种基于响应事件的方式明显会更具优势。
select什么情况返回0
超时epoll可读情况有哪些
当文件描述符的内核缓冲区非空的时候,发出可读信号进行通知,当写缓冲区不满的时候,发出可写信号通知的机制什么时候需要TCP四次挥手?
当有一方要关闭连接时如何设置非阻塞
https://blog.csdn.net/li_wen01/article/details/55098317什么是零拷贝
CPU不需要先将数据从某处内存复制到另一个特定区域。这种技术通常用于通过网络传输文件时节省CPU周期和内存带宽。tcp与udp的区别以及应用场景
https://blog.csdn.net/leewccc/article/details/70225610-
如何设计一个可靠的udp
粘包如何解决
接收方创建一预处理线程,对接收到的数据包进行预处理,将粘连的包分开讲一下拥塞控制和流量控制
拥塞控制:拥塞控制是作用于网络的,它是防止过多的数据注入到网络中,避免出现网络负载过大的情况;常用的方法就是:( 1 )慢开始、拥塞避免( 2 )快重传、快恢复。
流量控制:流量控制是作用于接收者的,它是控制发送者的发送速度从而使接收者来得及接收,防止分组丢失的。http和https区别
https://www.runoob.com/w3cnote/http-vs-https.html是否了解中间人劫持原理
指攻击者与通讯的两端分别创建独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者完全控制。-
http协议格式,几种方法,功能是什么
chunked块了解?介绍下
是超文本传输协议(HTTP)中的一种数据传输机制,允许HTTP由应用服务器发送给客户端应用( 通常是网页浏览器)的数据可以分成多个部分。分块传输编码只在HTTP协议1.1版本(HTTP/1.1)中提供。有chunked的时候contentlength是什么样子
Conent-Length表示实体内容长度,客户端(服务器)可以根据这个值来判断数据是否接收完成。半连接在哪个阶段
客户端发送SYN给服务端进行第一次报文握手TCP 三次握手四次挥手
https://blog.csdn.net/hyg0811/article/details/102366854Accept发生在三次握手哪个阶段
发生在三次握手之后tcp的可靠性体现在哪里
超时重传、确认响应、流量控制、拥塞控制、头部校验、对收到的数据排序
https://blog.csdn.net/LF_2016/article/details/61198073ARP协议工作流程
主机 A 与主机 B 进行通信,需要获取其 MAC 地址,基本流程如下:
主机 A 以广播形式向网络中所有主机发送 ARP 请求,请求包中包含了目标 IP 地址 192.168.1.2
主机 B 接收到请求,发现自己就是主机 A 要找的主机,返回响应,响应包中包含自己的 MAC 地址libevent结构,内部实现
passepoll中的ET和LT模式
pass滑动窗口
pass
每个UDP socket都有一个接收缓冲区,没有发送缓冲区,从概念上来说就是只要有数据就发,不管对方是否可以正确接收,所以不缓冲,不需要发送缓冲区。
Udp的接收缓冲区和发送缓冲区和tcp的区别
UDP:当套接口接收缓冲区满时,新来的数据报无法进入接收缓冲区,此数据报就被丢弃。UDP是没有流量控制的;快的发送者可以很容易地就淹没慢的接收者,导致接收方的UDP丢弃数据报。
https://blog.csdn.net/Swallow_he/article/details/84392285-
http长连接与短连接的区别
udp包长度
65535一次url访问会经历哪些过程
→ 1- 输入网址
→ 2- 缓存解析
→ 3- 域名解析
→ 4- tcp连接,三次握手
→ 5- 服务器收到请求
→ 6- 页面渲染数据包乱序会处理?
passseq为1000,发送了1000个数据,下一个seq是多少?
syn如果丢了,重传多少次
tcp/ip 分几层
应用层 传输层 网络层 网络接口层http 状态码
信息响应 1--
成功响应 2--
重定向 3--
客户端响应 4--
服务端响应 5--
https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status