计算机网络相关知识点
谈一谈对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(用户数据报协议)之间存在以下区别:
- 连接性:TCP是面向连接的,在发送方和接收方在发送数据之前,必须通过三次握手建立连接。相反,UDP是无连接的,发送方和接收方之间的数据传输不需要事先建立连接。
- 可靠性:TCP是可靠的传输协议,通过添加序号机制、确认机制、超时重传机制和数据校验等功能,确保数据的可靠传输。然而,UDP是不可靠的协议,其仅在IP协议的基础上添加了端口和差错检查功能,由于IP协议尽最大努力传输,所以导致了UDP的不可靠性。
- 数据传输方式:TCP协议是面向字节流的,它将应用层传递下来的数据仅仅当做无结构的数据流,并不知道所传数据流的含义。它可能将应用程序的两个数据块拼接到一起组成一个段发送。相比之下,UDP是面向报文传输的,发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付IP层,不会进行任何拼接操作。
-
类型
特点
性能
应用场景
首部
是否面向连接
传输可靠性
传输效率
所需资源
TCP
面向连接
可靠
慢
多
要求通信数据可靠
(如文件传输、邮件传输)
20个字节-60个字节
UDP
无连接
不可靠
快
少
要求通信速度快
(如音频、视频)
8个字节
总的来说,TCP和UDP都有各自的优点和使用场景。TCP的主要优点是其可靠性和顺序性,而UDP的主要优点则是其简单性和实时性。选择使用哪一种协议主要取决于应用程序的具体需求和网络环境。
相关文章:
计算机网络相关知识点
谈一谈对OSI七层模型和TCP/IP四层模型的理解? 这两种模型都是网络通信中重要的参考模型,他们的设计和功能有一些区别。 首先OSI,OSI七层模型,也被称为开放系统互联参考模型,是一种在国际标准化组织(ISO)中…...
Jmeter+Ant+Git+Jenkins持续集成介绍
【软件测试面试突击班】如何逼自己一周刷完软件测试八股文教程,刷完面试就稳了,你也可以当高薪软件测试工程师(自动化测试) 一 简介 1.什么是ant? ant是构建工具 2.什么是构建 概念到处可查到,形象来说ÿ…...
Spring Cloud Gateway实战WebFlux解析请求体及抛出指定错误代码和信息
概述 基于Spring Cloud开发微服务时,使用Spring Cloud原生自带的Gateway作为网关,所有请求都需要经过网关服务转发。 为了防止恶意请求刷取数据,对于业务请求需要进行拦截,故而可在网关服务增加拦截过滤器。基于此,有…...
Servlet开发-通过代码案例熟悉HttpServletRequest类
关于Servlet开发的流程推荐看servlet开发-通过Tomcat部署一个简单的webapp Servlet开发与idea集成的插件安装推荐看idea集成tomcat(Smart Tomcate插件安装) postman(第三方创建HTTP请求工具)的安装推荐看创建HTTP请求的几种方式…...
离线环境harbor 搭建及使用
一 摘要 本文主要介绍harbor 的安装及使用。 二 环境信息及部署图 2.1 环境信息 名称版本备注操作系统centos7.9容器docker 23.0.1harbor2.7代理nginx待补充 2.2 架构图 说明: 1.harbor 核心服务里有个nginx ,也可以用该nginx 做代理 2.proxy-ngin…...
华为杯数学建模比赛经验分享
再过一周左右,第二十届华为杯数学建模比赛就要开赛了,所以今天分享一下个人数学建模比赛的经验。 今天给大家分享一期关于华为杯数学建模比赛的经验分享,我将从以下三个方面展开说明: (1)如何准备数学建模比赛&#x…...
c语言 - 实现每隔1秒向文件中写入当前系统时间
实现思路 主要是通过库函数和结构体获取当前系统时间(年月日和时分秒)保存到变量里,然后通过格式化输出函数将当前系统时间输出到文件中去。 但是需要注意的是题目要求每隔 1 s对系统时间进行输出,所以需要加入 sleep()函数进行调…...
使用cpolar端口映射的方法轻松实现在Linux环境下SVN服务器的搭建与公网访问
文章目录 前言1. Ubuntu安装SVN服务2. 修改配置文件2.1 修改svnserve.conf文件2.2 修改passwd文件2.3 修改authz文件 3. 启动svn服务4. 内网穿透4.1 安装cpolar内网穿透4.2 创建隧道映射本地端口 5. 测试公网访问6. 配置固定公网TCP端口地址6.1 保留一个固定的公网TCP端口地址6…...
前后台分离开发 YAPI平台 前端工程化之Vue-cli
目录 YAPI介绍前端工程化之Vue-cli前端工程化简介前端工程化入门——Vue-cli环境准备Vue项目简介创建Vue项目vue项目目录结构介绍vue项目运行方法 Vue项目开发流程 前后台混合开发这种开发模式有如下缺点: 沟通成本高:后台人员发现前端有问题࿰…...
【js/es6】合集
目录 随机生成字符串每十个字符换行 随机生成字符串 function generateRandomAlphaNum(len) {var rdmString "";for (; rdmString.length < len; rdmString Math.random().toString(36).substr(2));return rdmString.substr(0, len); }每十个字符换行 string.…...
Nginx modules build fail:field ‘pkt6’ has incomplete type
前言 最近升级Nginx 1.24.0,编译第三方module出错: /usr/src/nginx_modules/ngx_json_post_module/src/ngx_json_post_module.c In file included from src/event/ngx_event.h:526,from src/http/ngx_http_upstream.h:14,from src/http/ngx_http.h:34,…...
电脑突然提示mfc140u.dll丢失,缺失mfc140u.dll无法运行程序的解决方法
在当今信息化社会,电脑已经成为我们生活和工作中不可或缺的一部分。然而,随着技术的不断发展,电脑也会出现各种问题。其中,最常见的问题之一就是“mfc140u.dll丢失”。那么,当我们遇到这个问题时,应该如何解…...
国庆day1
消息队列 代码 发送 #include<myhead.h> //声明一个消息结构体 typedef struct {long msgtype; //消息类型char data[1024]; //消息正文 }Msg_s; #define SIZE sizeof(Msg_s)-sizeof(long) //消息正文的大小 int main(int argc, const char *argv[]) {key_t key; /…...
从零开始之了解电机及其控制(11)实现空间矢量调制
广泛地说,空间矢量调制只是将电压矢量以及磁场矢量在空间中调制到任意角度,通常同时最大限度地利用整个电压范围。 其他空间矢量调制模式确实存在,并且根据您最关心的内容,它们可能值得研究。 如何实际执行这种所谓的交替反向序列…...
如何将html转换成markdown
什么是Turndown “Turndown” 是一个用于将 HTML 转换为 Markdown 的 JavaScript 库。它通常用于将富文本内容从网页或其他 HTML 格式转换为纯文本 Markdown 格式,以便在不同平台上显示或存储。 如果在有node环境的情况下要使用 Turndown,首先需要将它…...
【VUE复习·3】@keyup.xxx 键盘事件触发函数(单按键 or 组合按键触发)
总览 1.keyup.xxx or keydown.xxx 单按键触发 2.组合按键触发 一、keyup.xxx or keydown.xxx 1.用法 在我们使用 keyup.enter 时,那么我们可以这样写: <div><input type"text" placeholder"按下回车键以确定..." keyu…...
IntelliJ IDEA学习总结(3)—— IntelliJ IDEA 常用快捷键(带动图演示)
一、构建/编译 Ctrl + F9:构建项目 该快捷键,等同于菜单【Build】—>【Build Project】 执行该命令后,IntelliJ IDEA 会编译项目中所有类,并将编译结果输出到out目录中。IntelliJ IDEA 支持增量构建,会在上次构建的基础上,仅编译修改的类。 Ctrl + Shift + F9:重新编…...
巨人互动|Facebook海外户Facebook的特点优势
Facebook作为全球最大的社交媒体平台之一,同时也是最受欢迎的社交网站之一,Facebook具有许多独特的特点和优势。本文小编将说一些关于Facebook的特点及优势。 1、全球化 Facebook拥有数十亿的全球用户,覆盖了几乎所有国家和地区。这使得人们…...
(vue3)create-vue 组合式API
优势: 更易维护:组合式api,更好的TS支持 之前是选项式api,现在是组合式,把同功能的api集合式管理 复用功能封装成一整个函数 更快的速度 更小的体积 更优的数据响应式:Proxy create-vue 新的脚手架工…...
【如何看待Unity收费】对标中小公司的待就业者的该如何做
👨💻个人主页:元宇宙-秩沅 👨💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨💻 本文由 秩沅 原创 👨💻 收录于专栏:Uni…...
c++迷宫小游戏
一、总结 一句话总结: 显示:根据map数组输出图像 走动:修改map数组的值,每走一步重新刷新一下图像就好 1、如果走函数用z(),出现输入s会向下走多步的情况,原因是什么? 向下走两层循环ij增加&a…...
需求堆积,如何排序产品优先极
面对堆积的产品需求,到底该如何排序优先极呢? 需求排期的目标 在谈具体的排期方法之前,有必要先探讨一下——合理的需求排期应该达到什么的目标呢?如果站在与项目相关的利益人员的角度来看,至少应该使以下四方面的收…...
计算机视觉 回头重新理解图像中的矩
一、人类的欲望 图像中的矩是一个十分古老的话题,这个东西的出现始于人类的欲望,想要找到一种自动且强大的图像分析方法。 比如我们要在图像中识别某一个物体,而这个物体在不同的成像条件下,表现出的高矮胖瘦方向位置颜色都不可能完全一致,这就为识别带来了巨大的困难,但…...
MapStruct应用实战及BeanUtils性能比较
目录 1、MapStruct介绍2、应用设置2.1 Maven依赖 3、功能实战3.1 常用注解3.2 基本映射3.2.1 定义映射器的Java接口3.2.2 测试验证 3.3 参数引用映射3.3.1 定义映射器的Java接口3.3.2 测试验证 3.4 多对象参数映射3.4.1 定义映射器的Java接口3.4.2 测试验证3.4.3 注意点 3.5 嵌…...
ISP技术概述
原本或许是为了对冲手机系统和APP设计无力感而诞生的拍照功能,现今却成为了众手机厂家除背部设计外为数不多可“卷”的地方,自拍、全景、夜景、小视频等旺盛的需求让这一技术的江湖地位迅速变化。对圈内人士而言,这一波变化带来的后摄、双摄、多摄、暗光、防抖、广角、长焦、…...
CSDN: ABTest流量分层分桶机制
在互联网行业,无论是构建搜索推荐系统,还是智能营销等场景,都是围绕用户进行不同的实验,从各项指标上观察用户对不同交互、流程、策略、算法等反馈,进而对产品进行迭代改进。 本文的goal:在进行了模型的线下…...
【小余送书第一期】《数据要素安全流通》参与活动,即有机会中奖哦!!
目录 1、背景介绍 2、本书编撰背景 3、本书亮点 4、本书主要内容 5、活动须知 1、背景介绍 随着大数据、云计算、人工智能等新兴技术的迅猛发展,数据已经成为我国经济社会发展的五大生产要素之一,《网络安全法》《个人信息保护法》《数据安全法》的…...
蓝牙核心规范(V5.4)10.7-BLE 入门笔记之L2CAP
1.概述 ATT属性用于两个设备,一个扮演客户端的角色,另一个扮演服务器的角色。服务器公开一系列称为属性的复合数据项。这些属性由服务器按索引列表组织在称为属性表的列表中。 每个属性包含一个句柄、一个通用唯一标识符(UUID)、一个值和一组权限。 句柄是一个唯一的索引…...
VUE之正则表达式全集整理
一、正则表达式的基本语法 var expression /pattern(模式)/flags(标识符); 二、如何创建正则表达式 1.字面量创建 代码如下: //匹配字符串中所有“at”的实例 var e /at/g; //匹配第一个“bat”或“cat”,不区分大小写 var e /[bc]at/i; 2.RegExp构造函数创…...
Python 中的字符串基础与应用
在Python中,字符串可以用单引号或双引号括起来。‘hello’ 与 “hello” 是相同的。您可以使用print()函数显示字符串文字: 示例: print("Hello") print(Hello)将字符串分配给变量是通过变量名后跟等号和字符串完成的:…...
公司网站建设对公司的重要性/全是广告的网站
时光荏苒,2016转眼即逝,回首过去的一年,内心不禁感慨万千,虽然没有轰轰烈烈的战果,但也算经历了一段不平凡的考验和磨砺。在这一年的时间里,在领导及同事们的帮助指导下,通过自身的努力…...
app制作网站有哪些 请列举/网络推广合作资源平台
光电响应通常是激光二极管、探测器性能的一种非常普遍和重要的特性。光电响应测试主要指对发光器件和光探测器进行测试,单独的探测器像 PIN和 APD二极管测试系统比较简单,通常光电IV测试主要指针对激光二极管或光电探测器件的测试。LD 测试阶段主要分为 …...
wordpress文章meta/自己怎么做引流推广
一个朋友是前阿里人,37岁,离职后就职美团。以前投一个面一个,今年想跳槽,但没想到投十个能有两个面试机会就不错了,最后索性又回了阿里做架构。 他在面试的时候,碰见比自己大的面试官,态度和善&…...
北京新一轮病毒/网站优化人员通常会将目标关键词放在网站首页中的
SQL Server 中master..spt_values的应用 今天在做数据分析报表的时候遇到一个这样的问题。 表结构如下。 部门编码、部门名称、部门人员ID(中间用逗号分割) 我想通过和人员表链接,查询出一个新的数据集,查询出的结果集格式如下&…...
2021年最火的网页游戏/旅游企业seo官网分析报告
1. SET DEADLOCK_PRIORITY 说明:控制在发生死锁情况时会话的反应方式。如果两个进程都锁定数据,并且直到其它进程释放自己的锁时,每个进程才能释放自己的锁,即发生死锁情况。 语法:SET DEADLOCK_PRIORITY { LOW | NORM…...
柔造网站定制/网络营销推广价格
第17讲为有条件跳转。 有条件跳转的指令通常为 J[N]Flag 有符号数比较的判定为: 大于(G) 等于(E) 小于(L) 无符号数比较的判定为: 大于(A) 等于(E) 小于(B) X, Y 中存放为16位有符号数,将X,Y中较大的数放入AX MOV AX, X CMP AX, Y JGE SKIP MOV AX, Y SK…...