计算机网络速成(二)

news2024/9/22 23:31:30

 计算机网络面试(二)-CSDN博客

OSI七层体系架构

OSI七层模型是什么?每层的功能是什么?

OSI七层模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系,它从上到下分别是:

  • 应用层:为应用程序提供交互服务,如HTTP、FTP、SMTP等协议。
  • 表示层:数据的表示、安全、压缩,将应用层的数据转换为适合网络传输的格式。
  • 会话层:建立、管理、终止会话,组织和协调两个会话进程之间的通信。
  • 传输层:负责向两台主机进程之间的通信提供数据传输服务,包括TCP和UDP协议,实现数据的可靠传输。
  • 网络层:选择合适的路由和交换结点,确保数据及时传送,主要协议为IP
  • 数据链路层:在两个相邻节点之间传送数据时,将网络层交下来的IP数据报组装成帧,并添加必要的控制信息。
  • 物理层:实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽传输介质和物理设备的差异。

                       

应用层 (应用层、表示层和会话层)

Http
 HTTP和HTTPS的区别是什么?

HTTP(超文本传输协议)和HTTPS(安全的超文本传输协议)的主要区别在于安全性:

  • 安全性:HTTP传输的是明文,数据容易被截获和篡改;而HTTPS在HTTP的基础上增加了SSL/TLS协议层,对数据进行加密传输,确保数据传输的安全性。
  • 端口号:HTTP默认使用80端口;HTTPS默认使用443端口。
  • 性能:由于HTTPS需要进行加密和解密操作,因此其性能相比HTTP会有所下降。

 

传输层

TCP
TCP三次握手和四次挥手的过程是什么?

TCP三次握手的过程如下:

  1. 客户端发送一个SYN包(同步序列编号)到服务器,并进入SYN_SENT状态,等待服务器确认。
  2. 服务器收到SYN包后,确认客户端的SYN(ack=j+1),同时自己也发送一个SYN包(即SYN+ACK包),此时服务器进入SYN_RCVD状态。
  3. 客户端收到服务器的SYN+ACK包后,向服务器发送一个确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

TCP四次挥手的过程如下:

  1. 客户端发送一个FIN,用来关闭客户端到服务器的数据传送,客户端进入FIN_WAIT_1状态。
  2. 服务器收到FIN后,发送一个ACK给客户端,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),服务器进入CLOSE_WAIT状态。
  3. 服务器关闭与客户端的连接,发送一个FIN给客户端,服务器进入LAST_ACK状态。
  4. 客户端收到FIN后,发一个ACK给服务器,确认序号为收到序号+1,客户端进入TIME_WAIT状态。服务器收到ACK后关闭连接,客户端等待2MSL后依然没有收到回复,则进入CLOSED状态。

TCP握手为什么是三次?不是两次(仅发一次)或四次(浪费) 

TCP需要三次握手而不是两次握手的主要原因是确保双方都具有接收和发送数据的能力,从而建立可靠的连接。具体来说:

  • 第一次握手:客户端发送SYN包,服务器确认客户端的发送能力。
  • 第二次握手:服务器发送SYN+ACK包,客户端确认服务器的接收能力和发送能力。
  • 第三次握手:客户端发送ACK包,服务器确认客户端的接收能力。

如果只有两次握手,可能会出现以下情况:客户端发送连接请求,但因连接请求报文丢失而未收到确认,于是客户端再重传一次连接请求。后来收到了确认,建立了连接。数据传输完毕后,就释放了连接,客户端共发出了两个连接请求报文段,其中第一个丢失,第二个到达了服务端。但是第一个丢失的报文段只是在某些网络结点长时间滞留了,延误到连接释放以后的某个时间才到达服务端,此时服务端误认为客户端又发出一次新的连接请求,于是就向客户端发出确认报文段,同意建立连接。由于此时客户端已经没有发送数据请求,因此服务端将一致等待客户端发送数据,造成资源浪费。

TCP四次挥手,为什么?不是三次(ACK/FIN 有时差,资源还未释放,时间过长)?

      确保数据完整传输:在TCP连接中,双方都可能还有数据要发送给对方。四次挥手确保了即使一方想要关闭连接,另一方仍然有机会发送完剩余的数据。第一次挥手(FIN包)由一方发起,表示该方没有更多数据要发送了,但它仍然可以接收来自对方的数据。如果此时立即关闭连接(即只有三次挥手),那么对方可能还有数据在传输中,这些数据就会丢失。

