网络TCP/IP基础(数据传输)

本文涉及的产品
数据传输服务 DTS,数据同步 small 3个月
推荐场景:
数据库上云
数据传输服务 DTS,数据迁移 small 3个月
推荐场景:
MySQL数据库上云
数据传输服务 DTS,数据同步 1个月
简介: 数据封装与解封装过程、数据封装过程、应用层封装过程、传输层封装过程、网络层封装过程、数据链路层封装过程、物理层封装过程、数据解封装过程、物理层解封装过程、数据链路层解封装过程、网络层解封装过程、传输层解封装过程、应用层解封装过程、数据传输的一些基本概念、PDU、常见硬件设备与五层模型对应关系

前言


     数据传输的过程和TCP/IP五层网络结构关系密切,在实际的网络环境中,发送方和接收方往往相隔千山万水,网络环境也各不相同,但是数据的传输都需要经历数据封装与解封装的过程


一、数据封装与解封装过程


1、数据封装过程

pc1 pc2
应用层 上层数据
传输层 上层数据 + TCP头部
网络层 上层数据 TCP头部 + IP头部
数据链路层 上层数据 TCP头部 IP头部 + MAC头部
物理层 _∏_∏_∏_∏_∏_∏_∏_∏_∏_∏_∏_∏_∏_∏_∏_∏_∏_∏_∏_∏_∏_∏_

(1)应用层封装过程


     在应用层,计算机呈现的各种信息被”翻译“为二进制编码数据,这也是应用层在网络数据传输过程中最为核心的贡献
 

(2)传输层封装过程


     在传输层,上层数据被分割成小的数据段,并为每个分段后的数据封装TCP报文头部,从应用层转换过来的二进制编码数据是海量的,数据量过大会加大出错的概率,因此,将数据先分割成小段再逐段传输,一旦出现数据传输错误只需重传这一小段数据即可
 

(3)网络层封装过程


     在网络层,上层数据被封装上IP报文头部,在IP头部有一个关键字段信息:IP地址,包含目标IP和源IP
 

(4)数据链路层封装过程


     在数据链路层,上层数据被封装一个MAC头部,在MAC头部也同时封装着目标MAC地址和源MAC地址
 

(5)物理层封装过程


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

2、数据解封装过程
 

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

pc1 pc2
上层数据 应用层  
- TCP头部 上层数据 传输层
- IP头部 TCP头部 上层数据 网络层
- MAC头部 IP头部 TCP头部 上层数据 数据链路层
_∏_∏_∏_∏_∏_∏_∏_∏_∏_∏_∏_∏_∏_∏_∏_∏_∏_∏_∏_∏_∏_∏_ 物理层

(1)物理层解封装过程


     在物理层,首先将电信号转换成二进制数据,并将数据送至数据链路层


(2)数据链路层解封装过程


     在数据链路层,将查看目标MAC地址,判断其是否与自己的MAC地址吻合,并据此完成后续处理。如果数据报文的目标MAC地址就是自己的MAC地址,数据的MAC头部将被“拆掉”,并将剩余的数据送至上一层;如果目标MAC地址不是自己的MAC地址,对于终端设备来说,它将会丢弃数据


(3)网络层解封装过程


     在网络层与在数据链路层类似, 目标IP地址将被核实是否与自己的IP地址相同,从而确定是否送至上一层


(4)传输层解封装过程


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


(5)应用层解封装过程


     在应用层,这些二进制数据将经历复杂的解码过程,以还原发送者所传输的原始信息

二、数据传输的一些基本概念


1、PDU

pc1 pc2
应用层 上层数据
传输层 上层数据 + TCP头部 (数据段)
网络层 上层数据 TCP头部 + IP头部 (数据包)
数据链路层 上层数据 TCP头部 IP头部 + MAC头部 (数据帧)
物理层 _∏_∏_∏_∏_∏_∏_∏_∏_∏_∏_∏_∏_∏_∏_∏_∏_∏_∏_∏_∏_∏_∏_ (比特流)


     对于OSI参考模型而言,每一层都是通过PDU(Protocol Data Unit,协议数据单元)来进行通信的,而对于TCP/IP五层结构,也可以沿用这个概念。
     PDU是指同层之间传递的数据单位。例如,TCP/IP五层结构体系中,上层数据被封装TCP头部后,这个单元称为段(Segment),数据段向下传到网络层,被封装IP头部后,这个单元称为包(Packet),数据包继续向下传送到达数据链路层,被封装MAC头部后,这个单元称为帧(Frame),最后帧传送到物理层,帧数据变成比特流,比特流通过物理介质传送出去

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

应用层 计算机,服务器
传输层 防火墙
网络层 路由器
数据链路层 网桥,交换机
物理层 网卡、网线,集线器,中继器,调制解调器


