传输层与应用层的数据传输有什么区别呢

传输层实现应用程序端到端的数据传输
应用层 为用户的应用进程提供服务

很拗口
可以通俗一点解释吗?

不都是应用程序的事吗?
还是说一个程序里有多个进程

应用层解决进城到进程之间的数据传输,应用层也传输不了啊

通俗一些
传输层是传输数据包
应用层是解析传输层数据包

就这么简单,有什么不理解可以追问

通俗一点讲吧,传输层负责数据的可靠传输。这个听起来感觉很简单,其实这里面涉及到的东西很多,例如链接的建立,双方握手,数据分包,数据传输的质量监控,超时重发,等等,传输层并不关心传输的数据是什么内容。而应用层,可能只需要调用一个简单的接口,就可以完成数据的传输,如果传输失败,会有错误返回或异常返回。应用层更关注业务逻辑的实现,更关注数据内容本身。
对于你开发代码而言,你可能感觉不到传输层的存在,因为api已经为你封装了底层的接口,你只需要调用上层的api接口就可以完成数据传输了。

在 TCP/IP 网络协议中,应用层和传输层都是用于在不同的网络节点之间传输数据的层次。

应用层是最高层,它提供了应用程序所需的各种服务,例如 HTTP、FTP、SMTP 等等。这些应用程序的数据都是由应用层传输到下一层(传输层)的。应用层协议的数据包也被称为“报文”。

传输层则负责数据的可靠传输和流量控制。传输层中的主要协议是 TCP 和 UDP。TCP 协议提供了可靠的数据传输,确保数据的完整性,而 UDP 协议则提供了非可靠的数据传输,没有拥塞控制和重传机制。当应用程序需要可靠的数据传输时,它会选择使用 TCP 协议。

因此,应用层和传输层的主要区别在于它们提供的服务不同,应用层提供应用程序所需的服务,传输层则提供可靠的数据传输和流量控制。同时,一个应用程序可以包含多个进程,每个进程都有自己的端口号,不同进程使用不同的端口号进行通信。

这么说吧,跟你寄快递一样,都是送包裹这点事
但是你让一个快递员亲自把你的包裹送到美国去就有点强人所难了
你的包裹(应用层数据,最终用户直接用到的数据)会被封进箱子里,箱子送到转运站再装集装箱,集装箱再送到码头装船
到了美国再一层一层的解开,最终原始的包裹会送到收件人手里
当然,如果你一次性发了很多个包裹,这些包裹可能中途并不在同一个集装箱里,甚至不在同一条船上,但最终都会到达目的地

  • 给你找了一篇非常好的博客,你可以看看是否有帮助,链接:实现多码率视频转码点播功能的点播流媒体服务器之如何从零开始,搭建专属于自己的视频点播平台?
  • 除此之外, 这篇博客: 应用层报文怎么传输到另一个应用层的?中的 数据封装和解封装过程举例 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • (1)从计算机 A 的应用层内网通软件向计算机 B 发出一个消息,生成数据;
    (2)请求从计算机 A 的应用层下到 计算机A 的传输层,传输层在上层数据前面加上 TCP报头,报头中包括目标端口以及源端口;
    (3)传输层数据下到网络层,计算机A 在网络层封装,源 IP地址为 计算机A地址,目标 IP地址为计算机 B 地址;
    (4)计算机 A 将计算机B 的 IP 地址和子网掩码与自己做比对,可以发现 计算机 B 与自己处于相同的子网。所以数据传输不必经过网关设备;
    (5)数据包下到 计算机 A 的数据链路层进行封装,源 MAC 地址为 计算机A的 MAC地址,目标MAC 地址查询自己的 ARP 表。
    (6)计算机 A 把帧转换成 bit 流,从物理接口网卡发出;
    (7)物理层接收到电信号,把它交给数据链路层进行查看帧的目标 MAC 地址,和自己是否相等,如果相等说明该帧是发送给自己的,于是将MAC帧头解开并接着上传到网络层;
    (8)网络层查看目标 IP 地址和自己是否匹配,如果匹配即解开 IP 头封装。然后再把数据上传到传输层;
    (9)传输层解开对应的包头之后,继续把数据传给应用层,计算机 B 即可接收到计算机 A 发的消息。

  • 您还可以看一下 AI100讲师老师的朋友圈爆款背后的计算机视觉技术与应用课程中的 朋友圈爆款背后的计算机视觉技术与应用小节, 巩固相关知识点

其实,都是一层一层往下解析的,应用层的数据需要底层进行解析传输,最后到物理层采用2进制码,进行数据传输。
可以看我之前整理的网络文章:
计算机网络整理(超全整理)(2000+收藏)
https://blog.csdn.net/lydms/article/details/106736730