计算机网络相关知识点

news2024/11/20 6:37:34

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

这两种模型都是网络通信中重要的参考模型,他们的设计和功能有一些区别。

       首先OSI,OSI七层模型,也被称为开放系统互联参考模型,是一种在国际标准化组织(ISO)中使用的网络互联模型。这个模型将网络通信的过程分为了七个独立但相互关联的层次,包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。其中,应用层直接面向用户提供服务,例如文件传输、电子邮件、远程登录等。

        相比之下,TCP/IP四层模型是一种更为实际的网络通信模型,通常被用于互联网协议族(IPv4)中。这个模型包括应用层、传输层、网络层和网络接口层。其中,应用层同样直接为用户提供服务,例如电子邮件传输、网络浏览等。

        这两种模型的共同点在于他们都采用了层次结构的概念,能够提供面向连接和无连接两种通信服务机制。然而,他们也存在一些显著的区别。

       1.两者的层次结构不同。OSI模型分为七层,而TCP/IP模型分为四层。这意味着OSI模型对网络通信过程的划分更为细致,但同时也增加了理解和实现的复杂性。TCP/IP模型的四层结构相对更为简洁,更容易理解和实现。

       2.两者对可靠性的要求不同。OSI模型对可靠性的要求相对更高,它在设计时考虑了各种错误和异常情况,并通过冗余和恢复机制来确保数据的完整性和可靠性。而TCP/IP模型则更注重效率和速度,因此在一些场景下可能会牺牲一定的可靠性。

       3.两者的应用范围也有所不同。OSI模型是一个理论模型,并没有成熟的产品与之对应。而TCP/IP模型则是互联网的实际标准,被广泛应用于各种网络设备和操作系统中。

总的来说,OSI七层模型和TCP/IP四层模型都是网络通信中的重要参考模型,它们的设计和功能各有特点。在实际应用中,我们可以根据实际需求来选择适合的模型。

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

