面试计算机网络八股文十问十答第十期

2024-06-18 10:12

本文主要是介绍面试计算机网络八股文十问十答第十期,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

面试计算机网络八股文十问十答第十期

作者:程序员小白条,个人博客

相信看了本文后,对你的面试是有一定帮助的!关注专栏后就能收到持续更新!

⭐点赞⭐收藏⭐不迷路!⭐

1)SACK 的引入是为了解决什么问题?

SACK(Selective Acknowledgment,选择性确认)的引入是为了解决 TCP 中的丢包和重传问题。传统的 TCP 在收到乱序或丢失的数据包时,会触发整个 TCP 连接的重传机制,即重传丢失的数据包和所有后续的数据包。这种方法会浪费带宽和增加延迟。SACK 允许接收端向发送端报告它已经成功接收的数据块范围,从而使发送端只需重传确实丢失的数据块,而不是整个连续数据块。这样可以提高 TCP 的效率和吞吐量,特别是在高丢包率或高延迟网络环境下。

2)D-SACK 又是什么东西?

D-SACK(Duplicate SACK,重复的选择性确认)是 SACK 的一个变体,用于处理一些特殊情况下的重复报文。当接收端收到重复的数据报文时,它可以通过 D-SACK 机制通知发送端哪些数据块是重复的,从而避免发送端不必要的重传。D-SACK 的引入主要用于处理网络中的某些异常情况,例如网络重排或复制的数据包。

3)滑动窗口的作用是什么?

滑动窗口是 TCP 协议中的一种流量控制机制,用于在发送端和接收端之间协调数据传输的速率。其作用包括:

  • 流量控制: 发送端根据接收端的能力动态调整发送数据的速率,避免发送速度过快导致接收端无法处理。
  • 确认管理: 接收端通过滑动窗口大小指示发送端可以发送的数据量,同时确认已经成功接收的数据。
  • 窗口调整: 可以根据网络条件和接收端处理能力调整滑动窗口的大小,以优化数据传输的效率和可靠性。

总之,滑动窗口通过动态调整发送和接收数据的速率,帮助 TCP 协议在不同网络环境下有效地管理数据传输,确保高效、可靠地数据交换。

4)已经有滑动窗口了为什么还要拥塞控制?

虽然滑动窗口用于流量控制,但它主要关注的是接收端的处理能力和网络延迟。拥塞控制则是为了控制网络中的数据包数量,避免过多的数据包导致网络拥塞,从而影响数据传输的效率和稳定性。主要原因包括:

  • 网络拥塞处理: 滑动窗口只能根据接收端的反馈进行调整,而拥塞控制则是针对整个网络环境的调节。网络中可能存在不同的链路和路由器,它们的传输能力和缓存大小不同,可能会导致数据包堆积和丢失,而拥塞控制可以避免这种情况。
  • 全局性能优化: 拥塞控制不仅考虑单个连接的数据传输情况,还会考虑网络的整体性能。它可以通过动态调整发送速率和响应网络状况来优化整体的网络吞吐量和稳定性。

5)说说拥塞控制的步骤?

拥塞控制通常包括以下步骤:

  1. 慢启动(Slow Start): 发送端初始设置一个拥塞窗口(cwnd),开始以较小的速率发送数据。随着每次收到确认(ACK),拥塞窗口大小按指数增长。
  2. 拥塞避免(Congestion Avoidance): 一旦拥塞窗口大小达到一个阈值(慢启动阈值),发送端切换到线性增长模式,即每次收到一个确认后增加一个数据包大小的窗口。
  3. 快速重传(Fast Retransmit): 如果发送端连续收到三个相同的 ACK,则视为某个数据包丢失,立即重传该数据包,而不等待超时。
  4. 快速恢复(Fast Recovery): 在快速重传后,将慢启动阈值设置为当前拥塞窗口的一半,并将拥塞窗口设置为慢启动阈值加上丢失的数据包数。
  5. 超时重传(Timeout Retransmission): 如果发送端在预定时间内未收到 ACK,则会认为某个数据包丢失,触发超时重传机制。

