当前位置: 首页 > news >正文

计算机网络高频面试题集锦

问题1:谈一谈对OSI七层模型和TCP/IP四层模型的理解?

回答点:七层模型每层对应的作用及相关协议、为什么分层、为什么有TCP/IP四层模型

参考:

1、OSI七层参考模型是一个ISO组织所提出的一个标准参考分层模型,它按照数据传输过程所涉及的传输设备、方式、功能职责的不同将数据传输划分为了7层,从上到下依次:

  • 应用层:提供两个终端设备上应用程序之间信息交换的服务,HTTP、SMTP、POP3、DNS、FTP、TELNET
  • 表示层:提供各种用于应用层数据的编码和转换功能,确保能被另一个系统的应用层所识别
  • 会话层:为不同应用程序之间建立连接提供服务
  • 传输层:负责向两台终端设备进程之间的通信提供通用的数据传输服务,TCP、UDP
  • 网络层:为分组交换网络上的不同主机提供通信服务,IP
  • 数据链路层:将网络层交下来的IP数据报组装成帧,在两个相邻节点间的链路上传送帧
  • 物理层:实现相邻计算机节点之间比特流的透明传输

2、分层目的:

  • 各层之间相互独立,各司其职,与我们在开发时的分层是一样的
  • 提高整体的灵活性,与平时开发要求的高内聚、低耦合一致
  • 让大问题——》多个小问题,让复杂的计算机网络系统变得易于设计、实现

3、但是OSI七层参考模型的设计是相对复杂的,设计成本高,是一个理想状态下的分层模型,而在实际应用中,为了简便我们的开发与设计提出了TCP/IP四层模型,它是对于OSI七层模型的一个简化。将应用层+表示层+会话层=应用层,数据链路层+物理层=网络接口层,通常实际开发中常采用传输层TCP协议+网络层IP协议故称为TCP/IP协议

问题2:谈谈TCP协议的3次握手过程?

回答点:TCP协议的特点(面向连接、可靠传输)、三次握手过程

参考:

TCP协议是一个面向连接,基于字节流可靠通信的传输层协议。在双方进行通信时需要三次握手来建立连接保证数据传输的可靠性。

第一次握手:C端——》S端发送SYN=1数据包【请求建立连接】,C端进入SYN-SENT状态;

第二次握手:S端手段C端发送的SYN=1数据包,接着C端——》S端发送SYN=1,ACK=1的数据包【同意连接并对第一次握手的数据包进行确认】,C端从listen状态进入SYN-RCVD状态。

第三次握手:C端收到S端发送的SYN=1,ACK=1的同意连接报文段后,进入ESTABLISHED状态,向S端发送ACK=1的数据包【再次对第二次握手S端发来的数据包进行确认】,S端收到后也进入ESTABLISHED状态。

当C端与S端都进入ESTABLISHED状态时,表示可靠连接以建立完成,可以进行数据的通信了。

问题3:TCP协议为什么要3次握手?2次,4次不行吗?

回答点:每一次握手的意义、2次握手确认双发网络正常、4次浪费资源

参考:

第一次握手:发起建立连接请求;“XXX,咱们去看电影吧”

第二次握手:确认并同意连接请求;“可以啊”

第三次握手:对第二次的连接进行确认;“那咱们走吧”

前两次握手完成只能确认C端与S端之间的网络是顺畅的,并不能保证建立了可靠的传输。

例如:当C端向S端第一次发送请求连接报文时,由于网络等原因,迟迟没有到S端,C端又重新向S端发送了请求连接报文,这一次很顺畅的到了S端,S端并进行了确认。若这时,C端第一次发送的请求连接报文到了S端,S端以为C端再一次进行连接就会再次发送确认报文,而C端已经收到过一次确认报文,所以此次的确认报文它会忽略,而S端发送了确认报文后会一直等待C端的回应,就会造成S端一直等待,浪费资源,甚至服务器停止响应。2次不能够保证可靠的连接,也不能避免重复连接或连接混乱问题。在经历过3次握手稳定的连接已建立,再次传输浪费资源。所有三次是最佳的既节省资源又能建立可靠连接的次数

问题4:谈谈TCP协议的四次挥手过程?

回答点:连接管理(断开连接节省资源),四次挥手传输的标志位

参考:

