计算机网络常见问题
1.谈一谈对OSI七层模型和TCP/IP四层模型的理解?
1.1.为什么要分层?
在计算机中网络是个复杂的系统,不同的网络与网络之间由于协议,设备,软件等各种原因在协调和通讯时容易产生各种各样的问题。例如:各物流公司的快递站点,快递人员,货运方式都有可能不同,但对更个流程之间进行划分,就方便了客户和物流公司的管理。所以网络也需要一个标准化的思想或者模型来统一协调。
1.2.分层的好处?
-
各层之间是独立的,不用过多关心其他层次的内容,更好找出问题;
-
灵活性好,任何一层发生变化不容易影响上下层;
-
架构上可分割开,各层可用最好的技术实现;
-
能促进标准化的工作,易于实现和维护;
1.3.OSI七层模型
OSI(Open System Interconnect)网络7层模型是ISO组织定义的一个计算机互联的标准分层模型,但它只是一个定义,目的是为了简化网络各层的操作,提供标准接口便于实现和维护,从上至下依次包括:应用层、表示层、会话层、传输层、网络层、链路层、物理层。

1.4. TCP/IP四层模型
但在实际使用时根据使用协议对七层模型部分层级进行合并简化。分成4层:应用层、传输层、网络层、网络接口层(数据链路层、物理层)。
其中将应用,表示,会话三层合称为应用层,将数据链路,物理合称网络接口层。
2.谈谈TCP协议的3次握手过程?
2.1.简述
握手过程就是TCP发送端和接收端通过三次对话应答的方式进行建立可靠连接的过程
2.2.具体过程

注意:大写字母SYN,ACK都是TCP首部中的控制位内容,确定本次报文的性质。
- 确认
ACK:ACK是对已接受数据的确认。TCP规定:ACK默认为0,在连接建立后,所有传送的报文段都必须把ACK设置为1。当ACK=1时,确认号字段才有效,否则无效。 - 同步
SYN:在连接建立时使用,表示这是一个连接请求或连接接受报文。当SYN=1,ACK=0时表示这是一个连接请求报文段。若对方同意建立连接,则响应报文中SYN=1,ACK=1。
第一次挥手:
由发送方向接收方发送请求连接的报文。
报文首部内容:同步SYN=1,确认ACK=0,序号seq=x。
序号:即发送报文中数据的第一个字节序号。
第二次挥手:
由接收方向发送方发送请求连接的确认报文。
报文首部内容:同步SYN=1,确认ACK=1,序号seq=y,确认号ack=x+1
确认号:即下次期待接收的第一字节序号。
第三次挥手:
由发送方向接收方发送确认报文
报文首部内容:同步SYN=0,确认ACK=1,序号seq=x+1,确认号ack=y+1
3.TCP协议为什么要3次握手?2次,4次不行吗?
TCP协议的3次握手的作用是为了在建立连接时,避免重复连接,防止旧的重复连接引起连接混乱问题。另外,通过三次握手,可以得到一个确认的可靠初始化序列号seq,用于进行可靠性传输。而如果只有2次握手,则无法初始化序列号seq。
综上所述:TCP协议最少需要通过3次握手建立连接。当然, TCP 连接也通过4次握手或5次握手建立连接,实现 TCP 连接的稳定性,但3次握手是最节省资源的连接方式。
4.谈谈TCP协议的四次挥手过程?
4.1.简述
挥手过程就是TCP发送端和接收端通过四次对话应答的方式进行可靠连接释放的过程。
4.2.具体过程

