数据传输过程

本文涉及的产品
数据传输服务 DTS,数据迁移 small 3个月
推荐场景:
MySQL数据库上云
数据传输服务 DTS,数据同步 1个月
简介: 数据传输过程

2 数据传输过程

       了解网络中常用的分层模型后,现在来学习一下数据在各层之间是如何传输的。

2.1数据封装与解封装过程(一)

       下面我们将以TCP/IP五层结构为基础来学习数据在网络中传输的“真相”。由于这个过程比较

抽象,我们可以类比给远在美国的朋友邮寄圣诞节礼物的过程。

       如图所示,当给朋友写一封信时,一定会遵照一个约定俗成的信件格式去写信。例如,在

开头写对收信人的称呼,接下来是问候语“你好”等,中间是信的内容,最后落款写自己的姓名,

日期等。那么,这个书信格式及通信采用的语言实际上就是和朋友之间的协议,只有遵照这个协议。

       写好了信,要将信装在信封中。在信封上,要书写收信人的地址和姓名等,再将信交给邮局。邮局根据收信人的目的地址,将信件再次封装成大的包裹,通讨运输部门发往目的城市,运输部门会将信件的包裹送达目的地的邮局。目的地的邮局会将信件送达收信人手中,在这个寄信的例子中,一封信的传输需要经过三个层次。首先发信和收信的双方是这个过程中的最高层,位于下层的邮局和运输部门都是为了最高层之间的通信在服务,寄信人与收信人之间要有一个约定,这个协议保证收信人能读懂寄信人的信件,两地的邮局和运输部门之间也有约定,如包裹的大小、地址的书写方式,运输到站的时间等。

       邮局是寄信人和收信人的下一层,为上一层提供服务,邮局为寄信人提供服务时,邮筒就是两个层之间的接口。

1.数据封装过程

       正如前一节所讲内容,在计算机网络中层次的划分要比上述的例子更细致,每一层实现的功能也更为复杂。为了能够更明确地说明此过程,我们将以两台主机的通信为实例进行分析讲解,如图所示。

1)应用层传输过程

       在应用层,数据被“翻译”为网络世界使用的语言--二进制编码数据,大家可以试想一下人们需要通过计算机传输数据的形式千变万化,各式各样,有字母,数字,汉字,图片,声音等,这些信息对于单一通过弱电流传输的计算机来说太过于“复杂”,因此这些人类方便识别的信息被应用层通过各种特殊的编码过程转换成二进制数据,这就是上面所描述的“翻译”过程,也是应用层在网络数据传输过程中最为核心的贡献,

2)传输层传输过程

       在传输层,上层数据被分割成小的数据段,并为每个分段后的数据封装TCP报文头部。应用层将人们需要传输的信息转换成计算机能够识别的二进制数据后,这些数据往往都是海量的。例如,一张高清晰的图片转换成二进制数据可能会有几百万位甚至几千万位,如此庞大的数据一次性传输的话,一旦网络出现问题而导致数据出错就要重新传输,数据量讨大会加大出错的概率,最终可能会导致网络资源耗尽。因此,将数据先分割成小段再逐段传输,一日出现数据传输错误只需重传这一小段数据即可。

       在TCP头部有一个关键的字段信息--端口号,它用干标识上层的协议或应用程序,确保上层应 用数据的正常通信。计算机是可以多进程并发运行的,如图26中的例子,左边的计算机在通过 QO发送信息的同时也可以通过E浏览器浏览右边主机的Web页面,对于右边的主机就必须弄清楚左边主机发送的数据要对哪个应用程序实施通信。但是对于传输层而言,它是不可能看懂应用层传输具体数据的内容的,因此只能借助一种标识来确定接收到的数据对应的应用程序,这种标识就是端口号。