结语


     数据在传输过程中不断的进行着封装和解封装的过程,网络设备属于哪一层就在哪一层对数据进行相关的处理,正因如此,我们称TCP/IP五层模型为“参考模型“,参考这五层模型可以帮助我们很好的研究数据传输的整个过程

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
Sqoop 企业级大数据迁移方案实战
Sqoop是一个用于在Hadoop和关系数据库服务器之间传输数据的工具。它用于从关系数据库(如MySQL,Oracle)导入数据到Hadoop HDFS,并从Hadoop文件系统导出到关系数据库。 本课程主要讲解了Sqoop的设计思想及原理、部署安装及配置、详细具体的使用方法技巧与实操案例、企业级任务管理等。结合日常工作实践,培养解决实际问题的能力。本课程由黑马程序员提供。
相关文章
|
19天前
|
网络协议 安全 网络安全
网络编程:基于socket的TCP/IP通信。
网络编程:基于socket的TCP/IP通信。
111 0
|
8天前
|
网络协议 C语言
C语言 网络编程(十三)并发的TCP服务端-以进程完成功能
这段代码实现了一个基于TCP协议的多进程并发服务端和客户端程序。服务端通过创建子进程来处理多个客户端连接,解决了粘包问题,并支持不定长数据传输。客户端则循环发送数据并接收服务端回传的信息,同样处理了粘包问题。程序通过自定义的数据长度前缀确保了数据的完整性和准确性。
|
8天前
|
网络协议 C语言
C语言 网络编程(十一)TCP通信创建流程---服务端
在服务器流程中,新增了绑定IP地址与端口号、建立监听队列及接受连接并创建新文件描述符等步骤。`bind`函数用于绑定IP地址与端口,`listen`函数建立监听队列并设置监听状态,`accept`函数则接受连接请求并创建新的文件描述符用于数据传输。套接字状态包括关闭(CLOSED)、同步发送(SYN-SENT)、同步接收(SYN-RECEIVE)和已建立连接(ESTABLISHED)。示例代码展示了TCP服务端程序如何初始化socket、绑定地址、监听连接请求以及接收和发送数据。
|
8天前
|
网络协议 C语言
C语言 网络编程(十四)并发的TCP服务端-以线程完成功能
这段代码实现了一个基于TCP协议的多线程服务器和客户端程序,服务器端通过为每个客户端创建独立的线程来处理并发请求,解决了粘包问题并支持不定长数据传输。服务器监听在IP地址`172.17.140.183`的`8080`端口上,接收客户端发来的数据,并将接收到的消息添加“-回传”后返回给客户端。客户端则可以循环输入并发送数据,同时接收服务器回传的信息。当输入“exit”时,客户端会结束与服务器的通信并关闭连接。
|
8天前
|
网络协议 C语言
C语言 网络编程(十二)TCP通信创建-粘包
TCP通信中的“粘包”现象指的是由于协议特性,发送方的数据包被拆分并在接收方按序组装,导致多个数据包粘连或单个数据包分割。为避免粘包,可采用定长数据包或先传送数据长度再传送数据的方式。示例代码展示了通过在发送前添加数据长度信息,并在接收时先读取长度后读取数据的具体实现方法。此方案适用于长度不固定的数据传输场景。
|
8天前
|
缓存 网络协议 网络性能优化
C语言 网络编程(二)TCP 协议
TCP(传输控制协议)是一种面向连接、可靠的传输层协议,通过校验和、序列号、确认应答等机制确保数据完整性和可靠性。通信双方需先建立连接,再进行通信,采用三次握手建立连接,四次挥手断开连接。TCP支持任意字节长度的数据传输,具备超时重传、流量控制及拥塞控制机制。三次握手用于同步序列号和确认双方通信能力,四次挥手则确保双方均能完成连接关闭操作,保证数据传输的可靠性。
|
8天前
|
网络协议 C语言
C语言 网络编程(十)TCP通信创建流程---客户端
在TCP通信中,客户端需通过一系列步骤与服务器建立连接并进行数据传输。首先使用 `socket()` 函数创建一个流式套接字,然后通过 `connect()` 函数连接服务器。连接成功后,可以使用 `send()` 和 `recv()` 函数进行数据发送和接收。最后展示了一个完整的客户端示例代码,实现了与服务器的通信过程。
|
20天前
|
监控 网络协议 Linux
在Linux中,如何实时抓取并显示当前系统中tcp 80 端口的网络数据信息?
在Linux中,如何实时抓取并显示当前系统中tcp 80 端口的网络数据信息?
|
5天前
|
网络协议
网络协议概览:HTTP、UDP、TCP与IP
理解这些基本的网络协议对于任何网络专业人员都是至关重要的,它们不仅是网络通信的基础,也是构建更复杂网络服务和应用的基石。网络技术的不断发展可能会带来新的协议和标准,但这些基本协议的核心概念和原理将继续是理解和创新网络技术的关键。
13 0
|
17天前
|
网络协议 编译器 Go
揭秘!TCP、RPC、gRPC、HTTP大PK,谁才是网络通信界的超级巨星?一篇文章带你秒懂!
【8月更文挑战第25天】本文以教程形式深入对比了TCP、RPC、gRPC与HTTP这四种关键通信协议,并通过Go语言中的示例代码展示了各自的实现方法。TCP作为一种可靠的传输层协议,确保了数据的完整性和顺序性;RPC与gRPC作为远程过程调用框架,特别适合于分布式系统的函数调用与数据交换,其中gRPC在性能和跨语言支持方面表现出色;HTTP则是广泛应用于Web浏览器与服务器通信的应用层协议。选择合适的协议需根据具体需求综合考量。
88 0