网络协议驱动互联网

news/2024/5/18 16:08:42 标签: 网络协议, 网络, udp

在分布式系统中,数据通过各种网络协议>网络协议在网络中传输。作为应用程序开发者,这往往在问题出现之前似乎是一个黑盒子。

在本文中,我们将解释常见网络协议>网络协议的工作原理,它们在分布式系统中的应用以及我们如何解决常见问题。后续还会介绍一些常见的面试问题,例如:

•在输入网址到浏览器时会发生什么?•什么是TCP三次握手?•TCP的time_wait状态是什么意思?•HTTP 1/2/3是什么?•为什么HTTP 3使用UDP?•HTTPS是如何工作的?•为什么UDP被认为是“不可靠”的?

让我们首先了解网络协议>网络协议的使用情况。

互联网和OSI模型

互联网连接了世界各地的各种计算设备。我们可以从下面的图表中大致了解。假设我们从智能手机或笔记本电脑访问一个网站,它连接到一个移动网络基站。基站连接到路由器,然后通过互联网服务提供商(ISP)访问互联网。数据包被转发到本地ISP,然后到达托管网站的网络。一旦数据包到达公司网络,它们经过链路层交换机并到达适当的服务器。

89c64f1b693b560c321afab807ed49ce.png

路由器和链路层交换机都是数据包交换机,它们的工作是转发数据包。区别在于,路由器通常用于网络核心连接多个网络,而链路层交换机用于访问网络(物理连接终端系统和边缘路由器的网络),在单个网络中连接多个设备。

为什么我们需要网络协议>网络协议?互联网连接的设备需要使用它们可以理解的语言进行通信。各种计算机系统使用OSI(开放系统互连)模型规定的标准相互通信。OSI模型有七个抽象层,每个层都有独特的职责和协议。

下图显示了OSI模型中各层的作用。每个中间层为上面的层提供一类功能,并由下面的层提供服务。

de70a06919cc4a1fa16eb1dbb85168ad.png

应用层

应用层最接近最终用户。大多数应用程序位于此层。我们向后端服务器请求数据,无需了解数据传输的具体细节。此层的协议包括HTTP、SMTP、FTP、DNS等,我们稍后会详细介绍它们。

表示层

该层处理数据编码、加密和压缩,为应用层准备数据。例如,HTTPS使用TLS(传输层安全)在客户端和服务器之间进行安全通信。

会话层

该层在两个设备之间建立和关闭通信。如果数据量较大,会话层设置检查点以避免从头重新发送。

传输层

该层处理两个设备之间的端到端通信。它在发送端将数据分割为段,并在接收端重新组装它们。此层具有流量控制以防止拥塞。在该层中的关键协议是TCP和UDP,我们稍后会讨论它们。

网络

该层实现不同网络之间的数据传输。它将段或数据报进一步分割为较小的数据包,并使用IP地址找到到达目标的最佳路由。这个过程称为路由。

数据链路层

该层允许在同一网络上的设备之间进行数据传输。数据包被分割为帧,并限制在本地区域网络中。

物理层

该层通过电缆和交换机发送比特流,因此与设备之间的物理连接密切相关。

与OSI模型相比,TCP/IP模型只有4层。在讨论层次结构时,重要的是要指定上下文。

现在我们了解了每个层的职责,让我们通过以下图表总结数据传输过程。这被称为封装和解封装。封装是在数据朝向目的地的过程中添加头部信息。解封装则是去除这些头部以恢复原始数据。

98c98c4cd16ef5ccf5e2c648a61d1c02.png

步骤1:当设备A使用HTTP通过网络向设备B发送数据时,应用层会添加HTTP头部。

步骤2:在传输层,TCP或UDP头部会添加到数据中。数据会在传输层被封装成TCP段。头部包含源端口、目标端口和序列号。

步骤3:接下来,段会在网络层被封装成IP头部。IP头部包含源IP地址和目标IP地址。

步骤4:在数据链路层,MAC头部会添加到IP数据报中,其中包含源MAC地址和目标MAC地址。

步骤5:封装后的帧会发送到物理层,并以比特流的形式通过网络发送。

步骤6-10:当设备B从网络接收到比特流时,每一层都会解封装数据,并将其传递到相应的层。


http://www.niftyadmin.cn/n/453675.html

相关文章

9.创建provider实例

创建provider网络 controller节点 创建一个provider 网络,网络类型为 external 对于 provider 网络来说,实例通过 2 层(桥接网络)连接到提供商网 络。 参数说明: --share: 允许所有项目都可以使用该网络…

利用MATLAB实现巴特沃兹滤波器

巴特沃兹滤波器是一种数字滤波器,常用于滤除信号中的噪声。MATLAB中提供了一些函数,可以方便地实现巴特沃兹滤波器。本文将介绍如何利用MATLAB实现巴特沃兹滤波器。 一、巴特沃兹滤波器 巴特沃兹滤波器是一种IIR(Infinite Impulse Response)滤波器&…

设计模式之生成器(建造者)模式笔记

设计模式之建造者模式笔记 说明Builder(生成器)目录UML生成器(建造者)模式示例类图自行车类建造者抽象类摩拜单车对象类小黄车单车对象类指挥者类测试类优缺点 模式扩展手机类测试类 说明 记录下学习设计模式-生成器(也叫建造者)模式的写法。 Builder(生成器) 意图:将一个复…

XE8 webbrowser显示不了页面,如何解决?

XE8是Embarcadero公司推出的一款用于开发跨平台应用程序的集成开发环境。其中包括了许多常用的控件,例如WebBrowser控件,用于在窗体中显示网页内容。但是,有时候我们会遇到这样的问题:WebBrowser控件无法显示网页内容,…

Oracle-高版本SQL优化分析(bind mismatch)

背景: 接到用户报障说一套Oracle19c数据库近期出现insert语句执行变慢的情况,执行一次数据插入需要1秒的时间,而且问题发生的数据库是跑在一体机上面,数据插入正常不应该这么慢,需要分析插入慢的原因 问题: 数据库近期出现insert…

蓝牙GATT协议介绍

前言 现在低功耗蓝牙(BLE)连接都是建立在 GATT (Generic Attribute Profile) 协议之上。GATT 是一个在蓝牙连接之上的发送和接收很短的数据段的通用规范,这些很短的数据段被称为属性(Attribute)。 GAP 详细介绍 GAT…

8、DuiLib创建子窗口

文章目录 1、创建子窗口2、创建子窗口 XML 配置文件 1、创建子窗口 一个大规模的应用不可能只有一个窗口,之前我们的案例都是在一个窗口实现的,接下来我们实现一个关于窗口,来介绍如何通过 DuiLib 实现子窗口管理。 2、创建子窗口 XML 配置…

API 天气预报查询等各种免费好用的 API 推荐

常用API 天气预报查询:支持全国以及全球多个城市的天气查询,包含国内3400个城市以及国际4万个城市的实况数据,同时也支持国内任意经纬度查询,接口会返回该经纬度最近的站点信息;更新频率分钟级别。 空气质量查询&…