计算机网络面试题

这篇具有很好参考价值的文章主要介绍了计算机网络面试题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

TCP/IP 五层模型

  1. 物理层:实现相邻节点间比特流的透明传输,尽可能屏蔽传输介质和物理设备的差异。
  2. 数据链路层:将网络层交下来的 IP 数据报组装成帧,在两个相邻节点间的链路上传送帧。交换机
  3. 网络层:选择合适的路由和交换结点,确保数据及时传送。IP协议,路由器
  4. 传输层:负责向两台主机进程之间的通信提供数据传输服务。TCP、UDP
  5. 应用层:为应用程序提供交互服务。DNS、HTTP协议、SMTP协议

TCP与UDP区别

  • TCP是可靠传输,UDP是不可靠传输。
  • TCP面向连接,UDP无连接,即发送数据之前不需要建立连接。
  • TCP传输数据有序,UDP不保证数据的有序性。
  • TCP面向字节流,UDP是面向报文的。
  • TCP传输速度相对UDP较慢。
  • TCP首部20字节,UDP首部8字节。
  • TCP连接只能是一对一的(端到端);UDP支持一对一、一对多、多对一和多对多的通信方式。
    基于TCP的应用层协议有:HTTP、FTP、SMTP、TELNET、SSH
    基于UDP的应用层协议:DNS、SNMP、NFS

TCP 如何保证可靠传输

  1. 数据包校验
  2. 对失序数据包重排序
  3. 丢弃重复数据:对于重复数据,能够丢弃重复数据;
  4. 应答机制:当 TCP 收到发自 TCP 连接另一端的数据,它将发送一个确认。这个确认不是立即发送,通常将推迟几分之一秒;
  5. 超时重传
  6. 流量控制:滑动窗口(滑动窗口是根据接收方数据缓冲区大小确定的)
  7. 拥塞避免(拥塞窗口是根据网络的拥塞情况动态确定的):慢开始,拥塞避免,快重传,快恢复
  8. ARQ协议:也是为了实现可靠传输的,它的基本原理就是每发完一个分组就停止发送,等待对方确认。在收到确认后再发下一个分组。

ARQ

包括停止等待ARQ协议和连续ARQ协议。
停止等待ARQ协议

  • 停止等待协议是为了实现可靠传输的,它的基本原理就是每发完一个分组就停止发送,等待对方确认(回复ACK)。如果过了一段时间(超时时间后),还是没有收到ACK确认,说明没有发送成功,需要重新发送,直到收到确认后再发下一个分组;
  • 在停止等待协议中,若接收方收到重复分组,就丢弃该分组,但同时还要发送确认;

连续ARQ协议
连续ARQ协议可提高信道利用率。发送方维持一个发送窗口,凡位于发送窗口内的分组可以连续发送出去,而不需要等待对方确认。接收方一般采用累计确认,对按序到达的最后一个分组发送确认,表明到这个分组为止的所有分组都已经正确收到了。
缺点:不能向发送方反映出接收方已经正确收到的所有分组的信息。比如:发送方发送了5条消息,中间第三条丢失(3号),这时接收方只能对前两个发送确认。发送方无法知道后三个分组的下落,而只好把后三个全部重传一次。这也叫Go-Back-N(回退N),表示需要退回来重传已经发送过的N个消息。

拥塞控制过程

计算机网络面试题

  1. 慢开始:为了避免一开始发送大量的数据而产生网络阻塞,会先初始化cwnd为1,当收到ACK后到下一个传输轮次,cwnd为2,以此类推成指数形式增长。
  2. 拥塞避免:因为cwnd的数量在慢开始是指数增长的,为了防止cwnd数量过大而导致网络阻塞,会设置一个慢开始的门限值ssthresh,当cwnd>=ssthresh时,进入到拥塞避免阶段,cwnd每个传输轮次加1。但网络出现超时,会将门限值ssthresh变为出现超时cwnd数值的一半,cwnd重新设置为1,如上图,在第12轮出现超时后,cwnd变为1,ssthresh变为12。
  3. 快重传:在网络中如果出现超时或者阻塞,则按慢开始和拥塞避免算法进行调整。但如果只是丢失某一个报文段,如下图(图片来源于网络),则使用快重传算法。但是根据快重传算法,要求在这种情况下,需要快速向发送端发送M2的确认报文,在发送方收到三个M2的确认报文后,无需等待重传计时器所设置的时间,可直接进行M3的重传,这就是快重传。
    计算机网络面试题4. 快恢复:从上上图圈4可以看到,当发送收到三个重复的ACK,会进行快重传和快恢复。快恢复是指将ssthresh设置为发生快重传时的cwnd数量的一半,而cwnd不是设置为1而是设置为为门限值ssthresh,并开始拥塞避免阶段。

