面经-计算机网络

  • 介绍下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区别


    image.png

    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


    可靠的udp.png
  • 粘包如何解决
    接收方创建一预处理线程,对接收到的数据包进行预处理,将粘连的包分开

  • 讲一下拥塞控制和流量控制
    拥塞控制:拥塞控制是作用于网络的,它是防止过多的数据注入到网络中,避免出现网络负载过大的情况;常用的方法就是:( 1 )慢开始、拥塞避免( 2 )快重传、快恢复。
    流量控制:流量控制是作用于接收者的,它是控制发送者的发送速度从而使接收者来得及接收,防止分组丢失的。

  • http和https区别
    https://www.runoob.com/w3cnote/http-vs-https.html

  • 是否了解中间人劫持原理
    指攻击者与通讯的两端分别创建独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者完全控制。

  • http协议格式,几种方法,功能是什么


    image.png
image.png
  • chunked块了解?介绍下
    是超文本传输协议(HTTP)中的一种数据传输机制,允许HTTP由应用服务器发送给客户端应用( 通常是网页浏览器)的数据可以分成多个部分。分块传输编码只在HTTP协议1.1版本(HTTP/1.1)中提供。

  • 有chunked的时候contentlength是什么样子
    Conent-Length表示实体内容长度,客户端(服务器)可以根据这个值来判断数据是否接收完成。

  • 半连接在哪个阶段
    客户端发送SYN给服务端进行第一次报文握手

  • TCP 三次握手四次挥手
    https://blog.csdn.net/hyg0811/article/details/102366854

  • Accept发生在三次握手哪个阶段
    发生在三次握手之后

  • tcp的可靠性体现在哪里
    超时重传、确认响应、流量控制、拥塞控制、头部校验、对收到的数据排序
    https://blog.csdn.net/LF_2016/article/details/61198073

  • ARP协议工作流程
    主机 A 与主机 B 进行通信,需要获取其 MAC 地址,基本流程如下:
    主机 A 以广播形式向网络中所有主机发送 ARP 请求,请求包中包含了目标 IP 地址 192.168.1.2
    主机 B 接收到请求,发现自己就是主机 A 要找的主机,返回响应,响应包中包含自己的 MAC 地址

  • libevent结构,内部实现
    pass

  • epoll中的ET和LT模式
    pass

  • 滑动窗口
    pass

每个UDP socket都有一个接收缓冲区,没有发送缓冲区,从概念上来说就是只要有数据就发,不管对方是否可以正确接收,所以不缓冲,不需要发送缓冲区。

  • Udp的接收缓冲区和发送缓冲区和tcp的区别
    UDP:当套接口接收缓冲区满时,新来的数据报无法进入接收缓冲区,此数据报就被丢弃。UDP是没有流量控制的;快的发送者可以很容易地就淹没慢的接收者,导致接收方的UDP丢弃数据报。
    https://blog.csdn.net/Swallow_he/article/details/84392285

  • http长连接与短连接的区别


    image.png
  • udp包长度
    65535

  • 一次url访问会经历哪些过程
    → 1- 输入网址
    → 2- 缓存解析
    → 3- 域名解析
    → 4- tcp连接,三次握手
    → 5- 服务器收到请求
    → 6- 页面渲染

  • 数据包乱序会处理?
    pass

  • seq为1000,发送了1000个数据,下一个seq是多少?

  • syn如果丢了,重传多少次

  • tcp/ip 分几层
    应用层 传输层 网络层 网络接口层

  • http 状态码
    信息响应 1--
    成功响应 2--
    重定向 3--
    客户端响应 4--
    服务端响应 5--
    https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。