DTU协议中的TCP协议

  什么是TCP(传输控制协议)?

  传输控制协议(简称TCP协议)是在计算机网络中不同设备之间交换数据的标准。该协议可以追溯到1973年,当时计算机科学家Robert E. Kahn和Vinton G. Cerf作为研究论文的一部分发布了该标准的第一版。但是,又过了八年时间,TCP才在RFC 793中标准化。从那时起,已经进行了许多改进和扩展,尽管协议的核心保持不变。RFC 7323中定义的当前版本是从2014开始的。

  当前版本的TCP协议允许共享计算机网络中的两个端点建立连接,以实现双向数据传输。任何数据丢失都会被检测到并自动纠正,这就是为什么TCP也被称为可靠协议的原因。TCP与(UDP | server / knowhow / udp-user-datagram-protocol /)和SCTP一起构成属于Internet协议套件的一组传输协议,这些传输协议根据OSI位于网络体系结构的传输层模型。术语TCIP / IP协议栈 由于TCP协议几乎总是基于Internet协议(IP),并且该连接是大多数公共和本地网络以及网络服务的基础,因此,“ TCP”也常用于指代Internet协议套件。

  TCP连接到底如何工作?

  TCP允许双向传输信息。这意味着通过TCP进行通信的计算机系统可以同时发送和接收数据,类似于电话交谈。该协议使用段(数据包)作为数据传输的基本单位。除有效载荷外,段还可以包含控制信息,并且限制为1,500个字节。该TCP软件在操作系统的网络协议栈负责建立和终止端至端连接,以及传输数据。

  TCP软件由各种网络应用程序(例如Web浏览器或服务器)通过特定接口控制。每个连接必须始终由两个明确定义的端点(客户端和服务器)标识。哪一方承担客户端角色和哪一方承担服务器角色都没有关系。重要的是,TCP软件为每个端点提供了一个唯一的,有序的对,该对包括IP地址和端口(也称为“ 2-tuple”或“ socket”)。

  三向握手:如何详细建立TCP连接

  建立有效TCP连接的先决条件:两个端点必须已经具有唯一的IP地址(IPv4或IPv6),并且已经分配并启用了所需的数据传输端口。IP地址用作标识符,而端口允许操作系统将连接分配给特定的客户端和服务器应用程序。

  TCP标头的结构是什么?

  通常,TCP数据包的标头包含使用传输控制协议进行连接和数据传输所需的数据。该报头数据(包含控制信息)在要传输的有效载荷之前,通常大小为20字节(160位)。紧随其后的是最多40个字节(320位)的附加信息,该信息是可选的,并非在所有数据包中都使用。

  TCP协议标头的各个组件或字段具有以下含义:

  源端口(16位):标识发送方的端口号。

  目的端口(16位):标识接收器的端口号。

  序列号(32位):序列号指定附加的有效载荷数据的第一个字节,或者在建立或终止连接时发送。它也用于在传输后对段进行验证和分类。

  确认号(32位):此字段包含发送方期望的下一个序列号。ACK标志(在“标志”字段中)是有效性的前提条件。

  偏移量(4位):“偏移量”字段以32位字指定TCP标头的长度,以突出显示有效载荷数据的起点。由于变量“选项”字段的不同,该起点因段而异。

  保留(6位):根据RFC 793保留供将来使用,尚未使用。此字段必须始终设置为0。

  标志(6位):“标志”字段中的六个可能的单个位使能各种TCP动作来组织通信和数据处理。为这些操作设置或未设置以下标志:

  URG:“紧急”标志向TCP应用程序发出信号,必须立即处理有效载荷数据,直到设置的紧急指针为止(请参见上文)。

  ACK:结合确认号,ACK标志确认TCP数据包的接收。如果未设置该标志,则确认编号也无效。

  PSH:“ Push”标志可确保立即将TCP段推入,而无需先将其发送到发送方和接收方的缓冲区。

  RST:如果传输过程中出现错误,可以使用设置了RST标志的TCP数据包来重置连接。

  SYN:设置了SYN标志的消息代表三向握手的第一步,这意味着它们将启动连接。

  FIN:“完成”标志向另一方发出发件人正在结束传输的信号。

  窗口大小(16位):此字段指定发送方愿意接收的字节数。

  校验和(16位):传输控制协议可以可靠地检测传输错误。从报头,有效载荷数据和伪报头计算出的校验和用于此目的。

  紧急指针(16位):紧急指针指示要紧急处理的有效载荷数据之后的第一个字节的位置。结果,该字段仅在设置了URG标志时才有效且相关。

  选项(0-320位):如果要包括不包含在常规标头中的TCP函数,例如,如果您想定义最大段大小,请使用“选项”字段。选项的长度必须始终为32的倍数,否则需要零位填充。

  通过TCP协议进行数据传输的详细方式

  甚至在发送第一个数据之前,发送方和接收方通常就要发送的TCP片段(MSS)的最大大小达成协议。默认情况下,每个段最多可以容纳1,500个字节,其中TCP头至少为20个字节,IP头为另外20个字节,有效载荷数据为1,460个字节。如果需要自定义大小,则必须如上所述在“选项”字段中指定它,但是必须相应地减少有效负载数据。


客服咨询

微信互动

使用教程

返回顶部

商城小程序购买

微信支付更方便