计算机网络常见问题

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 视频 、直播等等

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/138927.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图像形态学操作(连通性、腐蚀、膨胀)

相关概念 形态学操作-腐蚀 参数: img: 要处理的图像kernal :核结构iteration :腐蚀的次数,默认是1 形态学操作-膨胀 参数: img : 要处理的图像kernal : 核结构iteration : 膨胀的次数,默认为1 import cv2 as cv im…

STM32F103RCT6学习笔记2:串口通信

今日开始快速掌握这款STM32F103RCT6芯片的环境与编程开发,有关基础知识的部分不会多唠,直接实践与运用!文章贴出代码测试工程与测试效果图: 目录 串口通信实验计划: 串口通信配置代码: 测试效果图&#…

Cpp/Qt-day020918Qt

目录 完善登录框 点击登录按钮后,判断账号(admin)和密码(123456)是否一致,如果匹配失败,则弹出错误对话框,文本内容“账号密码不匹配,是否重新登录”,给定两…

用AVR128单片机的音乐门铃

一、系统方案 1、使用按键控制蜂鸣器模拟发出“叮咚”的门铃声。 2、“叮”声对应声音频率714Hz,“咚”对应声音频率500Hz,这两种频率由ATmega128的定时器生成,定时器使用的工作模式自定,处理器使用内部4M时钟。“叮”声持续时间300ms&#x…

上PICO,沉浸式观看亚运直播,参与跨国界游戏竞技

备受瞩目的杭州第19届亚运会,将于9月23日正式开幕。据悉,这也是有史以来项目最多的一届亚运会,除部分传统奥运项目外,还包含武术、藤球、板球、克柔术、柔术等亚洲特色项目,以及霹雳舞、电子竞技等深受年轻人喜爱的新兴…

英伟达 nvidia 官方code llama在线使用

新一代编程语言模型Code Llama面世:重新定义编程的未来 随着人工智能和机器学习技术的迅速发展,我们现在迎来了一款革命性的大型编程语言模型——Code Llama。该模型是基于Llama 2研发的,为开放模型中的佼佼者,其性能达到了行业领…

2023工博会强势回归!智微工业携八大系列重磅亮相

中国国际工业博览会(简称"中国工博会")自1999年创办以来,历经二十余年发展创新,通过专业化、市场化、国际化、品牌化运作,已发展成为通过国际展览业协会(UFI)认证、中国工业领域规模最…

早餐与风景

来吧,我用流水账描述下这一天。 时维九月,北京的早上有点冷,因为今天有个市场活动要去支撑,按照会议时间的要求,我需要在早上7点半就赶到会场,所以昨天晚上我加班到凌晨处理完了今天要给出去的材料&#xf…

react实现动态递增展示数字特效

在可视化展示界面时有一种场景,就是页面在初始化的时候,有些数字展示想要从某个值开始动态递增到实际值,形成一种动画效果。例如: 写一个数字递增的组件,代码如下: import {useEffect, useRef, useState} f…

基于Java的Base64编解码优化探讨

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

Ubuntu22.04 vnc远程黑屏

一、原因 原因是Ubuntu22.04使用的gnome启用了Wayland。vnc、teamviewer、向日葵、todesk等均无法使用或者远程黑屏等。 简单的说vnc、teamviewer、向日葵、todesk等均基于xorg实现(xorg太流行),并不兼容Wayland,所以vnc无法正常…

php反序列化+题

含义: php序列化(serialize):是将变量转换为可保存或传输的字符串的过程php反序列化(unserialize):就是在适当的时候把这个字符串再转化成原来的变量使用这两个过程结合起来,可以轻…

版本控制系统git:一文了解git,以及它在生活中的应用,网站维护git代码,图导,自动化部署代码

目录 1.Git是什么 2.git在生活中的应用 2.1git自动化部署代码 3.网站维护git代码 3.1如何在Git代码托管平台等上创建一个仓库 3.2相关文章 4.ruby实现基础git 4.1.Git add 4.2 Git commit 4.3 Git log 1.Git是什么 Git是一个版本控制系统,它可以追踪文件的…

怒刷LeetCode的第7天(Java版)

目录 第一题 题目来源 题目内容 解决方法 方法一:二分贪心 方法二:二分DP 第二题 题目来源 题目内容 解决方法 方法一:双指针 方法二:暴力搜索 方法三:排序 第三题 题目来源 题目内容 解决方法 方法一…

Aztec交易架构解析

1. 引言 前序博客有: Aztec的隐私抽象:在尊重EVM合约开发习惯的情况下实现智能合约隐私完全保密的以太坊交易:Aztec网络的隐私架构Aztec.nr:Aztec的隐私智能合约框架——用Noir扩展智能合约功能Account Abstraction账号抽象——…

【数据增强】

【数据增强】 1 数据增强的情形2 数据增强的方法 1 数据增强的情形 当数据比较小,难以获取新的训练数据时,可以考虑数据增强,如随机裁剪部分,随机左右上下翻转、随机旋转一个角度、随机亮度变化等微小变化,数据的多样…

flex布局与float布局

float布局 俩栏 三栏 flex布局

css自学框架之二级下拉菜单

下拉菜单是我们开发中最常见,最常用的,今天我们就自学二级下来菜单。首先看一下最终效果: 一、css代码 .arrow-down::before {content: ""; width: 10px;height: 10px;border: solid ;border-width: 2px 2px 0 0;border-color: …

大型集团借力泛微搭建语言汇率时区统一、业务协同的国际化OA系统

国际化、全球化集团,业务遍布全世界,下属公司众多,集团对管理方式和企业文化塑造有着很高的要求。不少大型集团以数字化方式助力全球统一办公,深化企业统一管理。 面对大型集团全球化的管理诉求,数字化办公系统作为集…

Quartz 建表语句SQL文件

SQL文件在jar里面,github下载 https://github.com/quartz-scheduler/quartz/releases/tag/v2.3.2 解压,sql文件路径:quartz-core\src\main\resources\org\quartz\impl\jdbcjobstore tables_mysql_innodb.sql # # In your Quartz propertie…