TCP面向连接的可靠传输过程,建立连接来发送数据保证数据的可靠性,这条连接是占用资源的。当双方通信完成后,会通过四次回收来释放连接,对资源进行回收。四次回收过程如下:

第一次挥手:C端——》S端发送FIN=1的数据包,请求释放连接

第二次挥手:S端收到释放连接数据包,S端——》C端发送ACK=1数据包,进行确认

此时双方的连接状况:C端不能再向S端传输数据了,S端仍可以继续向C端传数据,C端也可接收

第三次挥手:当S端不在向C端发送数据时,会再次向C端发送ACK=1,FIN=1数据包【释放连接】

第四次挥手:C端收到S端的释放连接数据包,再次进行确认向S端发送ACK=1数据包,S端接收

经历四次握手后,双方断开连接,梳理一下双方每次挥手的状态:

第一次:C端——》等待1

第二次:C端——》等待2,S端——》等待关闭

第三次:C端——》超时等待,S端——》最后确认

第四次:C端——》CLOSED,S端——》CLOSED

问题5:什么是流量控制?

回答点:含义、如何实现

流量控制是指接收方根据窗口大小对于发送方所发送数据包的限制,通过流量控制,让发送方所发送的数据接收方能够有效的全部接收,避免丢包引起的重传机制而带来不必要的消耗。

流量控制需要通过滑动窗口来实现,接收方发送的确认报文中的窗口字段可以控制发送方窗口的大小,从而影响发送方的发送速率,若窗口字段设置为0,则不能发送数据

问题6:什么是滑动窗口?

回答点:概念、作用

滑动窗口通过拥塞窗口值指定发送方每次能发送数据包的个数。发送方和接收方分别维护了各自的缓冲区,也称窗口。发送方窗口的大小由接收方中TCP首部的窗口字段决定。发送方将窗口内容分为:已发送已确认、已发送未确认、未超出发送窗口范围的未发送数据,已超出发送窗口范围的未发送数据。随着接收方确认,发送方的窗口不断向前滑动

问题7:什么是拥塞控制?

回答点:含义、作用、实现

拥塞控制是指对整个网络中传输的数据包多少进行控制,控制的目的就是避免「发送方」的数据填满整个网络,控制「发送方」的数据发送量。拥塞控制主要通过4个算法来实现:

1、慢启动:刚来时发送数据包个数少,“试探性”发送,依次呈指数增长,直到超过慢启动门限,发生拥塞的可能性就变大了,会利用拥塞避免处理

2、拥塞避免:超过慢启动门限后,不再呈指数增长,能发送的数据包数逐次+1,当发生丢包触发重传机制后,会使用拥塞发生处理

3、拥塞发生:重传机制有2种

当使用超时重传机制:

        (1)将门限值ssthresh设为拥塞窗口值cwnd的一半【ssthresh=cwnd/2】

        (2)拥塞窗口值cwnd设为1,回到慢启动【cwnd=1】

使用快速重传机制:

        (1)将门限值ssthresh设为拥塞窗口值cwnd的一半【ssthresh=cwnd/2】

        (2)拥塞窗口值cwnd设为原来的一半+3【cwnd=cwnd/2+3】

4、快速开始:在拥塞发生时采用快速重传机制就会快速开始

 快速开始是在拥塞情况并不那么严重,很快就能恢复网络的通信状况的一个算法

问题8:TCP和UDP有什么区别?

回答点:是否连接、可靠、首部长度、使用场景

TCP面向连接可靠首部20-60字节数据传输要求严格
UDP面向无连接不可靠首部8字节视频(即时传输)

 

             

相关文章:

计算机网络高频面试题集锦

问题1:谈一谈对OSI七层模型和TCP/IP四层模型的理解? 回答点:七层模型每层对应的作用及相关协议、为什么分层、为什么有TCP/IP四层模型 参考: 1、OSI七层参考模型是一个ISO组织所提出的一个标准参考分层模型,它按照数…...

Linux启动过程详解 Xmind导图笔记

参考大佬博客: 简要描述linux系统从开机到登陆界面的启动过程 Linux启动过程详解 Bootloader详解 来源:从BIOS开始画图了解Linux启动过程——老杨Linux...

Qt5开发及实例V2.0-第十七章-Qt版MyWord字处理软件