3)网络层传输过程

       在网络层,上层数据被封装上新的报文头部--P头部。值得注意的是,这里所说的上层数据包括TCP头部,也就是说,这里的上层是指传输层。对干网络层而言,它是看不懂TCP报文头部中内容的,在它看来,无论是应用层的应用数据,还是TCP 头部信息都属于上层数据,在IP头部中有一个关键的字段信息-P地址,它是由一组32位的二进制数组成的,用于标识网络的逻辑地址。回想刚才寄信的例子,我们在信封上填写对方的详细地址和本地的详细地址,以保证收件人能够顺利收到信件,在网络层的传输讨程与其很类似,在P头部中包含目标P地址和源P地址,在网络传输讨程中的一些中间设备,如路电器,会根据目标P地址来逻辑寻址,找到正确的路径将数据转发到目的端。如果中间的路由设备发现目标的IP地址根本是不可能到达的,它将会把该消息传回发送端主机,因此在网络层需要同时封装目标IP和源IP。

4)数据链路层传输过程

       在数据链路层,上层数据被封装一个MAC头部,其内部有一个关键的字段信息-MAC地址,它由一组48位的二进制数组成,在目前阶段,我们先把它理解为固化在硬件设备中的物理地址,具

有全球唯一性。例如,之前讲解的网卡就有属于自己的唯一的MAC地址,和P头部类似,在MAC

头部也同时封装着目标MAC地址和源MAC地址。其实,二层封装还涉及尾部的封装,考虑大家目

前的学习层次,不再详述,后续会讲解相关内容。

5)物理层传输过程

       无论在之前哪一层封装的报文头部还是上层数据信息都是由二进制数组成的,在物理层,将这些二进制数字组成的比特流转换成电信号在网络中传输。

2.数据解封装过程

       数据被封装完毕通过网络传输到接收方后,将进入数据的解封装过程,这将是封装过程的一个逆过程,如图所示。

       在物理层,首先将电信号转换成二进制数据,并将数据送至数据链路层,在数据链路层,将查看目标MAC地址,判断其是否与自己的MAC地址吻合,并据此完成后续处理,如果数据报文的目标MAC地址就是自己的MAC 地址,数据的MAC 头部将被“拆掉”,并将剩余的数据送至上一层;

如果目标MAC地址不是自己的MAC地址,对于终端设备来说,它将会丢弃数据,在网络层与在数

据链路层类似,目标P地址将被核实是否与自己的P地址相同,从而确定是否送至上一层,到了传

输层,首先要根据TCP头部判断数据段送往哪个应用层协议或应用程序,然后将之前被分组的数据

段重组,再送往应用层;在应用层,这些二进制数据将经历复杂的解码过程,以还原发送者所传输

的原始信息。

3.相关数据传输的一些基本概念

1) PDU

       对于OSI参考模型而言,每一层都是通过PDU(Protocol Data Unit,协议数据单元)来进行通信

的;而对于TCP/IP五层结构,也可以沿用这个概念,PDU是指同层之间传递的数据单位。例TCP/IP

五层结构体系中,上层数据被封装TCP头部后,这个单元称为段(Segment);数据段向下传到网络

层,被封装IP头部后,这个单元称为包(Packet);数据包继续向下传送到达数据链路层,被封装MAC头部后,这个单元称为帧(Frame);最后帧传送到物理层,帧数据变成比特(Bits)流;比特流通过

物理介质传送出去,如图所示。

2)常见硬件设备与五层模型的对应关系

       常见的设备属干哪一层并没有严格的定义或是官方的RFC文档说明,但是了解网络设备属干哪一层对于后续的网络硬件课程学习具有很好的指导意义。

       设备属于哪一层要看这个设备主要工作在哪一层,一般来说,常用的个人计算机和服务器都属于应用层设备,因为计算机包含所有各层的功能;路由器属于网络层设备,因为路由器的主要功能是网络层的逻辑寻址:传统的交换机属于数据链路层设备(这里之所以说传统,是因为如今三层,

四层的交换机已经非常普遍了),因为交换机的主要功能是基于 MAC 地址的二层数据帧交换;网卡