为什么SYN/FIN不包含数据却要消耗序列号

 

TCP与UDP区别:

 

CP(传输控制协议)与UDP(用户数据报协议)是计算机网络中常用的两种传输层协议,它们在多个方面存在显著的区别。以下是TCP与UDP的主要区别:

1. 连接性
  • TCP:是一种面向连接的协议。在数据传输之前,TCP要求发送方和接收方之间先建立连接,这通常通过三次握手过程实现。连接建立后,数据才能开始传输。数据传输完成后,还需要通过四次挥手来释放连接。
  • UDP:是一种无连接的协议。发送方在传输数据之前不需要与接收方建立连接,可以直接发送数据。因此,UDP的传输过程更加简单和高效,但也可能导致数据丢失或乱序。
2. 可靠性
  • TCP:对数据的可靠性要求非常严格。它使用确认和重传机制来确保数据的完整性和正确性。如果接收方没有收到数据或数据在传输过程中出错,TCP会要求发送方重新发送数据,直到接收方确认收到正确的数据为止。
  • UDP:对数据的可靠性要求较低。它不提供确认、重传和流量控制机制。如果发送方发送的数据丢失或损坏,UDP不会进行重传,而是直接让接收方收到的数据可能不完整或出错。
3. 速度和效率
  • TCP:由于需要建立连接和使用确认重传机制,TCP在数据传输过程中可能会受到一定的延迟和开销。此外,TCP还包含拥塞控制机制,当网络拥堵时会自动降低发送速率,这进一步影响了传输速度。
  • UDP:没有连接建立和确认重传的开销,且不受拥塞控制的限制。因此,在数据传输速度方面,UDP通常比TCP更快。但是,这种速度优势也伴随着数据可靠性的降低。
4. 数据包大小
  • TCP:将数据划分为较小的数据包进行传输,并根据网络状况进行调整。TCP没有固定的数据报大小限制,但会尽量保持数据包的大小在合理范围内以提高传输效率。
  • UDP:允许发送方一次性将多个数据包打包成一个较大的数据报进行传输。数据报的大小通常由应用层自行决定,但受到网络MTU(最大传输单元)的限制。
5. 适用场景
  • TCP:适用于对数据可靠性要求较高的应用场景,如文件传输、电子邮件和网页浏览等。在这些场景中,数据的完整性和正确性至关重要。
  • UDP:适用于对数据实时性要求较高的应用场景,如音频和视频流传输、网络游戏和实时通信等。在这些场景中,数据的实时性比数据的完整性更重要。

 

 网络层

IP
一、IP协议概述
  • 定义:IP是英文Internet Protocol的缩写,意思是网络之间互连的协议,也就是为计算机网络相互连接进行通信而设计的协议。
  • 功能:IP协议的主要功能是为网络设备提供唯一的标识和寻址方式,确保数据能够在网络间进行准确的传输和路由。同时,它还支持各种网络服务、提供安全保障、支持移动性和灵活性,并促进了全球范围内的通信和信息共享。
二、IP地址
  • 定义:IP地址是互联网上设备的唯一标识符,用于路由数据包并确保它们到达正确的目的地。
  • 格式:如今的IP网络使用32位地址(IPv4),以点分十进制表示,如192.168.0.1。地址格式为:IP地址=网络地址+主机地址(或IP地址=网络地址+子网地址+主机地址)。IPv6则使用了128位地址,以更复杂的格式表示,以应对IPv4地址耗尽的问题。
  • 分类:IP地址分为A、B、C、D四类(还有一个保留的E类),每类地址的网络号和主机号长度不同,适用于不同规模的网络。
  • 静态与动态:静态IP地址是长期分配给一台计算机或网络设备使用的IP地址,便于管理;动态IP地址则是每次上网时由电信随机分配的,每次上网所分配到的IP地址都不相同。
三、IP地址的组成
  • 网络号:用于标识设备所在的网络或子网,确保数据包能够正确地发送到目标网络。
  • 主机号:用于标识同一网络或子网内的不同设备,确保数据包能够准确地到达目标设备。