这些步骤共同作用,使得 TCP 协议能够根据网络拥塞程度动态调整发送速率,避免造成网络拥塞或者传输性能下降。

6)还有哪些拥塞控制算法?

除了上述基本的拥塞控制算法(如慢启动、拥塞避免、快速重传、快速恢复和超时重传),还有一些其他的拥塞控制算法,主要包括:

  • TCP Vegas: 通过主动探测拥塞来调整发送速率,而不是等待丢包发生。
  • TCP BIC(Binary Increase Congestion Control): 结合二进制增加和减少拥塞窗口的机制,以更快速地适应网络的拥塞状态。
  • TCP CUBIC(Compound TCP): 通过使用平滑增长和急剧减少的拥塞窗口函数,以更好地利用带宽。
  • TCP New Reno: 是对传统 TCP Reno 的改进,主要增加了对快速恢复机制的支持,以减少网络拥塞时的传输停滞时间。

每种拥塞控制算法都有其适用的场景和优势,选择合适的算法取决于具体的网络环境和应用需求。

7)ARP 和 RARP 分别是什么?有什么区别?

  • ARP(Address Resolution Protocol,地址解析协议): ARP 是用于将 IP 地址解析为 MAC 地址的协议。当主机需要向同一局域网内的另一个主机发送数据时,它首先会检查目标主机的 IP 地址是否在同一子网内。如果是,则主机会使用 ARP 查询获取目标主机的 MAC 地址,然后将数据封装成帧发送到目标主机。
  • RARP(Reverse Address Resolution Protocol,逆地址解析协议): RARP 是 ARP 的逆过程,用于将 MAC 地址解析为 IP 地址。通常情况下,RARP 用于无盘工作站或者其他不能自行设置 IP 地址的设备,它们可以通过发送 RARP 请求来获取自己的 IP 地址。

区别:

  • ARP 解析 IP 地址到 MAC 地址,而 RARP 则是将 MAC 地址解析到 IP 地址。
  • ARP 是广泛使用于局域网中的常见协议,而 RARP 的使用较为有限,主要用于特定设备获取 IP 地址。
  • ARP 用于 IPv4 和 IPv6 网络,而 RARP 主要用于早期的 IPv4 网络,随着 BOOTP 和 DHCP 的发展,RARP 的使用逐渐减少。

8)TCP/IP 四层模型是什么?

TCP/IP 四层模型是指 TCP/IP 协议栈中的四个主要协议层,按照从低到高的顺序分别是:

  1. 网络接口层(Network Interface Layer): 也称为链路层或数据链路层,负责定义数据在物理网络中的传输方式。它包括设备驱动程序、网络接口卡(NIC)、以太网等。
  2. 网络层(Internet Layer): 主要负责在网络上选择和建立数据传输的最佳路径。它使用 IP 协议,通过 IP 地址来唯一标识每个主机和网络设备。
  3. 传输层(Transport Layer): 负责提供端到端的数据传输服务,主要有两个主要协议:
    • TCP(Transmission Control Protocol,传输控制协议):提供可靠的、面向连接的数据传输服务,适用于需要数据完整性的应用,如 HTTP、FTP 等。
    • UDP(User Datagram Protocol,用户数据报协议):提供不可靠的、无连接的数据传输服务,适用于实时应用和对数据传输延迟敏感的应用,如音频和视频流等。
  4. 应用层(Application Layer): 包含各种应用和协议,为用户提供各种网络服务。常见的协议有 HTTP、FTP、DNS、SMTP 等。

9)OSI 七层模型是什么?

