目录
一、传输层是什么
在计算机网络的庞大体系中,传输层就像是一个关键的枢纽,位于网络层和应用层之间,起着承上启下的重要作用。如果把计算机网络比作是一座城市的交通系统,那么网络层就像是城市中的主干道,负责将数据包从一个区域(主机)运输到另一个区域;而传输层则像是连接各个小区(应用进程)和主干道的支路,确保数据能够准确无误地从发送方的应用进程,传输到接收方的应用进程 ,实现端到端的通信服务。
从更专业的角度来讲,传输层主要承担着两大核心任务:一是为运行在不同主机上的应用进程提供直接的通信服务,简单来说,就是让不同设备上的应用程序能够相互 “对话”;二是对网络层提供的服务进行优化和扩展,比如解决数据丢失、乱序等问题,让数据传输更加稳定可靠。
二、传输层两大协议
在传输层中,有两个最为重要的协议,分别是传输控制协议(TCP,Transmission Control Protocol )和用户数据报协议(UDP,User Datagram Protocol ) ,它们就像是传输层的左右护法,各自发挥着独特的作用,满足了不同类型应用的需求。
(一)可靠的 TCP
TCP 就像是一位严谨细致的管家,以可靠传输为首要目标。它具有以下显著特点:
-
面向连接:在数据传输之前,TCP 会通过 “三次握手” 的方式建立起一条可靠的连接,就像两个人在正式交谈之前,会先互相确认身份和沟通状态,确保双方都准备好进行交流。例如,当你在浏览器中输入网址访问网页时,浏览器和服务器之间就会通过三次握手建立 TCP 连接,为后续的数据传输做好准备。
-
可靠传输:TCP 通过序列号、确认应答、超时重传等机制来确保数据的可靠传输。每个发送的数据段都有一个序列号,接收方会对收到的数据进行确认应答,如果发送方在一定时间内没有收到确认应答,就会重新发送数据,就像你寄快递时,会收到快递签收的反馈,如果长时间没有收到签收信息,你可能会联系快递公司重新确认或补发 。
-
流量控制:为了防止发送方发送数据过快,导致接收方来不及处理,TCP 采用了滑动窗口机制来实现流量控制。接收方会根据自己的处理能力,向发送方通告一个窗口大小,发送方只能在这个窗口范围内发送数据,就像一个漏斗,控制着水流的速度,避免水溢出。
-
拥塞控制:当网络出现拥塞时,TCP 会通过慢开始、拥塞避免、快重传和快恢复等算法来调整数据发送速率,避免网络进一步拥塞,保证网络的稳定运行,就像交通拥堵时,交警会通过各种措施来疏导交通,保持道路畅通。
在日常生活中,TCP 广泛应用于对数据可靠性要求较高的场景,比如文件传输。当你从网上下载一个大型文件时,TCP 协议能够确保文件的每一个字节都准确无误地传输到你的设备上,不会出现数据丢失或损坏的情况,保证文件的完整性。又比如网页浏览,TCP 保证了网页的各种元素,如文字、图片、视频等,能够按照正确的顺序加载显示,为你提供流畅的浏览体验。
(二)灵活的 UDP
UDP 则更像是一个行动敏捷的信使,它的特点与 TCP 截然不同。UDP 是无连接的,在数据传输时,它不需要像 TCP 那样先建立连接,而是直接将数据发送出去,就像你给朋友发一条即时消息,不需要先打电话确认对方是否方便接收,直接发送即可,大大节省了时间和资源,使得数据传输的速度更快,实时性更强 。
当然,UDP 也因此不保证数据传输的可靠性,它不进行确认应答和重传操作,如果数据在传输过程中丢失,应用程序不会收到任何通知,也不会自动重传数据。不过,UDP 的头部开销非常