解释计算机网络中的TCP服务。


以下是传输控制协议 (TCP) 提供给应用层进程的一些服务:

  • 流式传输服务。
  • 发送和接收缓冲区。
  • 字节和报文段。
  • 全双工服务
  • 面向连接的服务。
  • 可靠的服务。

下面将详细解释所有上述TCP服务。

流式传输服务

TCP是一个面向流的协议。它使发送进程能够将数据作为字节流交付,并使接收进程能够获取字节流数据。

TCP创建一个工作环境,使发送和接收过程通过一个虚拟的“管道”连接起来,如下图所示。

发送和接收缓冲区

发送和接收进程不能以相同的速度产生和接收数据。因此,TCP需要一个缓冲区进行存储。

每种剖析中使用两种缓冲区方法,如下所示:

  • 发送缓冲区
  • 接收缓冲区

可以使用一个1字节位置的环形数组来实现缓冲区,如下图所示。该图显示了数据在发送端单向移动的情况。

缓冲区有三种类型的存储位置,如下所示:

  • 空闲位置。
  • 包含已发送但未确认的字节的位置。这些字节将保留在缓冲区中,直到收到确认。
  • 包含发送方TCP将要发送的字节的位置。

实际上,由于接收进程速度慢或网络拥塞,TCP可能只发送一部分数据。

接收端的缓冲区分为如下两个部分:

  • 包含空闲位置的部分。
  • 包含已接收字节的部分,发送进程可以消耗这些字节。

字节和报文段

缓冲区用于处理数据传输速度和数据消耗速度之间的差异。但仅靠缓冲区是不够的。

作为TCP服务提供商,在将数据发送到互联网协议 (IP) 层之前,还需要一个步骤。它需要以数据包的形式发送数据,而不是作为字节流发送。

在传输层,TCP将多个字节分组到一个数据包中,这称为报文段。每个报文段都会添加一个头部来进行控制。

报文段封装在IP数据报中然后传输。整个操作对接收过程是透明的。报文段在到达接收端时可能会乱序、丢失或损坏。

下图显示了如何从缓冲区中的字节创建报文段。

报文段的大小并不相同。每个报文段可以携带数百个字节。

全双工服务

TCP提供全双工服务,数据可以同时双向流动。每个TCP将拥有发送缓冲区和接收缓冲区。TCP报文段将双向发送。

面向连接的服务

我们已经知道TCP是一个面向连接的协议。当一个进程想要与另一个进程 (进程-2) 通信 (发送和接收) 时,操作顺序如下:

  • 进程-1的TCP通知进程-2的TCP并获得其批准。
  • 进程-1的TCP告诉进程-2的TCP双向交换数据。
  • 完成数据交换后,当双方的缓冲区为空时,两个TCP将销毁它们的缓冲区。

TCP中的连接类型不是物理连接,而是虚拟连接。封装在IP数据报中的TCP报文段可能会乱序发送。这些报文段可能会丢失或损坏,可能需要重新发送。每个报文段可能采取不同的路径到达目的地。

可靠的服务

TCP是一个可靠的传输协议。它使用确认机制来检查数据的安全可靠到达。

更新于:2021年5月4日

20K+ 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告