OSI(Open Systems Interconnection,开放系统互联)七层模型是国际标准化组织(ISO)定义的通信系统框架,用于说明计算机或通信系统之间互联互通的各种功能和服务。它包括以下七层:

  1. 物理层(Physical Layer): 定义物理介质的传输方式,如电压、光信号等。
  2. 数据链路层(Data Link Layer): 负责在物理介质上传输数据帧,并进行错误检测和纠正,如以太网协议就在此层工作。
  3. 网络层(Network Layer): 选择和管理数据包的路由,确保数据包从源主机传输到目标主机,如 IP 协议。
  4. 传输层(Transport Layer): 提供端到端的通信控制,保证数据可靠传输,如 TCP 和 UDP 协议。
  5. 会话层(Session Layer): 管理用户会话和建立、维护、终止连接。
  6. 表示层(Presentation Layer): 负责数据的格式化、编码和加密解密,以确保不同设备间数据的兼容性和可读性。
  7. 应用层(Application Layer): 提供用户接口和各种应用服务,如电子邮件、文件传输、远程登录等。

OSI 模型为理解和设计各种网络和通信协议提供了一个标准的框架。

10)Cookie、Session、Token 之间有什么区别?

  • Cookie: 是存储在用户计算机上的小型文本文件,由服务器通过 HTTP 协议发送给客户端,并保存在客户端浏览器中。主要用于跟踪用户的会话状态、存储用户偏好设置等信息。Cookie 是有过期时间的,可以由服务器端设置过期时间,也可以在客户端设置。
  • Session: 是指服务器端存储的关于用户会话的信息。在客户端与服务器建立连接后,服务器为每个连接创建一个唯一的会话 ID,用于标识该用户的会话信息。Session 数据存储在服务器的内存或数据库中,通常用于存储用户登录状态、购物车内容等。
  • Token: 是一种访问令牌,通常是一个字符串,用于访问受保护的资源。Token 可以包含用户的身份信息和访问权限,通过 Token 认证可以允许用户访问特定的服务或资源。与 Cookie 不同的是,Token 不存储在客户端的文件系统中,而是由客户端在请求中发送给服务器。

区别:

  • 存储位置: Cookie 存储在客户端浏览器中,Session 数据存储在服务器端内存或数据库中,Token 通常由客户端保存,并在需要时发送给服务器。
  • 安全性: Token 相对较安全,因为它不容易被窃取或篡改,而 Cookie 存在被盗用和 CSRF 攻击的风险。Session 也比 Cookie 更安全,因为它的数据存储在服务器端。
  • 用途: Cookie 主要用于跟踪用户状态和存储用户偏好设置;Session 用于存储用户登录状态和会话数据;Token 用于身份验证和授权,通常用于 API 访问控制。

这些技术在不同的应用场景中有各自的优势和适用性,根据具体需求选择合适的方法来管理用户状态和安全性。

开源项目地址:https://gitee.com/falle22222n-leaves/vue_-book-manage-system

前后端总计已经 1500+ Star,2W+ 访问!

⭐点赞⭐收藏⭐不迷路!⭐

这篇关于面试计算机网络八股文十问十答第十期的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1071877

相关文章

字节面试 | 如何测试RocketMQ、RocketMQ?

字节面试:RocketMQ是怎么测试的呢? 答: 首先保证消息的消费正确、设计逆向用例,在验证消息内容为空等情况时的消费正确性; 推送大批量MQ,通过Admin控制台查看MQ消费的情况,是否出现消费假死、TPS是否正常等等问题。(上述都是临场发挥,但是RocketMQ真正的测试点,还真的需要探讨) 01 先了解RocketMQ 作为测试也是要简单了解RocketMQ。简单来说,就是一个分

秋招最新大模型算法面试,熬夜都要肝完它

💥大家在面试大模型LLM这个板块的时候,不知道面试完会不会复盘、总结,做笔记的习惯,这份大模型算法岗面试八股笔记也帮助不少人拿到过offer ✨对于面试大模型算法工程师会有一定的帮助,都附有完整答案,熬夜也要看完,祝大家一臂之力 这份《大模型算法工程师面试题》已经上传CSDN,还有完整版的大模型 AI 学习资料,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

java面试常见问题之Hibernate总结

