什么是传输层?

开放系统互连模型或 OSI 模型是一种概念模型,用于描述构成计算机网络的各个部分。 它主要旨在为开发网络标准和协议创建日常理解。 该模型对于帮助理解计算机网络的基础知识非常有用。

然而,非常值得记住的是,协议在现实世界中的实现有所不同。 有很多跨层协议。 现代网络概念也不一定适合 OSI 模型。 不过,了解基础知识还是有帮助的。

OSI 模型有七层,数字越低越接近传输数据的裸金属电缆。 传输层是第四层。 传输层负责在通信设备之间提供端到端的通信服务。 传输层协议可以是面向连接的。 然而,它们也可以是无连接的。

TCP 代表传输控制协议,是最著名和最常用的传输层协议。 它是面向连接的双向通信,具有错误检测和重传功能。 UDP 是最流行的传输层协议,代表通用数据报协议。 它是无连接的,发送方永远不知道接收方是否收到过传输。 这两种协议共同构成了 Internet 上的大部分网络流量。 它们也是在所有主要操作系统上实现的仅有的两个协议。

TLS,或传输层安全性,是一种用于 HTTPS 等的加密协议。 尽管在其名称中包含“传输层”一词,但 TLS 在 OSI 模型的第 6 层(表示层)运行,并在数据到达实际传输层协议之前对其进行加密。

传输层协议的特点

传输层协议可以是面向连接的。 这对于应用程序来说通常更容易管理,因为存在单个数据流而不是可能不完整的数据报系列。 数据的顺序通常也很重要。 虽然网络通常会导致数据包按照发送顺序进行传送,但这不一定是可靠的。 可以对段进行编号,以便在以错误的顺序显示时可以重新排序。

可以使用诸如校验和之类的错误检测代码来实现错误检测。 可以发送一条接收消息,用 ACK 确认成功接收,用 NACK 确认错误。 在收到 NACK 或超时后,发送方可能会自动重复传输。 流量控制可以确保发送方不会传输得太快而导致接收方跟不上。

拥塞避免有助于即使在重负载下也能确保最佳网络性能。 慢启动,对于 example, 强制某些连接开始缓慢并加快速度,从而避免使网络不堪重负。 这对于重传尤为重要,因为网络拥塞可能是第一个问题的原因,而再次重传会加剧问题。 多路复用支持端口号的定义,以便多个传输可以在同一台机器上同时发生,并且都可以到达正确的应用程序而不会相互干扰。

这些特性都不是传输层协议所必需的。 TCP,对于 example, 确实支持上述所有功能。 但是,UDP 仅支持多路复用。

面向连接与无连接

通常,大多数网络通信都是双向的,并遵循请求-响应模式。 网络流量是一个极好的 example 这个的。 对于请求-响应用例,TCP 是理想的选择。 它在双方之间提供了可靠的连接。 如果无法正确接收片段,这可能会导致网页无法正确显示。 但是,自动错误检查和重放有助于尽快检测并更正这些错误。 与损坏的内容相比,额外的传输时间不是问题。

但是,情况并非总是如此。 观看实时视频流、流式音频或玩在线视频游戏时可能需要传输时间。 丢失数据报当然不是理想的选择,但等待它被重新传输是更可取的,因为内容在它到达的时候已经移动了。 因此,实时和流媒体内容倾向于使用 UDP。 它重量更轻、速度更快,因为它不像 TCP 那样保证传输成功。

结论

传输层是 OSI 模型的第 4 层。 它负责在通信设备之间提供端到端的通信服务。 这一层的协议可以提供可靠的连接,即使是在不稳定的连接或无连接的连接上,假设大多数流量都能正常通过。 这两个选项都很有帮助,并且有很多用例。 TCP 和 UDP 共同构成了 Internet 上的大部分网络流量。