- 终止 FIN (
FINis) : 用来释放一个连接。FIN = 1表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。
第一次挥手:
首先客户端向服务器发送连接释放的请求报文,并停止发送数据。
报文首部内容:FIN=1,ACK = 0
第二次挥手:
服务器收到连接释放的报文之后,给客户端发送确认报文。
报文首部内容:FIN=0,ACK=1。
注意:第二次挥手后,客户端到服务器方向的连接就释放了,TCP连接处于半关闭状态。此时客户端无法发送数据给服务器,但是服务器还可以发送数据给客户端,客户端仍可以接收。
第三次挥手:
服务器向客户端发送完数据后,向客户端发送释放连接的确认报文。
报文首部内容:ACK=1,FIN=1
第四次挥手:
客户端收到服务器的连接释放报文段后,向服务器发出确认报文。
报文首部内容:ACK=1,FIN = 0
5.什么是流量控制?
简述:就是由接收方根据处理数据的能力控制发送方每次传输数据的量。
控制方法:使用可变大小的流量控制协议——滑动窗口协议。
窗口大小:通过接收方发送的确认报文中的窗口字段控制发送方窗口大小,从而影响发送方的发送速率。将窗口字段设置为 0,则发送方不能发送数据。
6.什么是滑动窗口?
概念:是TCP协议用于实现流量控制的一种协议或者机制。
窗口内容划分:
发送方:
- 已发送并确认,窗口处理过多成功内容。
- 已发送未确认,等待接受的内容。
- 未发送未超出接收方窗口范围,在流量允许范围内窗口需要处理但尚未处理的内容。
- 未发送但超出接收方窗口范围。窗口尚未接收的内容。
接收方:
- 接受已确认,窗口已成功接收的内容,不在窗口范围内。
- 未收到但可以接受,等待接收的内容。
窗口在完成一个个数据处理后,按顺序向后执行即为滑动。
7.什么是拥塞控制?
简述:就是在网络传输中,维护一个叫做拥塞窗口(cwnd)的状态变量,决定每次可以发送的数据包(报文)的数量,来判断拥塞程度。
TCP主要通过四个算法来进行拥塞控制:慢开始、拥塞避免、拥塞发生、快速恢复。
慢开始:cwnd从1开始,每次加倍cwnd值,由小到大逐渐增大。
拥塞避免:慢开始会让发送方发送的速度越来越快,网络拥塞的可能性也就更高。设置一个慢开始门限 ssthresh,当 cwnd >= ssthresh 时,进入拥塞避免,每次将 cwnd加 1,降低拥塞窗口的增长速度。
拥塞发生:当网络慢慢进入拥塞状况,就可能出现丢包现象,这时需要对丢失的数据包进行重传。
当触发了重传机制,也就进入了拥塞发生。分为两种重传处理:
超时重传:将ssthresh 设为 cwnd/2,cwnd 重置为 1,重新进入慢启动。
快速重传:将cwnd = cwnd / 2,ssthresh = cwnd,进入快速恢复。
快速恢复:和快重传配合使用,当执行快重传时,ssthresh=ssthresh*0.5,cwnd = ssthresh + 3。
8.TCP和UDP有什么区别?
面向连接:TCP协议需要建立连接,仅支持一对一通信;UDP协议无需建立连接,支持一对一、一对多、多对一和多对多的交互通信。
传输可靠:TCP协议通过多种机制来确保可靠性传输;UDP不保证可靠性传输。
性能效率:TCP协议需要保证可靠性传输,相对传输效率慢,需要消耗较多的资源。UDP协议传输效率快,需要较少的资源开销。
首部格式:TCP协议的首部需要20-60个字节,UDP协议需要8个字节
应用场景:TCP协议保证可靠性传输,所以对数据准确性有要求的连接。如文件传输、发送和接收邮件、远程登录等场景。UDP协议可以进行广播,对数据量少场景由奇效。如QQ 语音、 QQ 视频 、直播等等
相关文章:
计算机网络常见问题
1.谈一谈对OSI七层模型和TCP/IP四层模型的理解? 1.1.为什么要分层? 在计算机中网络是个复杂的系统,不同的网络与网络之间由于协议,设备,软件等各种原因在协调和通讯时容易产生各种各样的问题。例如:各物流…...
上PICO,沉浸式观看亚运直播,参与跨国界游戏竞技
备受瞩目的杭州第19届亚运会,将于9月23日正式开幕。据悉,这也是有史以来项目最多的一届亚运会,除部分传统奥运项目外,还包含武术、藤球、板球、克柔术、柔术等亚洲特色项目,以及霹雳舞、电子竞技等深受年轻人喜爱的新兴…...
无重复字符的最长子串 - 力扣(LeetCode)
3. 无重复字符的最长子串 - 力扣(LeetCode) 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: s "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长…...
企业行政许可的种类有哪些?
从行政许可的性质、功能和适用条件的角度来说,大体可以划分为五类:普通许可、特许、认可、核准、登记。 1.普通许可 普通许可是一种允许符合特定条件的相对方行使某种权利的行为。在许多情况下,需要普通许可的活动都与国家安全、公共安全息…...
Flink--4、DateStream API(执行环境、源算子、基本转换算子)
星光下的赶路人star的个人主页 注意力的集中,意象的孤立绝缘,便是美感的态度的最大特点 文章目录 1、DataStream API1.1 执行环境(Execution Environment)1.1.1 创建执行环境 1.2 执行模式(Execution Mode)…...
#循循渐进学51单片机#指针基础与1602液晶的初步认识#not.11
1、把本节课的指针相关内容,反复学习3到5遍,彻底弄懂指针是怎么回事,即使是死记硬背也要记住,等到后边用的时候可以实现顿悟。学会指针,就是突破了C语言的一道壁垒。 2,1602所有的指令功能都应用一遍&#…...
Lua学习笔记:探究package
前言 本篇在讲什么 理解Lua的package 本篇需要什么 对Lua语法有简单认知 对C语法有简单认知 依赖Visual Studio工具 本篇的特色 具有全流程的图文教学 重实践,轻理论,快速上手 提供全流程的源码内容 ★提高阅读体验★ 👉 ♠ 一级…...
【面试经典150 | 双指针】三数之和
文章目录 写在前面Tag题目来源题目解读解题思路方法一:暴力枚举方法二:双指针 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法,两到三天更新一篇文章,欢迎催更…… 专栏内容以分析题目为主,并附带一些对…...
现代卷积网络实战系列3:PyTorch从零构建AlexNet训练MNIST数据集
1、AlexNet AlexNet提出了一下5点改进: 使用了Dropout,防止过拟合使用Relu作为激活函数,极大提高了特征提取效果使用MaxPooling池化进行特征降维,极大提高了特征提取效果首次使用GPU进行训练使用了LRN局部响应归一化(…...
Django系列:Django应用(app)的创建与配置
Django系列 Django应用(app)的创建与配置 作者:李俊才 (jcLee95):https://blog.csdn.net/qq_28550263 邮箱 :291148484163.com 本文地址:https://blog.csdn.net/qq_28550263/article…...
Linux查看程序和动态库依赖的动态库
一. 前言 在一些时候,我们需要知道一个程序或者动态库所依赖的动态库有哪些。比如,当我们运行一个程序的时候,发现可能会报错,提示找不到某个符号,这时我们就需要知道程序依赖了什么库,从而添加对应需要的动…...
vue3 无法使用pnpm安装依赖 或 Cannot find module preinstall.js
创建.npmrc文件在根目录 shamefully-hoisttrue auto-install-peerstrue strict-peer-dependenciesfalse删除 node_modules 和 pnpm-lock.yaml 文件 重新 pnpm i 就可以啦...
C/C++连接数据库,包含完整代码。
C/C连接数据库 本篇文章意在简洁明了的在linux环境下使用C/C连接远程数据库,并对数据库进行增删查改等操作。我所使用的环境是centos7,不要环境除环境配置外,代码是大同小异的。完整代码在最底部!!! 1.前…...
AUTOSAR词典:CAN驱动Mailbox配置技术要点全解析
AUTOSAR词典:CAN驱动Mailbox配置技术要点全解析 前言 首先,请问大家几个小小问题,你清楚: AUTOSAR框架下的CAN驱动关键词定义吗?是不是有些总是傻傻分不清楚呢?CAN驱动Mailbox配置过程中有哪些关键配置参…...
C语言 coding style
头文件 The #define Guard #define的保护文件的唯一性,防止被多重包含 格式 : <PROJECT>_< FILE>_H_ PROJECT : XS FILE : MV_CTR 头文件的包含顺序 C System FilesOther LibrariesUser LibraryConditional include 作用域 局部变量 -变量定义时需要…...
Python办公自动化之PDF
Python操作PDF 1、Python操作PDF概述2、批量拆分3、批量合并4、提取内容(文字)5、提取内容(表格)6、提取图片7、PDF添加水印8、加密与解密1、Python操作PDF概述 Python操作PDF主要有两个库:PyPDF2和pdfplumber PyPDF2是一个用于处理PDF文件的Python第三方库 官网文档参考:…...
【每日一题Day331】LC2560打家劫舍 IV | 二分查找 + 贪心
打家劫舍 IV【LC2560】 沿街有一排连续的房屋。每间房屋内都藏有一定的现金。现在有一位小偷计划从这些房屋中窃取现金。 由于相邻的房屋装有相互连通的防盗系统,所以小偷 不会窃取相邻的房屋 。 小偷的 窃取能力 定义为他在窃取过程中能从单间房屋中窃取的 最大金额…...
JVM 参数详解
GC有两种类型:Scavenge GC 和Full GC 1、Scavenge GC 一般情况下,当新对象生成,并且在Eden申请空间失败时,就会触发Scavenge GC,堆的Eden区域进行GC,清除非存活对象,并且把尚且存活的对象移动到…...
uni-app获取地理位置
在uni-app中,可以通过uni.getLocation()方法获取地理位置。具体步骤如下: 在uni-app项目中的manifest.json文件中,添加需要获取地理位置的权限: {"mp-weixin": {"appid": "...","permission…...
Learn Prompt-Prompt 高级技巧:思维链 Chain of Thought Prompting
Jason Wei等作者对思维链的定义是一系列的中间推理步骤( a series of intermediate reasoning steps )。目的是为了提高大型语言模型(LLM)进行复杂推理的能力。 思维链通常是伴随着算术,常识和符号推理等复杂推理任务出…...
大话软工笔记—需求分析概述
需求分析,就是要对需求调研收集到的资料信息逐个地进行拆分、研究,从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要,后续设计的依据主要来自于需求分析的成果,包括: 项目的目的…...
微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】
微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...
MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例
一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...
Java如何权衡是使用无序的数组还是有序的数组
在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...
Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...
2.Vue编写一个app
1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...
屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...
解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错
出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...
服务器--宝塔命令
一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行! sudo su - 1. CentOS 系统: yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...