三次握手过程描述:

        1.第一次握手:客户端向服务器发送一个同步数据包(同步SYN=1,确认ACK=0,序号seq=x

        2.第二次握手:服务器同意,并回复客户端一个数据包(同步SYN=1,确认ACK=1,序号seq=y,确认号ack=x+1

        3.第三次握手:客户端收到服务器的确认之后,再给服务器发送一个数据包。数据包的TCP首部内容:同步SYN=0,确认ACK=1,序号seq=x+1,确认号ack=y+1

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

TCP协议选择三次握手而不是两次或四次,主要是出于对可靠性效率的综合考虑。

首先来看为什么不能选择两次握手。TCP协议是全双工的,即发送和接收双方都需要进行数据的确认和交互。在两次握手的情况下,发送方发送请求后,接收方只能确认收到请求,但无法确认请求是否被接收方正确处理。这种情况下,如果请求在传输过程中丢失或损坏,接收方因为没有进行确认,就无法发现请求存在问题,这将导致连接不可靠。因此,两次握手无法满足TCP协议对可靠性的要求。

那为什么不能选择四次握手呢?三次握手已经能够保证数据的可靠传输,而四次握手虽然在某些情况下可能增加可靠性,但同时也增加了握手过程的复杂性和延迟。四次握手的多余步骤并没有带来明显的效益提升,反而可能因为复杂的处理过程而降低TCP协议的效率。因此,从效率和实用性的角度考虑,三次握手是最优选择。

综上所述,TCP协议选择三次握手而不是两次或四次,是为了在保证数据可靠传输的同时,尽可能提高传输效率。三次握手既可以确认发送方和接收方之间的连接建立,也可以确保数据在传输过程中的正确性,是一种高效且可靠的网络通信协议。

谈谈TCP协议的四次挥手过程?

        第一次挥手:首先客户端服务器发送连接释放的请求报文(数据包),并停止发送数据。(终止FIN=1,确认ACK = 0

        第二次挥手:服务器收到连接释放的报文之后,给客户端发送确认报文。从客户端服务器这个方向上的连接就释放了,TCP连接处于半关闭状态。(终止FIN=0确认ACK=1,序号位seq=v,确认号ack=u+1

        第三次挥手:若服务器已经没有向客户端发送的数据了,其应用进程就通知TCP释放连接,并向客户端发送确认报文。(确认ACK=1,终止FIN=1)

        第四次挥手:客户端收到服务器的连接释放报文段后,向服务器发出确认报文。(确认ACK=1,终止FIN = 0


什么是流量控制?

简单来讲:流量控制是为了控制发送方发送速率,保证接收方来得及接收。

  TCP连接的每一方都有固定大小的缓冲空间,TCP 的接收端只允许发送端发送接收端缓冲区能接纳的数据。当接收方来不及处理发送方的数据,能提示发送方降低发送的速率,防止包丢失,从而实现流量控制。

        TCP使用的流量控制是 利用滑动窗口实现。


什么是滑动窗口?

滑动窗口是一种流量控制技术,它在计算机网络中用于控制数据包的发送和接收

具体来说,滑动窗口协议在数据流的发送和接收过程中,通过动态地调整窗口大小来控制数据包的发送和接收速率。窗口大小即指在任意一段时间内可以发送或接收多少数据包。当窗口大小达到上限时,发送方或接收方必须停止发送或接收数据包,直到窗口大小再次调整。

滑动窗口协议有两种类型:固定窗口大小动态窗口大小。在固定窗口大小协议中,窗口大小是固定的,而在动态窗口大小协议中,窗口大小可以动态调整。

滑动窗口协议的应用非常广泛,例如在网络传输、文件传输、数据库事务处理等领域都可以看到它的身影。它不仅可以防止网络拥塞,提高数据传输的效率和可靠性,还可以用来控制数据的流量,确保接收方能够来得及处理接收到的数据。


什么是拥塞控制?

        拥塞控制就是为了防止过多的数据注入到网络中,控制的目的就是避免「发送方」的数据填满整个网络,控制「发送方」的数据发送量。

  TCP 主要通过四个算法来进行拥塞控制:慢启动拥塞避免拥塞发生快速恢复

如下图:(阻塞发生时的超时重传)

如下图:(阻塞发生时的快速重传)


TCP和UDP有什么区别?

TCP(传输控制协议)和UDP(用户数据报协议)之间存在以下区别:

  1. 连接性:TCP是面向连接的,在发送方和接收方在发送数据之前,必须通过三次握手建立连接。相反,UDP是无连接的,发送方和接收方之间的数据传输不需要事先建立连接。
  2. 可靠性:TCP是可靠的传输协议,通过添加序号机制、确认机制、超时重传机制和数据校验等功能,确保数据的可靠传输。然而,UDP是不可靠的协议,其仅在IP协议的基础上添加了端口和差错检查功能,由于IP协议尽最大努力传输,所以导致了UDP的不可靠性。
  3. 数据传输方式:TCP协议是面向字节流的,它将应用层传递下来的数据仅仅当做无结构的数据流,并不知道所传数据流的含义。它可能将应用程序的两个数据块拼接到一起组成一个段发送。相比之下,UDP是面向报文传输的,发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付IP层,不会进行任何拼接操作。
  4. 类型

    特点

    性能

    应用场景

    首部

    是否面向连接

    传输可靠性

    传输效率

    所需资源

    TCP

    面向连接

    可靠

    要求通信数据可靠

    (如文件传输、邮件传输)

    20个字节-60个字节

    UDP

    无连接

    不可靠

    要求通信速度快

    (如音频、视频)

    8个字节

总的来说,TCP和UDP都有各自的优点和使用场景。TCP的主要优点是其可靠性和顺序性,而UDP的主要优点则是其简单性和实时性。选择使用哪一种协议主要取决于应用程序的具体需求和网络环境。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网络知识——局域网和交换机

定义: 局域网(Local Area Network,简称LAN)是指在某一区域内由多台计算机互联成的计算机组。广域网(Wide Area Network,简称WAN)是指跨越单个建筑物或大型园区,连接分布在特定地理区…

2023 Sui Builder House全球之旅圆满收官

2023年的最后一场Builder House于上周在新加坡举行,包括主题演讲、小组讨论和研讨会等聚焦Sui的现在和未来的活动。其中,zkLogin是本次活动的最大亮点。作为一种新的Sui原语,zkLogin允许用户使用Web2身份验证创建帐户,有望推动大规…

计算机网络常见问题

1.谈一谈对OSI七层模型和TCP/IP四层模型的理解? 1.1.为什么要分层? 在计算机中网络是个复杂的系统,不同的网络与网络之间由于协议,设备,软件等各种原因在协调和通讯时容易产生各种各样的问题。例如:各物流…

通过 BigQuery 中的 11 个新链增强 Google Cloud 的区块链数据服务

2018 年初,Google Cloud 与社区合作,通过BigQuery 公共数据集实现区块链数据民主化;2019 年,又扩展了六个数据集;今天,我们在 BigQuery 公共数据集中添加了 11 个最受欢迎的区块链预览版。我们也在对该程序…

windbg -I之后如何恢复原有的

直接运行了一下windbg -I,抓取了注册表行为,然后这里记录一下,方便翻阅。 抓取到的windbg的注册表 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger 将值改为 "C:\WINDOWS\system32\vsji…

Linux:进程概念的引入和理解

文章目录 进程的初步理解进程的实质理解查看进程 前面对操作系统有了一个基础的认知,从中得出的最重要的一个思想是,在认识一个新事物前要先描述,再组织,有了这样的思想也可以用于学习进程的概念 进程的初步理解 有了前面的思想…

三维模型3DTile格式轻量化在三维展示效果上的重要性分析

三维模型3DTile格式轻量化在三维展示效果上的重要性分析 三维模型3DTile格式轻量化在三维展示效果上扮演着至关重要的角色。随着计算机图形学和虚拟现实技术的不断发展,我们已经可以创建和渲染非常精细和复杂的三维模型,以实现逼真的视觉效果。然而&…

3D大模型如何轻量化?试试HOOPS Communicator,轻松读取10G超大模型!

随着计算机技术的不断发展,3D模型在各行各业中的应用越来越广泛。然而,随着模型的复杂性和规模不断增加,处理和浏览超大型3D模型变得越来越具有挑战性。本文将探讨如何轻量化3D大模型,以及如何使用HOOPS Communicator来读取和浏览…

IC芯片测试:如何对芯片静态功耗进行测试?

静态功耗也叫静态电流,是指芯片在静止状态下的电流或者是指芯片在不受外界因素影响下自身所消耗的电流。静态功耗对于芯片来说是衡量一款芯片的功耗与效率非常重要的指标。 传统手动测试静态功耗只需在芯片的输入端串上一台万用表,然后对芯片各个端口添加…

C语言 指针 模拟排序函数 指针数组笔试题上

目标&#xff1a;使用【冒泡排序】的算法&#xff0c;模拟一个排序函数&#xff0c;可以排序任意类型的数据 void print_arr(int arr[], int sz)//打印函数 只能接受整型数组 {int i 0;for (i 0; i < sz; i){printf("%d ", arr[i]);}printf("\n"); }…

5.数学公式中-符号加粗

在 LaTeX 中&#xff0c;\boldsymbol 命令用于将数学公式中的符号或字母加粗显示&#xff0c;以突出显示它们或强调它们的重要性。通常&#xff0c;这个命令用于加粗矢量、矩阵、符号等。 要使用 \boldsymbol&#xff0c;您需要在数学模式中&#xff08;例如&#xff0c;在 \[…

C#中的(++)和(--)运算符

目录 背景: 的前加 效果展示:​ 的后加 效果展示 :​ 总结: 背景: 自增和自减运算符存在于C/C/C#/Java等高级语言中&#xff0c;它的作用是在运算结束前(前置自增自减运算符 )或后(后置自增自减运算符 )将 变量的值加(或减)1。 在C#中&#xff0c;和--是自增和自减运…

Pixea Plus for Mac:极简图片浏览,高效图片管理

在处理和浏览图片时&#xff0c;我们往往需要一个得心应手的工具&#xff0c;尤其是当你的图片库包含了各种不同格式&#xff0c;例如JPEG、HEIC、psd、RAW、WEBP、PNG、GIF等等。今天&#xff0c;我们要推荐的&#xff0c;就是一款极简、高效的Mac图片浏览和管理工具——Pixea…

云计算行业人才缺口巨大,给自己一个超车涨薪的机会!

2023年了&#xff0c;云计算已经不是未来趋势&#xff0c;而是我们正处于的环境&#xff01; 你一定用过云笔记、云盘吧&#xff1f;大家其实都在跟“云”打交道&#xff01;我们如今所处的时代中&#xff0c;云计算无疑是当下最热门的技术。 各大中小企业都在纷纷是将自己的…

哈啰两轮一面凉面经

离职原因 对语言的要求 java内存空间 jdk1.7&#xff1a;运行时每个进程有自己独立的一段存储区域。在这片区域里包括了各个线程共享的堆和方法区&#xff0c;还有每个线程独立的程序计数器、本地方法栈和虚拟机栈&#xff08;虚拟机栈由栈帧组成&#xff0c;每个栈帧中包括…

十几张高清世界地图

十几张高清世界地图 仅供学习&#xff01;

指标收集与分析:打造可观测性平台的关键技术【文末送书】

文章目录 写在前面兼容全域信号量所谓全域信号量有哪些&#xff1f;统一采集和上传工具统一的存储后台自由探索和综合使用数据好书推荐 写作末尾 写在前面 随着可观测性理念的深入人心&#xff0c;可观测性平台已经开始进入了落地阶段&#xff0c;它的先进性已经毋庸置疑&…

有哪些好用的上网行为管理软件?(上网行为管理软件功能好的软件推荐)

随着互联网的快速发展&#xff0c;企业的信息化管理和员工的上网行为已经成为企业信息化建设的重要组成部分。上网行为管理软件作为一种新型的管理工具&#xff0c;可以帮助企业实现对员工上网行为的管控和优化&#xff0c;进而提高企业的工作效率和网络安全。本文将对多款市场…

精品Python运动球馆场地预约系统

《[含文档PPT源码等]精品基于Python实现的球馆场地预约系统设计与实现》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程等 软件开发环境及开发工具&#xff1a; 开发语言&#xff1a;python 使用框架&#xff1a;Django 前端技术&#xff1a;JavaSc…

【kafka实战】03 SpringBoot使用kafka生产者和消费者示例

本节主要介绍用SpringBoot进行开发时&#xff0c;使用kafka进行生产和消费 一、引入依赖 <dependencies><dependency><groupId>org.springframework.kafka</groupId><artifactId>spring-kafka</artifactId></dependency><depen…