TCP粘包现象原因和解决方法

原因:

  1. 要发送的数据小于TCP发送缓冲区的大小,TCP将多次写入缓冲区的数据一次发送出去,将会发生粘包;
  2. 接收数据端的应用层没有及时读取接收缓冲区中的数据,将发生粘包;
  3. 要发送的数据大于TCP发送缓冲区剩余空间大小,将会发生拆包;
  4. 待发送数据大于MSS(最大报文长度),TCP在传输前将进行拆包。即TCP报文长度-TCP头部长度>MSS。

解决办法:

  • 消息定长。发送端将每个数据包封装为固定长度(不够的可以通过补0填充)。
  • 设置消息边界。服务端从网络流中按消息边界分离出消息内容。在包尾增加回车换行符进行分割,例如FTP协议。
  • 将消息分为消息头和消息体,消息头中包含表示消息总长度(或者消息体长度)的字段。

TCP三次握手

计算机网络面试题
为什么TCP连接的时候是3次?两次是否可以?

  1. 假设建立TCP连接仅需要两次握手,那么如果第二次握手时,服务端返回给客户端的确认报文丢失了,客户端这边认为服务端没有和他建立连接,而服务端却以为已经和客户端建立了连接,并且可能向服务端已经开始向客户端发送数据,但客户端并不会接收这些数据,浪费了资源。
  2. 如果服务端接收到了一个早已失效的来自客户端的连接请求报文,会向客户端发送确认报文同意建立TCP连接。但因为客户端并不需要向服务端发送数据,所以此次TCP连接没有意义并且浪费了资源。

四次挥手

计算机网络面试题
为什么客户端发出第四次挥手的确认报文后要等2MSL的时间才能释放TCP连接?

  1. 客户端发送第四次挥手中的报文后,再经过2MSL,可使本次TCP连接中的所有报文全部消失,不会出现在下一个TCP连接中。
  2. 考虑丢包问题,如果第四挥手发送的报文在传输过程中丢失了,那么服务端没收到确认ack报文就会重发第三次挥手的报文。如果客户端发送完第四次挥手的确认报文后直接关闭,而这次报文又恰好丢失,则会造成服务端无法正常关闭。

浏览器输入URL并回车的过程

  1. 输入网址:输入要访问的网址,即URL。
  2. 缓存解析:浏览器获取URL后,先去缓存中查找资源,从浏览器缓存-系统缓存-路由器缓存中查看; 如果有就从缓存中显示界面,不再发送请求; 如果没有,则发送HTTP请求。
  3. 域名解析:发现缓存中没有资源,发送HTTP请求; 在发送HTTP请求之前,需要进行DNS解析(域名解析); DNS解析:域名到IP地址的转换过程,域名的解析工作由DNS服务器完成,解析后可以获取域名相应的IP地址。(主机向本地域名服务器的查询一般是采用递归查询,而本地域名服务器向根域名的查询一般是采用迭代查询。)
  4. TCP连接:三次握手在域名解析后,浏览器向服务器发起了HTTP请求,TCP连接;因为TCP协议时面向连接的,所以在传输数据前必须建立连接,即三次握手;TCP连接建立后,浏览器开始向服务器发送HTTP请求报文。
  5. 收到请求:服务器收到浏览器发送的请求信息,返回响应。
  6. 页面渲染:浏览器收到服务器发送的响应,显示页面内容。

HTTP1.0、1.1、2.0、3.0之间的区别

  • HTTP1.0:无连接,队头阻塞,缓存
  • HTTP1.1:长连接,管道传输(解决了请求的队头阻塞,但是没有解决响应的队头阻塞)
  • HTTP2.0:头部压缩,二进制格式,多路复用(彻底解决队头阻塞问题),服务端推送
  • HTTP3.0:在Http2.0中始终在使用的时TCP协议,无论如何都还是会有TCP传输层的对头阻塞问题(只有TCP拿到完整连续的数据时,内核才会将数据从缓冲区交给HTTP应用,而只要前一个字节没有收到,HTTP就无法从内核缓冲区中得到数据,直到其到达,所以在此过程仍然会导致队头阻塞),而Http3.0是基于UDP协议的。因为UDP是不可靠传输,所以这就需要QUIC实现可靠机制
    QUIC 也是需要三次握手来建立连接的,主要目的是为了确定连接 ID。

