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

计算机网络常见问题

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

1.1.为什么要分层?

        在计算机中网络是个复杂的系统,不同的网络与网络之间由于协议,设备,软件等各种原因在协调和通讯时容易产生各种各样的问题。例如:各物流公司的快递站点,快递人员,货运方式都有可能不同,但对更个流程之间进行划分,就方便了客户和物流公司的管理。所以网络也需要一个标准化的思想或者模型来统一协调。

1.2.分层的好处?

  • 各层之间是独立的,不用过多关心其他层次的内容,更好找出问题;

  • 灵活性好,任何一层发生变化不容易影响上下层;

  • 架构上可分割开,各层可用最好的技术实现;

  • 能促进标准化的工作,易于实现和维护;

1.3.OSI七层模型

  OSIOpen System Interconnect)网络7层模型是ISO组织定义的一个计算机互联的标准分层模型,但它只是一个定义,目的是为了简化网络各层的操作,提供标准接口便于实现和维护,从上至下依次包括:应用层表示层会话层传输层网络层链路层物理层

1.4. TCP/IP四层模型

        但在实际使用时根据使用协议对七层模型部分层级进行合并简化。分成4层:应用层传输层网络层网络接口层(数据链路层、物理层)。

        其中将应用,表示,会话三层合称为应用层,将数据链路,物理合称网络接口层。

2.谈谈TCP协议的3次握手过程?

2.1.简述

握手过程就是TCP发送端和接收端通过三次对话应答的方式进行建立可靠连接的过程

2.2.具体过程

注意:大写字母SYNACK都是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协议用于实现流量控制的一种协议或者机制。

窗口内容划分:

发送方:

  1. 已发送并确认,窗口处理过多成功内容。
  2. 已发送未确认,等待接受的内容。
  3. 未发送未超出接收方窗口范围,在流量允许范围内窗口需要处理但尚未处理的内容。
  4. 未发送但超出接收方窗口范围。窗口尚未接收的内容。

接收方:

  1. 接受已确认,窗口已成功接收的内容,不在窗口范围内。
  2. 未收到但可以接受,等待接收的内容。

窗口在完成一个个数据处理后,按顺序向后执行即为滑动。

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局部响应归一化&#xff08…...

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的保护文件的唯一性&#xff0c;防止被多重包含 格式 : <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】 沿街有一排连续的房屋。每间房屋内都藏有一定的现金。现在有一位小偷计划从这些房屋中窃取现金。 由于相邻的房屋装有相互连通的防盗系统&#xff0c;所以小偷 不会窃取相邻的房屋 。 小偷的 窃取能力 定义为他在窃取过程中能从单间房屋中窃取的 最大金额…...

JVM 参数详解

GC有两种类型&#xff1a;Scavenge GC 和Full GC 1、Scavenge GC 一般情况下&#xff0c;当新对象生成&#xff0c;并且在Eden申请空间失败时&#xff0c;就会触发Scavenge GC&#xff0c;堆的Eden区域进行GC&#xff0c;清除非存活对象&#xff0c;并且把尚且存活的对象移动到…...

uni-app获取地理位置

在uni-app中&#xff0c;可以通过uni.getLocation()方法获取地理位置。具体步骤如下&#xff1a; 在uni-app项目中的manifest.json文件中&#xff0c;添加需要获取地理位置的权限&#xff1a; {"mp-weixin": {"appid": "...","permission…...

Learn Prompt-Prompt 高级技巧:思维链 Chain of Thought Prompting

Jason Wei等作者对思维链的定义是一系列的中间推理步骤&#xff08; a series of intermediate reasoning steps &#xff09;。目的是为了提高大型语言模型&#xff08;LLM&#xff09;进行复杂推理的能力。 思维链通常是伴随着算术&#xff0c;常识和符号推理等复杂推理任务出…...

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站&#xff0c;会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后&#xff0c;网站没有变化的情况。 不熟悉siteground主机的新手&#xff0c;遇到这个问题&#xff0c;就很抓狂&#xff0c;明明是哪都没操作错误&#x…...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

【入坑系列】TiDB 强制索引在不同库下不生效问题

文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

高危文件识别的常用算法:原理、应用与企业场景

高危文件识别的常用算法&#xff1a;原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件&#xff0c;如包含恶意代码、敏感数据或欺诈内容的文档&#xff0c;在企业协同办公环境中&#xff08;如Teams、Google Workspace&#xff09;尤为重要。结合大模型技术&…...

VTK如何让部分单位不可见

最近遇到一个需求&#xff0c;需要让一个vtkDataSet中的部分单元不可见&#xff0c;查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行&#xff0c;是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示&#xff0c;主要是最后一个参数&#xff0c;透明度…...

Matlab | matlab常用命令总结

常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...

拉力测试cuda pytorch 把 4070显卡拉满

import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试&#xff0c;通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小&#xff0c;增大可提高计算复杂度duration: 测试持续时间&#xff08;秒&…...

鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/

使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题&#xff1a;docker pull 失败 网络不同&#xff0c;需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)

UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中&#xff0c;UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化&#xf…...