TCP定义
TCP代表 传输控制协议。它是一种传输层协议,有助于将数据包从源传输到目标。它是一种面向连接的协议,这意味着它在网络中的计算设备之间发生通信之前建立连接。此协议与IP协议一起使用,因此它们一起称为 TCP/IP。TCP的主要功能是从应用层获取数据。然后,它将数据分成几个数据包,为这些数据包提供编号,最后将这些数据包传输到目的地。另一方面,TCP将重新组装数据包并将其传输到应用层。众所周知,TCP是一种面向连接的协议,因此连接将保持建立状态,直到发送方和接收方之间的通信未完成。
TCP的工作原理
为了确保每条消息完好无损地到达其目标位置,TCP/IP 模型将数据分解成小包,然后在另一端将这些包重新组装成原始消息。与一次性发送所有内容相比,以小块信息的形式发送信息可以更轻松地保持效率。
将特定消息分解为数据包后,如果一条路线堵塞但目的地保持不变,则这些数据包可能会沿多条路线传输。
我们可以看到消息被分解,然后在目的地以不同的顺序重新组装
例如,当用户在世界某个地方的互联网上请求网页时,服务器会处理该请求并将 HTML 页面发送回该用户。服务器使用称为 HTTP 协议的协议。然后 HTTP 请求 TCP 层设置所需的连接并发送 HTML 文件。
TCP协议的特点
以下是TCP协议的功能:- 传输层协议
- 可靠
- 维护数据的顺序
- 面向连接
- 全双工
- 面向流
需要传输控制协议
在网络模型的分层架构中,整个任务被划分为较小的任务。每个任务都分配给处理该任务的特定层。在 TCP/IP模型中,有五层是应用层、传输层、网络层、数据链路层和物理层。传输层在为直接应用程序进程提供端到端通信方面起着关键作用。它创建65,000个端口,以便可以同时访问多个应用程序。它从上层获取数据,并将数据分成较小的数据包,然后将它们传输到网络层。技术合作计划的工作
在TCP中,连接是使用三次握手建立的。客户端发送带有序列号的段。作为回报,服务器使用自己的序列号以及确认序列发送其段,确认序列比客户端序列号多一个。当客户端收到其段的确认时,它会将确认发送到服务器。这样,在客户端和服务器之间建立了连接。技术合作计划的优势
- 它提供面向连接的可靠服务,这意味着它保证了数据包的传递。如果数据包在网络上丢失,则TCP将重新发送丢失的数据包。
- 它提供了一种使用滑动窗口协议的流控制机制。
- 它通过使用校验和提供错误检测,并使用返回或ARP协议提供错误控制。
- 它通过使用网络拥塞避免算法来消除拥塞,该算法包括各种方案,例如加性增加/乘法减少(AIMD)、慢启动和拥塞窗口。
TCP的缺点
它增加了大量的开销,因为每个分段都有自己的TCP标头,因此路由器的分段会增加开销。TCP标头格式
- 源端口:它定义发送数据的应用程序的端口。因此,此字段包含源端口地址,即16位。
- 目标端口:它定义接收端应用程序端口。因此,此字段包含目标端口地址,即16位。
- 序列号:此字段包含特定会话中数据字节的序列号。
- 确认编号:设置ACK标志后,它包含数据字节的下一个序列号,并用作对先前接收数据的确认。例如,如果接收方收到段号“x”,则它会响应“x+1”作为确认号。
- 赫伦:它指定标头中4字节字指示的标头的长度。标头的大小介于20到60字节之间。因此,此字段的值将介于5和15之间。
- 保留:它是一个保留供将来使用的4位字段,默认情况下,所有字段都设置为零。
-
标志 有六个控制位或标志:
- URG:它代表一个紧急指针。如果已设置,则紧急处理数据。
- ACK:如果ACK设置为0,则表示数据包不包含确认。
- PSH:如果设置了此字段,则它请求接收设备将数据推送到接收应用程序,而不对其进行缓冲。
- RST:如果已设置,则它请求重新启动连接。
- SYN:它用于在主机之间建立连接。
- FIN:它用于释放连接,不会发生进一步的数据交换。
-
WINDOW大小
这是一个16位字段。它包含接收器可以接受的数据大小。此字段用于发送方和接收方之间的流量控制,还确定接收方为段分配的缓冲区量。此字段的值由接收方确定。 -
校验和
这是一个16位字段。此字段在UDP中是可选的,但在TCP/IP的情况下,此字段是必填字段。 -
紧急指针它是指向紧急数据字节的指针
(如果URG标志设置为1)。它定义一个值,该值将添加到序列号中,以获取最后一个紧急字节的序列号。 - 选项它提供了其他选项。可选字段以32位表示。如果此字段包含的数据小于32位,则需要填充才能获取剩余位。