四、子网掩码
  • 定义:子网掩码用于区分IP地址中的网络号和主机号部分。它由32位二进制数组成,网络号部分全部为1,主机号部分全部为0。
  • 作用:通过子网掩码,可以计算出IP地址的网络部分和主机部分,从而确定设备之间的网络关系。
五、IP协议的工作流程
  1. 数据包封装:在发送数据时,数据首先被封装成数据包,每个数据包都包含发送者和接收者的IP地址。
  2. 路由选择:路由器根据数据包中的目的IP地址,通过查找路由表来确定数据包的传输路径。
  3. 数据包传输:数据包沿着确定的路径在网络中传输,每个网络设备都根据数据包中的IP地址信息将其转发到下一个节点。
  4. 数据包接收:当数据包到达目的设备时,目的设备解析数据包并提取其中的数据。
六、IP协议的应用场景

IP地址在计算机网络中具有广泛的应用场景,包括但不限于:

  • 网络寻址和标识:用于标识和定位网络设备。
  • 广域网连接:支持设备在全球范围内进行连接。
  • 网络安全:用于监控和检测潜在的网络攻击。
  • 广告和市场营销:广告商可以使用IP地址来精确定位广告受众。
  • 远程医疗:支持远程医疗诊断和治疗。
  • 制造业:用于连接设备、传感器和生产线,进行实时监控和数据采集

数据链路层 

 物理层

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

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

相关文章

揭秘“商业园区综合管理平台”的无代码开发流程!

本文中的素材来自我在某国资投资集团朋友小赵的“有偿”投稿,要知道现在的商业园区也正在经历数字化改造,面对多商场、多店铺的复杂管理需求,各类商管集团纷纷进行线上互联网管理模式的转型。 这份素材有何不同之处呢?因为他们走了…

EthernetIP IO从站设备数据 转IEC61850项目案例

目录 1 案例说明 1 2 VFBOX网关工作原理 1 3 准备工作 2 4 网关采集ETHERNETIP IO数据 2 5 用IEC61850协议转发数据 4 6 网关使用多个逻辑设备和逻辑节点的方法 6 7 从设备的的EDS文件获取参数信息 8 8 案例总结 10 1 案例说明 设置网关采集EthernetIP IO设备数据把采集的数据…

成功解决:el-popconfirm组件来确认删除、修改等操作无效

我 | 在这里 ⭐ 全栈开发攻城狮、全网10W粉丝、2022博客之星后端领域Top1、专家博主。 🎓擅长 指导毕设 | 论文指导 | 系统开发 | 毕业答辩 | 系统讲解等。已指导60位同学顺利毕业 ✈️个人公众号:热爱技术的小郑。回复 Java全套视频教程 或 前端全套视频…

深入理解java web分层架构的高内聚低耦合

