TCP 协议的操作(TCP Operation)

TCP的主要目的是在两个建立连接的进程之间提供可靠,安全的逻辑电路或连接服务。 为了在可靠性较差的Internet通信系统之上提供此服务,需要以下列举的设施:

  1. 基本数据传输
  2. 可靠性
  3. 流量控制
  4. 多路复用
  5. 连接
  6. 优先与安全

以下各段介绍了上面列举的TCP的基本操作

基本数据传输:

通过将一定数量的八位字节打包成段,以便通过Internet系统传输,TCP能够在其用户之间的每个方向上传输连续的八位字节流。 通常,TCP根据自己的便利决定何时阻止和转发数据。

有时,用户需要确保已提交给TCP的所有数据都已传输。 为此,定义了一个推送功能(push function)。 为了确保提交给TCP的数据实际上已发送,发送用户指示应将其推送到接收用户。 推送会导致TCP立即转发数据并将直到该点的数据传递到接收者。 确切的推送点可能对接收用户不可见,并且推送功能不提供记录边界标记。

可靠性:

TCP必须从Internet通信系统可能发生的损坏,丢失,重复或无序递送的数据中恢复。 这是通过为发送的每个八位位组分配一个序号(sequence number),并要求接收方TCP发出确认(ACK)来实现的。 如果在超时间隔内未收到ACK,则会重新发送数据。 在接收端,序列号用于正确排序可能乱序接收的段,并消除重复项。对于传输过程中存在的数据损坏情况, 通过在每个传输的段上添加一个校验和,在接收方对其进行检查并丢弃损坏的段。

只要TCP继续正常运行并且Internet系统没有完全分区,就不会发生传输错误,不会影响数据的正确传送。 TCP能从Internet通信系统错误中恢复。

流量控制:

TCP为接收者提供了一种管理发送者发送数据量的方法。 这是通过返回的每个ACK携带的“窗口”来实现的,表示成功接收的最后一段之后的可接受序列号范围。 该窗口指示发送者在获得进一步许可之前可以发送的八位位组数量。

多路复用:

为了允许单个主机内的多个进程同时使用TCP通信,TCP在每个主机内提供了一组地址(即端口)。 与来自Internet通信层(如IP层)的网络和主机地址串联在一起,形成一个套接字。 每个连接由一对套接字唯一标识。 即,一个套接字可以同时用于多个连接中。

端口与进程的绑定由每个主机独立处理。 但是,将经常使用的服务(例如,“日志服务”或时间服务)连接到已为公众所知的固定套接字上被证明是有用的。 然后可以通过已知地址访问这些服务。 建立和学习其他进程的端口地址可能涉及更多动态机制。

连接:

上述可靠性和流控制机制要求TCP初始化并维护每个数据流的某些状态信息。 这些信息的组合(包括套接字,序列号和窗口大小)称为连接。 每个连接由一对标识其两侧的套接字唯一确定。

当两个进程希望进行通信时,它们的TCP必须首先建立连接(在每一侧初始化状态信息)。 他们的通信完成后,将终止或关闭连接以释放资源以供其他用途。

由于必须在不可靠的主机之间和不可靠的Internet通信系统上建立连接,因此使用具有基于时钟的序列号的握手机制来避免错误的初始化连接。

优先级和安全:

TCP的用户可以指示其通信的安全性和优先级。当不需要这些特性时,可以使用默认值。

猜你喜欢

转载自blog.csdn.net/maimang1001/article/details/112685887
tcp