传输控制协议(Transmission Control Protocol, TCP) TCP 协议主为了在主机间实现高可靠性的包交换传输协议。本文将描述协议标准和实现的一些方法。因为计算机网络在现代社会中已经是不可缺少的了,TCP 协议主要在网络不可靠的时候完成通信,对军方可能特别有用,但是对于政府和商用部门也适用。TCP 是面向连接的端到端的可靠协议。它支持多种网络应用程序。TCP 对下层服务没有多少要求,它假定下层只能提供不可靠的数据报服务,它可以在多种硬件构成的网络上运行。下面的图是TCP 在层次式结构中的位置,它的下层是 IP 协议,TCP 可以根据 IP 协议提供的服务传送大小不定的数据,IP 协议负责对数据进行分段,重组,在多种网络中传送。 TCP 的上面就是应用程序,下面是 IP 协议,上层接口包括一系列类似于操作系统中断的调用。对于上层应用程序来说,TCP 应该能够异步传送数据。下层接口我们假定为IP 协议接口。为了在并不可靠的网络上实现面向连接的可靠的传送数据, TCP 必须解决可靠性,流量控制的问题,必须能够为上层应用程序提供多个接口,同时为多个应用程序提供数据,同时 TCP 必须解决连接问题,这样 TCP 才能称得上是面向连接的,最后,TCP 也必须能够解决通信安全性的问题。 网络环境包括由网关(或其它设备)连接的网络,网络可以是局域网也可以是一些城域网或广域网,但无论它们是什么,它们必须是基于包交换的。主机上不同的协议有不同的端口号,一对进程通过这个端口号进行通信。这个通信不包括计算机内的I/O 操作,只包括在网络上进行的操作。网络上的计算机被看作包传送的源和目的结点。特别应该注意的是:计算机中的不同进程可能同时进行通信,这时它们会用端口号进行区别,不会把发向 A 进程的数据由 B 进程接收的。 进程为了传送数据会调用 TCP,将数据和相应的参数传送给 TCP,于是 TCP 会将数据传送到目的TCP 那里,当然这是通过将 TCP 包打包在IP 包内在网络上传送达到的。接收方 TCP在接收到数据后会通信上层应用程序, TCP 会保证接收数据顺序的正确性。虽然下层协议可能不会保证顺序是正确的。这里需要说明的是网关在接收到这个包后,会将包解开,看看是不是已经到目的地了,如果没有到,应该走什么路由达到目的地,在决定后,网关会根据下一个网络内的协议情况再次将 TCP 包打包传送,如果需要,还要把这个包再次分成几段再传送。这个落地检查的过程是一个耗时的过程...