【计算机网络】计网常见面试题总结
目录
一、谈一谈对OSI七层模型和TCP/IP四层模型的理解?
二、谈一谈TCP协议的三次握手过程?
三、TCP协议为什么要三次握手?两次、四次不行吗?
四、谈一谈TCP协议的四次挥手过程?
五、什么是流量控制?
六、什么是滑动窗口?
七、什么是拥塞控制?
八、TCP和UDP有什么区别?
一、谈一谈对OSI七层模型和TCP/IP四层模型的理解?
首先分层的原因是为了将计算机网络分为多层结构,每一层都有每一层的作用与规则,能够更好的进行网络连接。就好比发快递,从快递员从你手里拿到快递再到快递送到快递的网点进行分拣、运输到目的地的处理中心、最后到接收人收到快递这个过程。
OSI七层模型是对计算机网络的一种理想化模型,分别为:
物理层是通过网线、光缆这种物理方式将电脑连接起来,通过比特流传输。
数据链路层是将比特流封装成数据帧,对0、1进行分组。
网络层是决定数据在网络中的游走路径。
传输层是通过tcp或udp协议来为两台主机提供数据传输服务。
会话层是负责管理应用程序之间的会话,也就是会话的建立、维护和重连。
表示层是为了是数据能够被其他计算机所能理解转换成的另一种格式比如文字、视频、图片等。
应用层为最高层是最终呈现给用户的界面。
而TCP/IP四层模型是实际上的模型分层,也是对七层模型的简化版,为应用层、传输层、网络层、数据链路层。
其中应用层常见的协议有DNS域名协议、HTTP协议、邮件传输协议(SMTP、POP3、IMAP4等)、FTP传输协议等。
传输层常见的协议为TCP协议与UDP协议。
二、谈一谈TCP协议的三次握手过程?
第一次握手由客户端向服务端发送一个TCP数据包,其中首部中SYN=1,ACK=0,表示这是一个请求连接数据包。
第二握手由服务端向客户端发送,其中SYN=1,ACK=1,表示服务端同意连接。
第三次握手是由客户端再次向服务端发送,其中SYN=0,ACK=1。表示双方都同意连接,并且确认收到服务端的确认数据包。
三、TCP协议为什么要三次握手?两次、四次不行吗?
三次握手是为了避免重复连接,并且通过三次连接可以获得一个可靠的序列号seq。
如果只有两次握手的话,服务端并没有收到客户端的确认数据包、并不知到客户端是否收到服务端的确认数据包,而且无法获得初始化的序列号seq。
如果四次的话又会有些浪费资源。
四、谈一谈TCP协议的四次挥手过程?
第一次挥手由客户端向服务端发送,首部中FIN=1,ACK=0,表示这是一个请求断开的与服务端的连接。
第二次挥手是由服务端向客户端发送,其中FIN=0,ACK=1,表示确认收到客户端的发送的请求断开报文。此时客户端对服务端的连接就已经释放了,客户端只能接收服务端的数据包,不能发送。而服务端并没有释放,既可以接收也可以释放。
第三次挥手还是由服务端向客户端发送,其中FIN=1,ACK=1,表示服务端已经没有要向客户端发送的数据了,并释放与客户端之间的连接。此时服务端不能向客户端发送数据了,但能接收。
第四次挥手是由客户端收到对服务端的连接释放报文后,向服务端发送,其中ACK=1,FIN=0,表示确认收到收到释放报文。同意服务端释放连接。
五、什么是流量控制?
流量控制是指接收方对于发送方发送速率的一种控制。
因为每一方都有一块固定大小的缓存空间,而接收方需要要求发送方不能发送超过接收方缓存容量的数据。接收方来不及处理发送方的数据,就会提示对方降低发送速率,防止数据包丢失。
而TCP是利用滑动窗口来进行流量控制的。在确认报文中有一个窗口字段就是设置发送方的窗口大小,从而影响发送速率。
六、什么是滑动窗口?
因为如果每发送一个数据,都要等收到对方的确认收到后,才发送下一个数据的话,这样的通信效率是很慢的。而TCP协议就引入了窗口的概念。滑动窗口就是TCP协议用于实现流量控制的一种机制。
在发送发和接收方都会维护着各自的缓冲区,这个缓存区就叫窗口。窗口大小是由接收方首部中窗口这个字段来决定的。
在发送方的窗口中分别有四个区域,已经收到确认的数据、发送但没有被确认的数据、未发送但在缓存范围内的数据、未发送但超出缓存范围的区域,窗口会随着发送数据被确认而向着未发送的区域滑动。
而接收方的窗口分为成功接收并确认的数据、未收到但可以确认的数据、未收到但超出窗口范围的数据。接收方也会随着收到数据并确认后窗口向着未收到移动。接收方可以通过改变窗口大小来控制发送的速率,从而实现流量控制。
七、什么是拥塞控制?
发送方需要维护一个叫拥塞窗口的状态量来决定可以同时发送多少数据包。而TCP主要通过四个算法来进行拥塞控制:
慢开始:拥塞窗口从1开始已指数的方式增长。
拥塞避免:是指当拥塞窗口的值大于慢开始门限(ssthresh)时,会进入拥塞避免,拥塞窗口的增长会从指数增长改为每次只加一的线性增长。
快重传:是指在发送拥塞开始后已经开始出现丢包,而处理丢包的方式为超时重传(发送后的时间已经到达RTO还没收到确认数据包)时,会先将慢开始门限的值改为拥塞窗口值的一半,然后将拥塞窗口的值改为1,重新进入慢开始。
快恢复:是指如果进行快重传后(收到3个重复的确认数据包),会将慢开始门限改为原来的一半,然后继续执行拥塞避免。
八、TCP和UDP有什么区别?
TCP是面向连接的,仅支持一对一通信,并且是可靠性传输,而UDP是无需连接,支持一对一、一对多、多对一、多对多,通信,不保证可靠性。但是传输效率要比TCP高。首部需要8个字节,而TCP的首部为20-60字节。
注:本篇文章都是我自己的理解,可能用词和语句不够严谨,如有错误请评论指正,谢谢!(持续更新中......)
相关文章:
【计算机网络】计网常见面试题总结
目录 一、谈一谈对OSI七层模型和TCP/IP四层模型的理解? 二、谈一谈TCP协议的三次握手过程? 三、TCP协议为什么要三次握手?两次、四次不行吗? 四、谈一谈TCP协议的四次挥手过程? 五、什么是流量控制? …...
SpringMVC 学习(七)JSON
9. JSON 9.1 简介 JSON(JavaScript Object Notation,JS 对象标记)是一种轻量级数据交换格式,采用独立于编程语言的文本格式储存和表示数据,易于机器解析和生成,提升网络传输效率。 任何 JavaScript 支持…...
重学C++ | std::set 的原理
std::set 是C标准库中的容器之一,它基于红黑树实现。std::set 利用红黑树的特性来实现有序的插入、查找和删除操作,并且具有较好的平均和最坏情况下的时间复杂度。 当向 std::set 插入元素时,它会按照特定的比较函数(bool less<…...
AnV-X6使用及总结
目录 1 简介2 安装3 基础概念3.1 画布Graph3.2 基类Cell3.3 节点Node3.4 边Edge 4 使用4.1 创建节点4.2 节点连线4.3 事件系统 5 总结 1 简介 AntV是一个数据可视化(https://x6.antv.antgroup.com/)的工具(https://antv.vision/zh/ …...
Go 围炉札记
文章目录 一、安装二、文档三、使用 一、安装 VSCode 和 CLion 为 Go 开发配置Visual Studio Code | Microsoft Learn VScode下配置Go语言开发环境【2023最新】 基础篇:新手使用vs code新建go项目 vscode里安装Go插件和配置Go环境 GO 笔记 Golang 配置代理 golang…...
数据分析回头看2——重复值检查/元素替换/异常值筛选
0、前言: 这部分内容是对Pandas的回顾,同时也是对Pandas处理异常数据的一些技巧的总结,不一定全面,只是自己在数据处理当中遇到的问题进行的总结。 1、当数据中有重复行的时候需要检测重复行: 方法:使用p…...
什么是OSPF?为什么需要OSPF
【微|信|公|众|号:厦门微思网络】 【微思网络www.xmws.cn,成立于2002年,专业培训21年,思科、华为、红帽、ORACLE、VMware等厂商认证及考试,以及其他认证PMP、CISP、ITIL等】 什么是OSPF? 开放式最短路径优…...
轻量级的日志采集组件 Filebeat 讲解与实战操作
文章目录 一、概述二、Kafka 安装三、Filebeat 安装1)下载 Filebeat2)Filebeat 配置参数讲解3)filebeat.prospectors 推送kafka完整配置1、filebeat.prospectors2、processors3、output.kafka 4)filebeat.inputs 与 filebeat.pros…...
C# 委托和事件
C# 委托和事件 委托匿名方法事件 委托 当要把方法传送给其他方法时,需要使用委托。首先定义要使用的委托,对于委托,定义它就是告诉编译器这种类型的委托代表了哪种类型的方法,然后创建该委托的一个或多个实例。编译器在后台将创建…...
数据结构与算法之字典: Leetcode 349. 两个数组的交集 (Typescript版)
两个数组的交集 https://leetcode.cn/problems/intersection-of-two-arrays/description/ 题目和解题参考 https://blog.csdn.net/Tyro_java/article/details/133279737 使用字典来解题的算法实现 字典:顾名思义,像新华字典一样可查找,基…...
day-56 代码随想录算法训练营(19)动态规划 part 16
538.两个字符串的删除操作 思路一: 1.dp存储:以word1[i-1]结尾,word2[j-1]结尾,最少进行dp[i][j]次操作2.动态转移方程: if(word1[i-1]word2[i-1]) dp[i][j]dp[i-1][j-1]; else dp[i][j]min(dp[i-1][…...
蓝桥等考Python组别四级005
第一部分:选择题 1、Python L4 (15分) 字符“0”的ASCII码值为48,则字符“5”的ASCII码值为( )。 3953120240正确答案:B 2、Python L4 (15分) 下面哪个是Python中正确的变量名?( ) ABC#sup01Trueif正确答案:B...
【Linux】diff 命令
【Linux】diff 命令——并排格式输出 功能 diff 以逐行的方式,比较文本文件的异同处。 如果指定要比较目录,则 diff 会比较目录中相同文件名的文件,但不会比较其中子目录 diff [参数] [文件A] [文件B]diff [参数] [目录A] [目录B]【参数】…...
【51单片机】9-定时器和计数器
1.定时器的介绍 1.什么是定时器 (1)SoC的一种内部的外设【在单片机里面,但是在CPU外面】 (2)定时器就是CPU的”闹钟“ 2.什么是计数器 (1)定时器就是用计数的原始实现的 (2…...
2023年海南省职业院校技能大赛(高职组)信息安全管理与评估赛项规程
2023年海南省职业院校技能大赛(高职组) 信息安全管理与评估赛项规程 一、赛项名称 赛项名称:信息安全管理与评估 英文名称:Information Security Management and Evaluation 赛项组别:高等职业教育 赛项归属产业&…...
大模型深挖数据要素价值:算法、算力之后,存储载体价值凸显
文 | 智能相对论 作者 | 叶远风 18.8万亿美元,这是市场预计2030年AI推动智能经济可产生的价值总和,其中大模型带来的AI能力质变无疑成为重要的推动力量。 大模型浪潮下,业界对AI发展的三驾马车——算力、算法、数据任何一个维度的关注都到…...
AI文章,AI文章生成工具
在互联网时代,随着信息爆炸式增长,文章的需求愈发旺盛。从博客、新闻、社交媒体到企业宣传,文字作为传达信息、吸引受众的工具变得愈发重要。但问题是,对于很多人来说,创作一篇高质量的文章并不容易。时间、创意、写作…...
mac有必要用清理软件吗?有哪些免费的清理工具
当我们谈到Mac电脑时,很多人都会觉得它比Windows系统更加稳定和高效,也更不容易积累垃圾文件。但实际上,任何长时间使用的操作系统都会逐渐积累不必要的文件和缓存。那么,对于Mac用户来说,有必要使用专门的清理软件吗&…...
React 全栈体系(十八)
第九章 React Router 6 二、代码实战 6. 路由的 params 参数 6.1 routes /* src/routes/index.js */ import About from "../pages/About"; import Home from "../pages/Home"; import Message from "../pages/Message"; import News from &q…...
TCP/UDP
TCP:可靠的有序传输 TCP是一种面向连接的协议,旨在提供可靠、有序的数据传输。它通过以下方式实现这一目标: 1. 连接建立和维护 在使用TCP传输数据之前,必须先建立连接。这个过程包括三次握手,即客户端和服务器之间…...
7-Zip ZS:六种压缩算法如何彻底改变你的文件处理体验
7-Zip ZS:六种压缩算法如何彻底改变你的文件处理体验 【免费下载链接】7-Zip-zstd 7-Zip with support for Brotli, Fast-LZMA2, Lizard, LZ4, LZ5 and Zstandard 项目地址: https://gitcode.com/gh_mirrors/7z/7-Zip-zstd 在数字时代,文件压缩已…...
springboot基于Vue的大学生心理健康交流系统的设计与实现
目录系统架构设计数据库设计核心功能模块前端界面开发测试部署方案项目进度规划注意事项项目技术支持源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作系统架构设计 采用前后端分离架构,后端使用SpringBoot框架提供RESTful API接…...
html+css+js创意小游戏~记忆卡片配对(附源码)
1. 从零开始打造记忆卡片配对游戏 最近在教家里小朋友认动物,突然想到可以用前端三件套做个记忆卡片小游戏。这个项目特别适合刚学完HTML/CSS基础,想练手JavaScript的朋友。我自己第一次写这个游戏时,只用了不到100行代码就实现了核心功能&am…...
告别爆显存!在16G显卡上高效训练SDXL LORA的完整配置流程
16G显卡极限优化:SDXL LORA训练全流程实战指南 引言 当你手握一块RTX 4060 Ti或4070这样的16G显存显卡,想要尝试SDXL LORA训练时,是否常被爆显存的恐惧支配?别担心,这不是硬件性能的终点,而是优化艺术的起点…...
消费级显卡也能跑!cv_resnet101_face-detection_cvpr22papermogface GPU算力适配实战
消费级显卡也能跑!cv_resnet101_face-detection_cvpr22papermogface GPU算力适配实战 1. 项目简介与核心价值 今天给大家分享一个特别实用的人脸检测工具——基于MogFace模型的高精度人脸检测系统。这个工具最大的亮点就是消费级显卡就能流畅运行,不需…...
如何用机器学习评估专利价值?专利权利要求广度分析实战指南
如何用机器学习评估专利价值?专利权利要求广度分析实战指南 【免费下载链接】patents-public-data Patent analysis using the Google Patents Public Datasets on BigQuery 项目地址: https://gitcode.com/gh_mirrors/pa/patents-public-data 在知识产权竞争…...
无人机远程识别系统如何解决合规飞行的技术痛点:基于ESP32的开源实现方案
无人机远程识别系统如何解决合规飞行的技术痛点:基于ESP32的开源实现方案 【免费下载链接】ArduRemoteID RemoteID support using OpenDroneID 项目地址: https://gitcode.com/gh_mirrors/ar/ArduRemoteID 随着全球无人机监管政策的收紧,远程识别…...
当分包时,主包里有未被引用的文件,小程序预览【代码质量】显示包体积过大,不影响发布
1.项目加入分包后预览时显示主包体积超出?排查分包没问题,外部库方法也不会占很多空间2.代码依赖分析【显示 - 主包体积正常】主包实际体积(768KB)明明远小于 2MB 上限,但工具却提示「主包尺寸应小于 1.5M」且未通过。…...
React篇——第一章 React的基础知识(上篇)
目录 1. React简介 1.1 什么是React 1.2 React的核心优势 组件化开发 虚拟DOM 丰富的生态系统 跨平台支持 1.3 React的市场地位 2. 开发环境搭建 2.1 使用create-react-app创建项目 2.2 其他创建React项目的方式 3. JSX基础 3.1 什么是JSX 3.2 JSX的优势 3.3 JS…...
BetterGI:基于计算机视觉的原神自动化辅助工具深度解析
BetterGI:基于计算机视觉的原神自动化辅助工具深度解析 【免费下载链接】better-genshin-impact 🍨BetterGI 更好的原神 - 自动拾取 | 自动剧情 | 全自动钓鱼(AI) | 全自动七圣召唤 | 自动伐木 | 自动派遣 | 一键强化 - UI Automation Testing Tools Fo…...
