本文共 1227 字,大约阅读时间需要 4 分钟。
TCP 协议(TransmissionControl Protocol,传输控制协议) 它是最常用传输层协议,也是最稳定传输层协议,很多上层应用都是依赖于 TCP 协议进程传输数据,如SMTP、 FTP 等等。
一个完整的 TCP 传输必须有数据的交互,接收方在接收到数据之后必须正面进行确认,向发送方报告接收的结果,而发送方在发送数据之后必须等待接收方的确认,同时发送的时候会启动一个定时器,在指定超时时间内没收到确认,发送方就会认为发送失败,然后进行重发操作,这就是重传报文。 TCP 提供可靠的运输层, 但它依赖的是 IP 层的服务, IP 数据报的传输是无连接、 不可靠的,因此它要通过确认来知道接收方确实已经收到数据了。但数据和确认都有可能会丢失, 因此 TCP 通过在发送时设置一个超时机制(定时器) 来解决这种问题, 如果当超时时间到达的时候还没有收到对方的确认,它就重传该数据。 CP 协议是全双工通信。TCP 提供了流量控制服务(flow-control service)以消除发送方使接收方缓冲区溢出的可能性。流量控制是一个速度匹配服务,即发送方的发送速率与接收方应用程序的读取速率相匹配, TCP 通过让发送方维护一个称为接收窗口(receive window)的变量来提供流量控制。
TCP 协议中使用滑动窗口的流量控制方法,它允许接收方根据自身的处理能力来确定能接收数据的多少,因此会告诉发送方可以发送多少数据过来,即窗口的大小,而发送方尽可能将数据都多发到对方那里,所以发送方会根据这个窗口的大小发送对应的数据 。 关于窗口的概念必须强调三点:TCP 协议的连接是包括上层应用间的连接,简单来说, TCP 连接是两个不同主机的应用连接,而传输层与上层协议是通过端口号进行识别的,如 IP 协议中以 IP 地址作为识别一样,端口号的取值范围是 0~65535,这些端口标识着上层应用的不同线程,一个主机内可能只有一个 IP 地址,但是可能有多个端口号,每个端口号表示不同的应用线程。
转载地址:http://ednii.baihongyu.com/