我们的系统设计高效,确保我们可以将数据从一个系统传输到另一个系统。有没有想过这个过程是如何运作的?
我们的网络有一个参考模型,该模型规定了通信协议的标准以及每一层的功能。
协议是一组用于从一个系统到另一个系统的通信的标准规则。它们通过端口号来实现。很少有这样的协议是TCP、IP、UDP、DHCP、FTP等。这里我们将讨论传输层中使用的协议。
传输层是TCP/IP模型的第二层,它是用于向主机传递消息的端到端层。它被称为端到端层,因为它提供点到点连接。
传输层中用于增强其功能的最标准协议是TCP(传输控制协议)、和UDP(用户数据报协议).
TCP与UDP
给出一个构造视图TCP和UDP协议之间的差异,下表提供。
传输控制协议 | UDP |
它是一种面向连接的协议,在传输任何数据包之前需要建立连接。 | 它是一种无连接协议,在发送方和接收方之间发送数据之前无需建立连接。 |
TCP具有20-60字节的可变标头长度。 | UDP有一个8字节的固定长度标头,后跟一个有效负载。 |
TCP保证即使在出现故障的情况下也能将数据包传递给接收方。因此,它是一个可靠的连接。 | 一些数据包可能在传输过程中丢失。因此,这是一种不可靠的传输。 |
为确保可靠传输,需要确认接收器接收到数据包。 | UDP不需要确认数据传输。 |
TCP进行排序和排序,以确保从客户端发送的数据包将以与发送相同的顺序发送到服务器。 | UDP不保证数据的有序传递。 |
TCP是一种有状态的协议,因为双方都保留有关是否接收到数据的信息。 | UDP是一种无状态协议,即服务器不保留有关先前传输的任何信息。 |
TCP通过校验和和错误处理为数据提供安全性。 | 传输数据的安全性可以忽略不计。 |
在数据丢失或损坏的情况下,可以重新传输数据包 | 无法重新传输数据包。 |
TCP比UDP慢,因为它的功能比后者多得多。 | UDP更快、更高效,因为它关注的是发送数据,而不是过程的准确性。 |
TCP提供拥塞控制机制,以确保网络能够承载流量负载。 | UDP不提供拥塞控制机制。 |
TCP使用一种流控制机制来检查发送方是否一次发送过多的数据包而使接收方无法承受。 | UDP不提供流量控制。它们以连续流的形式到达,并在拥塞时丢弃。 |
TCP不支持广播。 | UDP支持广播。 |
TCP很重。 | UDP是轻量级的 |
如果客户端没有收到数据包的确认,TCP使用定时器来超时传输。 | 此协议中未使用计时器。 |
TCP适用于可靠性和准确性比时间更重要的应用。 | UDP适用于时间和效率比准确性更重要的应用程序。 |
示例:
|
示例:
|
什么是TCP?
TCP或传输控制协议是在不可靠连接上专门设计的,以提供可靠的端字节流。它的设计使得它能够动态地适应互联网的特性,并且在任何类型的故障情况下都具有鲁棒性。
它是一个面向连接且可靠的协议。面向连接是指在任何数据传输之前建立预先计划的路由,并且在删除主机之间的连接时也会中断路由。在传输层,它还意味着要传输的数据包之间的依赖关系。
它是可靠的,因为它使用SR和GBN协议,并将校验和用于错误检测。在数据包丢失或损坏的情况下,在该协议中也可以进行重传。为确保数据包被传输,使用确认(累积或选择性)。
TCP使用套接字地址提供进程到进程的通信。它提供全双工通信和流传送服务,即,传送/获取数据的发送/接收过程是通过数据作为字节流进行的。TCP对连接中传输的每个字节进行编号,这些字节恰好在每个方向上是独立的。sta具有任意生成的数字的rts。序列号分配给该段中数据的第一个字节,并确认接收器预期接收的下一个字节。
什么是UDP?
UDP或用户数据报协议是使用的最简单的传输层协议。它用于建立低延迟和高带宽的通信。UDP是一种不可靠且无连接的协议。
无连接意味着不同数据报的不同路径,在这里,对于传输层,它可能意味着数据包之间的独立性。这是不可靠的,因为它不会从接收方生成确认,并且发送方也不会在发送下一个数据包之前等待。该协议侧重于比可靠或有保证的系统更快的通信。它用于产生大量带宽的系统,在这些系统中,一些丢失或损坏的数据包会被忽略,但可以确保快速稳定的连接。UDP提供半双工通信。它不能保证向接收方有序地交付数据。该协议是无状态的,这意味着任何以前的通信信息都不由客户机服务器保存,并且每个进程都可以独立地理解。
著者
乌帕萨尼虾
麻省理工学院世界和平大学