传输层协议:实现数据可靠传输的关键
传输层协议是网络的重要组成部分,因为其提供了一种将数据包从一个网络节点传输到另一个网络节点的方法。传输协议有多种用途,例如流视频、互联网导航和执行交易。两个核心协议是TCP和UDP。
什么是传输层协议?
TCP和UDP协议与OSI模型的传输层相关联,并作为整个互联网的基础数据交换协议。简而言之,传输层协议负责确保设备之间的端到端通信。其还执行错误检测(仅限TCP)、数据分段和数据重组。
尤其是TCP,其负责从加载网页到在线游戏中交换数据的所有事务。让我们看看它是如何做到的。
什么是传输控制协议(TCP)?
传输控制协议(TCP)是互联网协议(IP)套件的核心协议,负责确保可靠、容错的数据从一个点发送到另一个点。TCP在确保所有信息无损传输方面取得了长足的进步。例如,TCP与UDP的区别之一是重传丢失的数据。这是以一种特别聪明的方式完成的。
在TCP协议中,每个数据包都被赋予一个唯一的序列号。数据包发送者仔细跟踪发送了哪些数据包。作为响应,接收系统发出一个ACK数据包(代表“确认”),其中包含确认收到的数据包的序列号。如果序列号不匹配或丢失,发送机器将重新发送数据包。这个过程会持续下去,直到匹配的ACK确认传输成功。
数据重传并不是TCP可靠的唯一方式。其还使用三向握手来建立持久的连接。
在TCP中,三向握手是一种通信机制,以确保所有数据的发送和正确接收。简而言之,这发生在三个部分:
1.初始化(SYN):SYN是想要建立通信的设备发出的初始数据包。该数据包包含同步标志(SYN)和接收者的IP地址。
2.确认启动(SYN-ACK):接下来,接收者发回SYN-ACK数据包,假设它已准备好并愿意进行通信。
3.最终确认(ACK):一旦发送方收到SYN-ACK,就会发送最终ACK以确认有效连接。
一旦这三个“握手”完成,传输就开始了。三向握手通常被描述为TCP的“面向连接”通信标志。然而,错误检测和流量控制等其他功能也成为TCP面向连接的本质的支柱。
由于TCP在现代IT通信中无处不在,因此不可能列出TCP的每一个用例。然而,这里有一些用例来说明其用处。
1.电子邮件:所有电子邮件均使用TCP发送。如果以UDP方式发送,则电子邮件到达时可能会有丢失一些信息,这会严重阻碍通信。
2.在线游戏:货币交易、登录机制和任何关键通信都需要TCP。
3.互联网浏览:无论使用HTTP还是HTTPS,第4层协议通常是TCP。当用户导航到某个网址时,将使用TCP协议。该协议在用户的网络浏览器和网络服务器之间建立并维护可靠的连接,确保网页和相关资源准确无误地传输。
虽然TCP以其可靠性而闻名,但也因其延迟和高开销著称。TCP确保每个数据包都被发送和记录,但这可能不适合所有用例。例如,视频流不需要每个数据包都能到达用户——这就是UDP的用武之地。
什么是用户数据报协议(UDP)?
UDP是TCP的无连接、轻量级版本。与TCP相反,UDP的主要目标是尽可能快地发送数据报,即数据包。
我们可以把UDP想象成一个人把乒乓球扔进桶里。投掷者是发送者,乒乓球是数据包,水桶是接收者。是否每一个乒乓球都能进桶并不重要,重要的是大多数都能进桶。扔球的人自然会丢几个球——这没关系。这就是为什么UDP通常被称为“尽力而为的交付”。
尽力而为交付的最佳用例在于媒体传输领域。让我们看几个例子:
1.VoIP呼叫:VoIP呼叫通常使用UDP进行。这就是为什么时常会出现画面轻微停顿、人声跳跃或听起来像机器人的原因。在语音流中,每个数据包是否完美到达并不重要。毕竟,人们善于把握语境,在交流中不需要那么严格。
2.在线游戏:在线游戏的某些方面也使用UDP。每当用户移动一个字符时,这通常是一个UDP连接。基本上,任何需要高响应时间的非关键数据都将使用UDP。
3.DNS:UDP用于DNS查询和响应。这是因为DNS解析需要快速,且不需要持续的通信。
总结
以上我们介绍了端口到端口通信中使用哪些协议:TCP和UDP。请记住,TCP用于传输过程中不会丢失的关键数据。相比之下,UDP速度更快,适用于能够承受一定量数据丢失的应用程序。