一般意义上定义在物理层,虽然目前有些高端的网卡甚至涵盖防火墙的功能,但其最主要 最基本

的功能仍是物理层通信,还有就是硬件防火墙,理论上讲,它应该属于传输层设备,因为它主要基于传输层端口号来过滤上层应用数据的传输,但是需求永远是网络行业发展的原动力,如今的防

火墙更注重整体解决方案的实现,对于病毒,木马,垃圾邮件的过滤已经成为防火墙的附属功能,

而且已经在企业中广泛应用,因此,很多人愿意将防火墙归属于应用层,表为网络各层典型的硬件设备。

未完待续

相关实践学习
RocketMQ一站式入门使用
从源码编译、部署broker、部署namesrv,使用java客户端首发消息等一站式入门RocketMQ。
Sqoop 企业级大数据迁移方案实战
Sqoop是一个用于在Hadoop和关系数据库服务器之间传输数据的工具。它用于从关系数据库(如MySQL,Oracle)导入数据到Hadoop HDFS,并从Hadoop文件系统导出到关系数据库。 本课程主要讲解了Sqoop的设计思想及原理、部署安装及配置、详细具体的使用方法技巧与实操案例、企业级任务管理等。结合日常工作实践,培养解决实际问题的能力。本课程由黑马程序员提供。
相关文章
|
4天前
|
安全 中间件 网络安全
中间件数据传输加密模式
中间件数据传输加密模式包括SSL/TLS用于网络通信安全,消息级加密(如AES、RSA)确保消息内容安全,端到端加密保证全程加密,数字签名验证数据完整性和真实来源,以及身份验证和授权控制访问。使用安全中间件,正确配置及管理安全设置也是关键。选择加密技术需依据应用场景、安全需求和性能考虑。
15 4
|
4天前
|
中间件 网络性能优化
中间件数据传输重传机制
中间件数据传输重传机制保障分布式系统中数据的可靠传输,关键点包括确认应答(发送方等待接收方ACK)、超时重传(设定数据包超时时间)、序列号与窗口控制(有序重组及提高效率)、流量与拥塞控制(避免接收方缓冲区溢出和网络拥塞)、错误检测(使用校验和等检测并重传错误数据包)、日志重试策略(记录失败信息并动态调整策略)以及备份容错(使用备份服务器保证数据可用性)。这些机制确保数据在复杂网络环境下的完整性和一致性。
20 3
|
4天前
|
监控 安全 网络协议
中间件数据传输数据完整性
中间件保障数据完整性,采用加密防止篡改,加校验码检测准确性,启用重传机制应对丢失,记录日志便于追踪,备份数据以防丢失,通过可靠协议如TCP纠错,及定期安全审计与监控,确保系统稳定可靠。综合运用这些策略,可适应不同业务需求,优化数据传输安全性。
20 2
|
4天前
|
缓存
计算机网络:可靠数据传输(rdt)、流水协议、窗口滑动协议
计算机网络:可靠数据传输(rdt)、流水协议、窗口滑动协议
|
4天前
|
前端开发 网络协议 JavaScript
|
11月前
串口通讯,三种数据传输方式介绍
串口通讯,三种数据传输方式介绍
140 0
|
7月前
|
网络协议 算法 Go
【协议分析】rpcx网络协议分析之kcp数据传输
【协议分析】rpcx网络协议分析之kcp数据传输
93 0
|
9月前
|
缓存
可靠数据传输(Rdt)的原理
可靠数据传输(Rdt)的原理
309 0
|
10月前
|
传感器
通过信道优化数据传输的通信链路的实现(Matlab代码实现)
通过信道优化数据传输的通信链路的实现(Matlab代码实现)
|
11月前
|
JSON 前端开发 JavaScript
前端数据传输失败
前端数据传输失败
103 0