HTTP与HTTPS之间的区别

  1. HTTP协议是免费使用的,而 HTTPS 协议需要到CA机构申请证书,需要缴纳费用,HTTP是超文本传输协议,信息是明文传输,HTTPS则是具有安全性的SSL/TLS加密传输协议,信息是密文。
  2. HTTP的连接很简单,是无状态的;HTTPS协议是由SSL/TLS+HTTP协议构建的可进行加密传输、身份认证的网络协议。
  3. 使用的端口不一样,HTTP是80,HTTPS是443。

HTTPS链接建立的过

① 证书验证阶段:
1)浏览器发起 HTTPS 请求;
2)服务端返回 HTTPS 证书;
3)客户端验证证书是否合法,如果不合法则提示告警。
② 数据传输阶段:
1)当证书验证合法后,在本地生成随机数(生成一个对称加密的秘钥);
2)通过公钥加密随机数,并把加密后的随机数传输到服务端;
3)服务端通过私钥对随机数进行解密;
4)服务端通过客户端传入的随机数构造对称加密算法,对返回结果内容进行加密后传输。

对称加密与非对称加密

对称密钥加密,又称私钥加密,即信息的发送方和接收方用同一个密钥去加密和解密数据。
常见的对称加密算法:DES,AES等。
非对称密钥加密,又称公钥加密,信息发送者用公开密钥去加密,而信息接收者则用私用密钥去解密。
最常用的非对称加密算法:RSA

Post和get区别

  • 请求参数:GET 把参数包含在 URL 中,用&连接起来;POST 通过 request body 传递参数。
  • 请求缓存:GET请求会被主动Cache,而POST请求不会,除非手动设置。
  • 历史记录:GET请求参数会被完整保留在浏览历史记录里,而POST中的参数不会被保留。
  • 编码方式:GET请求只能进行url编码,而POST支持多种编码方式。
  • 参数数据类型:GET只接受ASCII字符,而POST没有限制数据类型。
  • 数据包: GET产生一个TCP数据包;POST可能产生两个TCP数据包。

HTTP常见响应状态码

状态码 类别
1XX 信息性状态码
2XX 成功状态码
3XX 重定向状态码
4XX 客户端错误状态码
5XX 服务端错误状态码

200 OK:请求成功
301 Moved Permanently:永久性重定向,表示请求的资源被分配了新的URL,之后应使用更改的URL。
302 Found:临时性重定向,表示请求的资源被分配了新的URL,希望本次访问使用新的URL。
304 Not Modified:告诉客户端请求资源成功,但是这个资源不是由服务器提供返回给客户端的,而是客户端本地浏览器缓存中就有的这个资源。
400 Bad Request:表示请求报文存在语法错误。
403 Forbidden:服务器拒绝该次访问(访问权限问题)。
404 Not Found:表示服务器上无法找到请求的资源(也可以在服务器拒绝请求但不想给拒绝原因时使用)。
500 Inter Server Error:表示服务器在执行请求时发生了错误,也有可能是web应用存在的bug或某些临时的错误时。
502(错误网关):服务器作为网关或代理,从上游服务器收到无效响应
503 Server Unavailable:表示服务器暂时处于超负载或正在进行停机维护,无法处理请求。
504 Gateway Time-out(网关超时):服务器作为网关或代理,但是没有及时从上游服务器收到请求

重定向和转发区别

转发:请求一次,服务器内部请求
重定向:浏览器地址变化文章来源地址https://www.toymoban.com/news/detail-426711.html

cookie和session区别

  • cookie:客户端。
  • session:服务器。通过cookie实现,将sessionid放到Cookie中