Qt5开发及实例V2.0-第十七章-Qt版MyWord字处理软件 第17章-Qt版MyWord字处理软件17.1 运行界面17.1.1 菜单设计基本操作17.1.2.MyWord系统菜单 17.2 工具栏设计17.2.1 与菜单对应的工具条17.2.2 附加功能的工具条 这段代码的作用是加载系统标准字号集,只要在主窗体构…...

机器视觉工程师们,常回家看看

我们在这个社会上扮演着多重角色,有时候我们很难平衡好这些角色之间的关系。 人们常言,积善成德,改变命运。善修者,懂得积累,懂得改变命运的重要性。 我曾年少不知父母之不易。一路依靠,一路成长。 所谓…...

网络隔离下实现的文件传输,现有的方式真的安全吗?

在当今的信息化时代,网络安全已经成为了各个企业和机构不可忽视的问题。为了保护内部数据和系统不受外部网络的攻击和泄露,一些涉及国家安全、商业机密、个人隐私等敏感信息的企业和机构,通常会对内外网进行隔离,即建立一个独立的…...

[医学图像知识]CT图和PET图的成像表现形式

1.CT图通常来说是单通道灰色图,用灰度值表示了结构对于x射线的吸收程度。 2.PET/SPECT图最初也是灰度图,用灰度值表示细胞的反射gama射线的程度,但是为了更好的观测不同细胞等的区别,通常将灰度图转化为了 伪彩色图像。 找个例子…...

聊聊wireshark的进阶使用功能 | 京东云技术团队

1. 前言 emmm,说起网络知识学习肯定离不来wireshark工具,这个工具能够帮助我们快速地定位网络问题以及帮助正在学习网络协议这块的知识的同学验证理论与实际的一大利器,平时更多的只是停留在初步的使用阶段。也是利用部门内部的网络兴趣小组…...

小米手机安装面具教程(Xiaomi手机获取root权限)

文章目录 1.Magisk中文网:2.某呼:3.最后一步打开cmd命令行输入的时候:4.Flash Boot 通包-Magisk(Flash Boot通刷包)5.小米Rom下载(官方刷机包)6.Magisk最新版本国内源下载 1.Magisk中文网: htt…...

DSU ON TREE

