【面试题】计算机网络篇-10道常见面试题总结,牛皮轰轰

流量控制是TCP 提供的可以让「发送方」根据「接收方」的实际接收能力控制发送数据量的⼀种机制。因为如果一直无脑的发数据给对方,但对方处理不过来,那么就会导致触发重发机制,从而导致网络流量的无端的浪费

拥塞控制和流量控制不同,拥塞控制是一个全局性的过程,而流量控制指点对点通信量的控制。在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏。这种情况就叫拥塞。而拥塞控制就是为了防止过多的数据注入到网络中,这样就可以使网络中的路由器或链路不致于过载。

👨‍💻面试官追问:流量控制具体怎么控制的?

  • TCP利用滑动窗口机制实现流量控制。
  • 在通信过程中,接收方根据自己接收缓存的大小,动态地调整发送方的发送窗口大小,即接收窗口rwnd,发送方的发送窗口取接收窗口rwnd和拥塞窗口cwnd的最小值。

👨‍💻面试官又问:拥塞控制具体的算法怎么样的?

TCP 的拥塞控制采用了四种算法,即慢开始 、 拥塞避免 、快重传、快恢复:

  • 慢开始 : 慢开始算法的思路是当主机开始发送数据时由小到大逐渐增大发送窗口,也就是由小到大逐渐增大拥塞窗口数值。cwnd 初始值为 1,每经过一个传播轮次,cwnd 加倍。因为如果立即把大量数据字节注入到网络,那么可能会引起网络阻塞。
  • 拥塞避免 : 拥塞避免算法的思路是让拥塞窗口 cwnd 缓慢增大,即每经过一个往返时间 RTT 就把发送放的 cwnd 加 1
  • 快重传与快恢复: 在 TCP/IP 中,快速传和块恢复(fast retransmit and recovery,FRR)是一种拥塞控制算法,它能**快速恢复丢失的数据包。**没有 FRR,如果数据包丢失了,TCP 将会使用定时器来要求传输暂停。在暂停的这段时间内,没有新的或复制的数据包被发送。
有了 FRR,如果接收机接收到一个不按顺序的数据段,它会立即给发送机发送一个重复确认。如果发送机接收到三个重复确认,它会假定确认件指出的数据段丢失了,并立即重传这些丢失的数据段。有了 FRR,就不会因为重传时要求的暂停被耽误。当有单独的数据包丢失时,快速重传和恢复(FRR)能最有效地工作。当有多个数据信息包在某一段很短的时间内丢失时,它则不能很有效地工作。

3.说⼀说TCP与UDP的区别?


UDP

  • 在传送数据之前不需要先建立连接,远地主机在收到 UDP 报文后,不需要给出任何确认。

  • 虽然 UDP 不提供可靠交付,但在某些情况下 UDP 却是一种最有效的工作方式(一般用于即时通信),比如: QQ 语音、 QQ 视频 、直播等等。

TCP

  • 提供面向连接的服务。在传送数据之前必须先建立连接,数据传送结束后要释放连接。

  • TCP 不提供广播或多播服务

  • 由于 TCP 要提供可靠的,面向连接的传输服务,这难以避免增加了许多开销,如确认,流量控制,计时器以及连接管理等。这不仅使协议数据单元的首部增大很多,还要占用许多处理机资源。

  • TCP 一般用于文件传输、发送和接收邮件、远程登录等场景。

👨‍💻面试官追问:既然你说TCP提供的可靠的服务,那么TCP 协议如何保证可靠传输?

主要有校验和、序列号、超时重传、流量控制及拥塞避免等几种方法:

  1. 应用数据被分割成 TCP 认为最适合发送的数据块。TCP 给发送的每一个包进行编号,接收方对数据包进行排序,把有序数据传送给应用层。
  1. 校验和:TCP 将保持它首部和数据的检验和。这是一个端到端的检验和,目的是检测数据在传输过程中的任何变化。如果收到段的检验和有差错,TCP 将丢弃这个报文段和不确认收到此报文段。
  1. TCP 的接收端会丢弃重复的数据。
  1. 流量控制: TCP 连接的每一方都有固定大小的缓冲空间,TCP 的接收端只允许发送端发送接收端缓冲区能接纳的数据。当接收方来不及处理发送方的数据,能提示发送方降低发送的速率,防止包丢失。TCP 利用滑动窗口实现流量控制。
  1. 拥塞控制: 当网络拥塞时,减少数据的发送。
  1. ARQ 协议: 也是为了实现可靠传输的,它的基本原理就是每发完一个分组就停止发送,等待对方确认。在收到确认后再发下一个分组。
  1. 超时重传: 当 TCP 发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段。

4.说⼀说GET与POST有哪些区别?


可以从以下四个方面区别:

  • 作用GET方法的含义是请求从服务器获取资源。而POST方法则是相反操作,它向URI指定的资源提交数据,数据就放在报文的 body里。

  • 参数位置GET的参数放在URL中POST的参数存储在实体主体中,并且GET方法提交的请求的URL中的数据最多是2048字节,POST请求没有大小限制

  • 安全性:在 HTTP 协议里,所谓的「安全」是指请求方法不会「破坏」服务器上的资源。GET方法是安全的,因为它是「只读」操作,无论操作多少次,服务器上的数据都是安全的。POST因为是「新增或提交数据」的操作,会修改服务器上的资源,所以是不安全的

  • 幂等性:所谓的「幂等」,意思是多次执行相同的操作,结果都是「相同」的。结合刚才说的,GET方法是具有幂等性的。而POST方法不具有幂等性

5.说一下在浏览器中输入URL 地址到显示主页的过程?