到了这里,关于计算机网络面试题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 计算机网络七层体系结构(OSI七层结构)、TCP/IP四层模型、网络五层体系结构

    计算机网络七层体系结构(OSI七层结构)、TCP/IP四层模型、网络五层体系结构 七层体系结构(OSI七层结构) :为了使全世界不同体系结构的计算机能够互联,国际化标准组织ISO提出开放系统互联基本参考模型,简称OSI,即所谓的7层协议体系结构。 TCP/IP四层模型 :是由实际

    2024年02月06日
    浏览(42)
  • 计算机网络-TCP/IP模型及五层参考模型(OSI与TCP/IP相同点 不同点 5层参考模型及数据封装与解封装)

    OSI:先理论,但没有实践 TCP/IP:先实践,再理论 TCP/IP:基于协议栈而分层 网络接口层:数据链路层与物理层 应用层:包含上三层 异构网络互联:实现不同厂家生产的设备进行相互通信 IP协议面向无连接 传输层是端到端,有实现可靠传输的功能,即有面向连接的功能 传输层

    2024年01月23日
    浏览(45)
  • 计算机网络——计算机网络体系结构(2/4)-分层的必要性(五层协议原理体系结构)

    目录 物理层 数据链路层 网络层 运输层 应用层 计算机网络是个非常复杂的系统。 早在最初的ARPANET设计时就提出了分层的设计理念。 \\\"分层\\\"可将庞大而复杂的问题,转化为若干较小的局部问题,而这些较小的局部问题就比较易于研究和处理。 下面,我们以五层原理结构体系

    2024年02月07日
    浏览(38)
  • 计算机网络—网络原理之<TCP/IP 五层协议 >图解+详述

    当应用程序间需要进行网络通讯,在 TCP/IP 五层协议的应用层需要做的工作是,程序员 自定义应用层协议 。 当前要开发一个关于“点外卖软件”的一个项目,其中有一个功能为:获取用户的订单历史(后端服务器从数据库中取出数据返回给前端页面),类似像这样的功能,

    2024年02月07日
    浏览(50)
  • 一文看懂计算机网络五层协议+各层网络协议大全

    目录 一、通用五层协议体系 5. 应用层 4. 运输层 3. 网络层 2. 数据链路层 1. 物理层 二、各层之间的传递过程 三、TCP/IP体系结构 四、网络协议大全(各种属于哪一层) 五、举例:RTSP 应用进程间通信和交互的规则。通过应用进程间的交互来完成因特网络应用,协议有很多,比

    2023年04月08日
    浏览(27)
  • 计算机网络期末试题及答案

    计算机网络试题及答案 1、在计算机网络的定义中, 一个计算机网络包含多台具有_ 自主 _____功能的计算机; 把众 多计算机有机连接起来要遵循规定的约定和规则, 即_ 通信协议 ______; 计算机网络的最基 本特征是__ 资源共享 _______ 。 2、常见的计算机网络拓扑结构有:_ 总

    2023年04月16日
    浏览(28)
  • HTTP 常见面试题(计算机网络)

     一、HTTP 是什么? HTTP(HyperText Transfer Protocol) :超文本传输协议。 HTTP 是一个在计算机世界里专门在「两点」之间「传输」文字、图片、音频、视频等「超文本」数据的「约定和规范」。 「HTTP 是用于从互联网服务器传输超文本到本地浏览器的协议」,这种说法正确吗? 不

    2024年04月12日
    浏览(29)
  • 计算机网络试题——填空题(附答案)

    在OSI模型中,第一层是____________层。 答案:物理(Physical) TCP协议是一种_____________连接的协议。 答案:面向连接(Connection-oriented) IPv6地址的位数是____________。 答案:128 HTTP的全称是____________。 答案:Hypertext Transfer Protocol 在TCP协议中,用于进行连接建立的过程是__________

    2024年01月22日
    浏览(37)
  • 计算机网络面试八股复习:常见的7/5/4层网络模型、各层协议以及键入网址到显示页面的流程

    OSI七层模型 TCP/IP四层模型 五层模型 精简部分,完整版见上图 ARP 和 RARP ,在TCP/IP模型中属于IP层(网络层), 在OSI 模型中属于 链路层。 逐层加东西。图源-小林codding 1、输入URL,解析URL,生成Http请求 2、逐级查看缓存(浏览器缓存、系统缓存、路由器缓存),若有则直接显

    2024年01月22日
    浏览(39)
  • 计算机网络测试题第二部分

    前言:如果没有做在线测试请自主独立完成,本篇文章只作为学习计算机网络的参考,题库中的题存在一定错误和不完整,请学习时,查找多方书籍论证,独立思考,如果存在疑虑可以评论区讨论。查看时,请分清有得分的正确答案。   测试一   一 单项选择题(60分) 1、为进

    2024年02月03日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包