吉大《计算机网络》(四)
TCP协议之流量控制
1. TCP协议简介
TCP协议虽然是网络通讯最常用,也是最常见的协议之一,但是要完全理解,还是得通过不断的学习和研究。
特别是在用科来网络分析系统对TCP数据包进行解码后,对TCP有了更深刻的理解。
今天,刚学习了TCP的流量控制技术,现写出来和大家探讨一下,也算是现炒现卖吧。
不过,在讨论之前,还是先来简单介绍一下TCP协议。
TCP协议,即传输控制协议,它运行在OSI的第四层,即传输层,为端到端的主机提供了面向连接的、可靠的数据传输服务。
自从TCP发明以来,它已经成为了一个为主机间提供有保证的数据传输、标准的互联网协议。
2.TCP协议的特征
TCP协议之所以能保证可靠的数据传输,是因为其具有面向连接的特点。
作为面向连接的协议,TCP通过会话建立、会话撤销以及流量控制等几个基本特征来保证数据的传输。
对于TCP的会话建立及撤销等,我想大家都非常清楚,今天主要和大家讨论一下关于TCP的流量控制。
说到流量控制,不得不提到TCP的另一个重要概念-—窗口。
窗口表示了接收主机能接收的最大数据量,并且,窗口大小是随着主机资源和主机当前正在接收多少个传输数量而变化的。
主机将窗口字段用于流量控制,也就是说,流量控制是TCP窗口的一个功能。
TCP采用流量控制管理进入接收主机缓冲区的数据流量。
如果发送主机传输数据的速度比接收主机处理数据的速度更快以至接收主机缓冲区已满不能处理更多的数据时,则接收主机就会请求发送主机降低数据发送速度直到接收主机可以接收更多的数据为止;相反,如果接收主机能够处理更多的数据,则会请求发送主机加快数据的发送速度,这就是流量控制的用途,它保证了数据在传输的过程中完整的传送到接收主机。
3.TCP协议解码
在对TCP的解码中我们可以了解到,连接的双方在每一次会话中都各自声明了当前的窗口大小,以此进行数据传输的流量控制。
如客户端()要和服务器()进行TCP通讯,首先,客户端会发送一个请求同步连接的数据包,在该数据包中,客户端会声明自己的窗口大小64240,则服务器端就不可能发送超过64240字节的数据,也就是客户端最大能接收的数据;同样,服务器收到这个同步数据包后,在给客户端发送确认同步数据包的同时,也会声明自己的窗口大小5720,也就是在每一个TCP会话中,连接通讯的双方都会向对方声明自己当前能接收的最大数据,以免造成数据的丢失。
TCP的流量控制技术使得TCP可以象交通警察一样控制通讯量的大小。
当通讯双方建立连接时(在一条实现交通管制的公路上),当有足够的资源处理请求时(交通空闲时),它就增加窗口的大小(允许更多的车辆通过),当出现拥塞或资源不够时(交通高峰期),它就减小窗口大小(允许少数车辆通过);而当超载时,就公告窗口为0,不再接收数据(亮红灯,不允许任何车辆通过)。
4.总结
以上是我对TCP流量控制的一些理解,由于写的比较充忙加上水平有限,希望各位大侠能多给点意见,在下不胜感激!。