总体来说分为以下几个过程:

  1. DNS 解析:浏览器查询 DNS,获取域名对应的 IP 地址

  2. TCP 连接:浏览器获得域名对应的 IP 地址以后,浏览器向服务器请求建立链接,发起三次握手

  3. 发送 HTTP 请求:TCP 连接建立起来后,浏览器向服务器发送 HTTP 请求

  4. 服务器处理请求并返回 HTTP 报文:服务器接收到这个请求,并根据路径参数映射到特定的请求处理器进行处 理,并将处理结果及相应的视图返回给浏览器

  5. 浏览器解析渲染页面

  6. 连接结束

👨‍💻面试官追问:整个过程会使用哪些协议?

  1. 首先浏览器查找域名的IP地址的过程会使用DNS协议
  1. 与服务器建立TCP连接使用到了TCP协议
  1. 建立TCP协议时,需要发送数据,发送数据在网络层使用IP协议
  1. IP数据包在路由器之间,路由选择使用OPSF协议
  1. 路由器在与服务器通信时,需要将ip地址转换为MAC地址,需要使用ARP协议
  1. 在TCP建立完成后,使用HTTP协议访问网页

6.HTTP 1.0 和 HTTP 1.1 的主要区别是什么?


  1. 长连接 : 在 HTTP/1.0 中,默认使用的是短连接,也就是说每次请求都要重新建立一次连接。HTTP 1.1 起,默认使用长连接 ,默认开启 Connection: keep-alive

  2. 错误状态响应码:在 HTTP1.1 中新增了 24 个错误状态响应码

  3. 缓存处理:在 HTTP1.0 中主要使用 header 里的 If-Modified-Since,Expires 来做为缓存判断的标准,HTTP1.1 则引入了更多的缓存控制策略例如 Entity tagIf-Unmodified-Since, If-Match, If-None-Match 等更多可供选择的缓存头来控制缓存策略。

  4. 带宽优化及网络连接的使用:在HTTP 1.0中会存在浪费带宽的现象,主要是因为不支持断点续传功能,客户端只是需要某个对象的一部分,服务端却将整个对象都传了过来。在HTTP1.1中请求头引入了range头域,它支持只请求资源的某个部分,返回的状态码为206

7.谈下你对 HTTP 长连接和短连接的理解?


HTTP/1.0 中默认使用短连接。也就是说,客户端和服务器每进行一次 HTTP 操作,就建立一次连接,任务结束就中断连接。当客户端浏览器访问的某个 HTML 或其他类型的 Web 页中包含有其他的 Web 资源(如 JavaScript 文件、图像文件、CSS 文件等),每遇到这样一个 Web 资源,浏览器就会重新建立一个 HTTP 会话。

而从 HTTP/1.1 起,默认使用长连接,用以保持连接特性。使用长连接的 HTTP 协议,会在响应头加入这行代码:

Connection:keep-aliveCopy to clipboardErrorCopied

在使用长连接的情况下,当一个网页打开完成后,客户端和服务器之间用于传输 HTTP 数据的 TCP 连接不会关闭,客户端再次访问这个服务器时,会继续使用这一条已经建立的连接。

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

img
img

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V:vip1024b 备注Java获取(资料价值较高,非无偿)
img

笔者福利

以下是小编自己针对马上即将到来的金九银十准备的一套“面试宝典”,不管是技术还是HR的问题都有针对性的回答。

有了这个,面试踩雷?不存在的!

回馈粉丝,诚意满满!!!




”,不管是技术还是HR的问题都有针对性的回答。

有了这个,面试踩雷?不存在的!

回馈粉丝,诚意满满!!!

[外链图片转存中…(img-oKacQsWg-1711599690299)]
[外链图片转存中…(img-wHMmY2ae-1711599690299)]
[外链图片转存中…(img-nV77S93l-1711599690300)]
[外链图片转存中…(img-seYDEe88-1711599690300)]

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
计算机网络是计算机科学中的一个重要领域,面试中常常会涉及到计算机网络的基础知识。以下是一些常见计算机网络面试题基础: 1. 什么是计算机网络计算机网络是指将多台计算机通过通信设备连接起来,实现信息交换和资源共享的系统。 2. OSI七层模型是什么? OSI七层模型是一种将计算机网络通信过程划分为七个不同层次的模型,分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。 3. TCP/IP协议族包括哪些协议? TCP/IP协议族包括IP协议、TCP协议、UDP协议、HTTP协议、FTP协议等。 4. 什么是IP地址和MAC地址? IP地址是用于在网络中唯一标识一个设备的地址,分为IPv4和IPv6两种格式。MAC地址是网卡的物理地址,用于在局域网中唯一标识一个设备。 5. TCP和UDP的区别是什么? TCP是面向连接的可靠传输协议,提供数据传输的可靠性和顺序性;UDP是无连接的不可靠传输协议,提供数据传输的快速性和实时性。 6. 什么是HTTP协议? HTTP协议是一种用于传输超文本的应用层协议,常用于Web浏览器和Web服务器之间的通信。 7. 什么是DNS? DNS(Domain Name System)是用于将域名转换为IP地址的分布式数据库系统,实现域名解析功能。 8. 什么是网络拓扑结构? 网络拓扑结构指的是计算机网络中各个节点之间连接的方式,常见的拓扑结构有总线型、星型、环型、树型等。 9. 什么是路由器和交换机? 路由器是一种网络设备,用于在不同网络之间转发数据包;交换机是一种网络设备,用于在局域网内转发数据包。 10. 什么是网络安全? 网络安全是指保护计算机网络及其资源不受未经授权的访问、使用、披露、破坏、修改或干扰的能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值