1  Hibernate的检索方式 Ø  导航对象图检索(根据已经加载的对象,导航到其他对象。) Ø  OID检索(按照对象的OID来检索对象。) Ø  HQL检索(使用面向对象的HQL查询语言。) Ø  QBC检索(使用QBC(Qurey By Criteria)API来检索对象。 QBC/QBE离线/在线) Ø  本地SQL检索(使用本地数据库的SQL查询语句。) 包括Hibern

计算机网络基础概念 交换机、路由器、网关、TBOX

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、VLAN是什么?二 、交换机三、路由器四、网关五、TBOXTelematics BOX,简称车载T-BOX,车联网系统包含四部分,主机、车载T-BOX、手机APP及后台系统。主机主要用于车内的影音娱乐,以及车辆信息显示;车载T-BOX主要用于和后台系统/手机APP通信,实现手机APP的车辆信息显示与控

贝壳面试:什么是回表?什么是索引下推?

尼恩说在前面 在40岁老架构师 尼恩的读者交流群(50+)中,最近有小伙伴拿到了一线互联网企业如得物、阿里、滴滴、极兔、有赞、希音、百度、网易、美团的面试资格,遇到很多很重要的面试题: 1.谈谈你对MySQL 索引下推 的认识? 2.在MySQL中,索引下推 是如何实现的?请简述其工作原理。 3、说说什么是 回表,什么是 索引下推 ? 最近有小伙伴在面试 贝壳、soul,又遇到了相关的

毕业前第二次面试的感慨

距面试已经过去了有几天了,我现在想起来都有说多的恨感慨。 我一直都是想找刚刚起步的企业,因为这能让我学到更多的东西,然而正好有一家企业是刚起步的,而且他还有自己的产品专利,可以说这是一家,即是创业又是刚起步的公司,这家公司回复了我投给他的简历,这家企业想进一步了解我的情况,因为简历上我符合这家企业的基本要求,所以要进一步了解。 虽然面试的过程中,他给我的面试题,我做得并不是很理想,

CCF推荐C类会议和期刊总结(计算机网络领域)

CCF推荐C类会议和期刊总结(计算机网络领域) 在计算机网络领域,中国计算机学会(CCF)推荐的C类会议和期刊为研究者提供了广泛的学术交流平台。以下是对所有C类会议和期刊的总结,包括全称、出版社、dblp文献网址以及所属领域。 目录 CCF推荐C类会议和期刊总结(计算机网络领域) C类期刊 1. Ad Hoc Networks 2. CC 3. TNSM 4. IET Com

腾讯社招面试经历

前提:本人2011年毕业于一个普通本科,工作不到2年。   15号晚上7点多,正在炒菜做饭,腾讯忽然打电话来问我对他们的Linux C++的职位是否感兴趣,我表达了我感兴趣之后,就开始了一段简短的电话面试,电话面试主要内容:C++和TCP socket通信的一些基础知识。之后就问我一道算法题:10亿个整数,随机生成,可重复,求最大的前1万个。当时我一下子就蒙了,没反应过来,何况我还正在烧

完整的腾讯面试经过

从9月10号开始到现在快两个月了,两个多月中,我经历数次面试和笔试,在经历这些的同时积累了不少的经验,也学到了不少东西,在此把它记录下来,算是和一起找工作中的同学一起共勉吧。我是本校的学生,专业是机械制造及其自动化,找工作的主要目标是计算机软件类和机械制造方向的国内的企业,所以意向去外企的同学就不必浪费时间看这些面经啦,想去国内IT企业的同学可以继续看下去。本贴中我把最近的腾讯面试经过写下

仕考网:结构化面试流程介绍

(一)结构化面试 结构化面试,也叫做标准化面试,考官按照预先设定好的一套试题以问答方式与应试者当面交谈,根据应试者的言语、行为表现,对其相关能力和个性特征作出相应评价。 (二)考试流程 抵达考场——审核抽签——面试候考——进入考场——面试答题——考生退场——计分审核 (三)答题技巧 1.声音洪亮,音量可以比平时说话声音大一点。 2.语速不要过快,语速快容易卡顿,而且不便于考官听清答