​ 在软件开发中,构建一个高效、可维护且可扩展的应用系统一直是开发者追求的目标。分层架构和依赖注入(IOC)是实现这一目标的重要策略。本文将深入探讨三层架构的高内聚特性、低耦合的设计原则,以及如何通过IOC(控制反…

前端宝典之五:React源码解析之深度剖析Diff算法

本文主要针对React源码进行解析,内容有: 1、Diff算法原理、两次遍历 2、Diff瓶颈及限制 3、Diff更新之单节点和多节点原理 一、Diff源码解析 以下是关于 React Diff 算法的详细解析及实例: 1、React Diff 算法的基本概念和重要性 1.1 概念…

非专业人员该学什么程序语言

编程,一度被认为和驾驶一样是一项现代社会的基本技能,非专业人员也该有所掌握,中小学也在教。但实际上,它的普及程度远比驾驶差,掌握这个技能的人很少,在学校学过的知识,因为工作中用不上也都忘…

一文弄懂评分卡是什么

在最开始的信用审批过程中,客户的信用等级主要由专家进行主观评判。随着数据分析工具的发展和数据收集、存储越来越容易,各大机构逐渐使用统计模型将专家的评判标准量化为评分卡模型。从而更有利于客观评价客户风险,和批量高效对客户进行风险分级。随着技术的发展,机器学习…

力扣经典题目~快乐数~零基础也能看懂哦

202. 快乐数https://leetcode.cn/problems/happy-number/ 题目描述: 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为: 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1&…

MyBatisX逆向工程

目录 逆向工程 准备好数据库、表 安装MyBatisX插件 项目连接数据库 引入依赖pom.xml 生成实体类、映射文件、接口 逆向工程 正向工程:先创建Java实体类,由框架负责根据实体类生成数据库表。Hibernate是支持正向工程的。 逆向工程:先创…

晶体管电路设计学习(一)放大电路的工作

我们这里学习晶体管电路设计,会从晶体管到场效应管直到复杂的运放器件,主要是进行体系化的深入学习,只是一个学习和记录的过程。 放大电路的作用是将小信号放大为大信号。例如,将0.1V的信号提高为1V 信号----即是放大。 1.首先,用晶体管组成一…

TinyC编译器4—编译器基本流程

1.什么是编译器,为什么要开发编译器 编译器:将一种程序语言翻译为另一种程序语言的计算机程序。一般来说,源程序为高级语言,而目标语言则是汇编语言或者机器码。 一开始的程序员是用机器码写程序,非常容易出错&#…

UE5中制作箭头滑动转场

通过程序化的方式,可以制作一些特殊的转场效果,如箭头划过的转场: 1.制作思路 我们知道向量点积可以拿来做投影,因此可以把UV空间想象成向量坐标,绘制结果就是在某个向量上的投影: 绘制结果似乎是倾斜方…

【ISAC】Federated Edge Learning With Misaligned Over-The-Air Computation

[1]-Tse, David, and Pramod Viswanath. Fundamentals of wireless communication. Cambridge university press, 2005. 文章目录 1-综述2-系统模型 1-综述 misaligned OAC:预编码矩阵(含噪声) 没同步好 2-系统模型 θ ∈ R d \theta \in\m…

云计算实训31——playbook(剧本)基本应用、playbook常见语法、playbook和ansible操作的编排

playbook(剧本): 是ansible⽤于配置,部署,和管理被控节点的剧本。⽤ 于ansible操作的编排。 使⽤的格式为yaml格式 一、YMAL格式 以.yaml或.yml结尾 ⽂件的第⼀⾏以 "---"开始,表明YMAL⽂件的开始(可选的) 以#号开头为注释 列表中的所有成员都开始于…

耐氟化氢PFA蒸馏冷凝装置PFA烧瓶应用于氟化工半导体行业领域

氟化氢,化学式为 HF,是一种无色、有刺激性气味的气体,它在空气中会形成白色的雾。氟化氢具有很强的腐蚀性,能够侵蚀许多金属和非金属材料。这种腐蚀性使得氟化氢在工业上被用于蚀刻玻璃、清洗半导体器件以及加工金属等领域。 氟化…

Ubuntu | 更换 Solc 版本

目录 第一步:安装 pip3第二步:安装 solc-select第三步:查看可安装版本第四步:安装指定版本第五步:使用指定版本 前言:部署智能合约时报错,发现是 Solc 版本太高。 参考博客:Solc 安…

Spring Boot整合Quartz框架

说明:Quartz是一个定时器框架,可以实现定时任务,本文介绍如何在Spring Boot项目中整合Quartz框架,Quartz介绍参看下面这篇文章: 【Quartz】Quartz定时任务框架 创建Demo 首先,创建一个Spring Boot项目&a…

Qt Creator安装配置指南

1.官网下载在线安装包 官网地址: https://www.qt.io/download-dev#eval-form-modal 2.双击在线安装包按引导流程安装qt 3.选择自己要配置的qt环境版本 3.1如果要选中低版本的qt环境我这里安装的是qt5.15.2的(其他低版本也一样的),要勾选上Archive(存…

拓展销售网络:立即领取企元数智小程序合规分销系统!

"拓展销售网络:立即领取企元数智小程序合规分销系统!"企业的销售网络是企业成长和发展的关键,而企元数智小程序合规分销系统能帮助您快速拓展销售网络,实现销售业绩的持续增长。 通过领取企元数智小程序合规分销系统&am…

2024软件测试八股文【答案解析+文档】

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 Part1 1、你的测试职业发展是什么? 测试经验越多,测试能力越高。所以我的职业发展是需要时间积累的,一步步向着高级测试工程师…