TCP介绍

传输控制协议(TCP)是IP协议栈的一个主要协议。它起源于最初的网络部署,在此网络中对Internet协议(IP)进行了补充。

因此,整个套件通常称为TCP/IP。TCP在通过IP网络进行通信的主机上运行的应用程序之间,提供可靠,有序和错误检查的八位位组(字节)流交付。主要的Internet应用程序,例如World 1Wide 1Web,电子邮件,远程管理和文件传输依赖于TCP,TCP是TCP/IP套件的传输层的一部分。

SSL/TLS通常在TCP之上运行。

TCP是面向连接的,并且可以在发送数据之前在客户端和服务器之间建立连接。建立连接之前,服务器必须侦听(被动打开)来自客户端的连接请求。三向握手(主动打开),重传和错误检测可增加可靠性,但会延长等待时间。

不需要可靠数据流服务的应用程序可以使用用户数据报协议(UDP),该协议提供无连接 1数据报服务,该服务优先考虑时间而不是可靠性。

TCP采用避免网络拥塞的方法。但是,TCP存在一些漏洞,包括拒绝服务,连接劫持,TCP否决权和重置攻击。为了网络安全,监视和调试,可以使用数据包嗅探器拦截和记录TCP流量。

尽管TCP是一个复杂的协议,但自其第一个规范以来,其基本操作并未发生重大变化。TCP仍然主要用于Web,即HTTP协议和更高版本的HTTP/2,而最新标准HTTP/3并未使用。

历史渊源

1974年5月,Vint Cerf和Bob Kahn描述了一种网络互连协议,该协议通过在网络节点之间使用分组交换来共享资源。作者一直与GérardLe Lann 合作,将法国CYCLADES项目的概念纳入新的网络。

最终协议的规范RFC-675(互联网传输控制程序规范)由Yogen Dalal的 Vint Cerf编写和卡尔阳光,发表于1974年12月。包含第一个证明一词的使用互联网,作为一个速记互联。

该模型的中央控制组件是传输控制程序,该程序将面向连接的链接和主机之间的数据报服务结合在一起。整体式的传输控制程序后来被分为由传输控制协议和Internet协议组成的模块化体系结构。

这导致了一个网络模型,该模型被非正式地称为TCP/IP,尽管正式将它分别称为国防部(DOD)模型和ARPANET模型,并最终也称为Internet协议套件。

2004年,Vint Cerf和Bob Kahn因在TCP/IP方面的基础性工作而获得了图灵奖。

网络功能

传输控制协议在应用程序和Internet协议之间的中间级别提供通信服务。它在Internet模型的传输层提供主机到主机的连接。

应用程序不需要了解用于通过链接向另一主机发送数据的特定机制,例如为容纳传输介质的最大传输单位(MTU)而需要的IP分段。

在传输层,TCP处理所有握手和传输详细信息,并通常通过网络套接字接口为应用程序提供网络连接的抽象。

在协议栈的较低级别,由于网络拥塞,流量负载平衡或不可预测的网络行为,IP数据包可能会丢失,重复或乱序发送。TCP检测到这些问题,请求重新传输丢失的数据,重新排列无序的数据,甚至帮助最小化网络拥塞以减少其他问题的发生。如果数据仍未传递,则通知源此失败。

一旦TCP接收器重新组合了最初发送的八位字节序列,它将把它们传递给接收应用程序。因此,TCP 从底层网络详细信息中抽象出应用程序的通信。

TCP已被许多Internet应用程序广泛使用,包括万维网(WWW),电子邮件,文件传输协议,安全Shell,对等文件共享和流媒体。

TCP主要针对准确传递数据而不是及时快速传递数据,并且在等待无序消息或丢失消息的重新传输时会导致较长的延迟(几秒钟)。

因此,它不适用于IP语音等实时应用。对于此类应用,通常建议改为使用通过用户数据报协议(UDP)运行的实时传输协议(RTP)之类的协议。

TCP是一种可靠的流传递服务,可确保接收到的所有字节与发送的字节相同且顺序相同。由于许多网络进行的数据包传输不可靠,因此TCP使用一种称为带重传的肯定确认的技术来实现此目的。

这要求接收器在接收到数据时以确认消息做出响应。发送方保留其发送的每个数据包的记录,并从发送数据包起维护计时器。如果计时器在收到确认之前已过期,则发送方将重新发送数据包。如果数据包丢失或损坏,则需要计时器。

IP处理实际的数据传递时,TCP会跟踪段 -消息被分为数据传输的各个单位,以便通过网络进行高效路由。

例如,当一个HTML文件由Web服务器发送,该服务器的TCP软件层将所述文件分成段并将它们向单独转发互联网层的网络协议栈。互联网层软件通过添加包含(除其他数据外)目标IP地址的标头,将每个TCP段封装为一个IP数据包。

当目标计算机上的客户端程序接收到它们时,传输层中的TCP软件将重新组合这些段,并确保将它们正确地排序并且在将文件内容流式传输到接收应用程序时没有任何错误。

觉得文章有用?

点个广告表达一下你的爱意吧 !😁