DSU ON TREE DSU:并查集 DSU ON TREE:树上启发式合并 我也不知道为啥树上并查集就是树上启发式合并 启发式合并的思想是每次把小的往大的合并,也就是最大化利用已有的答案(大的数组不用清空,在原基础上加上小的即可&…...

Java“对象”

Java:PO、VO、BO、DO、DAO、DTO、POJO PO持久化对象(Persistent Object) PO是持久化对象,用于表示数据库中的实体或表的映射通常与数据库表的结构和字段对应PO的属性对应数据库表的字段,可以进行持久化操作&#xff0…...

vuepress+gitee免费搭建个人在线博客(无保留版)

文章目录 最终效果,一睹为快!一、工具选型二、什么是VuePress三、准备工作3.1 node 安装3.2 Git安装3.3 Gitee账号注册 四、搭建步骤4.1 初始化VuePress4.2 安装VuePress4.3 初始化目录4.4 编写文章 五、部署到Gitee5.1 创建仓库5.2 个人空间地址设置4.3…...

Android 12.0 系统限制上网系列之iptables用IOemNetd实现app上网白名单的功能实现

1.前言 在12.0的系统rom定制化开发中,对于系统限制网络的使用,在system中netd网络这块的产品需要中,会要求设置app上网白名单的功能, liunx中iptables命令也是比较重要的,接下来就来在IOemNetd这块实现app上网白名单的的相关功能,就是在 系统中只能允许某个app上网,就是…...

Idea和DataGrip自定义常用代码模板,熟练使用快捷模板可促进开发效率

场景: 在实际工作中,我们不可能一个一个字母的去敲代码,为了提升开发效率,可以使用常用的快捷代码模板。idea和datagrip自带的有,我们也可以自定义快捷模板 一、Idea自定义代码模板、有些是基于 hutool 常用包 1、-&g…...

Vue.js :实现嵌套对话框的查看按钮

Vue.js :实现嵌套对话框的查看按钮 Vue.js 是一款流行的 JavaScript 框架,用于构建交互性强、响应式的前端应用程序。本博客将介绍如何使用 Vue.js 和 Element UI 库创建一个前端应用,其中包括了嵌套对话框的查看按钮,以及如何在…...

9.2.4 【MySQL】段的结构

段不对应表空间中某一个连续的物理区域,而是一个逻辑上的概念,由若干个零散的页面以及一些完整的区组成。像每个区都有对应的XDES Entry来记录这个区中的属性一样,定义了一个INODE Entry结构来记录段中的属性。 它的各个部分释义如下&#xf…...

怎么快速提取图片中的文字信息?怎么使用OCR图片文字提取一键提取文字

图片里的文字如何提取?一些图片中的文字信息是我们需要的,但是一个个输入太麻烦了,怎么将图片上的文字提取出来?Initiator是一款易于使用的小型 macOS OCR(光学字符识别)应用程序,可提取和识别 Mac 计算机屏幕上的任…...

Selenium隐藏浏览器特征

Selenium隐藏浏览器特征 Selenium特征1. CDP2. stealth.min.js3. undetected_chromedriver4. 操作已开启的浏览器4. 常见的隐藏Selenium特征的方法4.1 修改navigator.webdriver标志4.2 改变user-agent4.3 排除或关闭一些Selenium相关的开关4.4 代码展示4.5 总结 Selenium特征 …...

Linux下的buff/cache

目录 一、buff/cache二、buff/cache与内存管理三、buff/cache对系统性能的影响四、优化buff/cache1、调整vm.dirty_ratio和vm.dirty_background_ratio2、配置vm.swappiness3、配置vm.vfs_cache_pressure 五、释放buff/cache 一、buff/cache 按照Linux内核文档所说的&#xff0…...

3.wifi开发,网络编程

网络协议栈LwIP WiFi UDP Clinet编程 WiFi UDP Server编程 WiFi TCP Client编程 WiFi TCP Server编程 一。LWIP原理介绍,API介绍,文件结构 1.Lwip支持的协议 2.API 3.文件结构 1.api目录:应用程序接口文件。 2.arch目录:与硬件和…...

Android框架mqtt库无法兼容高版本android13的问题

最近使用mqtt库,测试的时候发现在Android12及以下正常,但在13上闪退,闪退日志如下 java.lang.IllegalArgumentException: com.yummo.xcar: Targeting S (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be spe…...

前端导出带有合并单元格的列表

// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...

【解密LSTM、GRU如何解决传统RNN梯度消失问题】

解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...

汽车生产虚拟实训中的技能提升与生产优化​

在制造业蓬勃发展的大背景下,虚拟教学实训宛如一颗璀璨的新星,正发挥着不可或缺且日益凸显的关键作用,源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例,汽车生产线上各类…...

【项目实战】通过多模态+LangGraph实现PPT生成助手

PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...

关键领域软件测试的突围之路:如何破解安全与效率的平衡难题

在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件,这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下,实现高效测试与快速迭代?这一命题正考验着…...

佰力博科技与您探讨热释电测量的几种方法

热释电的测量主要涉及热释电系数的测定,这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中,积分电荷法最为常用,其原理是通过测量在电容器上积累的热释电电荷,从而确定热释电系数…...

API网关Kong的鉴权与限流:高并发场景下的核心实践

🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 引言 在微服务架构中,API网关承担着流量调度、安全防护和协议转换的核心职责。作为云原生时代的代表性网关,Kong凭借其插件化架构…...

Linux中《基础IO》详细介绍

目录 理解"文件"狭义理解广义理解文件操作的归类认知系统角度文件类别 回顾C文件接口打开文件写文件读文件稍作修改,实现简单cat命令 输出信息到显示器,你有哪些方法stdin & stdout & stderr打开文件的方式 系统⽂件I/O⼀种传递标志位…...

comfyui 工作流中 图生视频 如何增加视频的长度到5秒

comfyUI 工作流怎么可以生成更长的视频。除了硬件显存要求之外还有别的方法吗? 在ComfyUI中实现图生视频并延长到5秒,需要结合多个扩展和技巧。以下是完整解决方案: 核心工作流配置(24fps下5秒120帧) #mermaid-svg-yP…...

shell脚本质数判断

shell脚本质数判断 shell输入一个正整数,判断是否为质数(素数)shell求1-100内的质数shell求给定数组输出其中的质数 shell输入一个正整数,判断是否为质数(素数) 思路: 1:1 2:1 2 3:1 2 3 4:1 2 3 4 5:1 2 3 4 5-------> 3:2 4:2 3 5:2 3…...